XIV · Anti-PatternsAnti-pattern

Ghost Delegation

also known as Lost Handoff, Orphaned-Subtask Delegation

Anti-pattern: in a multi-agent hierarchy a task handoff silently vanishes — the delegated work waits forever and the parent closes while its subtask is orphaned, and because no error fires nothing restarts it.

Context

A multi-agent system decomposes work hierarchically: a parent or orchestrator agent delegates subtasks to other agents and waits for their results to assemble a final answer. Delegation happens through messages, queues, or tool calls between agents. The parent expects each delegated subtask to come back, and composes its result once the children report in.

Problem

Sometimes a handoff just disappears: the delegated subtask is never picked up, or it enters a wait that never resolves, while the parent — having no signal that anything went wrong — eventually closes or moves on, leaving the subtask orphaned. Because nothing raised an error, no retry, timeout, or recovery path triggers; the work is simply gone, and the final result is silently incomplete. In production multi-agent systems this lost-handoff failure is a large share of observed breakdowns, and it is hard to spot precisely because there is no error to find.

Forces

  • Delegation across agents is asynchronous, so a dropped or never-acknowledged handoff produces silence rather than an exception.
  • A parent that composes results when children report cannot distinguish a slow child from one that will never return without an explicit timeout.
  • No error means no automatic retry or recovery fires, so a lost subtask stays lost.
  • Adding acknowledgements, timeouts, and orphan detection to every handoff is overhead a happy-path design skips.

Example

An orchestrator agent delegates a data-fetch subtask to a worker and moves on to assemble the report. The worker never acknowledges the handoff — a queue hiccup dropped it — so it never runs, and nothing errors. The orchestrator, seeing no failure, finishes and returns a report missing that data. No log shows a problem; the only sign is the silently absent section, discovered later by a user.

Diagram

Solution

Therefore:

Make every delegation accountable end to end. Require the receiving agent to acknowledge a handoff, so an unpicked-up subtask is detectable rather than silent, and put a timeout and an explicit completion contract on each delegated subtask so a never-resolving wait surfaces as a failure the system can act on. Track outstanding subtasks against their parent so the parent cannot close while a child is still owed, and detect orphaned work to retry or escalate it. Treat a missing result as an error condition, not as nothing — the absence of a report is itself the signal. The control is acknowledgement plus timeouts plus orphan detection, so a lost handoff becomes a recoverable event rather than a silent gap.

What this pattern forbids. A delegated subtask must not be treated as fire-and-forget; every handoff is acknowledged, each subtask carries a timeout and completion contract, and a parent cannot close while a delegated child is still outstanding — a missing result is handled as a failure rather than ignored.

The patterns that counter or replace it —

  • complementsPhantom Action CompletionAnti-pattern: the agent reports a side-effecting action as complete from its own narration, when the tool call silently failed or never ran and nothing checked that the effect occurred.
  • complementsCascading Agent FailuresAnti-pattern: build a multi-agent system where one agent's failure or hallucination propagates as input to peers, until the whole system has drifted.
  • complementsMulti-Agent on Sequential WorkloadsAnti-pattern: split a fundamentally sequential workload across multiple agents, degrading accuracy by 39–70% with no parallelization benefit.
  • complementsComposable Termination ConditionsExpress agent stop criteria as small single-purpose conditions composed with AND/OR into one explicit termination contract instead of ad-hoc loop guards.

Neighbourhood

Click any neighbour to follow the language. Scroll to zoom, drag to pan.