从 96% 到 41.2%:SWE-Bench ProMax 撕开代码智能的榜单滤镜,也标出了下一站

当 Claude Opus 5 在 SWE-bench Verified 刷到 96% 的饱和线,8 月 10 日上线的 SWE-Bench ProMax 用 170 道多文件重构题把最强模型打回 41.2% 的真实水位——同一篇论文还坐实了近 60% 废题率和逐字复现 gold patch 的污染证据。代码智能的下半场,胜负手从「做题」转向了「从失败里长本事」。

深度解析 已修订 代码智能 SWE-Bench 代码重构 Coding Agent 评测基准 强化学习

引言

七月,Anthropic 用 Claude Opus 5 把 SWE-bench Verified 推到了 96.0%——一个几乎顶到天花板的数字。这个行业标杆基准,从 2023 年 10 月诞生起用了两年多爬到 60%,而过去半年它被人用更快的速度推到 88%、95%、96%,眼看着就要彻底饱和。

八月,有人递来一把更硬的尺子。

8 月 10 日,COLM 2026 接收论文 SWE-Bench ProMax(arXiv:2608.09802)上线。同样是「SWE」开头,它测的东西却完全不是一回事:不再是单文件 bug 修复,而是横跨 Python、Java、TypeScript、Go、C、C++、Rust 七种语言的大规模多文件重构。结果堪称一记响亮的耳光——最强的模型只解决了 41.2% 的题目。

96% 和 41.2% 之间那 55 个百分点的落差,不是哪个模型变笨了,而是尺子变了。这背后藏着代码智能在 2026 年 8 月最值得正视的三个事实:榜单早已失真、scaffold 才是隐藏变量、而真正的增长点正在从「做题」转向「从失败里长本事」。

一把抗饱和的尺子是怎么造出来的

要理解 ProMax 为什么能戳破泡沫,得先看它到底解决了什么。

过去两年,SWE-bench Verified 的「膨胀」有两个公开的秘密。第一个是测试缺陷:ProMax 论文里埋了一个足以让所有人重新读榜单的发现——在 SWE-bench Verified 中无人能解的题目里,近 60% 含有坏测试。不是难题,而是「过窄」的测试(把正确解法也判错)或「过宽」的测试(检查了题目根本没写的要求)。当模型在这种题上失败,它失败的不是软件工程,而是在猜一个坏测试到底想要什么。

第二个秘密更致命:前沿模型能逐字复现 gold patch。它们见过这些答案——因为答案就藏在训练数据里。于是这个基准的天花板部分是记忆,地板部分是噪声,而中间那一小段,恰恰是各家过去两年拼命刷榜、反复发布百分点的「竞技场」。

ProMax 的整个设计,就是冲着这两个病灶去的。由 Yuling Shi 牵头的 15 人团队,走了一条三阶段策展的路子:先从高星 GitHub 仓库的真实重构 commit 里自动挖掘候选;再用 Docker 环境验证 gold patch 能通过自己的测试套件;最后是关键的专家阶段——逐题重写 issue 描述,确保每条描述都是 gold patch 的充要条件,同时人工剔除过窄和过宽的测试。

为什么是「重构」而不是「修 bug」?因为重构没有规范解。修一个 bug,通常存在一个「标准 diff」可以被模型记住;而一次跨 11.4 个文件、改动 261.6 行代码的行为保持性重构,没有唯一正确答案。这直接掐死了「逐字复现 gold patch」这条捷径——题目的设计本身就自带抗污染属性。

最终产出的 170 道题,平均每道要动 11.4 个文件、改 261.6 行代码,远超现有任何基准的规模。换句话说,ProMax 不是又一个会被一年内刷穿的榜单,而是一把被刻意设计成「长时间不饱和」的尺子。

41.2% 背后,藏着三个更冷的数字

如果只看 41.2% 这个头条,会漏掉论文里真正有信息量的三个细节。

第一,scaffold 的差距,比模型换代还大。 Claude Sonnet 4.6 在换了一个 agent 脚手架后,从 30.6% 跳到 38.8%;GPT-5.2 更是从 21.8% 一路拉到 41.2%——整整 19.4 个百分点的提升,全部来自「换壳」而非「换脑」。这个数据几乎是在明说:在重构这类长程任务上,模型选择与脚手架选择不是两个可分离的变量,harness、工具、执行环境把 resolve rate 推高或拉低十到二十个百分点,是常态而非异常。

第二,开源模型没有被甩开,但也没领跑。 GLM-5(OpenHands 下 36.5%)和 Qwen3.5(36.5%)紧随 Sonnet 4.6(38.8%)之后,说明开放权重的头部选手在「真实重构」这项能力上和闭源旗舰的差距,远没有 SWE-bench Verified 榜单上显示的那么大。换句话说,过去那些 80% 对 60% 的榜单差距,有一大块其实是「记忆能力」的差距,而不是「工程能力」的差距。

第三,能力随语言剧烈波动。 所有模型在 C 重构题上的表现都明显好于 Go 和 TypeScript。这说明当前 coding agent 的跨语言重构能力并不均匀——它们不是掌握了「重构」这个通用技能,而是各自在某些语言的数据分布上练得更熟。对一个号称要接管真实代码库的 agent 来说,这种「偏科」比整体分数低更值得警惕。

还有一个不容忽视的经济学事实:成本与能力并不干净地正相关。Sonnet 4.6 在 OpenHands 下是论文中测过最贵的配置(平均每实例约 4.77 美元),而 GLM-5 用其零头就达到了相近的 resolve rate。当「多文件重构」成为真实生产负载,每实例成本的量级开始直接决定一个 agent 到底能不能被规模化部署。

