FRONTIER · 2026-10-14 · 验收位

整池口径下,复现成功撑不起联合验收

一篇 10 月 13 日的预印本把 12 套编码 Agent 自己生成的测试,回放到 619 个仓库任务上。这 619 条先去掉了容易复现的任务。候选补丁来自编码 Agent 的轨迹,由官方评测打成正确或错误。八个代表配置的联合验收率都低于 10%,最高 9.21%(95% 区间 6.95% 至 11.47%);复现率最高的配置是 68.17%。联合验收按整池计:同一条任务上,错误补丁要全部拦住,正确补丁要全部放过。

1这篇预印本测了什么

2026 年 10 月 13 日,arXiv 收到 SWEPatchTest: Evaluating Software Tests Beyond Reproduction(arXiv:2610.18004v1,cs.SE,作者 Hua Lu、Pengcheng Wang、Han Li、Zichen Tian、Yanyu Chen、Huang He、Bingjin Chen,单位署百度、南京大学、香港中文大学)。

编码 Agent 修仓库问题的时候,会自己写测试,用测试结果决定一个补丁能不能交。现在常见的评法只看一件事:测试在有 bug 的代码上失败,打上参考补丁之后通过。这篇把这件事叫参考识别,指标是 Gold Recognition Rate(GRR)。SWT-Bench 和 TDD-Bench Verified 用的就是这个 fail-to-pass 转换。

过了这一关的测试,还可以做两件相反的事。它可能放过一个官方评测判为错误的补丁,也可能拒掉一个官方评测判为正确的补丁。论文把前者叫规格太弱,把后者叫解法偏见。两种都可以和一次成功的参考转换同时出现。

这篇只论证一个判断。判断是我的,依据是论文表 2。在这个先去掉容易复现任务的 619 条上,八个代表配置的联合验收率都低于 10%,最高 9.21%(95% 区间 6.95% 至 11.47%)。联合验收是论文的整池口径:同一条任务上复现成立,错误池全部拦住,正确池全部放过,平均每条大约 133 个候选。漏一个,这条任务记 0。论文没有只抽「复现已经通过」的任务再算一次。拿这个口径当门禁,复现成功撑不起一条任务被完整验收。

实验设置:

  • 619 个任务,十种语言。从 1,144 条里筛出来:SWE-bench Pro 731 条留 342,SWE-bench Multilingual 300 条留 167,DeepSWE 113 条留 110。筛两道。一道用 LLM 审计官方测试的断言强度,阈值 80 分,再人工复核;一道用一组测试生成配置把「大家都很容易复现」的任务去掉。留下的是复现本身就不轻松的集合,不代表全部仓库任务。
  • 82,579 个候选补丁,标签来自官方评测。补丁从编码 Agent 的轨迹里收集,打上之后重跑该任务的官方评测:通过的进正确池,失败的进错误池。正确 27,749 个,错误 54,830 个,每条任务平均 44.83 个和 88.58 个。参考补丁单独评,不进候选池。同一任务、同一类里,字符 n-gram 的 TF–IDF 余弦相似度达到 0.9 的近重复删掉;一类超过 128 个就用最远点采样留 128 个。
  • 12 个配置,模型带着自己的 Agent。主表列了 8 个:GPT-5.6-sol 用 Codex,Claude Fable 和 Opus 用 Claude Code,Kimi-K3 用 Kimi Code,Qwen3.8-max 用 Qwen Code,GLM-5.3 用 ZCode,两个 DeepSeek-V4 用 OpenHands。比较的是完整配置,含脚手架和推理设置,不是同一个 Agent 换模型。
  • 同一套测试,原样回放。生成的测试装进任务本地的临时目录,不改仓库里已有的文件。同一份测试分别跑在坏代码、打上参考补丁的代码、打上每一个候选补丁的代码上。跑不通、超时、只有基础设施错误的结果,既不算放过也不算拦住,分母照旧保留。

2三个量,只有同时成立才算验收

一条任务上,论文记三个分数,分母都是这一条任务自己的池子。

  • 复现 g。测试在坏代码上失败,并且在参考补丁上通过,记 1,否则 0。619 条上的平均是 GRR。
  • 拦错 w。错误池里,测试稳定失败的补丁占比。619 条上的平均是 Wrong Patch Detection Rate(WDR)。
  • 放过对 c。正确池里,测试全部通过的补丁占比。619 条上的平均是 Correct Patch Acceptance Rate(CAR)。

另外还有「整池」版本。CT-WDR 要求这条任务的每一个错误补丁都被拦住,CT-CAR 要求每一个正确补丁都被放过。十个里错一个,候选级的 WDR 仍然很高,整池版本记 0。

