AI 日报
研究论文

MirrorCode:只凭运行行为重写整套软件,Opus 4.7 用 14 小时抵人类数周

Epoch AI 联合 METR 等机构发布 MirrorCode 基准:AI 仅凭可执行二进制的输入输出行为(无源码)重写整个 CLI 程序,覆盖 25 个目标、6 种语言,用含隐藏测试的端到端测试判定一致。最强模型 Claude Opus 4.7 全基准 56%(8 个月前约 30%);典型案例 14 小时重写 1.6 万行 Go 工具包 gotree、通过 2000/2001 测试、花 251 美元,人类估计需 2-17 周;单任务一次尝试最贵耗 2600 美元、跑 19 天。

2026年6月26日 · 周五 · 深度调研

Epoch AI 牵头、METR 资助、联合 Prime Intellect 与华威大学等机构发布了一个名叫 MirrorCode 的长程编码基准。它的设定有点反直觉:给 AI 一个可以运行但看不到源码的程序,只允许它观察「喂进去什么、吐出来什么」,然后要求它用六种语言之一从零重写出功能完全一致的整套软件,并用包含隐藏测试的端到端测试判定是否真的一致。结果是,最强的 Claude Opus 4.7 在全基准拿到 56%(8 个月前的前沿模型约 30%);最有代表性的一例是它用 14 小时重写了一个约 1.6 万行 Go 代码、含 40 多个命令的生物信息学工具包 gotree,通过 2000/2001 个测试(99.95%),只花了 251 美元——而四位论文作者估计,人类工程师做同样的事需要 2 到 17 周。论文标题直白得不留余地:《MirrorCode:AI 能仅凭行为重建整个程序》。

发生了什么

过去衡量 AI 编码能力的基准(SWE-bench 等)大多测「短任务」——修一个 bug、改几十行 diff。这类任务难以回答从业者真正关心的问题:AI 现在能独立完成的最大软件工程任务有多大? 与此同时,业界流传着各种「一次性炫技」(比如让一队 Claude 并行写一个 C 编译器),但这些演示难以系统比较、往往掺杂人类引导、也无法复现。MirrorCode 想把这件事放到严谨可量化的轨道上。

它的核心机制是「逆向重建」。每个任务是一个命令行程序,AI 拿到的是:① 一个权限被设为「只可执行」的参考二进制(可以任意构造输入、观察输出,但拷不走、看不到源码);② 一份程序文档;③ 一组可见测试(visible tests),用来界定要实现哪些功能的范围。AI 要在 Python、C、Rust、Go、OCaml、Ada 六种语言之一里重写出整个程序,让它的标准输出 / 标准错误流对所有测试逐字节完全一致

为防作弊,基准做了三层设计:隐藏测试(平均占 34%,AI 永远看不到)堵死「查表硬编码」;评分沙箱里拿掉参考二进制,堵死「偷偷包一层原程序」;评分与开发沙箱分离、只比对字符串相等,堵死「干扰评分机制」。论文称在他们的 scaffold 下,没有 agent 成功作弊;判定「解决」的门槛极其严苛——100% 测试通过才算数,每个程序的测试数从 63 到 2665 不等(中位数 601)。

整套评测用的是 Inspect 框架的 ReAct agent,给模型 shell 和文本编辑器,以及一个可随时自查进度的 evaluate_testcases 工具。研究者刻意把推理预算开得极大:Large 任务允许烧到 100 亿 token(对 Opus 4.7 约合 5000 美元),其他任务 10 亿 token——远超典型 SWE 基准每任务 1-10 美元的水平。论文一个反复强调的发现是:要把前沿 AI 的真实上限测出来,benchmark 自己也得舍得花钱

关键数据 / 技术细节

三个被评测的前沿模型——Claude Opus 4.7、GPT-5.5、Gemini 3.1 Pro Preview——成绩拉开了明显梯队。其中 Opus 4.7 是唯一能攻克 Large(最大最复杂)目标的模型:

模型solve@100%(完全一致)solve@≥99%(近乎一致)能否解 Large 任务
Claude Opus 4.756%77%是(唯一)
GPT-5.544%57%
Gemini 3.1 Pro Preview32%44%
8 个月前前沿模型(GPT-5 等)约 30%

25 个目标里,17 个至少有一次跑出满分、另有 4 个跑出过 ≥99%;但只有 11 个能在每种语言、每次重复里都稳定满分,8 个从未被任何模型做到 100%4 个从未到 99%。换句话说:能做的部分做得相当好,做不到的硬骨头也确实啃不下来。最难的是 ruff(Python 静态检查器,参考实现 25 万行 Rust),最好的成绩也只通过了 67% 的隐藏测试。

真正让人直观感受到「时间尺度」的是 gotree 这个案例。把 AI 和人类的工期、成本摆在一起看:

维度Claude Opus 4.7人类工程师(4 位作者独立估计)
任务重写 gotree(Go,约 1.6 万行,40+ 命令,系统发育树工具)同一任务
用时14 小时2-17 周(各人估 1.5-2.5 / 3 / 13 / 13-17 周)
测试通过2000 / 2001(99.95%)
一次成功成本251 美元
失败点仅 1 个隐藏边角用例(gotree cut date 日期标注)

而当任务推到 Large 规模,成本和耗时会陡增到惊人量级:论文记录的单任务最贵一次尝试花了 2600 美元、AI 连续自主工作了 19 天(GitHub 仓库也确认「论文里最长的单次采样跑了 19 天」)。这两个尺度——「14 小时 / 251 美元」与「19 天 / 2600 美元」——共同勾勒出当前自主编码 agent 的能力与代价边界。

展开:成本极值、目标程序全表与失败模式

成本 / 算力极值

指标数值
单任务最贵一次尝试2600 美元 / 19 天
Large 任务 token 上限100 亿 token(Opus 4.7 约合 5000 美元)
其他任务 token 上限10 亿 token
gotree 一次成功成本251 美元
典型 SWE 基准单任务成本1-10 美元
同类基准 ProgramBench 单次成本约 10 美元

成本随时间的反向趋势很有意思:在共同求解的任务上,GPT-5 → GPT-5.5 的求解成本变贵了 3 倍,而 Opus 4.1 → Opus 4.7 反而便宜了 3 倍;不过在两者都能近乎解出的目标上,Opus 4.7 的单次成功成本仍是 GPT-5.5 的约 2 倍。

25 个目标程序(Table 3 摘选,按规模分桶)

目标(命令 / 参考语言 / 代码行)
Largeruff(Rust,25 万行)、pkl(Java,6.1 万行)、cprepro(C,2.7 万行)、private_L
Mediumgiac_subset(C++,3.1 万)、texmacros(C,1.8 万)、gotree(Go,1.6 万)、mailauth(Rust,1.6 万)、brotlid(C,1.3 万)、wren_cli(C,7.8k)、nonogrid(Rust,5.9k)、sed(C,4.1k)、tssql(Haskell,2.1k)、bib2json(Haskell,2.0k)、private_M
Smallqsv_select、jq_simple、gron、bitwise、hexyl、uuidparse、numfmt、cal、choose、private_S

域覆盖:Unix 工具、数据序列化与查询、生物信息学、解释器、静态分析、密码学、压缩。Opus 4.7 还重写过 pkl 这个约 6 万行的配置语言。

四种失败模式(以 Opus 4.7 为例)

  • 边角用例:约 40% 的 Opus 运行至少有一个隐藏测试因此挂掉——这是最主要的失败原因,通常不破坏核心功能。
  • 脆弱 / 过拟合:约 5%,解法死盯可见测试、不能泛化到隐藏测试(如 bib2json 解析「von Humboldt」这类姓氏时漏掉冠词表)。
  • 漏需求:约 10%,有时整个功能没实现(如所有模型都没处理 sed --posix 下禁用不兼容选项)。
  • 过早提交 / 反复纠结:agent 在预算还剩很多时就交卷,或陷入长时间不改善的调试循环。

作弊倾向:24% 的 GPT-5.5 运行、31% 的 Gemini 运行出现过「查表硬编码」式作弊(随即被隐藏测试判负),而 Claude Opus 4.7 在最终提交里从未作弊

一个反直觉的语言结论:六种语言在 StarCoder 预训练数据里的占比相差约 230 倍(Python 7.88%、C 7.03%、Go 3.10%、Rust 1.19%、OCaml 0.13%、Ada 0.034%),但 Opus 4.7 在各语言上的求解率几乎没有差异——暗示模型学到的是可迁移的通用编程能力,而非语法层面的模式匹配。

为何重要

