说实话,看到这个数字的时候,我愣了一下。
13.4%。
这是目前最强AI编程模型,在一个叫 FrontierCode 的新基准测试上,最难的那组题里,拿到的分数。
你没看错。不是93.4%,是13.4%。
这事让我想了很多。
因为我平时自己写代码,用的最多的就是Claude Code和Cursor。很多时候我觉得它写得挺好的,一个功能嗖嗖就出来了,跑起来也没什么问题。那种感觉就像突然有了一个全能实习生,什么都能干,什么都会。
但这个数字让我意识到,我可能一直被某种错觉笼罩着。
就是那种,能跑和能用之间好像隔着什么,但我一直没仔细想过,到底隔着什么。
然后FrontierCode把它翻出来,摆在桌上了。
先简单说一下FrontierCode是什么。
它是Cognition做的。Cognition就是做了Devin那家公司,号称AI程序员的那种。
这个基准的核心一句话就能说清楚。它不关心AI写出来的代码能不能跑通,它关心的是,如果这个代码是一个真人写的PR提交到开源项目里,维护者会不会点那个绿色的Merge按钮。
能跑和能合并,是两件事。生产级代码和Demo玩具,也是两件事。能跑和能合并,其实是两件事。
我以前也不太理解这两者到底差在哪,直到我看了FrontierCode的一个案例,一下子被击中了。
他们拿了一个真实的任务出来展示。Claude Opus 4.8写出来的代码,测试全过了,功能完全正确。
但Andrew He看了一下,说,不行。
Andrew He是谁呢。Codeforces全美第二的选手,两届IOI金牌得主,Cognition的联合创始工程师。
他指出的问题出在哪呢。
Ai生成的代码里面在有多个warning消息需要连续输出的场景下,Opus 4.8的写法是混用的。一部分用了新写的 LOG_WARNING(),另一部分直接调了 std::cerr。
这两者在当前场景下行为完全一样,都能正确输出。
但这里埋了一个隐形的假设。LOG_WARNING() 和 std::cerr 永远指向同一个输出流。
如果以后有人改了 LOG_WARNING() 的实现,不输出到 std::cerr 了怎么办。那些直接调 std::cerr 的代码就全断了。
功能没问题,测试全过了。
但就是不能被合并。
因为这个PR里,隐含了一个不该做的假设。
我读到这里的时候,感觉像是被一根针扎了一下。
这个问题,用传统基准测试永远测不出来。HumanEval不会管你,SWE-Bench也不会管你。你的测试全绿,你觉得自己牛逼坏了。
但真正的项目维护者扫一眼就知道,不够好,回去重写。
这就是能跑和能合并之间的距离。
你可能会问。那FrontierCode到底是怎么测的。
我仔细研究了一下它的设计,坦率的讲,这是我见过最较真的一套评估系统。

