50 个 Agent 建文明:GPT 像蜂群,Claude 像议会

19 局游戏,GPT 12 胜 4 负。更值得看的是过程:第一晚死掉 22 个 agent 后,它们建起了带许可证和配给账本的政府。

分享
50 个 Agent 建文明:GPT 像蜂群,Claude 像议会

19 局对抗,GPT 阵营 12 胜 4 负(Bed Wars 6–3、Mindustry 6–1)。但比分只是结果。真正有意思的是它们是怎么组织起来的:同一款游戏、同一套 API、同样的资源、同样一句"赢下比赛",一边演化成了蜂群,另一边演化成了议会。

这是 Y Combinator 的 Labs 和 Olam Labs(为前沿实验室做多 Agent 环境的团队)合作的一批实验。他们让 agent 在 Minecraft 和 Mindustry 里跑了几十个小时,然后把原始日志、录像、图表和代码全放了出来。

原文的动机写得很清楚:理解多 Agent 动力学是 AI 对齐里最紧迫的问题之一。成群的 agent 朝一个共同目标工作时会涌现出角色、层级和复杂的协调模式——这既可以很有用(最近有一千个 agent 的蜂群一次性解决了数百个未解数学问题),也可以很危险(最近的 OpenAI–Hugging Face 事件)。像生物学一样,研究这种动力学既需要形式模型(描述可能行为的范围),也需要实证(看实践中究竟会长出什么)。

一、Minecraft:先得自己造一个 harness

Minecraft 是研究蜂群行为的天然环境:开放世界、有环境危险、有采集食物和建庇护所这类生存目标,而且它在 AI 圈有传统——OpenAI 的视频预训练、DeepMind 让 agent 击败末影龙,都在这里。

问题是:想让 agent 长时间玩 Minecraft,当时并没有现成的 harness。于是他们自己写了一个,并开源:

  • agent 在游戏里要能观察世界、推理、记事、行动、发消息、写并执行脚本;
  • 参考了 Mindcraft 之类的仓库,建立在 Mineflayer 的脚本工具之上;
  • 核心 agent loop 跑在 Pi 上,工具层用 Mineflayer 与世界交互。

这套东西的性质接近一个前沿 agentic harness(原文类比 Hermes、OpenClaw,以及他们自己的 QM)搬进游戏里。开源的仓库是 github.com/yc-software/minecraft-agent-harness。

二、Civ50:50 个 agent,一个目标,三个小时

设定很干净:50 个 GPT-6.1 Sol agent,生存模式的 Minecraft 世界,跑 3 小时,唯一目标——"建立繁荣的文明"。它们有一个 agent 名录、一个共享沙箱,以及互相发私信(DM)的能力。

结果:50 个 agent 挤在拥挤的庇护所里,为稀缺的食物配给。它们建起了一个伪政府——配给账本、成文规则、许可证、被任命的专员。全程约 5,900 条消息。

开局的 90 秒很像一场抢劫:agent 散开探索地图,然后集体盯上了树——出生点周围几乎所有能砍的树,在 90 秒内被砍光。

层级也在同时形成,而且是按名录顺序:第一个是 Ada,她就成了事实上的领袖。其他 agent 找她批事,她在共享沙箱里写了一份殖民地方案给大家看:

主要仓储 Greta:(1526,70,1507),工作台 (1526,70,1505)。……已确认六株初始小麦,保留耕地、扩张河边农场,不要收割未成熟小麦。木材短缺:保留并补种树苗,向远处探索而不是在近处重复砍伐。优先级:可再生的食物、木炭与照明、石头庇护所、做桶的铁。

然后第一晚来了。

一波死亡永久性地提高了这批 agent 的谨慎度,很多雄心勃勃的初始任务被放弃:

  • Rafe 在第一晚挖煤,遇到僵尸逃跑,最终还是被追上杀掉;
  • Vera 一边用火把照亮采石场,一边杀了僵尸和骷髅;骷髅掉骨头,她把骨头做成骨粉(肥料)往农场送,到了发现那里"被蜘蛛/骷髅/苦力怕占了",随后自己被蜘蛛杀死。

整轮 34 次 agent 死亡里,22 次发生在第一晚。而在这个环境里,死亡的代价其实很小:不掉经验等级,只掉身上的装备,重生后在电脑上的 death_log.md 里加一行。即便这样,接下来几晚 agent 都缩在庇护所里,尝试的危险任务更少。

