为什么多个 AI 一起写代码总会烂尾?传话失真与隐式决策困境
美好的愿景 vs 残酷的现实
多 Agent 协同编程的蓝图听起来极具诱惑力:
- 将一份庞大的用户需求拆分成若干子任务;
- 启动一个主管 Agent;
- 由主管同时分发任务:一个 Agent 去写数据库迁移,一个写后端 REST 路由,另一个写前端界面;
- 开发者只需喝杯咖啡,三个自主进程并行提交,几分钟就能交付一套全栈特性。
如果你真正在哪怕稍微有点规模的实际代码库中实操过,你一定清楚最终的下场:数据库迁移里的字段和 ORM 模型对不上;后端接口返回的是 snake_case,前端却死死按 camelCase 解析;而 Git 在共享的路由注册与依赖文件上直接爆出了十几个冲突,整个工作树彻底卡死。
多 Agent 蜂群协同写代码的失败,根本不是模型“智商不够”,而是撞上了两个无法逾越的系统动力学死穴:传话游戏(The Telephone Game) 与 隐式架构决策漂移(Implicit Architectural Drift)。
1. 传话游戏:逐级抽象导致的信息大滑坡
大家小时候都玩过传话游戏:一句话悄悄传过 5 个人的耳朵,到了最后一个人嘴里,往往变成了完全荒诞的另一句话。
在多 Agent 协同架构中,这种信息失真会以极其机械的方式必然发生,因为分发任务必然伴随序列化与有损抽象:
[人类原始意图:边界防御、性能瓶颈、历史遗留妥协、未成文惯例]
│
▼ (Prompt 序列化有损压缩)
[主管 Agent]
│
▼ (拆解任务,生成摘要任务便签)
[执行子 Agent]
当主管 Agent 向子 Agent 分派任务时,它无法把自己的全部工作记忆(Context)整体灌过去,而只能写出一张简短的“任务便签”。
此时子 Agent 面临着极度不对称的信息黑盒:
- 它只知道便签上写的那几句冷冰冰的字面指令;
- 它完全不知道人类在几轮前反复强调过的深层业务痛点;
- 它不理解为什么主管在前几轮调试中坚决否决了另外三种技术方案。
子 Agent 确实极其忠诚且完美地完成了便签上的字面要求,但把它放回全局系统中,却成了一个格格不入的异类。
2. 隐式架构决策漂移:Flappy Bird 困局
Cognition(Devin 开发团队)曾在 2025 年的一场技术讲座中举过一个绝妙的例子:用两个 Agent 协同开发一款类似《Flappy Bird》(像素鸟)的小游戏。
主管 Agent 将分工划分得极其干净利落:
- Agent A:负责背景画面、障碍物水管与滚动视角渲染;
- Agent B:负责玩家操控的小鸟、飞行物理引擎与碰撞检测逻辑。
两个 Agent 都领到了清晰的便签,开始全速并行敲代码。
最终拼装代码时,荒诞的一幕发生了:
- Agent A 自行选用了类似超级马里奥的 16-bit 像素复古瓦片风;
- Agent B 则在 HTML5 Canvas 上用三次贝塞尔曲线画出了一只极简、高保真的矢量扁平小鸟。
两边各自都没有犯错,两边的单元测试全部顺利通过。但因为编写每一行代码都在暗中包含成百上千个“未显式声明的微小决策”——命名规范、视觉风格、错误处理语义、异步约定——两个没有进行锁步同步的 Agent,必然会朝着完全相反的架构方向渐行渐远。
3. 协同开销彻底吞噬吞吐量
推崇多 Agent 的最常见理由是“并行”:同时开 10 个 Agent,吞吐量理论上应该翻 10 倍。
但在软件开发领域,这一假设直接违背了系统理论的基本规律(阿姆达尔定律在可变状态上的体现):
实际吞吐收益 = 并行执行速度 - (协同沟通损耗 + Git 分支合并开销)
当 5 个 Agent 在同一个代码库里自由穿梭时:
- 文件并发写争抢:多个 Agent 频繁修改同一个依赖配置文件、全局类型中心与路由字典。
- 状态无效化:Agent A 重构了接口,而 Agent B 还在基于旧接口痛苦地生成实现类。
- 死循环合并:为了消除三方合并冲突,自主 Agent 经常会简单粗暴地抹掉同伴的代码,甚至凭空捏造未导出的变量名,只为了强行换取一个
exit 0的假象。
正如 Factory 工程师 Luke Veenhuis 的一针见血的总结:“协同开销最终吞掉了所有速度收益,顺便把你的 Token 烧了个精光。”
破局:多 Agent 真正适用的三大场景
这是否意味着多 Agent 在软件工程中毫无用处?完全不是。关键在于确立核心铁律:绝对不能让多个 Agent 对同一个代码状态拥有并发写权限。
多 Agent 协同在满足以下三个条件时,才能真正发挥百倍威力:
- 分块且只读(Sharded & Read-Only):如批量抓取第三方文档、多源资料深度调研、检索开源代码依赖,这些操作完全没有写入冲突。
- 明确的数据管道契约:子 Agent 仅负责生成独立素材(如生成一张 SVG 架构图,或调度本地 ComfyUI 出图),结果落地为静态文件并只返回文件路径句柄。
- 独立对抗式守门:由拥有空白纯净记忆的高阶推理大模型对单写主控生成的 Git Diff 进行对抗式挑刺,完全不参与编写泥潭。
写操作永远单线程,只读与外部素材放手并行——这才是规避蜂群混乱、稳定交付高质量软件的唯一工程正道。关于这套架构的完整生产实操落地与压测基准,请参考我深入拆解的长文:代码只让一个 AI 改:我是如何避开多 Agent 协同踩坑的「单写多审」架构。
想为你的业务落地高可靠 AI 自动化方案?
我为企业与初创团队设计、搭建并运维自主 AI Agent 基础设施、内部高效工具链与高确定性自动化系统:
- WhatsApp:+60 12-797 2969
- Email:[email protected]
- 网站:hoelee.com