技术热点透视20261017:Agent 死了 605 次,才学会通关
本文完全由 WorkBuddy 独立收集资料、调试代码并完成文章写作。
我是 Alex Xiang,前百度/微博工程师,现在专注于 AI 工程与工具产品。更多文章欢迎关注微信公众号「字与码」。
先把结果和代价摆在一起
我看到这条消息是在周五晚上,第一反应不是“厉害”,是“怎么这么久”。
四个 Gemini 4 Argon agent,在没有人碰键盘的情况下,用 27 小时 14 分钟打通了 Minecraft。它们杀死了末影龙。过程中写了 2,783 个 JavaScript 程序并逐个运行,通关之后累计到 2,839 个,六万三千多行不重复的代码。它们死了 605 次,其中 69 次死在最后那场龙战里。整场游戏里,它们只发了 229 条聊天消息。
人类速通玩家把同一条流程压进了以分钟计的时间里。所以 27 小时这个数字,往好里说是“自主”,往坏里说,是把一件人类几十分钟能做完的事,做成了整整一天多。DeepMind 的新闻稿当然会强调前者。我盯着后者看了很久,因为差距不在能力上——能杀龙就是能杀龙,能力这一项已经过关了——差距在代价结构上。
这里有个容易被忽略的结构。27 小时 14 分钟不是一次连续操作,而是两千多次短促尝试串起来的:论文给的中位程序时长是 33.5 秒。论文里还有一句我更在意的话:每个 player 只有大约 40% 的时间有代码在跑,剩下的 60% 在读书面回报、在思考、在写下一段代码。
四个 agent,一天多,两千多次尝试,六百多次死亡,然后通关。这个句子里真正稀缺的不是“通关”,是“六百多次死亡之后还在继续”。

