Agent Basic / 08

单 Agent 和多 Agent 的边界

多 Agent 是另一个很容易被过度包装的话题。

很多展示会把系统拆成:

  • 研究员 Agent
  • 分析师 Agent
  • 执行 Agent
  • 审核 Agent
  • 管理者 Agent

看起来非常高级。

但在真实工程里,一个更关键的问题是:

这些角色拆分到底是系统需要,还是只是为了演示效果。

先说结论

大多数项目的第一版,应该优先从单 Agent 做起。

原因很简单:

  • 成本更低
  • 状态更集中
  • 调试更容易
  • 行为更容易解释

多 Agent 真正有价值的前提,不是“角色名能不能起得漂亮”,而是“任务是否真的存在明确的职责分离”。

单 Agent 什么时候更合适

如果一个任务满足下面这些条件,单 Agent 通常更合适:

  • 目标比较单一
  • 状态可以集中管理
  • 工具集不算特别复杂
  • 不需要多个独立视角长期博弈
  • 系统首先追求稳定而不是花哨

例如:

  • 风险初筛
  • 文档问答
  • 单任务研究分析
  • 工单分类和处理

这类任务往往一个 Agent 加上合适的工具和状态管理就能做好。

多 Agent 真正有意义的场景

多 Agent 更适合下面几类问题:

1. 职责确实不同

例如一个角色负责信息收集,另一个角色负责审查和裁决。
它们的输入、输出、关注点真的不同。

2. 上下文压力太大

不同子任务需要不同上下文,硬塞到一个 Agent 里会变得又长又乱。

3. 任务可以并行

例如多个独立方向可以同时搜集信息,再汇总到一个中心节点。

4. 需要明确对抗或复核机制

例如一个 Agent 负责生成方案,另一个负责找漏洞,第三个负责最终裁决。

这时多 Agent 才有真正结构价值。

多 Agent 最容易被低估的成本

很多人只看到了“角色分工”,没看到系统复杂度会同步上升。

一旦进入多 Agent,你马上就要处理:

  • Agent 之间怎么通信
  • 谁维护全局状态
  • 谁拥有最终决策权
  • 冲突结论怎么解决
  • 多轮协作何时停止
  • 成本和延迟怎么控制

也就是说,多 Agent 不是“把单 Agent 复制几份”这么简单。

一个常见误区:把 Prompt 分角色,就以为自己做了多 Agent

例如:

  • 同一个模型
  • 同一个上下文
  • 同一个执行循环
  • 只是换了几个 system prompt 名字

这更像是“多角色提示词”,不一定真的构成有意义的多 Agent 系统。

真正值得拆成多 Agent 的系统,通常会有更清晰的:

  • 角色边界
  • 状态边界
  • 输入输出边界
  • 协作协议

一个务实判断标准

在决定是否上多 Agent 前,先问自己这几个问题:

  1. 单 Agent 真的做不好,还是我只是觉得多 Agent 更高级
  2. 各角色之间是否有明确且稳定的职责边界
  3. 把它们拆开后,系统复杂度增加是否值得
  4. 是否真的需要并行、复核或对抗式协作

如果这些问题答不清楚,就先别拆。

一个更推荐的演进路径

比起一开始就上多 Agent,更推荐这样做:

  1. 先做一个状态清晰的单 Agent
  2. 找出真正的瓶颈
  3. 只在必要处拆出子 Agent 或子模块
  4. 让多 Agent 服务问题,而不是服务演示效果

这样做通常更稳,也更容易长期维护。

小结

多 Agent 不是升级版皮肤,也不是默认更先进。

你可以先记住一句很实用的话:

如果单 Agent 还没做稳,多 Agent 大概率只会把问题复制并放大。

先把单 Agent 做扎实,再决定哪些地方值得拆分,通常是更成熟的工程路径。

接下来你可以进入:

因为当你真正开始关心状态、节点、分支和协作时,才会需要更强的系统编排能力。