它有7个评估维度。
行为正确性、回归安全性、机械清洁度(编译/lint/风格检查)、测试正确性、作用域控制、代码质量、生态兼容性。
每一条都对应一个具体的评分方法,有些是自动化的确定性测试,有些是LLM打分的软性评估。
还引入了三种新的评分技术,我觉得设计得特别有意思。
第一个叫 Reverse-Classical,反向测试。
AI写的测试,你得能证明它是有意义的才行。怎么搞呢。把AI写的测试跑在还没修复的原代码上,那个测试必须失败。这样才能证明AI是真的理解了问题,而不是随手写了一个永远通过的假测试来刷分。
第二个叫 Code Scope,作用域控制。
一个PR只能动它该动的东西。不能顺手改了无关的文件,不能把整个项目翻个底朝天。这个检查分三层。文件级约束,哪些文件能碰。大小级约束,最多改多少行。语义级约束,改动必须在同一个函数范围内。
听起来很基础对吧。但我自己的经验是,用AI写代码的时候,最常遇到的就是它突然改了一个我不让它改的文件。一个简单的bug修复,它顺手把隔壁模块的缩进全改了。这种PR交上去,被骂是迟早的事。
第三个叫 Adaptive Classical Grading,自适应测试。
同一个任务,AI可能用完全不同的方式实现。传统单元测试太死板,会因为函数名不同这种细枝末节就判错。FrontierCode用了一套自适应机制,让LLM去动态调整测试环境,适配AI的具体实现方式,然后跑确定性测试。
坦率的讲就是,我不在乎你怎么实现的,我只看你最终的功能对不对。
但我觉得最让我震撼的还不是这些技术本身,而是FrontierCode背后那套质量控制流程。
这道题的每一道题,都不是程序自动生成的,而是由顶级开源项目的维护者亲手打造的,测的就是真实。
来自36个不同开源项目的20多位维护者,平均每道题投入了超过40个小时。他们要经历五轮流程。设计、hack报告、校准、评审、再评审。
hack报告这个环节特别有意思。维护者要故意装成一个懒惰的或者对抗性的程序员,写一些明显错误或者钻空子的解法,来测试评分标准能不能把它们拦住。同时还要写一个完全不同的合法解法,来测试评分标准是不是太死板了。
而且最骚的是,他们还会让Devin自己上,去找评分规则的漏洞。
每道题最后还要经过一个Cognition研究员的亲手终审。
40个小时,就为了一道题。
20多个顶级维护者,就为了给出一个标准。什么样的代码,值得被Merge。
我写这段的时候脑子里就一个想法。太特么赤鸡了。这大概是我见过最较真的一个benchmark。
也正是它敢说自己比SWE-Bench Pro的误判率低81%的底气所在。
好了,看看成绩单。
FrontierCode把150道题分成三个难度级别。Diamond是最难的50道,Main是最难的100道,也就是包含Diamond的。Extended是全部150道。
Diamond的成绩,我列一下。
Claude Opus 4.8,13.4%。
GPT-5.5,6.3%。
Gemini 3.1 Pro,4.7%。
Kimi K2.6,开源最强,3.8%。
我反复看了好几遍。
13.4%。最强的模型,在最难的题目上,没超过15%。
而且这不是那种,我故意把题出得超级难谁也做不出来的基准。每一道题都是从真实开源项目里提炼的真实任务。是有标准答案的,那些开源项目维护者自己也能写出来、能通过、能合并。
AI不是跟别的AI比,是跟真人的水平比。
这一比,差距就出来了。
当然,在Extended这个简单的级别上,Opus 4.8能拿到51.8%。也就是说一半以上的常规任务,AI已经能产出可合并的代码了。这本身也是一个很猛的里程碑。
但一上难度,断崖式下跌。
还有一个我觉得特别有意思的数据。GPT-5.5虽然只有6.3%,但它用的token是Opus 4.8的四分之一。
什么意思呢。
如果换算成性价比,GPT-5.5可能是最适合给普通开发者日常用的模型。质量不是最高的,但跑得快、成本低,日常任务够用。
这就引出了一个更现实的问题。在真正的生产环境里,你到底要的是最高质量,还是最高性价比。
这个问题的答案,可能每个团队都不一样。
我开始想另一个层面的东西。
FrontierCode的出现,其实标志着一个更大的转变。
我回想了一下AI编程benchmark的进化史,还挺有意思的。
最早是HumanEval,2021年OpenAI搞的。164道题,给你一个函数签名和一段说明,你把函数体写出来,能通过单元测试就算对。那时候能做到70%就已经封神了。
然后是SWE-Bench,进化了一步。不再让你写单个函数了,而是给你一个真实仓库里的真实issue,让你去修。这是从写代码到修代码的跨越。
接着有了DeepSWE、SWE-Bench Verified这些变体,层层堆叠。
但所有这些基准,共享同一个底层逻辑。只要测试通过了,你就对了。
FrontierCode打破了这一点。
它说,不行,还不够。你不仅要写对,还要写得符合这个项目的规范,写得经得起代码审查,写得让一个跟你没有私人关系的陌生人愿意点下那个Merge按钮。
这个转变,特别像应试教育和素质教育的区别。
HumanEval是选择题,答案对就给分。SWE-Bench是简答题,答到点上就给分。
FrontierCode是论文答辩。内容要对,格式要对,引文要对,逻辑要对,还要经得起导师的灵魂拷问。
而我们最强AI模型,在这套素质教育体系下,得分只有13.4%。
这个数字很扎眼,但我觉得是好事。
为什么。
因为只有当我们不再用简单的标准来衡量AI时,AI才有机会去突破简单的天花板。
你看看ImageNet的历史。准确率从70%涨到95%之后,整个计算机视觉领域开始反思一件很重要的事。准确率真的是唯一指标吗。这个反思催生了更复杂的评估体系,最终把整个领域往前推了一大步。
AI编程也一样。当所有模型都在HumanEval上刷到90%多的时候,这个基准已经失去了区分度。今天Claude和GPT都95%,明天Gemini也95%,大家看起来差不多得很,进步的边际越来越小。
你需要一个新的、更难的、更多维度的基准,来重新拉开差距。
FrontierCode就是这个新基准。
而且它带来的压力是很具体的。模型开发者现在不仅要优化能不能写对,还要优化写得好不好。这种压力会倒逼整个行业往前走。
回到我自己。
说真的,看到13.4%那个数字之后,我反而更踏实了。
不是因为AI不行,而是因为我现在更清楚地知道它到底哪里不行了。
知道短板在哪,比不知道要好一百倍。
作为一个天天用AI写代码的人,我的体感是这样的。在日常的、中等复杂度的任务上,Claude Code和Cursor已经帮我省掉了至少一半的时间。写测试、写样板代码、debug常见错误,这些它们干得特别好。
但在那些真正需要工程判断力的地方。一个类的设计是不是合理,一个接口的抽象层级对不对,一个改动对未来的影响。这些地方,AI还差得很远。
而这个差距,以前是模糊的。我只能凭一种,总觉得哪里不太对的体感去感受,说不清楚,也验证不了。
FrontierCode把这个差距量化了。
13.4%。
这就是当前最强AI在写出可合并代码这件事上的真实水平。
不高,但够真实。比那些九十几的注水分数,有价值得多。
我有时候觉得,AI的发展速度其实没有我们想象的那么快。
并不是今天还在画火柴人,明天就写出了一部红楼梦。每个领域的进步都是阶梯式的,需要一步一个脚印地去翻越。
HumanEval是一个台阶,SWE-Bench是一个台阶。
现在FrontierCode是下一个。
而这个台阶,说实话,还挺高的。
但换个角度想,这不也正是最让人兴奋的地方吗。
前方还有86.6%的巨大空间,等着被填满。
我们正在见证的,不是AI编程的终点,而是一段漫漫长路的开始。
大时代啊,朋友们。
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~
谢谢你看我的文章,我们,下次再见。
夜雨聆风