行业的「假天花板」正在被同时拆穿

ProMax 不是孤军奋战。8 月这一轮,代码智能的「榜单滤镜」正从多个方向被同时撕开。

7 月 24 日,Anthropic 发布 Claude Opus 5,SWE-bench Verified 96.0%、SWE-bench Pro 79.2%,价格却维持 Opus 4.8 的 5/25 美元档位不变,1M 上下文,五档 effort 可调。这几乎是教科书级的「平价升级」,也是 Anthropic 少有的「不加代际税」操作。但如果只看 96% 这个数字,你大概率会高估它——因为就在它登顶的同时,ProMax 用 41.2% 告诉我们:这个 96% 测的,是模型在一个「半记忆、半噪声」的基准上有多熟练,而不是它重构真实代码库有多靠谱。

更早的 7 月,OpenAI 审计 SWE-bench Pro 发现约 30% 废题;现在 ProMax 又把 SWE-bench Verified 的废题率坐实到近 60%。这三件事连起来看,指向同一个结论:过去两年所有基于 SWE-bench 系列的「百分之 X」宣传,可信度都要打个对折。 上一篇文章里我们说过「不自建基准,别信任何一个公开榜单」,ProMax 给的证据比那时更硬。

但「祛魅」不等于「悲观」。恰恰相反,当记忆和噪声被剔除后,剩下的那 41.2% 才是真实能力的基线,而它背后的改进空间,也正是下一个阶段的机会所在。

下半场:把「失败」变成燃料

ProMax 论文里记录了一个极有信号价值的失败模式:agent 失败时,主导原因是「重构不完整」——改的文件比 gold patch 要求的少,并且会消耗更多交互轮次。 也就是说,模型的瓶颈不在「不会改」,而在「改不全、坚持不到最后」。

这恰恰和 8 月另一波工作形成了呼应。

FailForge(arXiv:2608.08570,8 月 9 日上线)直指 RFT(拒绝采样微调)的一个根本浪费:标准 RFT 只保留「通过测试」的成功轨迹,把失败样本直接丢弃——而这些被丢掉的,恰恰是最难、信息量最大的那部分。FailForge 的做法是让 agent 从错误反馈和执行轨迹里诊断失败原因,把诊断蒸馏成一条可执行的「技能」,注入上下文做第二次引导尝试;成功者再回填进 RFT 语料。关键设计在于训练时把技能移除,让模型真正内化行为,而不是在推理时依赖外部提示。结果是:以边际成本回收了超过 26% 的此前失败实例,在 Qwen3.5-4B 上相对强 RFT 基线把 SWE-bench Verified 又推高 6.6 个百分点,且增益集中在最难的题上。

同一周,南京理工大学的 Hao Zhou 等人上线了 Self-Evolving Coding Agents 综述(arXiv:2608.03392,2026-08-04),把「自进化编码智能体」这一交叉方向做了系统梳理——进化对象可以是记忆、技能、工具、模型甚至协作结构。配套的 GSE(arXiv:2608.06153)则提出「全局技能进化」,用技能关系图 + 聚类整合 + 回放验证来解决技能进化的过拟合与泛化问题,在 OpenHands 和 mini-SWE-agent 上把测试生成任务的精度和召回分别提升 6.1%–34.1% 与 31.8%–180%。还有 Ouroboros(arXiv:2608.08311),一个「核心会自我演化」的 agent harness——工具、prompt、上下文装配都通过被 review 的 commit 持续改进,成为后续工作的运行时;在 Terminal-Bench 2.1 与 OSWorld-Verified 上分别拿下 86.74% 和 90.69%,刷新了这两个长程基准的纪录。

把 ProMax 和这批工作放在一起看,一条清晰的路线图浮现出来:当静态刷榜的路被污染和饱和堵死,增长点正在系统性地转向「从失败中学习」。 失败轨迹不再是废料,而是最贵的训练信号;「改不全」这个 41.2% 背后的头号死因,正可以被 FailForge 式的「失败蒸馏」直接对症下药。

结论:及格线变了,打法也要变

SWE-Bench ProMax 给 2026 年 8 月的代码智能行业标出了三个坐标:

其一,别再用 SWE-bench Verified 的绝对值做采购决策。 96% 测的是单文件 bug 修复的熟练度,不是多文件重构的能力。如果你的真实负载是跨文件、跨语言的行为保持性改动,请直接去看 ProMax 这类重构基准,或者更彻底的——在你自己的代码库上跑回归集。

其二,把 scaffold 当成一等公民来投入。 30.6%→38.8% 的换壳增益说明,harness 和工具链的选择不是一个「部署细节」,而是和模型权重同等重要的能力变量。评估一个 agent 时,「用什么脚手架」和「用哪个模型」必须一起报告、一起决策。

其三,押注「失败蒸馏」这条增长曲线。 RFT 已经走到头——当最强的模型在难题上也反复失败,剩下能榨取的信号恰恰是那些被丢弃的失败。FailForge、GSE、Ouroboros 不约而同地指向同一个方向:下一轮能力的跃迁,不来自更大的模型,而来自更聪明的「从失败里长本事」的闭环。

96% 不是终点,41.2% 也不是耻辱柱。前者是一把用钝了的尺子,后者才是一张真实的地图。而地图上最亮的路线,正通向那个尚未被充分开采的金矿——失败。