AI程序员的上限在哪里:MirrorCode基准揭示的编程能力真相

AI程序员的上限在哪里:MirrorCode基准揭示的编程能力真相

Claude Opus 4.7花了14个小时独立重写了16000行Go代码,账单251美元。看到这个结果,我第一反应不是”程序员完了”,而是:等等,这到底说明了什么?

AI程序员的上限在哪里

一个让人有点坐不住的实验

Epoch AI和METR上周发了MirrorCode基准。我觉得这可能是今年下半年最有意思的一个AI编程测试。原因很简单——它直接问了一个大部分人回避的问题:让AI自己干活,它到底能搞定多大的项目?

不是让你写个函数或者修个bug那种小打小闹,而是从头到尾完成一个有实际用途的软件项目。

Claude Opus 4.7在14个小时内重新实现了gotree,一个生物信息学工具包,大约16000行Go代码。从理解原始代码逻辑到编写新实现、编译、调试、跑测试,全部自主完成,花了251美元。说实话这个结果让我有点意外——不是没想到AI能做到,而是没想到这么快就做到了。

Photo by Mohammad Rahmani


MirrorCode到底在测什么

目前的AI编程基准有个共同毛病:太碎。HumanEval让你写个函数,SWE-bench让你修个bug,LiveCodeBench让你刷竞赛题。每个测试单独看都有意义,但你没法从中推断出AI能不能把一个完整项目从头到尾搞定。

MirrorCode的思路不太一样。它选了25个目标程序,涵盖的范围挺杂的:

  1. Unix工具类——catgrep这种经典命令行工具
  2. 数据序列化——JSON、YAML、Protocol Buffers等格式处理
  3. 密码学库——加密解密、哈希算法
  4. 生物信息学——就是前面提到的gotree,基因序列分析工具

每个任务的要求是:给你一个现有开源程序的文档和测试用例,让AI从头写出一个功能等价的实现。不提供源码,只给规格说明。

这种设计的好处在于,它测的不是”AI能不能写代码”,而是”AI能不能持续地、连贯地写代码,并且最终交付一个能用的东西”。


数字背后的真实含义

251美元、14小时、16000行代码。这些数字很抓眼球,但我觉得容易被误读。

先说14小时。这不是说AI坐在那里连续思考了14个小时。实际过程是反反复复的:写一段代码,编译报错,看报错信息,改代码,再编译,跑测试,发现测试不通过,debug,再改。一个资深程序员做同样的事,大概率也会花类似的迭代次数。区别在于AI不需要吃饭、不需要睡觉、不会因为debug到凌晨三点而心态炸裂。

再说16000行。gotree包含25个子程序,16000行Go代码。但说实话,生物信息学工具包的代码逻辑相对规整——大量模式匹配、格式解析、数学计算,不太涉及复杂的业务逻辑或UI交互。换成一个需要大量领域知识的业务系统(比如一个完整的ERP模块),结果可能会很不一样。

251美元是实际API调用的花费。如果按照一个初级开发者的时薪换算,这大概是半天到一天的工钱。但这个比较本身就有问题——你不能用”烧掉251美元API额度”和”雇一个人写14小时”等量齐观。前者是一次性的、可以无限复制的成本,后者涉及人力管理的各种隐性开销。

说实话,我觉得251美元这个数字被过度讨论了。真正有意思的是”14小时”和”16000行”这两个维度——它们刻画的是AI在无人干预情况下的持久性和产出上限。


它做不到的事同样值得注意

MirrorCode报告里没大张旗鼓宣传但很重要的一个信息是:AI在很多任务上失败了。

25个目标程序,Claude Opus 4.7并非全数拿下。有些任务因为代码量太大超出了模型的上下文窗口限制,有些因为涉及到晦涩的系统级编程知识,有些则是因为测试用例设计得太刁钻。

