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.7 | 56% | 77% | 是(唯一) |
| GPT-5.5 | 44% | 57% | 否 |
| Gemini 3.1 Pro Preview | 32% | 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 摘选,按规模分桶)
| 桶 | 目标(命令 / 参考语言 / 代码行) |
|---|---|
| Large | ruff(Rust,25 万行)、pkl(Java,6.1 万行)、cprepro(C,2.7 万行)、private_L |
| Medium | giac_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 |
| Small | qsv_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 的主场;而需求探索、跨团队协调、模糊取舍这些,短期内仍是人的地盘。谁先把自己的工作流拆解成「可测试的规格」,谁就先吃到这波红利。
接下来看什么
- 排行榜更新节奏:Epoch AI 已上线 epoch.ai/MirrorCode 排行榜并计划用「M、L 桶 + 私有目标 + 单语言」配置定期跑分。盯住下一代模型(传闻中的 Opus 4.8 / GPT-5.6 系列)能否把 56% 推到 70%+、能否攻下那 8 个「从未满分」的硬目标。
- 成本曲线:Opus 4.1 → 4.7 求解成本降了 3 倍。如果「能力上升 + 单位成本下降」继续同步,数千美元的 Large 任务会多快跌进「日常可负担」区间,直接决定这件事的商业化速度。
- 可靠性而非平均分:比「平均 56%」更值得追踪的,是「每次运行都满分」的目标比例能否从约 1/3 往上走——这才是 agent 能否进生产的真门槛。
- 向模糊需求的迁移:MirrorCode 的天花板是「精确规格」。下一个值得关注的基准,是有人能否在「需求不完整、要靠交互澄清」的设定下复现类似的长程能力——那才是对真实软件工程更狠的拷问。
- 第三方复现与污染审计:scaffold 和 22/25 任务已开源,留意社区是否会就「记忆 / 污染是否抬高了分数」给出独立的复现与反驳。