当一个 Agent 做不好时,最直觉的反应是再加一个 Agent。但在多数情况下,问题在工具、状态或完成条件,不在“智能体数量”。

先判断是否真的需要并行

如果子任务之间没有依赖,可以同时做,多 Agent 才有明显收益。例如:分别检查数学题、语文题、英语题,再汇总。反过来,如果后一步必须依赖前一步结果,拆成多个 Agent 往往只是增加通信成本。

并行独立子任务
审查独立判断
分工不同工具集
串行通常单 Agent 足够

三种合理的协作模式

1. 并行执行 + 汇总

拆成互不依赖的检查任务,各自返回结构化结果,由一个汇总器合并。关键不是“讨论”,而是统一的结果 schema。

2. 生成 + 独立审查

一个 Agent 生成,另一个只负责按规则审查。审查者不应看到生成者的完整推理,只看输入、输出和可验证证据,减少同源错误。

3. 主 Agent + 专用子 Agent

主 Agent 负责计划和收敛,子 Agent 只处理边界清晰的工具调用。子 Agent 不应该拥有比主 Agent 更大的权限。

通信比“角色”重要

多 Agent 系统失败,常常不是模型不聪明,而是消息没有结构。每个子任务至少应该有:输入、允许的工具、完成条件、超时、返回格式。

{
  "task": "review_math_questions",
  "input": {"questions": [...]},
  "allowed_tools": ["calculate", "lookup_curriculum"],
  "must_return": {"verdict": "pass|fail", "issues": []},
  "timeout_s": 30,
  "max_steps": 6
}

没有这些边界,多个 Agent 只会互相生成更多自然语言,最后仍要人来收拾。

成本与可观测性

每增加一个 Agent,就增加一次模型调用、一次上下文传输和一次失败点。上线前至少问:

我的默认选择

先用一个 Agent + 清晰工具 + 可恢复状态。只有当任务可以真正并行,或需要独立审查时,才拆成多个 Agent。

多 Agent 不是成熟度标志。一个能稳定完成任务的单 Agent,比五个互相等待、重复劳动的角色更有价值。

下一篇:一个最小 Agent 的可运行骨架 →05 / IMPLEMENTATION