微软 Agensh 无中心编排扩到 1024 智能体,pandoc 通过率升至 55%

Agensh: Scaling Organizational Intelligence to 1,024 Agents

Zhihao Zhan, Ting Song, Li Dong, Shaohan Huang, Jianxun Lian, Yan Xia, Furu Wei

cs.CL, cs.MA

2026-09-23

微软 Agensh 去掉中心编排,工人自行认领子任务并异步合并。最难五题上 128 人把平均通过率从 19.3% 提到 28.8%,pandoc 扩到 1024 人达到 55.1%。

这篇在解决什么

现在的多智能体框架几乎都是编排器–工人结构:一个主智能体拆任务、派活、收回结果。Claude Code 的 agent teams、Codex 的 sub-agent、Copilot fleet、Kimi Agent Swarm 都走这条路。编排器自己要规划、要管人、要把贡献拼回去,人一多它先撑不住。复杂软件工程又常有硬时限,单智能体一条动作流、一个上下文窗口,六小时往往写不完一个大仓库。

微软亚洲研究院把编排器拿掉。所有工人跑同一套循环、拿同一份提示(只差一个 worker ID),靠共享工作区、消息通道和一块共享黑板自己认领、自己合并。问题变成:人数能不能当成新的缩放轴,把通过率拉上去,把到达同一分数的时间压下来。

方法

每个工人异步重复五步:

基础设施三件套。共享工作区用 Gitea 管 Git:工人在私有分支上改,往 main 合,冲突自己解决。消息通道用 Mattermost:任务频道发公告,私信插到当前回合里,用来拆所有权冲突。共享上下文学 DeLM 的思路,条目类型固定成 OBSERVED、FACT、FAIL、CLAIM、PATCHSUMMARY,近期记忆之外提供 grep 搜全历史。FAIL 被设计成最高价值条目,用来挡住同伴把预算花在已经证伪的路上。

Agensh 是套在单智能体 harness 外面的组织层,这篇实验底层用 Copilot。合作循环写在提示词里,不写死在运行时,所以可以换 Claude Code 或其他适配器。事件驱动:Gitea 和 Mattermost 的活动进队列,空闲 10 分钟会催一脚。1024 人实验拆到 16 个节点、每节点 64 人。为减少抢同一块代码,启动是错开的:第一小时每 30 秒放一个,之后每 3 秒一个。结束前 45 分钟和 5 分钟会发两条停新功能、清 PR 的提醒。

结果

评测落在 ProgramBench 最难的五个从零复现任务上:FFmpeg、gromacs、pandoc、PHP-src、ctags。断网、给 6 小时、只能跑参考二进制观察行为,不能反编译。模型统一 GPT-5.6-sol(high reasoning)。仓库体量从 pandoc 的 2767 文件、10.4 万行,到 PHP-src 的 2.6 万文件、281 万行。

规模五题平均最终通过率pandoc 最终通过率
1 人19.31%33.89%
8 人20.68%未单列
32 人26.52%未单列
128 人28.78%50.94%
1024 人未测五题平均55.06%

1 到 128 人相对提升约 49%,绝对多 9.47 个百分点。速度上,pandoc 要过 30% 通过率:128 人 30 分钟,32 人 60 分钟,8 人 90 分钟,单人在前两小时一直没过这条线。

轨迹里能看到组织形态随规模变。8 人会谈接口、各写一块,撞 CLAIM 就改范围。32 人开始多人审 PR,有人拿出反例就撤回批准。128 人按经验选审稿人,pandoc 上还谈出一套「作者测完发 commit hash、同伴验证再合」的流程,失败后又改成把更新、测试、合并整段交给同伴。1024 人出现多个 integrator,作者会并行问几个人、认第一个有效回复、取消其余请求;同一技术方向的人还能在同伴失败后接手。

为什么重要

给「堆更多智能体」提供了一条不靠更强编排器的路径。对有硬时限的工程任务,人多主要买的是到达同一分数的时间,以及最终分的缓慢抬升。代码已开源。合作循环只靠提示词,理论上能接到现有 coding agent 上。

不要把 55% 读成「1024 人能重写出 pandoc」。断网从零复现、隐藏测试,55% 仍有将近一半测试过不了。128 人到 1024 人只再涨 4.12 个百分点,规模报酬已经明显变平。

局限与存疑

论文没有单独写 Limitations。1024 人只跑了 pandoc,没有五题平均。没有拿同等人数的编排器–工人结构做对照,所以「去掉编排器才能扩」还是推断,不是实验结论。

启动错开、收尾两条全局提醒、空闲催促,都是外部注入的协调。单人基线专门加了「不要被原计划框住、把 6 小时用满」的 stop hook,因为单智能体实际上很难跑满 6 小时。这些选择让「人数」和「额外的运行时脚手架」缠在一起。

成本没报。1024 个 GPT-5.6-sol high、每条上下文上限 27.2 万输入 / 12.8 万输出、跑 6 小时,账单会非常大。组织行为是读轨迹的定性观察,没有统计 integrator 角色出现的频率。ProgramBench 这种可跑测试、可用 diff 合并的复现任务,共享 Git 特别合适;换到不能用 diff 合并的任务,这套基础设施还能否撑住,文中没有验证。

术语

原文与代码

社区讨论

相关论文

全部论文解读