Two hands tracing a race strategy grid of lap times

Agent Handoff

A single agent doing one job never hands off. The moment work spans specialists, a triage agent, a coding agent, a review agent, something has to carry the work from one to the next. That transfer is the agent handoff. Done well, the next agent picks up with full context and keeps moving. Done badly, context drops at the boundary and the receiving agent guesses or starts over.

Overview

Handoff is the edge between agents, the point where one finishes and another begins. It sits underneath task decomposition and orchestration: decomposition splits a goal into subtasks, orchestration decides which agent runs when, and the handoff is how the output and context actually move across each join. Without it, a multi-agent system is a set of strangers, each re-reading the original request because nothing was passed forward.

The word comes from support and incident response, escalate to a specialist and pass the case file, and it became a named primitive in multi-agent frameworks as teams moved from one agent doing everything to many specialized agents. The design question is always the same: what crosses the boundary, and how. Forwarding the whole conversation is simple but grows expensive with each hop. Carrying a typed packet of just the outputs and fields that matter is leaner and more reliable. In Overcut, handoffs are usually event-mediated rather than direct calls: an agent finishes and emits an event carrying its structured output, and the next workflow picks the work up, with the shared state living in the control plane and every handoff written to the audit trail.

How it works

A handoff carries work across the boundary between two agents. Four properties decide whether it holds:

One agent finishes its part

A handoff happens at a boundary between specialized agents. A triage agent classifies a bug, a planning agent drafts an approach, a coding agent writes the change. When one agent's job ends and the next begins, the work has to cross over rather than start again from the raw request.

Context crosses as structured state

The receiving agent needs more than "your turn." It needs the outputs so far, the task state, and the relevant context. Passing the whole transcript is simple but costly; a typed packet of just the fields that matter is leaner and what holds up as the number of handoffs grows.

Control moves, it does not return

A handoff transfers control to the next agent, unlike calling a sub-agent as a tool and getting a result back. The first agent steps out, the second takes over. That is what lets a chain of specialists run without one agent babysitting the whole flow.

The boundary is where work is lost

Most multi-agent failures happen at the handoff: a field that never crossed, stale context, an output the next agent cannot parse. Declaring what transfers, and recording each handoff, is what keeps the chain honest.

Agent Handoff — how it works

Example in practice

A bug report lands and a triage agent works it: it classifies the issue, sets severity, and narrows the cause to a function whose API response changed shape. It does not hand the raw ticket thread to the next agent. It emits a structured summary, the suspected cause, the affected files, the severity, and an implementation agent picks that up. Because the context crossed as state, the implementation agent does not re-read the thread or re-derive the cause. It writes the fix, adds a test, and opens a pull request, then hands the PR to a review agent that checks it against the team's standards. Each boundary is a handoff, the work moves forward without a person relaying it, and the audit trail shows exactly what was passed at each step.

?

What is Agent Handoff?

An agent handoff is the transfer of control, context, task state, and outputs from one agent to another, so the receiving agent continues the work with what it needs instead of starting over.

Comparison: Agent handoff vs. the Agent-as-tool call

Dimension
Agent handoff
Agent-as-tool call
What moves
Context, task state, and outputs to the next agent
An input to a sub-agent; a result comes back
Control after
Moves to the receiving agent
Returns to the calling agent
Context fidelity
Carried as structured state, nothing re-derived
Only the call inputs and the return value
Scales to
Many specialized agents across stages
One agent with helper sub-agents
Main risk
Dropped or stale context at the boundary
The caller becomes the bottleneck

An agent-as-tool call borrows a specialist and gets control back; a handoff passes control on; and both replace the manual handoff where a developer re-explains the work to the next tool by hand.

Move work between agents without losing the thread

Overcut passes context, state, and outputs across each boundary as structured state on an event, so the next agent starts ready and every handoff is recorded, no human re-explaining the work.

Get a demo

Related terms

Related content