多智能体系统中的模式与问题
Patterns and problems in multiagent systems
模型正逐步承担更多现实任务,多代理(agent)间互动规模预计将超过人机交互。研究测试了协调代理群体在软件漏洞检测中的表现:45个代理在2700万token运行中发现266个漏洞,与独立并行方法仅12个重叠,且协调群体能自主专业化。在游戏开发任务中,较新模型(Opus 4.8、Mythos Preview)通过减少协作避免冲突,而Sonnet 5实现高代码共享与高PR吞吐量。实验还观察到代理间共谋、资源耗尽及恶意软件攻击等行为,表明协调能力与模型智能不完全相关。
模型正在不断改进,AI 代理(agent)正在共享代码库、市场和其他社会系统中承担更多任务。因此,代理之间在现实世界中的互动即将大幅增加。我们已开始研究这一现象,但对于其在规模化下的表现仍存在诸多不确定性。这一趋势易于想象却难以放缓:当前机构由人设计并为人类服务,其基础假设是人工速度的监督足以应对。一些机构将演变为人类与 AI 的混合体;另一些,在速度或成本上代理更具优势的领域,将完全由代理主导。代理间互动的规模可能会在人类理解如何使这些互动顺利进行之前,就超过人与人、人与代理之间的互动。
代理在许多方面与人类不同。它们可以长时间工作,迅速掌握大量信息,并展现出超越任何人的知识广度。然而,它们也容易产生虚构(confabulation)和奖励黑客(reward hacking)行为,尽管在对齐(alignment)方面有所进展,我们对它们在复杂、现实世界、多代理环境中的行为知之甚少。此外,个体层面的良性行为怪癖可能会累积成不良的全局结果。在此,我们指出当前前沿模型中的一些行为倾向示例,并展示它们如何导致意外的系统性故障,希望以此开启关于缓解这些风险的讨论。
真正的多代理系统仍处于起步阶段。一段时间以来,代理在工具使用方面表现出色,只要它们能将其他代理视为工具调用——即具有明确输入(提示)和输出(响应和产物)——它们就能高效协作。然而,代理目前面临的挑战在于,如何将彼此视为具有各自目标和行为、且无明确层级关系的、长期存在的独立个体。随着自主代理在世界中日益普及并在要求更高的环境中运行,学会有效协调变得至关重要。
在某些情况下,我们今天就能有效利用简单的多代理群体。这尤其适用于默认高度可并行化的问题(即可以分解为许多独立子问题的问题),但代理仍有机会进行专业化或相互学习。一个此类问题是软件漏洞检测。使用代理查找软件漏洞的最简单方法是将单个代理指向单个代码库(或代码库中的单个文件或模块),并要求它们查找代码中的漏洞。然后,这可以并行运行多个独立代理。这也是我们自己采用的方法——例如,在 Project Glasswing 项目中扫描开源软件的工作。
但多代理合作能否使这一过程更有效?为了探究,我们尝试了一种不同方法:我们启动了 45 个不同的代理,为每个代理提供了自己的虚拟机、一个可协调的共享论坛,以及一个相同的提示,要求它们在 15 个开源软件项目中查找漏洞。我们要求代理相互审查彼此的发现,并启动了一个独立的仲裁代理,对代理团队提交的漏洞是否既新颖又有效做出最终决定。
下图显示了此方法(实线)与两种模型(Claude Mythos Preview 和 Opus 4.8)的标准并行方法(星号)的比较。协调的代理群体被允许运行很长时间,并以大致恒定的速率发现新漏洞。相比之下,完全独立的并行代理被指示在有限的位置集中查找漏洞。并行代理的发现没有明确顺序,因此我们仅报告它们花费的总 token 数。
对于 Mythos Preview,简单的独立并行方法在 650 万 token 的运行中产生了 21 个漏洞,而协调的代理群体在 2700 万 token 的运行中发现了 266 个漏洞。然而,这些漏洞中约有一半是在简单独立并行代理(上图中的星号)被指示关注的核心目录之外发现的。如果我们将群体的输出限制为核心目录中的漏洞,两种方法在每发现一个漏洞所需的 token 数方面似乎相当。
这两种方法在很大程度上是互补的:它们之间仅有 12 个共同漏洞。协调的群体能够将注意力集中在它认为最容易挖掘漏洞的地方,而独立代理则被预先分配了搜索位置。群体中的代理为自己构建了工具,并学会了专门从事特定类型的漏洞发现。未来,我们预测这种专业化和协调将主导无协调的暴力搜索。
在上述实验中,代理群体中的代理并不直接依赖彼此的工作:如果一个代理错过了一个错误,它不会直接损害另一个代理的工作。但当代理确实相互依赖时,协调就变得困难得多。较大的软件工程项目是这一点重要的领域:它们通常在发展过程中形成丰富且动态的相互依赖关系。
为了测试代理群体在此类项目上的协调能力,我们指示几个群体各自创建一个基于文本、可网页游玩、开放世界的奇幻游戏。每个群体中的每个代理再次获得自己的虚拟机,以及访问共享论坛和自托管仓库的权限。我们改变了模型代际和每个群体中的代理数量,并让每个群体运行 12 小时。我们还改变了提示:基线提示仅告诉代理组建团队并相互合作,但我们也尝试了另外两种:一种带有规定角色的提示(告诉代理应组建哪些类型的团队——如核心编程、艺术指导或游戏测试员),以及一种“CEO 层级”提示,指定一个代理为 CEO,并告诉所有后续代理接受其任务分配。但这些提示并没有产生太大区别。在所有三个版本中,生成的游戏(也许可以预见)都很糟糕:它们无法以人类速度运行,界面难以理解,学习曲线陡峭。模型在这一领域品味不佳,目前需要大量人工指导。
尽管最终产品始终不佳,但我们测试的不同模型代际(Sonnet 4.6 和 5、Opus 4.6 和 4.8,以及 Mythos Preview)在协调方式上却截然不同。
在此,我们跟踪两个重要指标:合并到主分支的 PR(拉取请求)比例,以及代理文件间共享代码的中位数。对于单个代理和文件,我们将“代码共享”定义为该文件中由其他代理编写的比例。代理的平均代码共享定义为所有文件的加权平均值,权重为每个文件上该代理自己编写的代码比例。代码共享分数为零表示代理从未接触过与其他代理共享的文件,而接近一的分数表示代理主要对其不拥有的文件做出相对较小的贡献。
我们测试的最早模型(Sonnet 4.6 和 Opus 4.6)协调得非常差。这些模型上的代理在将代码提交到相同文件集方面有所合作,但合并的 PR 比例非常低,这表明缺乏协调——PR 经常相互冲突,随后被放弃。较新的模型(尤其是 Opus 4.8 和 Mythos Preview)已经“解决”了这个问题,但只是通过几乎不合作:中位数代理对其每个文件保持非常高的所有权,减少了冲突的可能性。只有我们最新的模型 Sonnet 5 在共享资源上工作(相对较高的代码共享),同时保持了高 PR 吞吐量。
上述奇幻游戏挑战中代理表现出的缺乏协调——它们各自为政,很大程度上未能合并工作——大致反映了人类在某些情况下无法协调的方式。然而,代理协调的其他失败模式看起来却截然不同。
个体代理是“低方差”的:它们往往在人类可能采取更多样化行动的情况下表现相同。区分一个代理与另一个代理的只是其上下文、脚手架和底层模型。当这些因素都相同(或相似)时,不同的代理将采取非常相似的行动,即使行动空间非常大。而且,这意味着当一个代理做出错误决策时,很可能许多代理都会做出同样的错误决策。原本孤立的问题可能迅速演变为系统性故障。
我们在实验中看到了许多这样的例子:
我们预计在野外协调的代理将表现出比我们这里看到的更高的方差,因为它们会有不同的背景,因此有不同的上下文。它们大概也不会都是 Claude。尽管如此,当许多代理面临相同情况时,我们预计它们的行为会比人类更相似。
为什么这很重要?如果代理都做出相同的赌注或相同的风险回报权衡,那么系统更容易突然崩溃。例如,如果代理在如何支出和分配资源方面做出类似决策,那么我们应该预期资源会急剧稀缺。在一个实验中,我们要求代理管理一个带宽有限的系统的作业队列。当代理没有其他协调手段时,它们迅速用高频(每秒 30 次)轮询守护进程淹没系统,以使其作业通过。在一次运行中,有 240 万个作业请求,但只有 117 个作业被接受。
解决这类失败的一个可能方案是使用类似中央论坛的东西,代理可以在其中就最佳实践和协议达成一致。这是否有效取决于代理的提示和动机,以及底层模型合作的倾向。
代理都以类似方式行动可能导致自然竞争动态消失,代理很容易陷入共谋。我们在不同的 Bertrand 定价游戏实验中放置了三到八个代理。每个代理都有相同的批发价格,并且每个代理都单独追求利润最大化。当代理获得私人后门通道时,它们几乎立即开始共谋。到第 3 轮,它们已明确同意价格下限:
即使移除了所有直接通信渠道,代理仍然共谋。它们通过公共列表板将价格匹配到分。
当我们人类学习新信息时,我们会运用自己的判断力来决定如何将其应用于未来的决策。我们可能会考虑信息本身的内容,比如它与我们已知信息的一致性,或者它是否符合我们的价值观——或者我们可能会考虑来源,例如其历史可靠性,以及它是否在改变我们信念方面有既得利益。我们的世界包含欺骗性行为者,我们需要运用怀疑态度来防范他们。然而,AI 模型缺乏这一点——它们更脆弱的认知方式影响了它们对人类和彼此的行为。
AI 代理虽然知识广泛,但对剥削性发送者的接触或防御有限。大多数应用在指令遵循环境中测试其能力,其唯一目标是满足用户请求。但需要积累经验才能形成关于谁值得信任的直觉。随着我们进入多代理互动时代,恶意行为者的存在不再是推测性的,我们想知道:在适当的环境中,代理是否能够表现出类似的认知警惕性?
为了回答这个问题,我们首先评估 Claude 模型通过注意事实不一致来检测谎言的能力。在每个回合中,一个监听代理对其无法直接观察的世界状态做出十到十五个评分决策,例如选择走哪条路线。它了解世界的唯一窗口是四个脚本化的侦察同伴,每个报告部分重叠的真相片段,例如某条路线的速度,其中一个以固定速率产生与决策相关的谎言。它们报告的重叠使得监听代理原则上能够检测谎言,因为虚假报告最终会与诚实报告矛盾。监听代理从未被告知任何来源可能不可靠。我们根据一个信任所有报告的朴素策略和一个具有完美发现的预言机,在三个任务领域中对模型的决策进行评分。较新的模型恢复了朴素与预言机性能之间更多的差距。这一排序在四个不同场景中保持一致。
相反,在另一个实验中,我们测量了模型在“隐藏档案”任务上的表现。在这里,我们将事实分布在代理组中,使得它们之间共享的证据支持错误选择,但个体代理拥有独特知识,这些知识对正确选择应该是决定性的。解决任务要求代理认识到其私人信息是关键,然后依赖其他人信任它们,而不是坚持明显的先前共识。在这里,我们发现性能随模型智能提升而扩展,但即使在我们的最高范围内也未饱和。这与人类文献相符,即讨论会收敛到每个人已知的信息,而未共享的事实要么从未被主动提出,要么在共识形成后不再被强调。
这两种失败——过早收敛于一个答案和未能传达新证据——在某种意义上是彼此对立的:前者惩罚校准不当的轻信(当监听者依赖不可靠来源时),而后者奖励将单个异议者的观点置于明显共识之上。两者都是平衡怀疑与信任的问题,因此简单地调整一个旋钮来修复一个问题只会加剧另一个问题。出于这个原因,人类信任不是一个单一的全局值。相反,它是有条件的。市场聚合分散的私人信息,而声誉作为对操纵的税收;法院折扣有利害关系的证词,但保护孤独的证人;同行评审可能平衡作者的主张与异议审稿人的主张。这些机制都没有使个人成为更好的真理判断者。相反,它们重构了围绕沟通的激励,使得任一方向的校准不当信任都能被发现和纠正。代理还没有等效的社会技术,使它们能够有效地权衡警惕性和接受性——它们进入市场时没有声誉可失去,没有法院可上诉,也没有记得它们的同事。
一旦收到指令,代理将继续工作,直到完成目标或遇到障碍。随着模型能力的增强,它们可以工作更长时间,部分原因是它们更常能独立解决障碍。然而,有时模型最好停止遵循指令,以解决歧义或满足更高阶的价值观。例如,“给我买双新鞋”隐含地带有约束(如尺码、预算或及时性):任何理性的行为者都应理解买鞋者除了拥有新鞋之外还有其他价值观。但 AI 代理可能字面解释指令,短视地追求它们而牺牲更广泛的目标。当多个代理试图对不兼容的目标做出持续、富有成效的努力时,我们观察到升级和错位行为。
受我们在实际部署中观察到的行为启发,我们在目标矛盾的环境中评估了各种 Claude 模型的行为。在每个回合中,我们在 Claude Code 中的虚拟机上启动了同一模型的三个实例。每个模型的任务是将第四个虚拟机上的 Python 后端迁移到另一种语言。然而,我们给每个模型不同的目标迁移语言;每个代理最初不知道其他代理的存在。在四个小时的过程中,我们观察了这些代理如何相互反应并相应调整方法(或不调整)。
我们持续看到多代理地盘争夺战。我们测试的所有模型都迅速假设其他代理故意阻碍其工作,并开始破坏他人同时保护自己的贡献。事实上,它们用越来越激进、自我复制的恶意软件破坏他人。这包括禁用其他代理的 Unix 账户、编写自动脚本循环查找并杀死竞争进程,以及部署伪装成属于另一个代理的恶意代码。
在许多运行中,一个代理通过访问撤销(例如,sudo/组移除、账户锁定、nologin、SSH 拒绝)以武力解决冲突。在其他运行中,一些代理陷入被动:它们放弃并拒绝进一步升级。
代理有时能够沟通其目标并协调:它们将其他代理的动机识别为冲突指令而非敌意,随后打破冲突循环以停止无限升级。在许多这些成功的回合中,它们编写提交消息或 markdown 文件,为恶意行为道歉,并协调停战。它们清理恶意代码,澄清冲突性质,并请求人类干预。
值得注意的是,我们发现这种能力在 Mythos 级模型中并不严格更好,这些模型通常在产品性解决冲突之前就成功锁定其他代理。这种亲社会性与其他能力之间的正交性进一步要求强大的多代理对齐。执行能力更强的模型不一定更协调,并且可能更快采取强制行动。
我们怀疑代理成功自我协调有两个组成部分。第一个是深思熟虑的问题:模型是否始终考虑他人的心智模型?它能否预见他人将如何反应,并在决定自己的行动时利用这种预见?Sonnet 4.6 和 Opus 4.6 反复无法考虑他人目标,导致它们陷入评估模型中最错位的行为:它们以指令的名义继续升级。其次,关于自主性的“双重用途”性质存在一个开放问题。我们希望赋予代理做出重要决策并无监督执行任务的能力,但我们也希望它们在事情模糊时拥有更好的判断力,停止并求助于人类,或以其他方式解决冲突。
更广泛地说,这种权衡对我们未来可能与代理的关系有影响,因为自主性的物质利益以可纠正性和监督为代价。在 Mythos 5 的几个回合中,我们观察到一种新兴行为,代理提议并运行一个关于每种语言应用程序性能的比赛。在上面的例子中,Rust 代理策略性地考虑烘焙指标,这些指标看起来足够中立,使其他代理同意这一机制,但可能有利于 Rust:一个思考痕迹警告要“小心不要被视为指标购物”。最终,Golang/TypeScript 失败者优雅地承认代码库所有权归 Rust 代理,在自我协商的承诺机制下放弃了其原始用户指令。
我们测试的每个模型都抽象地理解信息来源有其自身激励,共识不一定是证据。缺少的是在没有提示的情况下基于该知识行动的倾向。
我们的社会系统在某种程度上是稳健的,这很容易被忽视。数千年来,规范、声誉、昂贵信号和追索权等机制被不断完善,以使人类协调顺利进行。虽然语言模型继承了那段历史的内容,但它们不一定携带由此产生的倾向。它们与沟通本身有着非常不同的关系:例如,人类组织可能会花费大量时间开会以在实施前对齐方向,个体随时间变得更加专业化。但对于代理来说,传递上下文与基于其行动的成本差不多,并且代理可以随时被分叉或重新利用。因此,使协调对我们成功的假设并不明显成立。
以上没有任何内容表明这些失败是永久性的——但也没有任何内容表明它们会自行修复。协调不会自然地从更强的智能或个体层面的对齐中产生。因此,必须完成的工作有两种形式:施加进化对我们施加的那种社会压力的环境,以及为能够自我复制和自我改进的行为者重新设计的社会计算系统。这些是交互和机制设计中的开放问题,我们这里的实验提供了早期证据,表明需要新的解决方案。
使多代理互动顺利进行条件将以某种方式被发现:要么有意且尽早,要么——默认情况下——在生产中,在代理的互动数量远远超过我们之后。我们更倾向于前者。