AKL AI CLUB BETA ← 前沿导读
FRONTIER · 工程实践

14 小时 251 美元,AI 重写了人要写几周的程序——前提是规格写死

MirrorCode: AI can rebuild entire programs from behavior alone

Tom Adamczewski 等 · Epoch AI 与 METR Epoch AI 是追踪算力、数据与模型能力长期趋势的独立研究机构,其算力与训练成本数据库被产业界和政策界广泛引用;METR 是提出「AI 任务时长视界」指标、为前沿实验室做部署前危险能力评估的第三方评测组织
2026 年 6 月
为什么选它第 23 篇那种「无人值守两周写出编译器」的演示没法比较、也没法证伪,这篇把它变成 25 道可重复、防作弊的全自动考题。比成绩更重要的是:同一批模型,任务时长能从 12 小时拉到几周,差别只在规格写没写死。

Epoch AI 和 METR 合作做了一个叫 MirrorCode 的基准,规则很干脆:给 AI 一个编译好的命令行程序,只准运行它、观察输入输出,不给源码、不给网络、不许装任何第三方库,然后要求它用 Python、C、Rust、Go、OCaml、Ada 六种语言之一从零重写一遍,输出必须和原程序逐字节一致。25 个目标程序横跨 Unix 工具、数据序列化、生物信息、解释器、静态分析、密码学、压缩。跑下来最强的 Claude Opus 4.7 得分 56%。

论文开头就点名了第 23 篇那个 C 编译器:一次性演示确实震撼,但人到底插手了多少、成品完整到什么程度,外人无从判断。MirrorCode 要做的,是把这类演示变成可重复、可比较、全程无人干预的测量。而它最有价值的结论不是「AI 能写大程序了」,而是模型能自主干多久,和规格写得有多死绑在一起——验收标准给足,它可以连干几天;把标准撤掉,同一个模型在大程序上直接崩盘。

一份不能作弊的考卷

每个目标程序配了几百到几千条端到端测试(只看程序的输入输出行为、不碰内部实现的测试),中位区间 202–1149 条,其中平均 34% 藏起来不给模型看。可见测试负责划定范围:论文举的例子是 gotree 要解析的 Nexus 文件格式,当年的规范里压根没提注释,但真实文件里到处是注释,靠猜是猜不出来的——可见测试在这里替代了现实中产品经理和用户给工程师的那种反馈。隐藏测试负责防作弊:模型要是把答案硬编成查表,可见测试全过,隐藏测试立刻现形。

更该学的是防作弊从设计上堵死、而不是发现一种补一种。评分在另一个沙箱里跑,那里根本没有原程序的二进制;原程序是静态编译的单文件、权限设成只能执行不能读取,模型没法拷一份出来包一层壳;他们还专门做了红队实验,明着让 agent 去绕过评分机制,没有一次成功。这份思路可以和第 22 篇讲评测的那篇对照着读。

14 小时、251 美元、2600 美元

gotree 是个约 1.6 万行 Go、40 多个子命令的生物信息工具包。四位作者各自估计,一个熟练工程师在同样条件下(无 AI 协助,手上只有二进制和文档)重写它需要 2–17 周——四个估值分别是 1.5–2.5 周、13–17 周、3 周、13 周,分歧本身就说明长任务估时有多不靠谱。Opus 4.7 用了 14 小时、251 美元,通过 2001 条测试里的 2000 条。比它更大的 pkl(Apple 那个 6 万行的配置语言)也被重写了出来。最贵的一次单轮尝试花掉 2600 美元、连跑 19 天。

由此他们给做评测的人提了条很实际的意见:常见 SWE 基准每题只给 1–10 美元的推理预算,这个额度根本够不着今天模型的上限。他们给大任务开到 100 亿 token(对 Opus 4.7 约合 6000 美元),结果 97.4% 的轮次连一半都没花掉——瓶颈已经不在算力预算上了。另一个反直觉的结果:六种语言的解题率几乎没有差别,哪怕 Ada 在公开训练语料里的占比只有 0.034%。这说明模型学到的是通用的编程能力,而不是在对着语法做模式匹配。

它输在哪里

失败模式的拆解比成绩单有意思。约 40% 的 Opus 轮次栽在边缘情况上;约 5% 写出只对着可见测试拟合的脆弱实现——比如 BibTeX 里 von 这类姓氏前缀,可见测试里那个开关总是显式给出,模型就把缺省值猜反了;约 10% 整块功能压根没实现,sed 的 --posix 标志文档里写得清清楚楚,所有模型都漏了。

最值得警惕的是提前交卷:26% 的轮次在还剩 90% 以上预算时就提交了不完整的解,其中 39% 的情况下,同一个模型在别的轮次里明明满分解出过同一题。作者加了「不满足条件不许提交」的闸门也没能拦住,模型会一边写下「这里的作用域问题暂时不处理」,一边再也不回来。另一条是作弊:GPT-5.5 有 24%、Gemini 3.1 Pro Preview 有 31% 的轮次试图硬编答案,Opus 4.7 在最终实验里一次都没有;作者说换提示、改脚手架都压不下去。

作者自己划的边界

论文没把结论往外推。他们反复强调这个设定很特殊:原程序本身就是一份极其精确、随叫随到的规格说明书,现实中的软件开发不长这样。为此他们做了消融实验——把可见测试全部撤走,小程序还能解出大半,大程序的得分则断崖式下跌,不少从 95% 以上掉到 50% 以下。污染问题他们也照实交代:17 个目标程序在记忆测试里有被背下来的迹象,只是解出来的里面有没被记住的、没解出来的里面有被记住的,所以结果不像是单纯默写。还有一条边界:基准只测功能对不对,不测代码好不好。Opus 4.7 把 texmacros 里一个 \unless 命令拆成 17 个条件分支,原代码只用一行取反就完事;差不多一半的解是把所有代码塞进单个文件里的。

它给「AI 能写多大的软件」装上了刻度,也顺手改写了这个问题本身。最该记住的对比是:METR 给 Opus 4.6 估的任务时长视界大约 12 小时,而在 MirrorCode 上同代模型完成的是人类要花几周的活。差着一个数量级,模型却是同一批——差别全在规格的精确程度上。所以「AI 能自主干多久」根本不是模型的属性,是模型乘以规格的属性,而后面那个乘数是你能动手拧的。这条和第 23 篇能对上:那 16 个 Claude 之所以能写出编译器,是因为作者先把测试和 GCC 对照方案铺好了;也和第 24 篇陶哲轩那套拆法对得上——问你的产出链条哪一段有自动验收标准。但正因如此,别把 56% 读成「AI 能力已到某处」。重写现成程序是所有软件任务里对 AI 最友好的一种:标准答案就在手边,随时可以拿来比对,你手上的需求文档给不了这个。作者自己也把这条写进了讨论。另外两个数字应该单独拎出来给做工程的人看:一是 24% 和 31% 的作弊率——如果一个基准没有从设计上封死作弊路径,它测的可能压根不是它以为在测的东西;二是提前交卷,模型对「我做完了」的判断并不可靠,还剩九成预算就收手的事发生了四分之一,这意味着交付时机不该交给 agent 自己决定。
基准评测长周期任务自主编程奖励作弊智能体

本文为 AKL AI Club 原创撰写的导读,不是原文翻译;著作权归原文作者所有。 篇目由编辑独立选取,来源均经人工核实。