Principle:Microsoft Autogen Handoff Routing
| Knowledge Sources | |
|---|---|
| Domains | Multi-Agent Systems, Task Routing, Agent Communication, Workflow Design |
| Last Updated | 2026-02-11 00:00 GMT |
Overview
Handoff routing is the mechanism by which an active agent explicitly transfers control of a conversation to another named agent through a structured, tool-mediated transition.
Description
In multi-agent systems, agents must be able to delegate tasks to other agents. Handoff routing provides a declarative, tool-based approach to agent transitions. Rather than relying on a central dispatcher to select the next speaker, each agent is configured with explicit handoff routes that define:
- Who the agent can transfer to (the target agent).
- When the transfer should occur (the description, which guides the LLM's decision).
- What message accompanies the transfer (the handoff message, which provides context to the receiving agent).
- How the transfer is identified (the tool name, used to detect and process the handoff).
The fundamental insight is that handoff routes are reified as tools. Each configured handoff becomes a function tool that the LLM can invoke just like any other tool. When the model decides that a handoff is appropriate, it generates a tool call for the corresponding transfer function. The framework intercepts this tool call, extracts the target agent name, and emits a HandoffMessage that the orchestrator uses to switch the active speaker.
This approach has several advantages over centralized routing:
- The LLM makes the routing decision using its understanding of the conversation context.
- Handoff conditions are expressed in natural language descriptions, making them flexible and easy to modify.
- The routing topology is defined at agent configuration time, not at runtime, providing clear architectural boundaries.
Usage
Use handoff routing when:
- You need agents to decide autonomously when and where to transfer a conversation.
- The routing logic depends on conversational context rather than fixed rules.
- You want to define the agent topology declaratively at configuration time.
- You need to provide context messages to the receiving agent upon transfer.
- You want custom tool names or descriptions for handoff actions (beyond the auto-generated defaults).
Theoretical Basis
Handoff routing implements the explicit delegation pattern from distributed systems. It can be modeled as a directed graph where:
Graph G = (V, E) where:
V = {agent_1, agent_2, ..., agent_n} (set of agents)
E = {(a_i, a_j, d_ij)} (directed edges with descriptions)
For each edge (a_i, a_j, d_ij):
- A tool named "transfer_to_{a_j}" is created for agent a_i
- The tool description is d_ij (guides LLM decision-making)
- When invoked, the tool returns a handoff message m_ij
- The framework emits HandoffMessage(target=a_j, content=m_ij)
Routing decision at agent a_i:
1. LLM receives conversation context + available tools (including handoff tools)
2. LLM generates either:
a. A text response (continues processing)
b. A tool call to "transfer_to_{a_j}" (triggers handoff)
3. If handoff: framework extracts target, emits HandoffMessage, switches speaker
The auto-generation of defaults follows the convention over configuration principle:
- Tool name defaults to
transfer_to_{target}(lowercased). - Description defaults to
"Handoff to {target}.". - Message defaults to
"Transferred to {target}, adopting the role of {target} immediately.".
These defaults enable rapid prototyping while still allowing full customization when needed.