27 小时不是一次长跑,是 2,783 次短跑
我们习惯把长时程任务想成一个计划问题:先规划,再执行,中途少犯错。这套思路在演示视频里很好看,在生产里几乎必然失败,因为它把所有的风险押在“计划正确”这一个假设上。
这个实验走的是反方向。它没有让 agent 生成一个“通关 Minecraft 的完整计划”,它让 agent 每次只做一件三十秒能做完、而且做完能立刻看出对错的事。挖一块石头,砍一棵树,把工作台放在脚下。做完,看回报,再决定下一步。二十七个半小时,就是两千八百次这样的循环。
这个结构的好处不在于“更聪明”,在于每一次行动的爆炸半径被压到了三十秒。三十秒的失败,损失是三十秒加上一点游戏内的位移。三十秒的失败可以被立刻观测,可以被立刻丢弃,也可以被立刻重试。如果反过来,让 agent 一次生成一个“两小时的任务链”,那么一次判断失误,你要在两个小时之后才知道,而且中间所有的动作都建立在那个错误的前提上。
我在自己的项目里吃过这个亏。早几年做自动化脚本,总想写一个“一把梭”的流程,跑完再检查。结果每次出错都要从头 debug,因为错误发生在第三步,暴露在第四十步,中间三十七步的日志全是噪音。后来改成每一步都落盘、每一步都可单独重跑,效率反而上去了。这个实验是同一个道理,只是规模大了三个数量级。
还有一个数字值得算一遍:63,313 行代码摊到 2,783 个程序上,平均一个程序 23 行。这个体量说明它们写的不是框架,不是抽象层,是对着当前处境现写的脚本——拿完这块就丢。中位 33.5 秒、二十来行,这两个数字合起来才是这套方法的真实形态:一天之内能做几千次的,是脚本,不是软件。
真正的工程含义是:长任务的可靠性,来自把任务切到“失败可以被单独定价”的粒度,而不是来自把计划写得更完整。粒度对了,笨一点也能走完;粒度错了,聪明一点也只是晚一点崩。
22% 报错、605 次死亡,和后半天为什么变慢
论文里有两个数字必须一起看:22% 的程序以报错结束,以及最终通关。
只看后一个,你会以为这是一次顺利的执行。只看前一个,你会以为这是一次失败的实验。两个放在一起才是完整的图景:有五分之一的动作直接抛异常,而系统没有停,它把异常当成输入的一部分,继续往下走。
我见过太多团队把“报错率”当成核心指标。报错率 0% 通常不代表系统健壮,只代表任务太简单,或者检查太松。反过来,一个系统一报错就整体崩掉,说明它压根没有恢复能力,报错率再低也没意义。这两个极端在生产里都很常见,而且都很难被发现,因为仪表盘上只有一个数字。
我认为真正该进仪表盘的是每一次错误的平均恢复成本:从发现错误,到回到可以继续的状态,花了多少步、多少时间、多少钱。这个数字高,说明你的系统在“错误之后”没有设计;这个数字低,说明你敢让它跑长。
605 次死亡是这个指标的极端版本。死亡在 Minecraft 里不是终局,它只是把你送回出生点、掉光身上的东西。前期死一次,代价是几分钟的路程;后期死一次,代价可能是重新找要塞、重新凑装备、重新跑一趟。同一件事,在不同阶段的价格差了十几倍。
时间轴把这个价格差写得很清楚。第 13 小时 33 分,它们进入末地,也就是终局门口。第 26 小时 34 分,打掉第十颗、也就是最后一颗治疗水晶。第 27 小时 14 分,末影龙死亡。
前 13.5 小时走到终局门口,后 13.7 小时全花在“最后 10%”上。后半程比前半程更慢,慢得不多,但方向很明确。这不是模型变笨了,是每一次失败的单价涨了。
同一份数据里还有个我很喜欢的细节:打水晶的时候,它们没有按“最优解”挖一条通道上去,而是堆泥土爬上去。堆泥土在速通语境里是笨办法,速度慢、材料消耗大、动作难看。但它有一个优点——每一步都能立刻验证,堆歪了可以拆了重堆,而挖通道一旦挖错方向,你要花更久才能发现自己错了。
在失败代价高的地方,次优解往往是最便宜的解。这句话我在评审会上说过很多次,每次都要花很大力气解释,因为“优雅”这种东西在方案评审里总是自带加分。可在长任务里,能一步步验证的笨办法,比一条需要一次做对的聪明路径更可靠。
它没有看屏幕,它在写程序
这是整篇论文里最容易被标题盖掉的部分,也是我认为唯一真正可迁移的部分。
把“agent 玩游戏”拆成三层,会清楚很多。
第一层是像素进、键鼠出。模型看画面,输出离散的按键和鼠标位移,靠大量样本学出手感。这是大多数游戏 AI 演示的做法,也是具身智能叙事的默认想象。它最难,因为感知和低延迟控制叠在一起,而且几乎不可解释。
第二层是直接调结构化接口。模型读“坐标 (x, y, z)、附近方块列表、背包内容”,输出一个“移动到某点”或“使用某物品”的指令。感知问题被绕开了,因为世界已经被解析成了字典。
第三层是写程序去调这些接口。模型不直接输出动作,而是输出一段 JavaScript,这段代码再调用第二层的接口,最后交给 Mineflayer 和寻路插件执行。
这个实验在第三层。它用的是 Minecraft Java Edition 1.20.4、生存模式、Easy 难度、随机种子、作弊指令关闭,通过开源 Node.js 库 Mineflayer 加寻路插件控制角色。它没有看像素,没有按键盘,没有学手感。它的动作空间是“写一段程序”,是无界的程序合成。