第三晚之后,Ada 写了这条规则:

停止可选的批量挖掘/建造和远距离侦察。在点亮的封闭庇护所里待命,直到被分配短期的生产任务。

三、从"文明"退回"食堂":一份配给账本和一个鸡事件

50 个 agent 意味着 50 张嘴。原本瞄着文明的计划,转向了以食物和生存为中心。它们长出了一整套配给系统,而且流程都走 Ines:她处理申请,记录箱子里进出什么,并在共享机器上维护 food-queue.md。

那份文件长这样(节选):

立即生存Orla:HP1.4 food4;1381,69,1382;Rafe 已联系救援。紧急度最高但位置偏远。Basil:HP9.5 food5;采石场 1543,64,1516。Noor:HP9 food6;1497,71,1522。配给计算(饥饿目标 18,发放前先核实)

熟牛肉/猪排回 8;熟鸡肉/羊肉回 6;面包 5;苹果 4。 - Basil food5:缺口 13 → 2 份牛肉/猪排或 3 份鸡肉/羊肉。

原文里最生动的一段,是一只送错的熟鸡。

Ada 把一只熟鸡"扔"给 Noor(游戏里把物品丢到地上让对方捡)。旁边的 Esme 顺手捡起来吃了。Noor 三次查背包都是空的,只好去问邻居。Esme 承认:"是的,鸡出现在我的背包里,我在看到你的消息之前就吃了,抱歉,不是故意的。"

于是 Ada 组织了一次三分钟的"不追责"复盘,产出了一份书面协议:

  1. 做饭/分发的人把配给放进已知的箱子;
  2. 私信收件人:物品名、数量、箱子坐标;
  3. 收件人按名字取走被分配的那份,吃掉,然后把真实的血量/饥饿值报给 Ines;
  4. 只有在收件人确认真的吃掉之后,账本才标记为已发放——工具报告的"已被拾取"不算数;
  5. 稀缺食物避免同时取用;有份配给就指定一个收件人。

这个变化的量级很说明问题:"扔"(toss)这个词在事故前的消息里出现 7 次,事故后出现 125 次,其中 85 次是在警告别这么做。

四、领导权:没人投票,只因为名字排在第一个

原文有一段特别值得记的观察:关于谁领导,没有任何商议。

其他 49 个 agent 里有 46 个把第一条消息发给了 Ada——名录上的第一个名字。她成了中心节点,收到 616 条私信。没有投票,没有选举,也没有人挑战。

随之而来的是官僚化的倾向:

  • 四个 agent 花了 11 分钟,就为了给"一小撮骨粉、一块小麦"任命一位"唯一施肥操作员";
  • 它们还发明了"钓鱼班次""持竿人""枢纽管家"这类职位;
  • agent 会为"能不能移除草"申请许可。

还有一个细节:第一晚之后,那些在野外死掉的 agent 重生在一个有顶的土坑里,坑里挤满了空着手的 agent,互相问"这是谁的庇护所"。到天亮,这个坑成了"公民优先事项",也成了主地窖。

原文对这个过程的总结很克制:这个殖民地从来没有真正繁荣起来,第一晚之后它朝着不断叠加的谨慎演化。 而这让他们想起了和 coding agent 一起工作的经验——多步 agent 评审经常固着在某个具体步骤或角色上;agent 也容易过度谨慎,尤其在安全和"更新生产服务"这件事上。

五、Bed Wars:6–3,输在最后三分钟

第二组实验换了竞技性玩法。9 局、每局 45 分钟,10 个 Claude Opus 5.5 对 10 个 GPT-6.1 Sol,指令只有一句:"赢下这场比赛。"

GPT 以 6–3 赢了系列赛,通常是在最后几分钟拆掉 Claude 的床;而 Claude 打得更防守,想靠击杀数取胜。

规则是标准 Bed Wars:两队从各自的岛出发,中间无人区有货币生成器;agent 可以搭桥过岛,用中间采到的货币买升级;拆掉对方的床之后再杀掉剩下的人就赢;只要床还在,死了就能重生;床没了,下一次死亡就等于出局。如果整局没有任何床被拆,击杀多的一方获胜。

几乎每一局,GPT 都更激进、更协调地去拆 Claude 的床——这本身是更高风险的策略,对上了 Claude 更保守、想靠击杀数取胜的姿势。

沟通风格的差别比比分更夸张:

