Law 46 · Trust & Coordination
The Handoff Is the Hard Part
In multi-agent systems, failures live in the seams.

The principle
Each agent can be flawless on its own and the system still breaks, because the bug lives between them: what got passed, what got dropped, who owned the state. Sub-agents don't inherit context automatically. Anything you don't explicitly hand over simply doesn't exist on the other side.
Why it happens
In multi-agent systems, each agent can behave correctly and the whole system can still fail. The bug lives in the handoff: a constraint was not passed, a source was dropped, state ownership was unclear, or the receiver never validated what arrived. Studies of multi-agent traces find many failures in exactly these coordination gaps. A sub-agent cannot use context it never received. If EU market only is not serialized into the task, it does not exist on the far side. Treat handoffs as contracts, not vibes.
Watch for
- A downstream agent produces output that violates a constraint the upstream agent clearly knew about.
- Nobody can say which agent owns a given piece of state, so it gets dropped or duplicated.
- What crosses a boundary is assumed correct and never validated on the receiving side.
In practice
Your orchestrator spawns a research sub-agent and a writer sub-agent, each flawless in isolation, yet the final report cites a competitor's pricing the user never asked about. The bug lives in the seam: the orchestrator passed the topic but dropped the user's 'EU market only' constraint, and the writer had no way to know it ever existed. Sub-agents do not inherit context by osmosis; anything you do not explicitly pass simply does not exist on the other side. Define the contract at every boundary, hand over the full constraint set and source set deliberately, and validate what crosses instead of trusting it survived the trip.
Apply it
- Define an explicit contract at every boundary listing exactly what must be passed.
- Hand over the full constraint set and source set deliberately rather than assuming context is inherited.
- Validate incoming data on the receiving side instead of trusting it survived the trip.
The takeaway
Design the contract at every boundary. Pass everything the next agent needs explicitly, make state ownership unambiguous, and validate what crosses the seam instead of assuming it made it.