更关键的是,这次测试用的是”标准实验室条件”——干净的Ubuntu环境、明确的需求文档、完备的测试套件。任何一个做过实际项目的人都知道,真实软件开发环境跟这个差了十万八千里:

  • 需求永远是不清晰的,客户自己都说不清要什么
  • 代码库是历史遗留的,充满了”这段代码不知道为什么能跑但别碰”的地雷
  • 你需要跟设计师、产品经理、其他开发者、运维、测试反复沟通
  • 系统集成的时候总有各种文档里没写的坑

MirrorCode测出的是AI编程的上限——在最理想的条件下,它能做到什么程度。这跟实际工作中的日常体验完全是两回事。就好比你在实验室测出一辆车的极速是280km/h,这能说明车的性能不错,但你别指望早高峰堵在五环上它也能跑出这个数字。

Photo by Alex Knight


这对行业意味着什么

我觉得MirrorCode最大的贡献不在于回答”AI能不能替代程序员”——这个问题太大了,一个benchmark回答不了。它的价值在于提供了一个更精确的测量框架。

维度 传统AI编程基准 MirrorCode
任务规模 单函数/单文件 完整项目(数千行)
持续时间 几分钟 数小时到数天
评估标准 测试用例通过率 功能等价的完整实现
交互模式 单轮提示 自主迭代多轮
现实相关性 中等偏高

几个我觉得值得注意的趋势:

  1. AI编程的适用边界正在从”辅助”向”独立执行”移动。 几个月前的讨论还集中在”AI能不能帮程序员写代码”,现在已经是”AI能不能自己写一个完整项目”了。这个转变速度比大多数人预想的快。

  2. 成本门槛在持续降低。 251美元复制16000行代码。半年前做类似的事可能要花五倍的钱。推理成本降得飞快。

  3. 但”最后一英里”问题还在那儿。 AI能把一个规格明确的项目实现得挺好,但现实项目中99%的头疼事都不在代码本身——是需求模糊、环境混乱、跨部门扯皮这些乱七八糟的东西。

  4. 安全边界正在被重新定义。 同一天,OpenAI宣布Astra模型可能达到了”关键”网络攻击能力阈值,澳大利亚报告了首例AI自主网络攻击。AI编程能力的提升不全是好事——当一个能独立写16000行代码的AI开始关注你的服务器时,情况就不太妙了。


我的看法

MirrorCode让我重新思考了一个问题:我们到底应该把AI编程工具当成什么?

过去一年,主流叙事基本是”AI是程序员的副驾驶,帮你写代码效率更高”。MirrorCode的结果暗示这个叙事可能已经不够用了。当AI能在14小时内独立交付一个功能完整的软件项目时,它更像是一个初级开发者——能干活,能出活,但需要有人review、需要有人定义目标、需要在关键决策上把方向。

但这不意味着”所有人都没事”。初级开发者的饭碗确实在变薄。如果你作为一个新入行的程序员,核心竞争力就是”能把需求翻译成代码”——那这个能力正在被快速商品化。

真正难的部分,AI目前确实做不好:

  • 理解业务领域的深层逻辑,做出正确而非”看起来对”的技术决策
  • 在需求冲突时跟各方沟通协调,找到折中方案
  • 对整个系统有全局视角,知道哪里可以妥协哪里必须坚持
  • 对付那些没有文档、没有测试、已经没人敢碰的屎山代码库

这些能力需要经验,需要判断力,需要对人的理解。不是API调用能替代的。

说真的,每次看到这类benchmark结果,我都会想起那句话:代码从来不是困难的部分。这话被很多人当成对程序员的贬低,但我觉得恰恰说反了——代码是困难的一部分,但不是全部,也不是AI最能替代的那部分。真正难的是理解”为什么要写这段代码”以及”这段代码活在什么样的系统中”。


写在最后

MirrorCode开始回答了一个真正重要的问题:AI编程的天花板到底在哪里?答案比”能”或者”不能”复杂得多。

AI已经能独立搞定中等规模的编程项目了,这事在两年前听着还像科幻。但从”独立完成项目”到”在实际工作中持续创造价值”,中间还隔着一大段路。这段路不是靠写更多代码能走通的。它需要理解业务、做出判断、跟人打交道。

程序员这个职业里,大概就是这些部分最不容易被替代。


参考资料: