# 基准测试拿了 87%，却依然无法演进你的代码库

标题写着 AI「解决了 87% 的 SWE-bench」，所有人都理解成「AI 现在能做软件工程了」。这里有两个问题。小问题：约三分之一的通过要么泄露了答案，要么测试太弱。致命问题：基准测试衡量的是一次孤立的 bug 修复，而不是真正的工作——在数周内演进一个活的代码库。一旦真正去衡量这件事，同样的模型会从约 73% 跌到约 25%。基准测试是 demo，你的代码库才是生产环境。

- **Author:** Fedor Chishchin
- **Published:** 2026-06-04
- **Tags:** eval, agents, methodology
- **Source:** https://fedorthinks.com/zh/blog/benchmark-is-not-the-job

---

你一定见过这个标题：AI 编程 agent 如今能「解决」80–90% 的 SWE-bench——这是修复真实 GitHub issue 的标准基准测试（benchmark）。2023 年这个数字还只有约 4%。这种进步确实惊人，最自然的解读就是「AI 现在能做软件工程了」。

这种解读是错的，先是错在一个小地方，然后错在一个致命的地方，而这两者之间的差距，正是理解编程 agent 真实水平最重要的事情之一。

## 小问题：基准测试在泄露

先从那个不那么光鲜的注意事项说起。SWE-bench 并不像那个数字显示的那么干净。一次细致的审计发现，[**约三分之一**的「成功」补丁中，解法已经泄露进了模型的训练数据里，还有另外约三分之一之所以能通过，是因为测试用例太弱，抓不住一个错误的修复](https://www.codeant.ai/blogs/swe-bench-scores)。许多 GitHub issue 是在模型训练截止日期*之前*提交并修复的，所以模型可能在训练时就直接见过答案。当研究者构建了一个抗污染的版本——SWE-Bench Pro——分数[跌破了 25%](https://arxiv.org/html/2509.16941v1)，GPT-5 以 23.3% 居首。所以那个亮眼的 87% 中，有一部分是记忆，而不是能力。

这值得知道，但它不是真正的故事。即便是一个完全干净的基准测试，在这里也会误导你——问题在于它衡量的是什么。

## 致命问题：基准测试不是真正的工作

SWE-bench 给 agent 一个孤立的 GitHub issue，附带一个已知的修复，以及一个用来确认问题是否解决的测试。想想看，这和你真正的工作有多不像。真正的软件工程不是一串答案近在咫尺、自成一体的谜题。它是在数周内演进一个活的代码库——解读一个含糊的需求，把一处改动协调到几十个文件中，保住一切已经能跑的东西，还要在过程中和评审者就各种权衡争论一番。

基准测试自己的作者对此说得很清楚。SWE-bench 衡量的是在孤立、单一 issue 场景下的补丁级正确性；它[并不衡量 agent 维持一条连贯的、跨越数周的开发主线的能力，不衡量它与人类评审者协作、管理相互竞争的产品优先级、或就一个技术决策的业务影响进行推理的能力](https://www.programming-helper.com/tech/swe-bench-coding-agent-benchmarks-2026-software-engineering-ai-evaluation)。再读一遍这份清单——它几乎就是这份工作的全部内容。

## 当你去衡量真正那件事时会发生什么

2025 年末，研究者构建了一个恰好针对那块缺失部分的基准测试：**SWE-EVO**，它测试长周期（long-horizon）的*软件演进*——平均跨越 [21 个文件、并用约 874 个测试逐任务校验](https://arxiv.org/html/2512.18470v5)的多步改动。结果残酷而清晰。一个在 **SWE-bench Verified 上约拿 73% 的模型配置，在 SWE-EVO 上只拿到约 25%。** 同样的模型，同样的智能——分数不是小跌，而是从悬崖上掉下去，因为在许多文件间协调持续的改动，是一种和孤立地给单个文件打补丁根本不同、也更难的技能。这正是我在[《一个 agent 包揽一切》](/blog/one-agent-that-does-everything)里写过的那堵墙：让模型一次性把一个真实系统的足够多内容装进上下文，它就开始溺水。

## 这个模式你早就懂了

基准测试是一个精心挑选、答案可达的任务。你的代码库是一个没有标准答案的移动靶。把一个高基准测试分数读成「能做这份工作」，和相信一个打磨光鲜的 demo 是一模一样的错误——这个论点我[此前也讲过](/blog/agents-never-reach-production)：demo 证明的是 agent 在某人为它选定的条件下*能*成功一次。而生产环境——一个真实的代码库就是生产环境——问的是它能否在没人精心筛选过的工作上*持续*成功。SWE-bench 是那个 demo，SWE-EVO 是对这份工作的一瞥。

## 诚实的解读

这并不是说「AI 编程是假的」。从 4% 走到在孤立 issue 解决上真正强大，这是真实的；一个能可靠修复自成一体 bug 的 agent，是我每天都在用的真实杠杆。错误在于把排行榜读成「能取代一名软件工程师」的尺度。因为让一个人*成为*软件工程师的，恰恰是基准测试略去的那个长周期（long-horizon）部分：把意图带过数周，把改动协调贯穿整个系统，并且不弄坏那二十个没人让你碰的文件。那才是工作。基准测试衡量的是热身。

所以当下一条「AI 在 SWE-bench 上达到 90%」的标题出现时，问那个唯一重要的问题：90% 的*什么*？一个答案就在旁边的精选 issue，不是你周二的日常。在基准测试能够衡量「在数周内演进一个真实代码库而不把它弄坏」之前，那个分数衡量的就是 demo——而你早就知道，demo 从来都不是这份工作。
