多 Agent 方案为什么总是看起来很强,落地却很难
补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-07-24 09:10。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。
多 Agent 方案之所以特别容易让人兴奋,是因为它在演示里几乎总是成立:
- 一个负责规划
- 一个负责检索
- 一个负责执行
- 一个负责复核
界面一铺开,消息一串起来,整个系统会显得非常聪明,也很有“组织感”。但真正往生产环境里放,你很快就会发现它比单 Agent 或工作流系统更难稳住。
我后来总结下来,根本原因不是“多 Agent 不行”,而是很多团队把它当成能力叠加问题,实际上它首先是一个协作成本问题。
为什么它在 demo 里总显得特别强
因为 demo 通常有三个天然优势:
1. 任务边界被人为压缩了
演示里的任务一般都很干净,例如“围绕一个主题查资料并写一篇总结”。
输入、工具、时长、目标都被提前限制过。
2. 失败不会真的外溢
即使某个 Agent 理解错了、规划偏了、重复调用了工具,最多是 demo 不完美,不会真的影响线上状态。
3. “分工”本身就很有戏剧性
人天然会觉得“多个角色协作”比“一个流程按步骤执行”更高级。
这其实是一种展示优势,不是工程优势。
落地为什么马上变难
一旦进生产,多 Agent 方案最先暴露出来的不是模型能力,而是这几类成本:
1. 任务拆分不稳定
“先规划、再执行、再审查”听起来很合理,但现实任务经常没有那么整齐。
如果子任务边界模糊:
- 规划 Agent 会拆得忽大忽小
- 执行 Agent 会拿到半成品目标
- 审查 Agent 也很难判断到底该审什么
最后你看起来有 4 个 Agent,实际上只是把一个模糊问题复制成了 4 份模糊。
2. 共享上下文很容易漂
多 Agent 最大的隐藏成本不是 token,而是上下文一致性。
谁拿到的是最新计划? 谁知道上一步失败过一次? 谁知道某个工具结果已经过期?
如果没有强约束,Agent 之间很快就会形成各自版本的“事实”,然后互相在错误前提上继续推理。
3. 重试和幂等会一下子变复杂
单 Agent 或固定工作流出错,你通常只需要重试一个节点。
多 Agent 出错时,问题就变成:
- 是重跑当前 Agent
- 还是回到规划阶段
- 还是只重做某个工具调用
- 会不会重复执行副作用操作
只要这里没有很强的任务状态设计,线上就会开始出现重复写入、重复发通知、重复发布。
4. 评测会突然很难做
单步系统通常还能问“结果对不对”;
多 Agent 系统经常会变成“中间看起来都挺合理,但整体还是没做好”。
这时你很难回答:
- 是规划错了
- 是某个 Agent 拿错上下文了
- 是执行策略不稳定
- 还是最终裁决规则有问题
评测一旦没法落到节点级,系统就很难持续迭代。
我踩过的一个典型坑
有一次我们试着把内容处理链路拆成四个 Agent:
- 选题分析
- 资料检索
- 草稿生成
- 审核修订
纸面上非常漂亮,但真正跑起来以后问题一堆:
- 检索 Agent 和写作 Agent 对“这篇文章到底要写给谁看”理解不一致
- 审核 Agent 经常重复挑已经在上一步修过的问题
- 任务一旦超时,恢复点完全不清楚
- 整条链路的日志很多,但真正可复盘的信息很少
最后我们反而把系统收回成“单调度器 + 明确节点”的结构,稳定性明显高了一截。
我现在更推荐什么结构
大多数团队真正需要的不是“多个会聊天的 Agent”,而是:
- 一个负责总控的调度器
- 一组输入输出明确的工具节点
- 必要时少量专用子代理
更像下面这种:
{
"orchestrator": "content_pipeline",
"steps": [
"collect_context",
"generate_draft",
"run_checks",
"human_review",
"publish"
],
"retryPolicy": {
"generate_draft": "retryable",
"publish": "idempotent-only"
}
}
这个结构不花哨,但好处非常现实:
- 状态边界清楚
- 每一步都能观测
- 失败后知道从哪恢复
- 副作用节点容易做幂等
什么情况下我才会认真上多 Agent
现在只有在下面几个条件同时满足时,我才会考虑多 Agent:
- 子任务可以独立验证,不是纯靠主观感觉
- 子任务之间有清楚的输入输出接口
- 某些分支确实可以并行,而且并行后收益明显
- 失败后能在节点级恢复,而不是整条链重来
如果这四条做不到,多 Agent 往往只是把复杂度提早引进来。
多 Agent 最容易被忽略的一条现实原则
角色分工不等于系统分工。
“研究员 Agent、程序员 Agent、审稿 Agent”这种命名很容易让人产生组织幻觉,好像系统天然更专业了。
但工程上真正重要的是:
- 数据怎么传
- 状态怎么记
- 失败怎么退
- 结果怎么验
这些问题如果没有被设计好,角色再多,也只是更多对话,不是更强系统。
总结
多 Agent 方案为什么总是看起来很强,落地却很难?因为它的难点从来不在“多几个模型角色”,而在“有没有能力承受多节点协作带来的状态、恢复、幂等和评测成本”。
演示里最迷人的,往往正是生产里最贵的。对大多数团队来说,先把单调度器和清晰节点做稳,比提早迷恋多 Agent 更接近真实收益。