联合验收率(Joint Validation Rate,JVR)比整池更严一档。它要求同一条任务上三件事同时成立:复现了,错误池全拦住,正确池全放过。619 条任务等权,JVR 是这三条同时为 1 的任务占比。候选池在所有配置之间固定。论文写,池子更大或更多样,完整验收会更难。

同一份测试,四个落点;三个指示同时为 1,这条任务才算联合验收 生成的测试套件 不改仓库原有文件 坏代码:必须失败 参考补丁:必须通过 正确池:每一个都通过 平均每条任务 44.83 个 错误池:每一个都失败 平均每条任务 88.58 个 JVR:三条同时成立 619 条任务等权 缺一条,这条任务记 0 只看复现,漏掉的是后两格 GRR 只读第一格。WDR、CAR 是池子内的平均占比,错一个仍然有分。 跑不通、超时、只有基础设施错误:既不算通过也不算失败,分母不减。
图 1. 联合验收的定义。数字来自论文第 2.4 节和第 2.5 节:619 条任务,正确池 27,749,错误池 54,830。

3复现过了,联合验收停在一成以下

表 2 列了 8 个代表配置。百分数都是 619 条任务上的占比。GRR、WDR、CAR 是任务平均;CT-WDR、CT-CAR 是整池都判对的任务占比;JVR 是三件事同时成立的任务占比。

配置GRRWDRCARCT-WDRCT-CARJVR
GPT-5.6-sol + Codex59.29%88.57%50.20%47.66%28.59%9.21%
Claude-Fable-5.1 + Claude Code65.11%83.74%62.19%34.89%30.37%7.92%
Claude-Opus-5 + Claude Code68.17%85.91%66.76%32.47%31.34%7.11%
Kimi-K3 + Kimi Code33.12%80.24%40.64%49.43%22.94%5.98%
Qwen3.8-max + Qwen Code49.60%84.69%61.68%32.47%30.21%5.17%
DeepSeek-V4-Pro + OpenHands36.03%82.53%49.36%36.35%27.95%4.52%
DeepSeek-V4-Flash + OpenHands29.89%80.53%44.62%40.87%22.94%3.88%
GLM-5.3 + ZCode38.77%85.36%53.55%37.64%25.04%3.72%

复现率最高的是 Claude-Opus-5,68.17%,它的 JVR 点估计是 7.11%。联合验收点估计最高的是 GPT-5.6-sol,9.21%,它自己的复现率是 59.29%。表 8 里 Opus 相对 GPT 的 JVR 差 −2.10 个百分点,95% 区间 −4.36 至 +0.16,含 0;Fable 相对 GPT 是 −1.29,区间 −3.72 至 +0.97,也含 0。精确双侧 McNemar 检验经 Holm 校正之后,p 分别是 0.222 和 0.350。

9.21% 的 95% 区间是 6.95% 至 11.47%,按来源分层、配对的自助法,10,000 次。这个区间只覆盖在已记录的运行和固定候选池上对任务做重抽样,不含测试生成再跑一遍的方差。论文写明,证据能站住的是联合验收整体很低。前三名的名次立不住。八个配置的 JVR 都低于 10%,最高那个的区间上沿是 11.47%。

复现率(蓝)对联合验收率(红),同一 619 条任务 纵轴是任务占比。红条最高 9.21%,95% 区间 6.95% 至 11.47%。 GRR 复现 JVR 联合验收 0 20% 40% 60% 80% GPT Fable Opus Kimi Qwen DS-Pro DS-Flash GLM 蓝条最高:Claude-Opus-5,68.17%。红条最高:GPT-5.6-sol,9.21%。前三名的红条差距不显著。
图 2. 表 2 的 GRR 与 JVR。蓝条最高是 Claude-Opus-5 的 68.17%,红条最高是 GPT-5.6-sol 的 9.21%。前三名红条的差距,区间含 0。

三个来源上的数字差得很大,比的是不同题目子集,不是同一批题的重复跑。GPT-5.6-sol 在 Multilingual 的 167 条上 JVR 16.17%,WDR 82.57%,CAR 79.19%;在 DeepSWE 的 110 条上 JVR 是 2.73%,WDR 96.82%,CAR 34.26%。Pro 的 342 条上,JVR 最高的换成 Claude-Fable-5,8.77%。筛选后的保留率也不同:Pro 46.8%(342/731),Multilingual 55.7%(167/300),DeepSWE 97.3%(110/113),难度筛选对 DeepSWE 几乎没去掉任务。论文没有把来源之间的差距归因到轨迹长度。

4拦错补丁和放过对补丁是两件事

