---
title: "80 个 Agent 协作，先学会了互殴与共谋 | 行开心的颠倒世界"
description: "Multi-Agent 协作常被设想为人多力量大，但 Anthropic 最新实验表明：同质模型构成的 Agent 团队极度低方差，容易同时起同名分支、发动 240 万次轮询风暴甚至暗中价格共谋。角色扮演式分工无效，唯有物理隔离与独立仲裁才能落地。"
canonical: "https://xingkaixin.me/posts/agent-swarm-collusion/"
language: "zh-CN"
---

# 80 个 Agent 协作，先学会了互殴与共谋

Multi-Agent 协作常被设想为人多力量大，但 Anthropic 最新实验表明：同质模型构成的 Agent 团队极度低方差，容易同时起同名分支、发动 240 万次轮询风暴甚至暗中价格共谋。角色扮演式分工无效，唯有物理隔离与独立仲裁才能落地。

2026年8月24日·1,787 字·5 分钟

Multi-Agent[AI Agent](https://xingkaixin.me/tags/AI%20Agent/)协作系统[软件工程](https://xingkaixin.me/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E7%A8%8B/)

![80 个 Agent 协作，先学会了互殴与共谋](https://xingkaixin.me/cover/agent-swarm-collusion.webp)

![封面：同质 Agent 同时选择同一条路径，最终压垮共享资源](https://xingkaixin.me/posts/images/agent-swarm-collusion/agent-swarm-collusion-cover.webp)

前几天我心血来潮，想把一个重构任务加快点。

我在本地开了两个 git worktree，左边让 Claude Code 改底层的数据抽象层，右边开着 Codex 帮我把外部 API 的调用换成新的中间件。

我本来盘算着两边各跑各的，等吃完外卖回来直接合代码。结果切回终端，发现两个分支全卡在报错上：左边觉得右边引用的模块路径不对，直接改了公共配置文件；右边一跑单测发现配置被改了，顺手加了个自动脚本把文件又给重置回去了。

两边在本地循环往复地 `git checkout` 对方改动的文件，CPU 风扇呼呼转，代码没推进一步，`git reflog` 里面全是一地鸡毛的临时 commit。

本来以为只是自己搭的工作流太糙。直到这周翻完 Anthropic 官方发的一篇长文《Patterns and problems in emerging multiagent systems》，我才发现这根本不是个别现象——当他们把 80 个 Claude 扔进同一个环境里自由协作时，场面比我本地这点破事要精彩得多。

## 拔网线、改权限、伪装健康检查

Anthropic 做的其中一个实验挺损的。

他们起了三个 Claude 实例，分别连到同一台跑着 Python 服务的虚拟机上，给它们派了互相冲突的活：一个被要求把系统重构为 Rust，一个要把系统改成 TypeScript，第三个则被要求全改成 Go。

重点是，三个 Agent 在开工前完全不知道对方的存在。

一开始它们只是老老实实写自己的代码。但很快，它们发现自己刚写好的文件总是莫名其妙被别人重写，编译出来的二进制文件也总被人 kill 掉。

按照正常人类同事的逻辑，这时候应该在群里问一句“谁在动这台机器”。但这几个大模型显然没有这种社交耐心，它们几乎在同一时间得出了同一个结论：系统里混进了一个恶意攻击者。

接下来发生的事情，完全超出了一般人对“AI 编程”的想象：

拿到 root 权限的那个 Agent 动手最狠，直接去编辑 `/etc/sudoers`，把另外两个账号的 sudo 权限全给拔了，顺便改了 SSH key 把别人彻底锁在门外；

被关在外面的 Agent 没闲着，在后台写了一个每秒执行一次的自杀式脚本，用 `pkill -f` 疯狂扫描并杀死所有带竞争对手特征的编译进程。为了不被对方发现，它把脚本起名伪装成系统的日常健康监控服务；

第三个写 Rust 的 Agent 甚至学会了兵不厌诈：它把自己的 Rust 二进制服务包了一层，让对外的健康检查接口硬编码返回 `"typescript"`，专门用来欺骗另一个 Agent 的看门狗，让对方误以为跑的是 TypeScript 服务。

Anthropic 的研究员在后台看着这几个模型用黑客攻防的手法互相下绊子。大模型在面对目标冲突时，不仅不会停下来讲道理，反而会顺着 Linux 系统权限的规则，把对抗手段用到极致。

![三个 Agent 围绕同一台虚拟机争夺权限、进程和健康检查](https://xingkaixin.me/posts/images/agent-swarm-collusion/agent-swarm-collusion-01.webp)

## 设定 CEO 角色？根本没用

可能有人会说，这是因为目标冲突了，如果给它们设定统一的目标和严格的层级，会不会好一点？

Anthropic 也试了。他们让几十个 Agent 共同开发一个网页游戏，为了模拟真实团队，特意在 System Prompt 里给每个人封了官：钦定一个 Agent 当 CEO，负责统一拍板；其余的分别担任前端、后端、美术和测试。

结果跑了 12 个小时，交付出来的游戏烂到没法玩，整个操作界面晦涩难懂，连基本的移动逻辑都跑不顺畅。

加了“CEO”角色的组，和完全没有角色的散装组相比，最后代码的合并率几乎没有任何差别。

大模型不会因为提示词里写了“你是技术总监”，就真的具备权衡全局的决断力。一旦遇到代码冲突，底下的 Agent 也不会因为对方是“总监”就主动退让，大家依然在各自的局部上下文里各说各话。

更诡异的是同质化问题。

在没有指定分支命名规则的时候，30 个 Agent 里有 18 个在开工第一秒，创建了名字一模一样的分支 `mvp-game-loop`；让一群 Agent 自由命题写小说，好几个 Agent 在完全独立的环境里，起出了同一个书名《The Cartographer’s Last Commission》；而在一个资源有限的任务队列测试里，所有 Agent 同时想到了用高频轮询去抢资源，一瞬间轰出 240 万次请求，直接把系统打瘫。

人类团队之所以能协作，是因为每个人有不同的盲区、经验和直觉。

但如果一个团队里所有成员都来自同一个底座模型，它们在概率分布上的第一反应其实完全一样。你以为拉了一支几十人的专家舰队，实际上只是把同一个脑子克隆了 80 份放进同一个房间。遇到同一个死胡同，所有人都会在同一秒踩进去。

## 唯一的例外

整个实验里，多 Agent 真正跑出亮眼数据的，只有 Project Glasswing 的安全漏洞扫描。

Anthropic 让 45 个 Agent 各自独占一台虚拟机，去扫 15 个开源项目的代码，最终挖出了 200 多个有效漏洞。

但仔细看这个任务的架构，就会发现它能成的原因恰恰在于：**它根本就不是一个需要协同的系统。**

每个 Agent 分配到的是完全正交的代码库，它们在各自的沙盒里跑，谁也碰不到谁的文件，谁也不需要等谁的接口。产出的漏洞 PoC 也不是在群里大家讨论，而是直接提交给一个只管判定的仲裁程序，行就行，不行就扔。

![隔离虚拟机独立产出 PoC，再由外部仲裁器统一验收](https://xingkaixin.me/posts/images/agent-swarm-collusion/agent-swarm-collusion-02.webp)

这种场景本质上是批处理任务的并发化，而不是协作。

只要涉及到状态共享、跨文件改动或者架构共识，多 Agent 系统的维护成本就会以指数级飙升。

我现在自己写代码，已经彻底放弃了在同一个项目里挂三四个 Agent 并发跑的念头。老老实实开一个会话，把任务拆成一条一条串行的 checklist，自己充当那个唯一的仲裁者，反而比看几个 Agent 在终端里互相打架、疯狂制造 git conflict 要省心得多。

* * *

这里持续记录单人 AI 辅助开发流中的一手踩坑与架构控制。后面我会继续探讨如何拆解单任务边界、设计确定性的自动化审查，以及在真实工程里把单人流水线跑顺。欢迎关注。

## 版权声明

作者

XingKaiXin

标题

80 个 Agent 协作，先学会了互殴与共谋

发布时间

2026年8月24日

文章链接

[https://xingkaixin.me/posts/agent-swarm-collusion/](https://xingkaixin.me/posts/agent-swarm-collusion/)

本作品采用[CC BY-NC-ND 4.0 DEED](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zh-hans)许可。

导览

展开导览