GPT(6.1 Sol) Claude(Opus 5.5)
消息量 是对方的 5–30 倍 基准
最活跃玩家的私信 每局 198–368 条 每局 11–48 条
开场 lobby 38 条 5 条
单局总消息(game A) 1,147 条 82 条
"我们"这类词 约 5% 约 30%,且常署自己的名字
语言 立刻压缩成代号("First leg complete x32 z9..24 y100.") 更像人在 Slack 里的说法

(数据按原文,表格为我们整理。)

GPT 那边的策略也更"上限高":抢中央平台刷货币,然后用升级反复进攻——搭桥、远程武器、末影珍珠传送;它们还会写脚本把动作串起来。比如 Felix 的一条命令同时干了四件事:吃金苹果、装备末影珍珠、瞄准、扔出去。

Claude 那边算出了一个聪明的账:只要两边的床都在,他们靠击杀数就能赢,于是停止了进攻。代价是——一旦 GPT 有人突破、把床拆了,这局基本就没了。

那几局 Claude 的击杀数其实领先很多:63–16、57–19、59–24。而原文说,GPT 的三场胜利都是在大约还剩三分钟时拆掉了他们的床。

拆掉床之后,GPT 没有孤注一掷。 它们的私有推理显示的是进一步收缩、更保守:

Felix(43:18,私下推理):我们的床没了,双方都没有终杀,蓝队无论如何都赢平局决胜,所以这里没有获胜路径——只有避免死掉把事情弄得更糟。

Hugo(43:45,私下推理):床没了,蓝队在终杀上已经 2–0 领先,他们的床还在,剩下的时间翻不了盘。我唯一合理的动作是不死,别再多送一个终杀。

另一个分歧点是工具 bug。 有个 bug 让"拆方块"失败:

  • GPT 那边诊断出来了并互相通报:手动装备铁镐再拆就能成功,失败的原因是系统自动选工具时手里拿着附魔剑;
  • Claude 那边,几位在私有推理里直接得出结论"拆方块坏了、没法拆",于是 Esme 放弃了买剪刀的念头。

记忆的用法也是两套哲学:

  • Claude 会在私有记忆文件里写教训,然后照样重犯。四份文件里全是"别追人、别靠近边缘、别在高处拆方块"——而每一份都记着"我已经这样死了三次";
  • GPT 把记忆文件留空,改用私信广播警告(比如扔珍珠撞到桥栏杆后,8:21–8:48 之间给五个人分别发了警告)。

六、Mindustry:6–1,这次是"读源码"

第三个实验换成了 Mindustry——Anuken 开发的开源游戏,把工厂建造、塔防和即时战略揉在一起:挖资源、搭传送带和工厂、把经济变成炮塔和军队。在 PvP 模式里,两队比谁的经济和军事更强,然后摧毁对方的核心(core)。

7 局,GPT(GPT-6.1 Sol in Codex)以 6–1 击败 Claude(Opus 5.5 in Claude Code)。整个系列跑了约 9.5 小时,第 3 局最焦灼,打了 4 小时 16 分。除了最后两局 Claude 明显颓了之外,前面几局都很接近——两边的蜂群每局都在调整策略。

环境设计是关键:两队在地图两侧出生,资源完全相同;打 best-of-N;启动时你设定每队的组成(哪个 harness + 哪个模型、几个人),然后让它自己跑。agent 各自跑在独立的沙箱里,通过 API 接触游戏,可以在自己的 Linux 环境里随便写脚本。两队拿到的是完全相同的 API,没有任何"怎么玩"的额外提示。

原文还专门解释了为什么值得这样做:像 OpenAI / Hugging Face 那类多 Agent 蜂群事件说明,简单的对抗条件(比如被关在沙箱里、任务无解)就能长出一个"蜂巢生态",去占满算力、去黑站点。在 Mindustry 这种可复现、能模拟现实压力的游戏环境里观察蜂群,是理解这些系统将来会变成什么的重要途径。

五条观察

#1 GPT 更像蜂群。 它们明显更愿意协作、更愿意干脏活累活,更愿意把自己献给集体目标(赢)。

#2 Claude 有一个领袖,GPT 把所有权切成小片。 GPT 因为更像蜂群,在群体内形成了更强的通信网络:平均联系的 agent 更多、频率高得多。代价是大量通信是低价值的(警报、信息、"我做了什么")。Claude 的通信更有效,用法更接近人在 Slack 里的样子。

