Pattern 02: handoffs
How do agent handoffs work?
An agent decides it is not the right one for the current step and hands control to another. The receiving agent gets the conversation, or a summary of it, and continues. There is no lead in the middle. The OpenAI Agents SDK makes handoffs a first-class primitive alongside agents-as-tools. Microsoft Agent Framework's Handoff orchestration lets "agents transfer control to each other". LangChain documents Handoffs next to Subagents and Router. Pydantic AI calls it programmatic hand-off.
Why do teams pick handoffs?
Handoffs map to how people already work: support triage, then billing, then escalation. Each agent stays small, with a short prompt and a few tools. There is no orchestrator to scale or pay for. And the user often talks to exactly one agent at a time, which keeps the experience coherent.
Where do handoffs break?
The note is the context. Whatever the first agent does not write down, the second agent does not know.
Actions carry implicit decisions, and conflicting decisions carry bad results.
A billing agent that does not know the triage agent already promised a refund will make a different decision.
Ping-pong. Two agents that each think the other should handle an edge case will pass it back and forth. Without a hop limit this burns tokens until a timeout.
No shared view of ownership. Mid-chain, nobody outside the process can easily answer "who has this now?" That matters once a human needs to intervene.
Handoffs usually stay inside one framework. Handing off from an OpenAI Agents SDK agent to a CrewAI crew means a protocol such as A2A, and the handoff note then crosses a boundary where formats differ.
When do agent handoffs work, and when do they break?
When it works
- Lanes are clear (triage, specialist, escalation)
- Two to four agents
- One framework
- Conversation-style tasks
- The next step depends on the previous result
When it breaks
- Decisions made early are not written down
- Two agents can both claim a case
- Humans need to see who owns the work
- Handoffs cross frameworks or teams
Which tools use agent handoffs?
| Tool | How it coordinates | Good for | Source |
|---|---|---|---|
| OpenAI Agents SDK | Handoffs as a primitive; tracing built in | Python/TS apps | OpenAI docs |
| LangGraph | Handoffs pattern on a state graph | Stateful flows needing durable execution | LangChain docs |
| Microsoft Agent Framework | Handoff orchestration with human-in-the-loop | .NET and Python | Microsoft Learn |
| Pydantic AI | Programmatic hand-off, typed | Typed Python apps | Pydantic docs |
| BAND | Handoffs via @mention in a shared room; per-agent, per-message lifecycle with attempt history | Handoffs across frameworks and to humans | BAND platform |
What do people ask about agent handoffs?
Not sure which pattern fits?
Six questions, about a minute. You'll get a pattern, a shortlist and the tradeoffs.
Last reviewed: September 2026