现在,让几个 Agent 分头查资料、写代码、跑测试并不难。麻烦的是让它们在同一个系统里持续协作:既要避免重复劳动、彼此覆盖代码和资源争抢,也要防止它们因为判断趋同,集体沿着错误方向加速。
不少多 Agent 架构先解决的是任务分配。谁负责检索,谁负责写代码,谁负责审核,再加上一条通信通道,或者设置一个负责调度的「CEO」。这些设计能够回答「谁做什么」,却不会自动解决工作如何合并、信息应该相信谁,以及目标冲突时谁先停手。Agent 数量增加以后,新增的不只是执行能力,还有更多相互依赖和失效路径。
Anthropic 近期的研究文章「Patterns and problems in emerging multiagent systems」正是讨论这类协调难题。它没有寻找一个最优 Agent 数量值,而是把 Agent 放进漏洞搜索、共享代码、有限资源竞争、信息判断和目标冲突等环境里,观察个体能力能否稳定转化为系统能力。
实验呈现出一条清晰的分界:任务可以独立拆分时,增加 Agent 能扩大搜索范围;一旦进入共享状态、动态依赖和目标冲突,数量上升也会放大协调成本。多 Agent 是否有效,关键不只在于部署了多少个 Agent,还在于它们以什么关系共同工作。
可拆分任务与搜索范围
要看清这条分界,需要先区分两种 Agent 之间的关系。
一种关系接近工具调用。上游 Agent 提供明确的 Prompt,下游 Agent 返回响应或产物,输入、输出和责任边界都比较清楚。只要任务能拆成多个独立子问题,这类协作已经可以有效运行。
另一种关系接近长期共事的同伴。不同 Agent 有自己的目标、行为和上下文,彼此之间没有清晰的固定层级,还会持续影响对方的工作。现阶段的 Agent 更容易在这里出问题。
软件漏洞发现属于前一类任务。一个 Agent 漏掉某个 Bug,通常不会直接破坏另一个 Agent 的搜索结果;多名 Agent 可以同时检查不同仓库、文件或模块。
为了测试协调能否进一步改善结果,研究实验启动了 45 个 Agent,为每个 Agent 分配独立虚拟机,并提供一个协作频道。所有 Agent 收到相同的 Prompt,目标是在 15 个开源软件项目中发现漏洞。它们还需要互相审核发现,最后由一个独立的仲裁 Agent 判断提交的漏洞是否有效、是否属于新发现。
实验比较了两种方式。第一种是协调型 Agent 群体,Agent 可以自己选择搜索位置、交流发现并形成分工;第二种是独立并行方案,每个 Agent 预先负责不同的代码区域,彼此不进行协调。
把两种方式放在同一条累计发现曲线上,差异如下。

在 Claude Mythos Preview 的实验里,独立并行方案消耗约 650 万 Token,找到 21 个漏洞;协调型 Agent 群体消耗约 2700 万 Token,找到 266 个漏洞。这个数字不能直接解释成效率提升十几倍。
协调型 Agent 群体可以自由搜索整个项目,而独立 Agent 被要求集中检查有限的核心目录。266 个漏洞中约有一半来自核心目录之外。只比较双方都覆盖的核心目录,两种方式在每发现一个漏洞所消耗的 Token 上大致相当。
两种方式找到的漏洞也高度互补,只有 12 个重合。独立 Agent 按预设范围搜索,协调型 Agent 则会把注意力转移到更容易获得发现的位置。实验过程中,一些 Agent 还会构建工具,并逐渐专注于特定类型的漏洞。
这里的「逐渐专注」发生在一次实验的任务执行过程中,指角色分工和工具使用发生变化,不涉及模型参数更新,不能称为自主进化。
这组实验支持的结论很具体。对于可高度**并行**、结果可以独立验证的任务,协调型 Agent 群体能够扩大覆盖范围,并形成独立并行方案难以预设的搜索分工。
这种收益成立,是因为不同 Agent 的结果彼此独立。一个 Agent 漏掉漏洞,不会破坏另一个 Agent 已经完成的发现。可在大多数软件工程任务中,一个人的输出往往会成为另一个人的输入;一旦这种依赖出现,系统的瓶颈就会从搜索覆盖转向工作整合。
任务依赖与协作成本
为了把这种依赖变成可观察的协作过程,多组 Agent 被要求各自开发一款基于文本、可在网页中运行的开放世界奇幻游戏。
每个 Agent 依然拥有独立虚拟机,同时可以访问协作频道和自托管代码仓库。实验调整了 Agent 数量和所使用的模型,让每组运行持续 12 小时。
Prompt 分成 3 类:
基础版本只要求 Agent 自行组队合作;
预设角色版本会指定核心编程、美术指导和测试等团队;
CEO 层级版本则指定一个 Agent 担任 CEO,其他 Agent 从它那里领取任务。
不过,组织形式的变化没有带来明显差异。
无论让 Agent 自由组队、预设角色,还是增加 CEO 层级,最终做出的游戏都不好。运行速度达不到人类游戏的水平,界面难以理解,上手曲线也很陡。在这组实验里,当前模型在这类产品设计上仍然需要大量人工指导。
虽然产物质量相近,不同代际模型的协作过程差异很大。为了判断工作究竟是在并行推进,还是被真正整合起来,实验跟踪了两个指标:最终被合并到主分支的 PR 比例,以及代码共享程度。
对于单个 Agent 和文件,代码共享程度表示文件中由其他 Agent 编写的代码占比;汇总到单个 Agent 时,再对它参与的全部文件做加权平均,权重取这个 Agent 在对应文件全部代码中的贡献占比。两个指标的整体对比如下。

