CAID:多Agent异步协作的正确打开方式——+25.6% PaperBench背后的工程细节
CAID:多Agent异步协作的正确打开方式
并发编辑互相干扰、依赖关系同步困难、部分进度无法合并——Geng和Neubig发现,人类工程师早就解决了这个问题,用的正是Git本身。
问题:多Agent协作比想象中难得多
让多个Agent同时工作听起来很美:一个人做前端,一个人做后端,一个人写测试,并行推进。但实践中遇到了三类根本性困难:
- 并发编辑冲突:多个Agent同时修改同一个文件,后写的覆盖先写的,或者产生无法合并的冲突
- 依赖同步:A Agent的工作依赖B Agent的输出,但两者进度不可预期
- 部分进度整合:最后要把多个Agent的产出合并成一个 coherent 的解决方案,这比想象中要难得多
这正是人类工程师几十年来一直在解决的问题。Geng和Neubig(CMU/Mila)的思路是:不要重新发明轮子,把人类协作基础设施拿过来用。
CAID的核心:三个SWE原生机制
CAID = Centralized Asynchronous Isolated Delegation,由三个核心原语构成:
原语一:集中式任务委托(Centralized Task Delegation)
一个中心管理器(Manager)负责任务分解和调度。它做两件事:
- 构建依赖感知的任务计划:分析任务图谱,弄清楚谁依赖谁
- 分发任务给Worker:Worker是独立运行的Agent,各自领取子任务
Manager自己也是一个Agent,可以是LLM驱动的规划器。关键是所有任务的分配和依赖关系由Manager显式维护,而不是让Agent们自己去协调。
原语二:异步执行(Asynchronous Execution)
每个Worker在独立隔离的工作空间中运行,互相不干扰。这解决了并发编辑问题——不同Agent在不同目录里工作,根本不会冲突。
关键工程问题:工作空间如何创建和清理?
CAID使用了git worktree:每个子任务分配一个独立的worktree分支,工作空间之间完全隔离,又共享同一个仓库的历史和主干代码。子任务完成后,git merge把结果合并回主干。
原语三:测试驱动的整合验证
这步是CAID区别于”简单并行”的核心:每个子任务完成后,不是直接合并,而是通过测试来验证输出的正确性。
Manager在分发任务时就知道每个子任务的验收标准(来自SWE-bench的test case)。Worker完成后,先运行测试,通过才允许merge,有问题就打回重做。
实验结果
在两个benchmark上验证:
| Benchmark | 提升幅度 |
|---|---|
| PaperBench(论文复现) | +25.6% 绝对提升 |
| Commit0(Python库开发) | +14.7% 绝对提升 |
对比基线是单Agent方案(没有多Agent协作)。
为什么branch-and-merge是正确答案
研究者做了系统性消融实验,发现了一个关键洞察:branch-and-merge是multi-agent协作的天然中心协调机制。
git worktree + git commit + git merge 组合提供了:
- 隔离:每个Agent工作在自己的分支上,不互相干扰
- 可审计:每个commit对应一个Agent的完整工作历史
- 可回滚:某个Agent的输出有问题,直接revert它的分支
- 可合并:依赖关系通过merge自动处理
- 测试门禁:merge前必须通过测试,保证集成的正确性
人类软件工程几十年来用同一套工具解决协作问题,Agent同样适用——这不意外,因为问题本质是一样的:多个并行工作者如何正确地贡献到同一个代码库。
对从业者的直接启发
如果你在搭建多Agent系统
- 不要让Agent共享同一个工作目录:并发写入同一文件是灾难的源头
- 用版本控制系统做协调:git worktree或者类似机制是工程上正确的解法,而不是什么复杂的Agent间通信协议
- 测试是整合的门禁:没有测试验证的merge,是在积累技术债务
- Manager的角色不可省略:完全去中心化的Agent协作目前还不work,需要一个Planner来维护全局视图
为什么不直接用CrewAI/Mastra等框架
这些框架提供了抽象,但它们的协调机制往往是”消息传递”或”共享状态”——这些在工程上不如版本控制可靠。CAID的核心洞察是:协作基础设施已经存在,用它,而不是重新发明。
限制和未解决问题
论文坦诚地指出了几个未解决的问题:
- Manager本身成为瓶颈:Manager如果规划出错,整个任务都会跑偏
- 依赖图的构建本身需要理解任务:这往往是最难的部分
- 测试覆盖决定整合质量:如果测试本身有bug,merge进去的也是bug
这些问题指向一个更大的方向:多Agent协作的质量上限,由Planner的能力和测试的质量共同决定。
论文:arXiv 2603.21489 — Geng & Neubig, CMU/Mila, 2026
💬 评论
💡 使用 GitHub 账号登录 即可参与讨论