Multi-agent systems can deadlock even if each individual agent appears helpful. Two workers may wait for one another’s approval, repeatedly delegate the same unresolved task or compete for a tool lease. The cure is workflow state and explicit ownership, not asking every agent to ‘coordinate better’.
How it works
Represent each task as a directed dependency graph with owner, next action, completion signal and deadline. Reject cycles when static dependencies are known. For dynamic delegation, enforce a maximum depth, a global operation ID and a termination test independent of the models’ statements. An agent should be allowed to return ‘cannot proceed’ instead of inventing progress to satisfy another agent’s request.
A practical, bounded workflow
Consider a legal-research system with a retriever, evidence checker and drafting assistant. The drafter requests evidence; the checker notices a missing citation and asks the retriever; the retriever then asks the drafter to clarify terminology. Without a parent controller, they can repeat forever. The controller should detect the repeated task signature, set a bounded clarification request and escalate to a human rather than generate another identical subtask.
Failure modes and limits
Shared memory also causes trouble when agents overwrite the same field with inconsistent interpretations. Use versioned state updates, optimistic concurrency or a single-writer stage. Do not allow a subagent to expand its own tool privileges by adding roles to its task description. Treat timeouts and inaccessible dependencies as explicit terminal or review states rather than invisible waits.
Deployment controls
Assign responsibility for each transition: scheduled, running, awaiting evidence, awaiting approval, writing, reconciled, canceled or unresolved. The controller, not a free-form language response, decides whether a next action is authorized. Persist operation IDs and deadlines so a restart does not erase obligations or repeat committed effects.
When to choose this approach
Use a single orchestrator with specialized tools when the work does not genuinely require independent reasoning roles. Reserve multi-agent delegation for decomposable work with measurable benefit. Common SDK support for subagents is not proof of throughput or correctness improvement.
What to evaluate before production
Test cyclic requests, repeated delegations, partial subagent failures, conflicting writes and approvals that never arrive. Measure tasks ending in a verified state, human escalations, max depth and the fraction of runs requiring forced cancellation. No run should consume unbounded time or tool credits.
Version, market and tier caution (25 October 2026): This is a technical and operational guide, not a live entitlement, pricing or geographic-availability certification. Numeric commercial limits and undocumented release dates are intentionally omitted. Reconfirm the exact account, deployment region, access policy and vendor release before procurement or publication.