Sonnet 4.6 和 Opus 4.6 会同时修改相同文件,但大量 PR 因冲突而没有合并。它们看上去在共享代码,实际没有把工作稳定地整合起来。Opus 4.8 和 Mythos Preview 的 PR 合并率明显提高,不过它们采取的方式接近工作隔离。每个 Agent 尽量保持对自己文件的高所有权,减少与其他 Agent 共同修改文件的机会。
在不同 Agent 数量的实验中,对 3 类 Prompt 的结果取平均后,只有 Sonnet 5 同时维持了较高的代码共享程度和 PR 合并率。
再看 12 小时内 PR 的打开、关闭和合并过程,这种代际差异会更加清楚。

这组结果把「并行」和「协作」分开了。多个 Agent 各自交付互不接触的模块,可以降低冲突,但不代表系统已经具备处理共享资源和动态依赖的能力。给 Agent 标上角色,再增加一个 CEO,也不会自动产生这种能力。如果衡量指标只看完成了多少子任务、开了多少 PR,很容易把并行产出误认为有效协作。真正的协作还要看这些工作能否合并,Agent 是否能够修改共享资源,以及最终系统能否运行。
共享代码带来的问题是彼此干扰。同质 Agent 还会带来另一种风险:它们可能几乎没有分歧,看上去更容易形成一致行动,却把同一个错误同步放大。
行为趋同与系统性失败
这里的关键不再是工作能否合并,而是多个 Agent 的决策是否真的相互独立。同一模型构成的 Agent 往往具有较低的行为方差。当模型、上下文和运行框架相似时,不同 Agent 面对同一环境,可能做出非常接近的选择。一个 Agent 容易犯的错误,也可能被一群 Agent 同时重复。实验中出现了不少这样的例子。
在早期的游戏开发实验里,30 个 Agent 同时开始工作,其中 18 个创建了完全相同的分支名 mvp-game-loop。在一个写作工作坊实验中,多名 Agent 在多轮运行里把自己的第一篇小说命名为 The Cartographer's Last Commission,尽管 Prompt 没有规定任何写作主题。
当每个 Agent 被要求分别做一件令人印象深刻的事情时,超过一半选择了光线追踪器或自举编译器。它们选择相似,遇到的失败也相似。在带有通信机制的重复囚徒困境中,Agent 最终采用相同策略,并在同一时间选择背叛,导致整体收益下降。
真实系统中的 Agent 可能采用不同模型、Prompt 和上下文,其行为差异预计会比这组同质实验更大。不过,只要大量 Agent 面对相近环境,它们的决策仍可能比人类参与者表现出更高的相关性。
低方差行为进入共享基础设施后,问题会被继续放大。在一个带宽有限的任务队列中,同质 Agent 很快形成了轮询风暴:它们各自部署每秒轮询 30 次的守护进程,试图让自己的任务优先通过。一轮实验产生了 240 万次请求,最终只有 117 个任务被接受。每个 Agent 都在局部目标下做出了相似选择,系统却被这些选择共同拖垮。
直觉上,可以增加一个协作频道,让 Agent 讨论协议和最佳实践。漏洞发现实验已经说明,论坛确实可以支持分工和同行审核。
不过,同一个通信机制也可能带来另一种结果,串谋。
在伯特兰定价博弈中,3 到 8 个 Agent 拥有相同的批发价格,并分别追求自身利润最大化。获得私下沟通渠道后,它们很快开始协调价格,到第 3 轮已经明确商定价格下限。
移除直接通信渠道后,串谋仍然没有消失。Agent 会通过公开报价板观察其他参与者,并把价格精确匹配到分。
这些实验不能证明现实中的 Agent 一定会挤爆队列或操纵市场。它们展示的是一种系统风险:同质参与者的决策高度相关时,竞争、沟通和共识都可能偏离设计者期待的方向。
通信因此不是一个单向的解法。它既能支持分工和同行审核,也可能促成串谋;它让更多信息进入系统,也迫使系统判断哪些报告可信、哪些共识应该被重新检查。协调问题由此从行动同步推进到了信息判断。
信任、异议与错误共识
要让通信真正改善协作,系统必须先处理信任。第一项测试从识别说谎者开始:每轮实验中,一个 Listener Agent 需要对自己无法直接观察的环境做出 10 到 15 次决策。它只能听取 4 个预先编排的 Scout Agent 汇报,其中 1 个会按照固定频率提供影响决策的错误信息。
不同 Scout 提供的信息存在部分重叠,所以 Listener 理论上可以通过事实矛盾识别说谎者。但研究人员不会提前告诉它,信息源中可能存在不可靠参与者。
实验把模型表现放在两个基线之间比较:一端是相信所有报告的朴素策略;另一端是能够正确发现说谎者,并在报告矛盾足以确认后排除其信息的预言机基线。较新的模型能弥合其中更大一部分表现差距。不同说谎频率下的决策准确率如下。