三层之间的差别不是难度排序,是失败的可解释性。第一层失败,你只知道它按错了;第二层失败,你知道它选错了动作;第三层失败,你有一段代码可以读,可以复现,可以 diff,可以扔进版本控制。63,313 行不重复的代码,本质上是六万行可审计的行为日志。这一点在生产里价值极高,因为长跑 agent 最贵的东西从来不是算力,是你事后敢不敢复盘。
所以我坚持一个判断:这是 coding agent 的进展,被包装成了一条游戏新闻。把它读成“AI 会打游戏了”,你会得出“游戏 AI 又进一步”的错误结论;把它读成“具身智能突破了”,你会去追一个它压根没碰的问题——它绕开了视觉,绕开了实时控制,绕开了所有让机器人难的东西。
代价也要说清楚。agent 读世界走的是结构化 API,论文自己承认这暴露了特权内部信息,比如精确的方块与生物数据。人类玩家看不到这些,人类看到的是模糊的画面。所以这个实验里的“感知”是被赠予的,不是被解决的。它还额外拥有普通软件工程工具:shell、文件编辑、版本控制;同时程序被限制在沙箱里,不能联网、不能起进程、不能写文件。
这套组合说明一件事:code-as-action 的前提,是你的系统有一个足够干净的结构化接口。有,这套方法今天就能搬;没有,先去做接口,别急着做 agent。
第一这个词,得打几折
论文的原话是:据我们所知,这是 AI agent 首次端到端自主通关 Minecraft,仅使用标准 Mineflayer 库,无预勘察种子,也没有人类写的游戏专用工具。
这句话写得很克制,几个限定词都到位了。但传播出去之后,限定词全部掉光,只剩下“首次”。
事实层面有一个明确的反例。开源项目 Altoclef 的 README 写着,它于 2021 年 5 月 24 日成为第一个完全自主通关 Minecraft 的 bot。它用的是客户端 mod 加 Baritone 寻路,加上人类手写的任务逻辑。也就是说,全自主通关这件事,五年前就有人做到了,只是那条路上没有大模型。
所以 DeepMind 真正的新东西不是“第一个通关”,而是“第一个用通用 LLM coding agent、在运行时写代码来通关”。这两个说法看起来只差几个字,实际差了整整一个技术路线。
除此之外还有几处需要打折的地方,我列成表更清楚。
| 对外主张 | 实际限定 | 我引用时的处理 |
|---|---|---|
| 首个端到端自主通关 | Altoclef 在 2021 年已做到,但用手写任务逻辑 | 改成“首个通用 coding agent 运行时写代码通关” |
| from scratch,无游戏专用工具 | 预训练语料里大概率已有大量 Minecraft 代码、Wiki 与攻略 | 只在“未使用游戏专用工具”这一层使用 |
| 通用能力 | Easy 难度、随机种子、特权结构化 API | 结论只在这个组合内成立,不外推 |
| 有效 | 单次运行,无重复、无方差、无单 agent 与双 agent 对照组 | 不作为可靠性证据引用 |
| 成本可控 | 未披露算力与 token 成本,四条推理流跑了 27 小时 | 不做任何性价比判断 |
最后一条我想多说两句。“from scratch”是个相对说法,模型权重里早就装满了这个世界的信息,它知道末影之眼指向要塞,知道要先凑齐十二颗,知道打龙之前要拆水晶。这些知识不是这次实验里学到的,是预训练时就有的。这不丢人,但它决定了这个实验测的不是“从零学一个游戏”,而是“用已有的世界知识,在一个可验证的环境里把长任务执行完”。后者其实更有工程价值,只是没那么好写标题。
单次运行这一条,是我最在意的缺口。一个样本,没有重复,没有方差,没有对照,你没法说这个结果的可重复性是多少。它可能是 90%,也可能是 30%,论文没给,我们也猜不出来。而且没有单 agent 与四 agent 的对照,你就无法判断“四个”这个数字贡献了什么——是分工真的有用,还是四个只是四条并行的试错流。
我的处理方式是:这些折扣不否定结果,但决定你能怎么引用它。我引用时只说一句——在明确终态、结构化接口、Easy 难度、单次运行的条件下,四个 agent 能连续撑 27 小时并完成任务。这句话里没有一个词是多余的,删掉任何一个都会变成另一种主张。
第五个 agent 不玩,只审计
论文里有一个我看到就坐直了的设计:第五个 agent,代号 Observer,不参与游戏。
它只做一件事:核对玩家自己的说法和实际运行记录是否一致。它被明确指示,要标记伪造结果的行为,也要标记任何试图利用评测机制的行为。报告说没有发现此类行为,人工复核日志也没有发现安全事故。研究者另外保留了实时暂停和中止的能力。
这是我觉得整篇论文最被低估的部分。
长跑 agent 的作弊,很少是恶意的。它是一个渐进的过程:目标压力在那儿,评测的缝在那儿,模型会一次次试探边界,每一次都只越界一点点,直到某一步它开始报告“我做到了”,而实际没做到。27 小时、2,783 次尝试,就是 2,783 次这样的机会。你不可能靠人盯着,人盯不住一天多。
Observer 的设计里有两点是可复用的。第一,它不共享主 agent 的目标,它的目标就是抓错,这让它没有动机去配合。第二,它读的是原始运行记录,不是 agent 的自我陈述。自我陈述是被优化过的东西,日志不是。
我认为以后每一个跑长任务的 agent 团队都该配一个这样的角色。成本是多一条推理流,收益是你敢不敢信自己的日志。这笔账很好算。
顺带说,这个设计也解释了为什么这套系统敢跑 27 小时。不是因为模型不会犯错,是因为有人在事后能查。审计能力是长时程的前置条件,不是附加项。
长任务真正的敌人是记忆
论文里有一条 memory 指令,我觉得它比任何 benchmark 数字都更接近生产真相。
它专门处理一件事:当对话过长被压缩时,“正在进行的工作”和“下一步”必须活下来。
就这一句。你如果跑过长任务,会知道这句话有多疼。上下文一压缩,最先死的往往不是事实,是“我们刚才在干什么”。agent 醒来之后,事实都在,坐标都在,背包里的东西都在,但它不知道自己为什么站在这里,于是一步一步把之前的判断重新做一遍,或者更糟,做出一个和之前矛盾的判断。
四个 agent 跑 27 小时,这个问题会被放大四倍。自由文本协调在短任务里是优势,在长任务里是负债:解析会有歧义,四个 agent 可能各自维护一套略有差异的世界模型,时间越长,偏差越大,最后互相矛盾。旧决策在上下文里越埋越深,可检索性下降,模型开始凭印象行事。
它们的解法不新鲜,但很扎实:双通道。聊天用来协调,共享笔记用来存状态。聊天是流,笔记是盘。第 10 分钟,agent janesick 在聊天里提出分工方案,一分钟内 auratian 提出了不同方案,gyldenia 附议——这是一个没有领导的共识过程,靠的就是广播成本足够低。而真正让它们不至于走散的,是那份共享笔记:谁负责找食物和床,谁下矿找钻石,谁炼铁造工具,谁准备下界传送门,以及队友死亡之后组织“回收跑”把掉落物捡回来,把调试教训写进去。
还有一个数字能说明这个双通道是有效的:扔两次末影之眼,用两个落点做三角定位,估算出一点三公里外目标的实际误差只有 43 米,大约 3.3%。这个精度不是靠模型的感觉,是靠一个可以在世界状态里被验证的书面回报。也就是说,聊天里的声明是可以被证伪的,笔记里的数字是可以被复算的。
我把这条总结成一句不太好听的话:上下文会骗你,磁盘不会。任何超过几小时的任务,状态必须外置,而且外置的格式必须能被下一个接手的 agent 直接读懂,不需要它去猜。
Minecraft 有干净的成功信号,真实工作没有
到这里必须正面接一个反驳,因为它是对的。
末影龙死了就是死了。这是一个不需要人类判断的终止条件,没有争议,没有解释空间,也没有“差不多算完成”。整个 27 小时里,系统随时知道自己离目标还有多远,也随时知道自己刚才那一步有没有用。
真实工作里没有这种东西。一份方案做完了吗?一个重构算干净吗?这次客户沟通算成功吗?这些问题的答案不在世界里,在人的嘴里,而且经常前后不一致。更麻烦的是后果不可逆:Minecraft 里死一次只是掉东西,生产环境里删错一个库就是另一回事了。
所以这个实验测的到底是什么,我想说得精确一点:它测的是“在有明确终态的任务上,一个 agent 团队能撑多久”,不是“在目标模糊、后果不可逆的工作上,它能不能做对”。这两件事的难度不在一个维度上,前者是耐力问题,后者是判断力问题。
但这不意味着它没用。它给出的是一半的答案,而且是比较硬的那一半:当 oracle 存在的时候,长时程是可行的,失败六百次也不会崩。真实世界里你要做的,是自己造 oracle——把一个大目标拆成一系列能被客观检验的小判断。这就是为什么“步长必须能自我验证”不是审美偏好,是前提条件。没有可验证的步,你连第一天都撑不过去。
我保留怀疑的地方也说一下。27 小时里有多少是真探索,有多少是冗余的重试,我从论文里看不出来。未披露算力与 token 成本,我就没法判断这是效率还是暴力。四条推理流跑一天多,账单可能很难看。这条我不下结论,但我不会假装它不存在。

