多 Agent 故障模式与单 Agent 判断

Writer 与 Reviewer 来回修改很多轮,结果却没有明显改善,这就是多 Agent 常见的成本。下面逐个检查反复讨论、信息丢失和责任不清的问题,也讨论什么时候退回单 Agent 更合适。

1. 常见故障

循环争论

Reviewer 和 Writer 没有明确 rubric 与最大轮数,反复交换意见。解决:固定验收项、差异化上下文、返工预算和终止规则。

任务漂移

子 Agent 将“研究一个模块”扩展成重构整个项目。解决:objective、write scope、allowed tools、output schema 和 change budget。

上下文膨胀

每个 Agent 都继承全量历史,再把完整输出广播。解决:引用式共享、局部上下文、结构化摘要和对象存储。

事实被投票取代

多个 Agent 说法一致不代表正确。事实结论要依赖 Evidence,而不是多数票。

写冲突

并发修改同一文件或状态。解决:资源所有权、worktree/分支、乐观锁、合并验证。

权限放大

子 Agent 获得父 Agent 全部权限。解决:最小委派 token、工具白名单、资源 scope 和过期时间。

2. 单 Agent 基线

先用单 Agent 跑固定任务集,记录:

  • 成功率;
  • 平均步骤;
  • token/成本;
  • 延迟;
  • 人工干预;
  • 错误分类;
  • trace 可读性。

再引入多 Agent,对比是否真正改善关键指标。若成功率相同但成本与故障点显著增加,应保留单 Agent。

3. 拆分信号

适合拆分:

  • 子任务可独立验证;
  • 并行能显著缩短时延;
  • 需要完全不同工具或上下文;
  • 独立 reviewer 能捕获可量化缺陷;
  • 权限隔离有实际价值。

不适合拆分:

  • 每一步强依赖上一步微小细节;
  • 任务本身短;
  • 没有可靠合并器;
  • 产物无法结构化比较;
  • 只是希望“多想几遍”。

4. 评测设计

做 A/B:

Text
A: single agent + same tools + same total budget B: supervisor + workers + reviewer + same total budget

控制模型、工具和总预算,比较 pass@1、成本、延迟、故障恢复、引用正确性和用户评分,避免多 Agent 因额外 token 获得不公平优势。

做一次公平的对照,再决定拆不拆

拿同一批任务,先让一个 Agent 完成,再让分工版本完成。两边使用相同工具、相同模型与相同总预算,并分别记录任务是否完成、花费和等待时间。不要拿单 Agent 的一次调用与多 Agent 的十次尝试直接比较。

还要加入一个故意冲突的任务:两个 Worker 都提出修改同一个字段。检查最终由谁决定、依据是什么、是否保留被否定的假设。多个回答一致,只是意见一致;真正的事实依据仍应回到源码或实验。

LangGraph 把编排与动态决策作为不同控制方式,Deep Agents 则提供具体的子任务实现。它们能帮助搭出对照实验,但没有替你的任务证明“多 Agent 一定更好”。

本节的核验依据

2026-10-25 查阅。下面的链接支持本节的机制说明;练习场景和选型建议是本教程的教学设计。