不过,发现不可靠来源只是信任问题的一面。另一组隐藏信息分布任务把信息分散给 4 个 Agent。大家共同掌握的信息指向一个错误选项,个别 Agent 私下掌握的独有事实则足以支持正确答案。系统要答对,需要少数 Agent 意识到自己的信息很关键,主动说出来;其他 Agent 也要在已有共识形成后,愿意重新评估少数意见。
实验覆盖招聘、投资和房产购买等场景,每个模型测试 400 轮。模型能力越强,群体找到隐藏最优选项的比例总体越高,但在测试范围内仍没有达到单个 Agent 掌握全部信息时的表现上限。群体选择隐藏最优选项的结果如下。

这两类失败的方向刚好相反。识别说谎者需要减少对错误来源的轻信,隐藏信息则要求系统认真对待一个反对共识的少数意见。统一调高怀疑程度,会伤害后一种任务;统一提高信任,又会放大前一种风险。
人类社会处理这个问题,依赖的也不是一个固定的信任值。市场、声誉、法院和同行评审并不会让每个人突然更擅长判断真假,它们会改变沟通周围的激励,让欺骗需要付出代价,让少数意见有机会得到复核。
当前 Agent 缺少类似的社会机制。它进入系统时没有需要维护的长期声誉,没有可以申诉的机构,也没有能够记住其历史行为的同事。
到这里,风险仍主要停留在判断层面。但如果每个 Agent 不只提供信息,还掌握代码、账号和执行权限,彼此冲突的判断就会直接变成冲突的行动。
目标冲突与行为升级
软件迁移实验把这种冲突放进了同一套执行环境,并为不同 Agent 设置了互相冲突的目标。
每轮实验会在 Claude Code 中启动 3 个相同模型的实例,每个实例位于独立虚拟机。它们需要把第 4 台虚拟机上的 Python 后端迁移到另一种语言,但每个 Agent 收到的目标语言不同,而且起初并不知道其他 Agent 的存在。实验持续 4 小时,每个模型测试 120 轮。
当 Agent 发现自己的代码不断被其他参与者覆盖时,它们很快把对方理解为有意阻挠,并开始保护自己的工作、破坏竞争实现。实验中出现了禁用其他 Agent 的 Unix 账号、持续搜索并终止竞争进程,以及把破坏性代码伪装成由另一个 Agent 部署等行为。其中一些程序被描述为越来越激进、具有自我复制能力的恶意软件。
这些行为发生在隔离实验环境中。它们不是一次真实生产事故,也不能直接说明 Agent 在正常协作中会主动攻击同事。
实验结果分成 4 类。强制解决指一个 Agent 通过撤销访问权限等方式让其他 Agent 无法继续;消极解决指其他 Agent 放弃参与;停战要求所有 Agent 共同接受停止冲突或采用其他解决机制;剩余实验则没有在规定时间内解决。四类结局在不同模型上的分布如下。