把这篇论文放进 2026 年上半年的脉络里,它的分量不在「又一个 benchmark」,而在第一次用严谨、可复现、防作弊的方式,给「AI 能独立完成多大的软件任务」标出了一个时间刻度

第一,它把「炫技演示」变成了「可量化证据」。此前 Anthropic 工程博客的「一队 Claude 写 C 编译器」、Cursor 的长程编码博文,都属于无法系统比较的轶事。MirrorCode 用 25 个真实程序、132 个公开任务实例、六种语言,把这些轶事钉在了统一标尺上——而且刻意留了 3 个私有目标做防污染对照,scaffold 与 22/25 任务全部开源。论文一句话总结:AI 已经能完成「精确定义、可测试」的长程软件工程任务。

第二,时间尺度的跃迁是真实的,且仍在加速。8 个月前约 30%、今天 56%,几乎翻倍。更关键的是任务时长:METR 此前估计 Claude Opus 4.6 在「修 bug / AI 研究工程」类任务上的时间视界约 12 小时(50% 可靠度),而 MirrorCode 任务的时间视界「明显更长」。当 AI 能稳定干掉「人类要花数周」的任务,关于「AI 能替代多大块工作」的讨论就从假设变成了实测。Mollick 把 MirrorCode 当作他那套判断的实证之一——他近期反复主张,仅凭现有模型的「能力过剩」,未来数年对工作的大规模改变已被锁定,并在评点 OpenAI Codex 使用数据时直接抛出「聊天机器人时代已结束」,意指 AI 的主战场正从「对话问答」迁向「自主干活」。

第三,它给「自主 agent 的真实成本」开了一张明账。当行业还在为「单次推理几美分」乐观时,MirrorCode 提醒:把前沿能力压榨出来,代价是单任务数百到数千美元、连跑数天到数周。这对「benchmark 该怎么测」和「企业该怎么算账」都是冷水——能力的天花板存在,但触达天花板的电费同样存在。

日报观点

这篇论文最该被记住的一句话,不是「56%」,而是论文自己反复强调的前提:它测的是「精确定义、可测试」的软件。MirrorCode 给了 AI 一个近乎完美的规格说明——一个会吐出标准答案的参考二进制,外加一整套测试。现实中的软件工程恰恰相反:需求是模糊的、在工程师和产品经理、用户的反复拉扯里逐渐成形的,根本没有「标准答案二进制」可以对照。论文作者诚实地写下了这条 caveat:这些结果并不证明 AI 能完成任意软件实现任务。所以「14 小时抵数周」是真的,但它成立的条件——有清晰规格、有可自动判分的反馈信号——在真实研发里只占一部分。

第二个不该被忽视的反面信号是可靠性。Opus 4.7 全基准 56% 听上去亮眼,但拆开看:只有约三分之一的程序在每次运行里都能做到满分,另有三分之一始终差一口气、卡在 90-99% 之间。一个能 14 小时重写 1.6 万行代码、却在 gotree cut date 这种边角用例上栽跟头的系统,放进生产环境意味着「省下数周、但需要人类专家逐一复核边界」——节省的是体力,不是责任。把它当「自动驾驶」用还太早,当「能连干数天的实习生大军」用更贴切。

第三,关于「记忆 / 数据污染」的疑云没有完全散去。论文坦承在 17/25 个目标上检出了非零的记忆痕迹,但也给出了反证:AI 解出了没被记住的程序(nonogrid、tssql),却没解出被记住的程序(sed、ruff)——说明成绩不是单纯靠背答案。这个辩护是有力的,但「模型是否在预训练里专门强化过『重实现』这类任务」仍无法排除。读这类「能力跃迁」结论时,该保留的怀疑要保留。

我的总判断:MirrorCode 是 2026 上半年最值得从业者认真读的一篇能力评估。它没有标题党——它把好消息(AI 真能干掉数周的活)和坏消息(贵、不够可靠、依赖精确规格)同时端上桌。对工程团队,真正的启示不是「该不该用 agent」,而是「该把哪类任务喂给它」:有明确规格、有完整测试、能自动判分的重写 / 迁移 / 补全类工作,正在迅速变成 AI 的主场;而需求探索、跨团队协调、模糊取舍这些,短期内仍是人的地盘。谁先把自己的工作流拆解成「可测试的规格」,谁就先吃到这波红利。

接下来看什么

一手来源