Handoffs
多 agent 系统里把当前会话控制权从一个 agent 交给另一个 specialist 的接力模式。
#tech / ai
#resource / handoffs
#type / concept
#status / growing
[!info] related notes
- 所属 MOC: AI MOC
- 前置概念: orchestration, Agent
- 并列概念: Manager (agents as tools), a2a
- 易混淆概念: Function Calling
- 关系笔记: ai-ability-and-protocol, 多 Agent 编排模式
Handoffs
一句话定义
Handoff 是多 agent 系统里的接力机制:一个 agent 判断当前任务更适合由另一个 specialist 处理时,把 active agent 直接切换过去。
它的核心特征
- 不是让 specialist 在幕后处理子任务
- 而是把当前会话的控制权交出去
- 被切过去的 specialist 会成为这一段流程里的 active agent
所以 handoff 的重点不是“调用别人帮忙”,而是“把接力棒交出去”。
什么时候适合用
适合这些情况:
- routing 本身就是流程的一部分
- 你希望 specialist 直接面向用户说话
- 不同 specialist 代表不同角色或职能边界
一个典型例子是:
用户 -> triage agent
-> handoff 给 refund agent
-> refund agent 继续处理剩余会话
它和 Manager 模式的区别
Handoffs
- 会切换 active agent
- specialist 直接接管当前阶段的对话
- 更像“前台换人”
Manager (agents as tools)
- manager 一直保持总控
- specialist 更像幕后专家
- 更像“前台不变,后台请专家支援”
它和普通工具调用的区别
Handoff 在运行时看起来也像一种动作,但它不是普通 function tool。
区别在于:
- 普通工具调用执行完,会话控制权通常还在当前 agent 手里
- handoff 执行后,系统会切换 active agent
所以不要把 handoff 简单理解成“调用一个特殊工具”。
它在工程上带来的设计问题
一旦使用 handoff,就要额外考虑:
- 上下文是否完整传给下一个 agent
- 哪些历史要裁剪
- guardrails 只挂在入口,还是在 handoff 节点再检查
- trace 里怎么标识 active agent 的切换
也就是说,handoff 本质上属于 orchestration 设计,而不是单独一条 prompt 技巧。
最短记忆方式
Handoff 就是把当前会话的接力棒交给另一个 specialist,让它成为新的 active agent。