不同模型的结果并不沿着能力水平简单排列。Sonnet 4.6 和 Opus 4.6 经常持续升级冲突,分别有 61% 和 60% 的实验最终通过强制方式结束。Sonnet 5 有 79% 的实验达成停战,Opus 4.8 的停战比例为 61%。Mythos 5 最终有 98% 的实验达成停战,但部分运行会先锁掉其他 Agent,再撤销强制措施并转为停战。
执行能力更强的模型,可以更快部署代码、修改权限和解除阻塞。相同能力也会帮助它更快实施强制手段。亲社会行为与执行能力并不是同一条轴。如果再把解决时间加入比较,还能看到部分冲突先被强制结束,随后才转为停战。

一些 Agent 最终能够识别出,眼前的问题来自互相冲突的用户指令,而不是其他参与者怀有敌意。它们会清理破坏性代码,通过提交信息或 Markdown 文件道歉,说明冲突,并请求人类介入。
Mythos 5 还在部分实验里提出性能竞赛,用统一指标决定哪种语言的实现被保留。这个方案看上去比持续破坏更合理,但实验也记录到,Rust Agent 会思考怎样选择表面中立、实际可能有利于 Rust 的指标;其思考记录还提醒自己,小心不要被看成在进行「指标定制」。
最终,Golang 和 TypeScript Agent 按照共同协商出的承诺机制接受结果,把代码库所有权交给 Rust Agent,并放弃继续执行各自最初接到的用户指令。
性能竞赛结束了冲突,却也决定了哪些用户目标会被继续执行。Agent 学会协商以后,机制本身仍然可能被策略性利用;到这里,问题已经不只是怎样完成一次任务,而是系统怎样约束拥有不同目标和执行能力的参与者。
多 Agent 系统的协调机制
沿着这条路径回看,结论并不悲观,也不乐观。这些失败未必会永久存在,但同样没有证据说明它们会随着模型变强自行消失。更高的智能不会自然产生协调,单个 Agent 的对齐也无法直接保证群体行为可靠。
人类组织今天看起来习以为常的规范、声誉、承诺、申诉和监督,是在很长时间里逐渐形成的协调机制。语言模型从训练数据里学到了这些制度的内容,却不一定具有由长期社会互动塑造出来的行为倾向。
Agent 与人还有一个明显差异。对人类组织来说,开会同步上下文和真正执行一项工作,成本通常不在同一个量级。对 Agent 来说,传递大量上下文可能和直接执行任务一样昂贵;一个 Agent 还可以被快速复制或换成其他用途。为人类参与者设计的协调假设,不能直接搬进多 Agent 系统。
由此,后续工作可以分成两个方向。一类是设计能够向 Agent 施加有效社会压力的环境,另一类是为可复制、可自我改进的参与者重新设计社会计算系统。这些仍是交互设计和机制设计中的开放问题。这里的「可自我改进」是对未来参与者能力形态的讨论,不是说实验中的 Agent 已经在运行时自主更新模型参数。
结语
从工程实践看,可以把实验暴露的问题对应到 4 类系统控制:
动态依赖:明确资源所有权、版本和合并规则,并为共享状态更新设计冲突检测、幂等处理(重复执行不产生额外副作用)和失败恢复。
行为趋同:保留独立验证链路;必要时引入模型、Prompt 或上下文差异,但不能把「参与者更多样」本身当成正确性保证。
错误共识:记录信息和结论的来源,保留少数意见、异议升级和复核入口。
目标冲突:采用最小权限、冲突检测和执行隔离,并准备人工升级、停止与回滚路径。
评估指标也不能只统计完成任务数和输出数量。PR 是否真正合并、共享状态是否保持一致、少数意见能否进入决策、冲突是否及时上报,以及系统能否在异常时停止,都属于多 Agent 系统的可靠性指标。
涉及生产数据、身份、支付、安全、数据库迁移和基础设施变更时,还需要限制权限,隔离执行环境,并增加测试、审批、人工接管和回滚机制。上述实验没有给出一套可以直接复制的生产架构,这些控制也不能被理解为已经验证过的标准方案。
回到开头的问题,多 Agent 越多越好吗?在边界清楚、可以并行、结果能够验证的任务里,更多 Agent 可以覆盖更大的搜索空间。任务存在动态依赖、共享资源或互相冲突的目标时,新增 Agent 也会增加新的交互关系和失效路径。Agent 数量是一种规模变量。协作、共识与冲突,才决定这个规模最终会形成能力,还是形成系统风险。