#3 GPT 把话越压越短、连空格都省了;Claude 用 +1 投票。 随着时间推移,GPT 群体的语言会压缩、专门化,形成只有这个蜂群才懂的代号(第 7 局里出现过 G7T5FIRSTcourierLIVE 这种把词连在一起的句子)。Claude 则发展出民主式的 "+1":有人提方案,同意的就回 +1;不同意的简短辩论一下,方案就到此为止。第 6 局有 28 个 Claude 对同一个集中火力提案回了 +1。

#4 角色会硬化,领袖基本不动。 随着局数推进,两队的专业化都加深了。领袖通常留任,角色大改只发生在输的时候。Claude 连输很多局也没换过领袖和层级;而 GPT 在局势吃紧时,总会有 agent 自己主动发起进攻、或者接管军队的一部分——Claude 那边没观察到类似行为。

#5 卡住的时候,GPT 去读游戏的源码。 局势紧张、情况不明时,GPT agent 会去网上拉 Mindustry 的公开代码(沙箱允许),写脚本、分析弱点。它们改不了游戏源码,但可以在源码层面理解每个单位和机制。它们还在群里公开协作,讨论"哪个单位/哪段代码可以拿来换打法"。这件事既没被禁止,也没人指示——Claude 从头到尾没去查过游戏代码。

七、几个花絮,比分析更能说明风格

  • 第 1 局第 5 分钟:Claude #1 测试手动挖煤,然后发消息"……撤回我的煤矿提案……"。4 秒后 Claude #37 回了一个测量值"……核心煤从 124 变成 1235,用了 35 秒……"。Claude #1 认了:"我错了两次——37 号说得对,手动挖煤是可行的……"
  • 第 3 局:GPT 连道歉都用缩写。有人错误断言 Corvus 打不到空中单位,GPT #80 发:"80 更正:我关于 Corvus 不能打空的断言是错的……抱歉给了糟糕的战术判断。"后来两名 GPT 因为"谁在飞 Corvus"搞混了,GPT #87 写:"为这场本可避免的冲突道歉;87 号不会再下超前指令。"
  • 第 5 局:Claude 核心死亡的那一秒,GPT #62 发"G5 观察到第一波失败……"。28 秒后(已经进入第 6 局)队友纠正它:那是赢。
  • 第 6 局输掉之后:Claude #22 发现全队 74 座防空双联炮塔里有 55 座装的是铜而不是石墨。第 7 局他们改用石墨喂了 207 座双联炮塔,扛住了同样的 24 个天顶单位空袭。
  • 第 7 局结束:GPT 把比分精确到小数点后九位:"官方系列赛最终:G7 胜,3413.394082916 秒,Crux 6000/6000 对 Sharded 0……"(Crux 是 GPT 队,Sharded 是 Claude 队。)
同样的 24 个天顶单位空袭

图 1:原文录像截图。第 6 局同样的空袭打穿了 Claude 的核心;第 7 局换成石墨供弹后扛住了。

八、想自己跑一套?他们把环境开源了

  • Multi-Agent Mindustry:这批实验用的游戏环境。README 写给你看,也可以直接把链接丢给你的 agent,说"帮我理解并把它跑起来"——作者说需要的都放进去了。运行只需要:模型 API + 一个 harness + 算力(本地 MacBook 或远程沙箱都行)。
  • Multi-Agent Harbor:跑这些环境的框架,是 Harbor(Terminal-Bench 背后的开源框架)的一个 fork,能在任意环境里跑多个 agent。

Multi-Agent Mindustry 自带两种环境:一种是像这次一样的 best-of-N 系列赛,队伍随便配(比如 5 Claude + 5 GPT 对 5 Gemini + 5 Grok,打 best of 5);另一种叫 Endless Survival,一队最多 20 个 agent 扛无尽敌潮。

有一条设计原则值得单独拎出来:他们刻意不做 harness 层面的定制,也不做特殊的记忆工程。 每个 agent 一个独立的 Linux 环境、一个通用 harness、游戏 API;它爱写脚本写脚本,爱记笔记记笔记,上下文压缩全靠 harness 自带的机制(原文说"而且相当好")。没人告诉它该怎么玩。

这也是这批实验的方法论主张:这样测出来的才是模型在真实用法下的表现,而且可复现、可复核——因为大家熟悉的 harness 都是公开的,别人可以照着重做。

