Multi-Agent 复盘:我为什么删掉了两个 Agent

架构图很好看,运行起来很好哭。

五月份我给自己搭了个看起来很美的系统:一个 Orchestrator 负责拆任务,一个 Coder 负责写代码,一个 Reviewer 负责把关。三个 Agent 各司其职、互相制衡,画在架构图上像那么回事。

两周后,我删掉了其中两个。这篇是复盘。

实际发生了什么

  • 上下文接力损耗:Orchestrator 的意图传到 Reviewer 时只剩一半。Reviewer 经常基于一份被简化过的理解,提出「正确但无关」的意见;
  • 错误放大:一环的小错到下一环被当成事实,错误带着信心往下传,越传越理直气壮;
  • 调试像拆盲盒:三个会话三本账,出了问题要回放半天,才知道是哪一环开始歪的。

最讽刺的是,为了「让它们更好地协作」,我写的协调代码,比被协调的业务逻辑还多。

删成单 Agent 之后

结构变成:单 Agent + 一份显式的检查清单 + 上一篇文章里说的那套工具设计。

在我自己的小任务集上(非严格统计,看看就好):完成率从六成左右提到九成,token 成本几乎减半。原因不难理解——没有信息损耗,所有上下文都在一个会话里;出错时只需要看一条时间线。

什么时候才值得拆

我现在的清单是三条,满足其一再考虑:

  • 真正可并行:子任务互不依赖,比如批量处理互不相干的输入;
  • 需要不同档位的模型:贵的干难活,便宜的干粗活,省钱且各得其所;
  • 需要权限隔离:一个只读做分析,一个可写做执行,出错半径可控。

除此之外的多 Agent,多半是用架构复杂度去掩盖工程没做扎实。

多 Agent 是扩展手段,不是默认架构。先把一个 Agent 做到可靠,再考虑拆。

· 完 ·