GPT-5.6-sol 的 WDR 是 8 个配置里最高的,88.57%,CAR 只有 50.20%。整池版本把两边再拉开:CT-WDR 47.66%,CT-CAR 28.59%。论文举的例子是,十条错误补丁拦住九条,这条任务的 WDR 仍然高,CT-WDR 记 0,因为漏掉的那一条会从这套测试里穿过去。

Kimi-K3 的 CT-WDR 是表里最高的,49.43%,JVR 只有 5.98%。整池都拦住,和联合验收不是一回事:它的复现率只有 33.12%,CAR 只有 40.64%。

12 个配置里,论文点名 Claude Opus 4.8 更平衡,WDR 74.12%,CAR 76.47%,JVR 5.49%。这一组不在表 2 的八行里,数字出自第 3.1 节对图 1 的描述。拿它和表 2 八行比,是我做的:WDR 74.12% 低于八行里最低的 80.24%(Kimi-K3),CAR 76.47% 高于八行里最高的 66.76%(Claude-Opus-5),JVR 5.49% 落在八行的 3.72% 到 9.21% 之间。论文没有做这个比较。

论文的读法是:单独优化拦住错误补丁,确立不了可靠的验收。拦错有用的前提,是同一条任务上正确补丁也过得去。

5一条过了复现、两边都判错的测试

论文拿 SWE-bench Multilingual 里的 Caddy 实例 4774 做例子。GPT-5.6-sol 用 Codex 生成的测试,在坏代码上失败,在参考补丁上通过。问题是服务器用 default_bind 配多个 IPv4 和 IPv6 地址时,解析到第二个地址就失败,起不来。要求的修复要支持这个全局设置,同时允许单个站点覆盖它。

这套测试放过了官方标签为错误的补丁 #65,拒掉了官方标签为正确的补丁 #13。它比较地址时忽略顺序,官方测试会检查顺序。它又要求空的 default_bind 必须报错,问题和官方评测都没有这个条件。两条都和「参考补丁能通过」相容。在这条任务的池子上,它拦住 66.2% 的错误补丁,放过 49.1% 的正确补丁,联合验收失败。

论文写,单条分歧仍然要回到问题要求和官方测试的覆盖范围才能解释。66.2% 和 49.1% 是这一条任务的池子内占比,论文没有把它当成 619 条上的发生率。

6训练侧的数字不改变上面的判断

论文还用判别分数挑了微调数据。这一节只划边界:这些数字没有把联合验收补到能当门禁的水平,显著性也不是两种挑法之间的比较。基座是 Qwen3-30B-A3B-Instruct,轨迹由 DeepSeek-V4-Flash 生成,训五个 epoch,评测用 OpenHands。修复轨迹 19 亿 token。两种挑选各加 20 亿 token,轨迹池大约 20,000 个问题环境,仓库和评测集不相交。下表的 F1 是 WDR 与 CAR 的调和平均。

配置JVR相对只训修复F1Verified AVG@4
只训修复轨迹1.29%—22.79%67.53%
+ 按 GRR 挑的 20 亿 token2.26%+0.97 个百分点50.39%69.47%
+ 按 WDR、CAR、JVR 挑的 20 亿 token3.23%+1.94 个百分点56.45%70.24%
+ 同一标准再加 20 亿,共 40 亿3.88%+2.59 个百分点60.18%71.84%

同样 20 亿 token,按判别分数挑的 JVR 是 3.23%,按复现挑的是 2.26%。论文给的显著性检验是对「只训修复轨迹」的比较,不是这两种挑法之间的比较:按判别挑的 JVR 增量,95% 区间 0.81 至 3.23 个百分点,McNemar 经 Holm 校正 p = 0.008;按复现挑的那一档 p = 0.146,不显著。扩到 40 亿 token 之后 JVR 到 3.88%,区间 1.29 至 4.04 个百分点。这一档同时改了数据量和环境池,论文写明挑法和规模的贡献拆不开。

论文说的「大约三倍」,是 3.88% 对 1.29%,同一个 619 条的分母。三倍之后仍然是 3.88%。下游修复用 AVG@4,四个回合的平均解决率:扩到 40 亿之后,Verified、Multilingual、Pro 分别是 71.84%、63.30%、50.70%,相对只训修复轨迹高 4.31、8.22、4.14 个百分点。这个增量对照的是没有额外测试生成 token 的那一档,论文没有给同样 token 预算的下游对照。三个基准的分母论文没有在这篇里写出,不能和 SWEPatchTest 的 619 放在一起比。微调模型是另一个基座、另一个 Agent,不能和表 2 的 9.21% 比高低。

7对照你的验收位