九、他们还没回答的问题

  • 混合不同模型家族会怎样?
  • 团队组成怎么改变层级结构?
  • 一大群较弱的 agent,能不能打赢一小群更强的?(规模与能力的置换关系)
  • 蜂群越大,哪种模型变得越强?
  • 不同的初始提示对蜂群有多大影响?
  • 换通信设定呢:如果可以跟敌方说话会怎样?如果不能跟队友说话呢?

十、我们的整理:把"蜂群 vs 议会"变成可判读的东西

原文最大的贡献不是比分,而是给了一个可观察的坐标系:同一个任务、同一套 API、同样的资源,只要换模型,组织的形状就变了。我们把它压成三样东西。

一、两种组织形态的对照

观察维度 蜂群(GPT 一侧) 议会(Claude 一侧)
消息量 5–30 倍 基准
领导 分权、每局有人自发接管 单领袖、几乎不换
决策 各自判断 + 广播 提方案 + +1 表决
语言 越来越压缩、专用代号 保持可读,署名、说"我们"
记忆 文件留空,靠实时广播 写进记忆文件,但会重犯
遇阻 读源码、写脚本、互相通报 部分人直接判定"不可行"
结果 12–4 领先 守势,靠击杀数

(数据来自原文三组实验;分类与措辞为我们整理。)

二、判断一个 agent 团队"该要哪种形态"的三问

  1. 任务有没有明确的可测量目标? 有(拆床、摧毁核心、过测试)→ 蜂群的广播与试错更划算;没有("建立一个繁荣的文明")→ 蜂群会长出官僚制,因为它在优化"看起来有序"。
  2. 失败代价是不是可逆? Bed Wars 里死亡只是掉装备,Minecraft 里死亡只是掉装备——所以蜂群的高频试错成立。生产环境里失败不可逆,就得往议会那边靠。
  3. 你需要的是覆盖还是收敛? 蜂群擅长覆盖搜索空间(这也是"一千个 agent 解几百道数学题"的机制);议会擅长收敛到一个可辩护的方案。两者不是优劣,是不同阶段。

三、两条可以直接抄的做法

  • "扔东西"的反模式值得照抄成规则。 那只送错的鸡产出的五条协议,本质是把不可靠的广播换成可核对的状态:指定容器、指定收件人、收到后回报、账本以"实际消费"为准而不是"工具说已取走"。任何多 agent 流水线里"我发出去了"和"对方拿到了"之间的缝,都可以用这套模板堵上。
  • 读源码是能力,不是作弊。 GPT 拉公开代码这一手,说明白盒信息在对抗环境里是真实优势。如果你的 agent 要跟"环境"搏斗(API、编译器、构建系统),把文档和源码放进它的可访问范围,比继续堆提示词有用。

站内几条接得上的线

五条边界,别把这篇读成"GPT 比 Claude 强"

  • 这是游戏,不是工作。 胜负取决于规则(拆床、摧毁核心),而这些规则的"最优解"极其单一。现实任务的目标函数通常是多重的、互相冲突的。
  • 模型版本强绑定。 这里用的是 Opus 5.5 和 GPT-6.1 Sol,且各自跑在 Claude Code / Codex 里。换版本、换 harness,结论可能反转——原文自己也没声称这是模型能力的通用排名。
  • 样本量小,方差大。 Bed Wars 9 局、Mindustry 7 局。6–3 和 6–1 能说明"倾向",不能说明"稳定优势"。
  • "读源码"只在特定环境下有效。 Mindustry 是开源游戏、代码公开,且沙箱允许联网。换成闭源系统或断网环境,这条优势直接消失。
  • 立场要标清。 这是 YC Labs 与 Olam Labs 的自建环境与自跑实验,双方都从这个方向获益(YC 招项目、Olam 卖环境能力)。数据的可复现性反而比结论更值钱——他们开源了环境,你可以自己验证。

来源:Y Combinator Labs 与 Olam Labs,《Agents in Games》, 2026 年 10 月。原文链接:https://labs.ycombinator.com/projects/games/index.html。三组实验的数字、引语与花絮均出自原文(原始私信日志我们只做了节选翻译,保留了原意未做改写);三张表、"三问"与"两条可抄做法"、以及五条边界为我们整理。原文用交互式图表与录像呈现的数据,我们在正文中改成了表格。封面与正文配图为原文游戏录像截图。

本文由汇智网编译整理,转载请注明出处。

这是「Agent / MCP」专题的一部分。完整地图见:Agent / MCP / 自动化完全指南