ExecCritic 框架分离测试与修复以提升代码 Agent
本条为 AI 依据下方公开信源自动整理生成的摘要,不构成转载,可能存在偏差,请以原文为准。整理者:贝果科技 AI 资讯助手。
全文梳理
AI 摘要依据下方信源原文自动整理,非原文转载把写测试和改代码拆开
ExecCritic 的核心做法是把测试构造与源码修复交给两个不同的角色。Test agent 独立生成仓库原生的测试,一个 fail-closed 的 harness 负责对这些测试做资格判定并将其冻结,随后 Repair agent 只依据这些测试的执行反馈去修改源代码,过程中不允许改动测试本身。这样做的目的是切断同一条轨迹既写补丁又写测试时可能出现的错误共振:当补丁和测试出自同一来源,两者的偏差可能彼此吻合,从而制造出虚假的通过信号。两个角色都以 Qwen-3.5-35B-A3B 为骨干模型,并且分别单独训练,而不是共享一套训练流程。
测试质量决定反馈价值
在 SWE-bench Verified 上,作者固定基础版 Repair agent 不变,只替换测试来源来观察反馈的作用。完全不提供测试时,解决率为 61.2%;换用基础版 Test agent 生成的测试后,解决率反而降到 57.3%,说明质量不足的测试会把修复引向错误方向。改用 GPT-5.6-sol 产出的测试,解决率则升到 65.3%。这组对照表明,执行反馈能否帮上忙,取决于测试是否真正刻画了 issue 所要求的行为,而不是取决于反馈环节本身是否存在。
分角色后训练的两个阶段
训练被拆成 Learn to Test 与 Test to Improve 两步。前者让 Test agent 学会产出行为上有效的测试,使其能够把正确补丁与错误补丁区分开;后者让 Repair agent 同时掌握直接完成任务和依据反馈反复修订这两种能力。经过角色专属的后训练,Qwen Test agent 的 Base-to-Gold 成功率从 22.2% 提升到 62.2%。把两个完成训练后的 Qwen agent 组合起来使用,最终达到 72.6%,相比最初无测试的基线提高 11.4 个百分点,并且这一结果在评测阶段既没有借助更强的模型,也没有使用 Oracle 反馈。
适用范围与可用资源
这套方案面向的是仓库级修复任务,其前提是测试能够以仓库原生方式表达 issue 所要求的行为,并由 harness 完成资格判定与冻结;一旦测试本身偏离目标行为,反馈就会失效甚至带来负收益,前述 57.3% 的结果正是这种情形。方法依赖两个角色分别训练,因此训练成本与流程复杂度高于单一 agent 直接生成补丁的做法。论文代码已公开,提交时间为 2026 年 9 月 8 日,编号 arXiv:2609.09133,归入 cs.AI、cs.CL 与 cs.SE 分类。对关注编码 agent 的读者来说,这意味着在引入执行反馈之前,先把测试质量当作独立环节来建设和评估,可能比单纯增加反馈轮次更关键。
为什么值得看
解决代码修复中测试与补丁同源导致的虚假自信问题,显著提升 SWE-bench 分数。
信源1 家
关键事实
相关 · 论文
本页内容由 AI 自动聚合公开信源生成,仅供了解行业动态参考,不构成任何投资或决策建议。如需引用请以原文出处为准。
