Containing Failure in Multi-Agent Systems
Contain failures in multi-agent systems by binding evidence to the correct request and enforcing shared resource limits. Check request identity, ticket identity, source version, and freshness before each handoff, and stop mismatched evidence before downstream agents use it. Reserve model calls, tool attempts, tokens, estimated cost, and time against one request budget. Distinguish a caller timeout from remote cancellation, preserve unknown operation status, and reconcile approved actions using stable operation IDs. Require durable, atomic receiver enforcement for replay safety, and assign accountable owners for recovery, monitoring, and manual review before production deployment.
Northstar replays 10 sandbox requests through a proposed multi-agent triage workflow. In three of them, a service-status result was cached under the wrong request identity. The read itself was authorized, but for another ticket, and a downstream specialist accepted it as current evidence for its own ticket and wrote a plausible draft.
That is the dangerous kind of multi-agent failure: not a crash, but a wrong result that looks right, made more convincing by every agent downstream. By the time the polished draft reaches an operator, nothing in it looks broken. Containing failure means deciding where to stop that chain, how much work a request may consume, and what to do when you can’t tell whether an action happened.
Where should the chain stop?
Three of 10 is a replay finding, not a production failure rate. Predict where the boundary belongs before looking at the repair.
A cautious draft still misleads when its evidence belongs to another ticket. Checking the association before the handoff stops the error before it gains credibility downstream.
How do we bind evidence to a request?
An evidence envelope carries a result together with its request ID, ticket ID, source version, and acquisition time. The application derives the expected request, ticket, version, and freshness window from trusted state; it never takes those expected values from the agent receiving the result.
At each handoff, compare the envelope with that expected binding. Missing fields, a mismatched request or ticket, an unexpected source version, or an expired acquisition time stop the handoff and send the request to operator review. A matching envelope permits the next step, though it doesn’t prove the specialist will interpret the evidence correctly. The diagram shows that check at the handoff.
The Agents SDK provides agents-as-tools and handoffs for delegation. Your application code still defines the acceptance conditions and ...