如果你的编码 Agent 用自己写的测试决定一个补丁交不交,把下面三件事对一下。

  • 门禁现在读的是哪一格。只要求坏代码失败、参考解或上一版通过,对应的是 GRR。这篇里 GRR 最高 68.17% 的配置,JVR 是 7.11%。参考解通过,挡不住测试去查一个问题没要求的条件。
  • 有没有一份正确补丁的池子。只有错误补丁或变异体时,优化目标会滑向 WDR。GPT-5.6-sol 的 WDR 是 88.57%,CAR 是 50.20%,后者含未决执行。没被放过的那部分,论文没有拆成「被拒」和「跑不通」。正确池要来自官方评测通过的不同实现,近重复删掉之后仍然要留。这篇的正确池平均每条任务 44.83 个。
  • 汇报时用整池,不用池内平均。WDR、CAR 是一条任务内的占比再对 619 条取平均。十个错补丁漏一个,平均数还是高的,漏掉的那个会过门禁。CT-WDR、CT-CAR、JVR 把「漏一个」记成这条任务失败。

做不到第三件,至少把正确池和错误池分开记,不要合成一个通过率。论文没有算过合成通过率。按表 9 的拆分,DeepSWE 这 110 条上 WDR 96.82%、CAR 34.26% 会同时出现,JVR 是 2.73%。作者写 DeepSWE 的正确池更薄,这个 2.73% 不要单独拿出去用。

8这篇撑不起什么

  • 撑不起「官方评测就是语义正确」。候选标签来自官方评测的通过与否。作者写了,这是可操作的正确,不是语义正确的形式保证。生成的测试可以去查官方评测没覆盖的行为。Caddy 那条就是。
  • 撑不起「换任何池子都是 9%」。JVR 只在放出的候选池上计算,不覆盖所有可能的补丁。82,579 个补丁是观察到的尝试,文本去重不等于语义多样。池子更大,联合验收更难,方向作者写了,幅度没有测。
  • 撑不起「所有仓库任务都这样」。619 条先去掉了官方测试弱的,再去掉了现有配置很容易复现的。难度筛选用的模型族和最终受测的模型族有重叠。这是一个偏难的集合。
  • 撑不起前三名的名次。9.21%、7.92%、7.11% 的差距,校正后的 McNemar 不显著,差值的区间含 0。能说的是八个配置的 JVR 都低于 10%,最高那个的区间上沿是 11.47%。
  • 未决执行留在分母里。超时、缺输出、适用性失败会压低固定分母上的分数,即使没有评到行为断言。CAR 里没被放过的部分,不等于被拒绝。一条任务大约 45 个正确补丁,其中一个超时,这条的 c 到不了 1,JVR 记 0。
  • 区间不含再跑一遍测试生成。自助法量的是任务抽样,条件是已记录的运行和当时的候选池。论文结论节写了这一点。
  • 撑不起「换个挑法就能把门禁补上」。按判别分数挑训练数据,JVR 从 1.29% 到 3.23% 再到 3.88%。后一档改了数据量。显著性是对只训修复轨迹,不是两种挑法之间。微调模型是另一个基座、另一个 Agent,不能和表 2 的 9.21% 比高低。
  • DeepSWE 的正确池更薄。作者点名这一来源对「放过正确补丁」的结论约束更强。2.73% 不要单独拿出去用。

9出处与未覆盖

数字和口径来自这篇预印本:arXiv:2610.18004v1,HTML 版 arxiv.org/html/2610.18004。表 2 的八行、表 3 的四行、表 9 的三个来源、第 2.4 节的池子规模、第 3.1 节的区间和 p 值、第 5 节与附录 G 的局限,都按原文抄。9.21%、16.17%、2.73%、8.77% 与 57/619、27/167、3/110、30/342 一致,正文用论文报告的百分数。

同一判断不重复已有的 Frontier。10-10 讲的是技能库改写之后,原本稳定的任务有没有变差,分母是技能覆盖的任务。10-12 讲的是选动作的成本要按每个成功交付算。这篇的门禁在测试套件,不在技能条目,也不在动作单价。

谱系和增量层分别在 递归自改进前世今生 和 冻底座、改脚手架。这篇只加一条:生成测试若只按复现来验收补丁,验收器本身没有就位。

今日未覆盖:X、Reddit,没有登录态。另外四处看过,没有进入这篇的论证。OpenAI 新闻页直接请求返回 403,经 r.jina.ai 于 2026-10-14 抓到的列表里,最近条目止于 10 月 8 日的安全通报。Anthropic 工程文标注 Published Oct 13, 2026,讲单仓库从 git 迁到自建版本控制。GitHub 当日 Trending和 Product Hunt 10 月 14 日榜没有可用的对照实验。