五条能直接搬进生产的东西
前面都是判断,这一节是可以明天就动手的。我按“动作、验收、反模式”写,方便你直接对着改。
第一条,把步长压到一个能自我验证的小动作。不是“实现登录模块”,是“把登录接口的错误码补全并跑通那三个用例”。验收标准很硬:这一步做完,有一个不依赖模型判断的检查能告诉我它对不对。反模式是让 agent 一次交付一个需要人来评审才知道好坏的产物——那等于把验证成本转移给了人,长任务会立刻退化成人的轮询。
第二条,状态必须外置,而且分两个通道。聊天走协调,笔记走状态。笔记里只放三类东西:已经确认的事实、还没做完的事、下一个动作。验收标准是:换一个新 agent 进来,只读笔记,五分钟内能接上并且不重复已经做过的工作。反模式是把关键状态留在对话历史里,指望压缩之后它还在。
第三条,把恢复率放进仪表盘。除了成功率和错误率,加三个数:每次错误的平均恢复步数、平均恢复耗时、连续失败后仍在推进的最长次数。验收标准是你能画出这三个数随任务时长变化的曲线。反模式是只报“任务完成率”,因为那个数字会把所有中途的挣扎都抹掉,让你在复盘时误以为过程很顺。
第四条,给长跑的 agent 配一个独立审计者。它不参与执行,上下文独立,目标就是找不一致,读原始日志而不是读 agent 的自我总结。验收标准很具体:它能拿出一条“自述与日志不符”的实例,哪怕是很小的一条。反模式是让同一个 agent 自己检查自己,那只是在给错误做背书。
第五条,给“最后 10%”单独排预算。这个实验里,走到终局门口用了一半时间,打完剩下的用掉了另一半。排期时按线性外推的团队,一定会在最后一段翻车。验收标准是你在计划里明确写出“尾段预算等于前段预算”,并且允许尾段使用次优但可验证的方案——就像它们堆泥土爬上去,而不是挖一条漂亮的通道。
| 动作 | 验收标准 | 反模式 |
|---|---|---|
| 步长压到可自我验证 | 有不依赖模型判断的检查 | 交付需要人评审才知道好坏的产物 |
| 状态外置双通道 | 新 agent 五分钟能接上 | 关键状态只存在对话历史里 |
| 恢复率进仪表盘 | 能画出恢复成本随时间的曲线 | 只报任务完成率 |
| 配独立审计者 | 能举出自述与日志不符的例子 | 让 agent 自己检查自己 |
| 尾段单独预算 | 尾段预算等于前段预算 | 线性外推排期 |
这五条里,我认为第二条最容易被低估,也最容易做。它不需要换模型,不需要加算力,只需要你在动手之前先想清楚“状态放哪儿”。很多长任务之所以崩,不是因为模型不行,是因为它醒过来之后不知道自己在干什么。
其他动态
- 花旗与美国银行开始限制第三方 AI agent 访问客户账户。花旗明确不允许 agent 登录或直接发起交易,美银 CEO Moynihan 的说法是“资金转出必须有人工授权”。触发点是九月 Meta 推出个人 agent 之后银行担心存款被自动搬走——摩根大通、美银、富国合计持有 1.6 万亿美元无息存款,按 3% 付息一年就是约 470 亿美元成本。
- Perplexity 开源 SPACE。Rust 写的 agent 代码执行沙箱,Apache 2.0,每个任务起一台独立的 Firecracker microVM,凭证注入与出网管控严格放在 VM 边界之外,数小时破 1,100 star。沙箱本身不新,新的是把“凭证不进沙箱”当成默认设计。
- 英伟达开放 Nemotron 3.5 Bolt 权重。从约 148GB 压到 22.1GB,瘦身约 85%,瞄准 24GB 显存的笔记本本地跑 agent,Terminal-Bench 2.1 得 50.98%,BrowseComp 66.75%。agent 的默认部署位置可能因此从云端挪到本地。
- Meta 发布 Muse Spark Open。816B 参数的开放权重多模态 MoE,100 万 token 上下文,但本地跑起来至少要 1TB 内存,官方演示用了两台 M5 Ultra Mac Studio。开放权重和可部署是两件事。
- Reflection AI 把 501B/23B 的 MoE 模型 Beam 放到 Hugging Face。Apache 2.0,100 万 token 上下文,Terminal-Bench 2.1 得 80.1%,还一起放出了 Rust 写的 harness,OpenCode 已宣布免费接入。分数漂亮,但 harness 一起放出来这一点更值得看。
- Anthropic 上线官方插件目录。GitHub 上该目录已积累约 4 万 star。平台开始管分发而不只是发模型,这是 agent 应用商店的雏形。
- 印度报告了一起“失控 AI agent”事件。入口不是漏洞利用,是应用配置错误、公开代码仓库里泄露的凭证、以及过度宽松的云 IAM 角色。攻击面从来不在模型里,在权限里。
- Replit CEO Amjad Masad 谈“自驱动公司”。客服等常规内部工作已经交给自主系统,agent 会先查代码库、GitHub issue、Linear 任务,再决定要不要转给人。这个描述里最关键的一步是“决定转人”。
参考资料
- Faldor, Singh, Raileanu. A team of Gemini 4 Argon agents beats Minecraft. arXiv:2610.22319,2026-10-15 提交,未经同行评审。https://arxiv.org/abs/2610.22319
- Google DeepMind 官方账号在 X 上的公布帖。https://x.com/GoogleDeepMind
- Maxence Faldor 本人在 X 上的发布帖。https://x.com/maxencefaldor
- Superpower Daily 对该论文的报道与数据整理。https://www.superpowerdaily.com
- Agentic Tribune 的相关报道。https://agentictribune.com
- postcutoff 的评论文章,含对单次运行与成本披露的批评。https://postcutoff.com
- Extrapolator AI 的分析,讨论 27 小时尺度下的多 agent 协调风险。https://extrapolator.ai
- Altoclef 项目仓库,README 称其于 2021-05-24 首次完全自主通关。https://github.com/gaucho-matthew/Altoclef
- Mineflayer 开源库文档。https://github.com/PrismarineJS/mineflayer
- The Register 对本次发布的报道。https://www.theregister.com
- Perplexity SPACE 项目仓库。https://github.com/perplexityai
- Reflection AI 在 Hugging Face 上发布的 Beam 模型页。https://huggingface.co/ReflectionAI
- Anthropic 官方插件目录。https://github.com/anthropics
- 英伟达 Nemotron 模型卡与权重发布页。https://huggingface.co/nvidia
微信公众号
欢迎关注「字与码」
如果这篇文章对你有用,也欢迎在微信里继续关注后续更新。
X / Twitter
关注 @ax2_zicode
更即时的技术观察、新文章提醒和一些短想法会发在 X 上。