Multi-Agent、Handoff 与 A2A:什么时候值得拆分多个 Agent

# Multi-Agent、Handoff 与 A2A:什么时候值得拆分多个 Agent

本篇目标

理解主控、Supervisor、Handoff 和并行 Worker 的差异,学会判断多 Agent 是否真正降低复杂度,并认识 A2A 的协议位置。

选择协作拓扑控制上下文交接处理责任与失败理解 A2A

# 先记住一句话

Multi-Agent 的价值不是 “多几个模型”,而是隔离真正不同的能力、上下文或权限;如果角色只是互相转述消息,它通常比单 Agent 更慢、更贵、更难调试。

# 常见拓扑

拓扑 控制方式 适用场景
Agent as Tools 主 Agent 把专家当工具调用,控制权始终在主 Agent 专家任务短、结果可结构化返回
Handoff 当前 Agent 把会话控制权交给另一 Agent 用户需要与不同专业角色连续交互
Supervisor 主管反复分配工作、读取结果并决定下一步 跨角色、多阶段、需要统一验收
Parallel Workers 独立子任务并行,聚合器合并 多文档分析、互不依赖的调查
Peer-to-Peer 独立 Agent 通过协议协作 跨系统、跨组织的长期任务

# 拆分的合理依据

只有出现下面至少一种情况才优先考虑拆分:

  • 上下文彼此独立,合并后明显干扰;
  • 工具和权限不同,需要最小权限隔离;
  • 子任务可并行且收益大于协调成本;
  • 不同模型或专业提示确实有可验证优势;
  • Agent 属于不同系统,需要远程任务协作。

不要仅按 “前端 Agent、后端 Agent、测试 Agent” 命名就认为架构成立。每个角色还要有输入输出契约、权限、完成标准和失败责任。

# Handoff 传什么

交接内容应是结构化的最小任务包:

type Handoff = {
  task: string // 接收方要完成的具体任务
  reason: string // 为什么需要移交,而不是由当前 Agent 继续处理
  verifiedFacts: string[] // 已核验的事实,避免接收方把推测当成结论
  artifacts: Array<{
    type: string // 产物类型,例如文件、报告或代码补丁
    uri: string // 产物的存储位置或访问地址
  }>
  constraints: string[] // 权限、时间、范围等必须遵守的限制
  expectedOutput: string // 期望返回的内容和格式
  returnControlTo: string // 完成或失败后把控制权交还给谁
}
1
2
3
4
5
6
7
8
9
10
11
12

不要把全部会话原样转发。接收方需要知道事实来源和未确认假设,交接后由谁面向用户、失败时控制权回到哪里也要明确。

# A2A 放在哪一层

A2A(Agent-to-Agent)面向独立 Agent 之间的互操作:通过 Agent Card(能力说明)描述自己能做什么,用 Message 或 Task 交换工作,并支持异步状态、流式更新和产物。MCP 更偏向 Agent 或宿主应用接入工具与资源,A2A 更偏向把 Agent 当作远程任务服务来协作。

对单体项目内部的几个函数,不必为了 “标准化” 强行上 A2A;跨服务、跨团队或长时异步任务才更有价值。

# 失败和安全

  • 为每个子任务设置 deadline 和预算;
  • 并行任务使用统一输出 Schema;
  • 主控负责最终验收,不能把 “worker 说完成” 当事实;
  • 权限随角色最小化,交接不自动继承高权限;
  • 给整个协作分配 correlation ID,保留父子 trace;
  • 部分 worker 失败时明确采用降级、重试还是整体失败。

# 贯穿项目的合理拆分

笔记助手先保持单 Agent。批量生成一套面试专题时,可以让研究 worker 分别核验原理、框架 API 和项目案例,再由主 Agent 去重、统一表达并执行引用检查。只有当评测表明并行确实提高覆盖率且延迟可接受,才保留这套架构。

# 高频面试题与回答

回答顺序:先说结论,再解释原因,最后补一个例子或工程边界。不要逐字背诵,记住这条表达主线即可。

1. 30 秒回答:什么时候使用 Multi-Agent参考答案

我只会在不同角色确实拥有独立知识、工具、权限,或者任务真的可以并行时使用 Multi-Agent。常见方式有三种:主 Agent 把专家 Agent 当工具调用;通过 Handoff 把后续控制权交给另一个 Agent;由 Supervisor 拆分任务并协调多个 Worker。每个 Agent 都要有明确输入、输出和失败责任,最终由主控或确定性规则验收。否则一个 Agent 配合清晰工具通常更简单。

2. Handoff 和 Agent as Tools 有什么区别?参考答案

区别在于控制权是否转移。Agent as Tools 是主 Agent 临时请专家完成一个子任务,拿到结果后仍由主 Agent 继续;Handoff 则把后续会话和决定权交给接收方。前者像请同事给一份报告,后者像把客户正式转交给另一个负责人。

3. 如何处理多个 Worker 结果冲突?参考答案

不能简单让另一个模型投票。每个 Worker 的结果都要带来源和必要的置信信息,聚合器再按权威来源、时间和业务规则处理。如果证据仍无法判断,就保留分歧并请人工决定,而不是为了输出唯一答案强行合并。

4. A2A 和 MCP 能一起用吗?参考答案

可以,因为它们解决的不是同一层问题。两个 Agent 可以用 A2A 交换和跟踪任务,每个 Agent 内部再通过 MCP 使用数据库、搜索等外部工具。可以理解为 A2A 管 Agent 之间协作,MCP 管 Agent 怎样接入能力。

# 接下来学什么

下一篇学习 Human-in-the-loop,重点理解怎样把人工审批设计成可暂停、可恢复的系统状态,为高风险动作和不确定决策增加控制点。

# 参考资料

上次更新时间: 2026年09月10日 00:05:23