Agents

What Is Agent Handoff?

The protocol by which one agent transfers control and state to another agent inside a multi-agent system.

What Is Agent Handoff?

Agent handoff is the protocol for transferring control from one agent to another inside a multi-agent system. The handing-off agent decides — usually by calling a designated handoff tool — that another agent is better suited to the next step, builds a payload of the relevant context, and yields execution. The receiving agent picks up using that payload as its starting context, runs its own loop, and either completes the task or hands off again. In a FutureAGI trace, a handoff appears as a cross-agent span tagged with the source agent, the target agent, and the payload contents.

Why agent handoff matters in production LLM and agent systems

Handoffs are where multi-agent systems most often break — and where most teams aren’t watching. Each handoff is a serialization boundary: state has to be flattened to a payload, the receiving agent has to reconstruct context, and any field the sender forgot or the receiver ignored becomes a silent bug. The classic failure: the triage agent identifies a refund request and hands off to the refund agent, but the order ID lives in a memory the refund agent cannot read. The refund agent re-asks the user. The user loses confidence in the automation.

Different roles see different symptoms. A backend engineer sees increased session length when the receiver re-asks for context the sender already had. An SRE watches a CrewAI run loop between two agents that keep handing back to each other. A product reviewer watches an OpenAI Agents SDK demo where the handoff happened at the wrong step — the orchestrator escalated a question the first agent could have answered.

In 2026 the protocol is becoming standardized. The OpenAI Agents SDK ships first-class handoff tools. CrewAI uses delegation via manager_agent. AutoGen uses next-speaker selection in group chats. Google ADK has explicit sub-agent invocation. The Agent2Agent Protocol (A2A) is an emerging cross-vendor standard. All of them produce the same engineering need: trace the handoff, evaluate the choice, and verify the payload was sufficient.

How FutureAGI handles agent handoff

FutureAGI’s approach is to treat every handoff as a first-class span with structured attributes. The openai-agents, crewai, autogen, google-adk, and a2a traceAI integrations capture handoff calls as their own OpenTelemetry spans, with the source agent name, target agent name, and the payload as span attributes. That makes it possible to query “show me every handoff from triage agent to refund agent that failed” without grepping logs.

Evaluation happens at three points around the handoff. Did the source pick the right target? ToolSelectionAccuracy scores the handoff-tool call as if it were any other tool selection. Did the target finish? TaskCompletion grades the post-handoff sub-trajectory. Did the payload carry enough context? A custom evaluator can check whether the receiving agent had to re-ask for information already in the sender’s state.

Concretely: a customer-support multi-agent system on the OpenAI Agents SDK has a triage agent and a billing agent. After instrumenting with the openai-agents traceAI integration, FutureAGI shows handoff-failure-rate at 18% — the billing agent fails TaskCompletion that often after a handoff. The cross-agent span view reveals the triage payload omits the customer’s tier, so the billing agent queries the wrong policy. Adding a customer_tier field to the handoff payload drops failure to 4%. The fix took thirty minutes because the trace named the boundary.

How to measure or detect agent handoff

Handoffs need both a per-handoff score and a population dashboard:

  • ToolSelectionAccuracy: scores whether the source agent picked the right target — handoffs are tool calls under the hood.
  • TaskCompletion: scores the post-handoff sub-trajectory; failure here often points to payload bugs.
  • TrajectoryScore: aggregates per-step scores across the joint multi-agent trajectory.
  • handoff-failure rate (dashboard signal): the % of handoffs where the receiver fails TaskCompletion within N steps; the canonical multi-agent SLI.
  • handoff-bounce rate (dashboard signal): the % of traces where two agents hand off to each other twice or more — a stuck-loop indicator.
  • handoff-payload completeness (custom eval): checks required fields such as order ID, user tier, and current task before the receiver starts.
  • loop-depth by route (dashboard signal): counts repeated handoffs between the same source and target; page when a route crosses the cap.
  • agent.trajectory.step (OTel attribute): paired with source/target agent names, lets you slice handoff metrics by route.

Minimal Python:

from fi.evals import TaskCompletion, ToolSelectionAccuracy

handoff_choice = ToolSelectionAccuracy().evaluate(
    input=triage_state,
    trajectory=triage_spans,
)
print(handoff_choice.score, handoff_choice.reason)

Common mistakes

  • Conflating handoff with multi-agent. Handoff is one coordination protocol; multi-agent is the architecture. A multi-agent system can use shared state, manager routing, or group chat instead.
  • Implicit payloads. “The receiver can read the sender’s memory” is fragile — make handoff payloads explicit, typed, and version-controlled.
  • No max-handoff cap. Two agents can ping-pong forever if neither owns final resolution; cap consecutive handoffs and alert on repeated source-target pairs.
  • Skipping the handoff-choice eval. A wrong-target handoff looks like target-agent failure but is source-agent failure; evaluate the choice, not just the outcome.
  • Treating handoff as free. Each handoff is a fresh prompt evaluation, fresh tool registry load, fresh memory recall — count handoffs in cost models.

Frequently Asked Questions

What is agent handoff?

Agent handoff is the protocol by which one agent transfers control — and a packaged state payload — to another agent inside a multi-agent system, then yields execution.

How is agent handoff different from a multi-agent system?

A multi-agent system is the architecture; handoff is one coordination protocol used inside it. Multi-agent describes the team; handoff describes the baton-pass between teammates.

How do you measure handoff quality?

FutureAGI scores handoffs via TaskCompletion on the post-handoff sub-trajectory, ToolSelectionAccuracy on the handoff call itself, and a handoff-failure-rate dashboard signal.