2026年6月4日
基准测试拿了 87%,却依然无法演进你的代码库
标题写着 AI「解决了 87% 的 SWE-bench」,所有人都理解成「AI 现在能做软件工程了」。这里有两个问题。小问题:约三分之一的通过要么泄露了答案,要么测试太弱。致命问题:基准测试衡量的是一次孤立的 bug 修复,而不是真正的工作——在数周内演进一个活的代码库。一旦真正去衡量这件事,同样的模型会从约 73% 跌到约 25%。基准测试是 demo,你的代码库才是生产环境。
你一定见过这个标题:AI 编程 agent 如今能「解决」80–90% 的 SWE-bench——这是修复真实 GitHub issue 的标准基准测试(benchmark)。2023 年这个数字还只有约 4%。这种进步确实惊人,最自然的解读就是「AI 现在能做软件工程了」。
这种解读是错的,先是错在一个小地方,然后错在一个致命的地方,而这两者之间的差距,正是理解编程 agent 真实水平最重要的事情之一。
小问题:基准测试在泄露
先从那个不那么光鲜的注意事项说起。SWE-bench 并不像那个数字显示的那么干净。一次细致的审计发现,约三分之一的「成功」补丁中,解法已经泄露进了模型的训练数据里,还有另外约三分之一之所以能通过,是因为测试用例太弱,抓不住一个错误的修复。许多 GitHub issue 是在模型训练截止日期之前提交并修复的,所以模型可能在训练时就直接见过答案。当研究者构建了一个抗污染的版本——SWE-Bench Pro——分数跌破了 25%,GPT-5 以 23.3% 居首。所以那个亮眼的 87% 中,有一部分是记忆,而不是能力。
这值得知道,但它不是真正的故事。即便是一个完全干净的基准测试,在这里也会误导你——问题在于它衡量的是什么。
致命问题:基准测试不是真正的工作
SWE-bench 给 agent 一个孤立的 GitHub issue,附带一个已知的修复,以及一个用来确认问题是否解决的测试。想想看,这和你真正的工作有多不像。真正的软件工程不是一串答案近在咫尺、自成一体的谜题。它是在数周内演进一个活的代码库——解读一个含糊的需求,把一处改动协调到几十个文件中,保住一切已经能跑的东西,还要在过程中和评审者就各种权衡争论一番。
基准测试自己的作者对此说得很清楚。SWE-bench 衡量的是在孤立、单一 issue 场景下的补丁级正确性;它并不衡量 agent 维持一条连贯的、跨越数周的开发主线的能力,不衡量它与人类评审者协作、管理相互竞争的产品优先级、或就一个技术决策的业务影响进行推理的能力。再读一遍这份清单——它几乎就是这份工作的全部内容。
当你去衡量真正那件事时会发生什么
2025 年末,研究者构建了一个恰好针对那块缺失部分的基准测试:SWE-EVO,它测试长周期(long-horizon)的软件演进——平均跨越 21 个文件、并用约 874 个测试逐任务校验的多步改动。结果残酷而清晰。一个在 SWE-bench Verified 上约拿 73% 的模型配置,在 SWE-EVO 上只拿到约 25%。 同样的模型,同样的智能——分数不是小跌,而是从悬崖上掉下去,因为在许多文件间协调持续的改动,是一种和孤立地给单个文件打补丁根本不同、也更难的技能。这正是我在《一个 agent 包揽一切》里写过的那堵墙:让模型一次性把一个真实系统的足够多内容装进上下文,它就开始溺水。
这个模式你早就懂了
基准测试是一个精心挑选、答案可达的任务。你的代码库是一个没有标准答案的移动靶。把一个高基准测试分数读成「能做这份工作」,和相信一个打磨光鲜的 demo 是一模一样的错误——这个论点我此前也讲过:demo 证明的是 agent 在某人为它选定的条件下能成功一次。而生产环境——一个真实的代码库就是生产环境——问的是它能否在没人精心筛选过的工作上持续成功。SWE-bench 是那个 demo,SWE-EVO 是对这份工作的一瞥。
诚实的解读
这并不是说「AI 编程是假的」。从 4% 走到在孤立 issue 解决上真正强大,这是真实的;一个能可靠修复自成一体 bug 的 agent,是我每天都在用的真实杠杆。错误在于把排行榜读成「能取代一名软件工程师」的尺度。因为让一个人成为软件工程师的,恰恰是基准测试略去的那个长周期(long-horizon)部分:把意图带过数周,把改动协调贯穿整个系统,并且不弄坏那二十个没人让你碰的文件。那才是工作。基准测试衡量的是热身。
所以当下一条「AI 在 SWE-bench 上达到 90%」的标题出现时,问那个唯一重要的问题:90% 的什么?一个答案就在旁边的精选 issue,不是你周二的日常。在基准测试能够衡量「在数周内演进一个真实代码库而不把它弄坏」之前,那个分数衡量的就是 demo——而你早就知道,demo 从来都不是这份工作。
评论
暂无评论
登录以参与讨论。
做第一个分享想法的人。