知识卡片:ExecCritic:让编程智能体“学会测试,并用测试改进修复”
- 英文标题:ExecCritic: Learn to Test, Test to Improve for Coding Agents
- 英文关键词(由标题与摘要概括):coding agents; execution feedback; test-verify-revise; reinforcement learning; repository repair
一句话结论
执行反馈能否帮助编程智能体正确修复代码仓库,取决于测试是否真正捕捉了 issue 所要求的行为;ExecCritic 通过“测试—验证—修改”脚手架,将测试生成与代码修复分离并分别做强化学习训练,在 SWE-bench Verified 上把修复率从无测试基线的 61.2% 提升到 72.6%(+11.4 点);相反,低质量 agent 测试会把基线拉低到 57.3%。
事件概述 / 研究问题
- ExecCritic 面向代码仓库修复场景,核心是让 coding agent 学会利用执行反馈持续改进补丁。
- 研究起点:执行反馈本身不是万能的;只有测试能测出 issue 要求的行为时,反馈才有帮助。
- 关键问题:agent 自己生成的测试可能编码了不完整或错误的行为目标。更危险的是,如果同一个轨迹既写补丁又写测试,两者的错误可能“互相印证”,导致虚假信心。
方法/产品要点
- 核心脚手架:test-verify-revise,即“测试—验证—修改”循环。
- 角色分离:
- Test agent 独立生成 repository-native tests(仓库原生测试);
- fail-closed 的测试执行器(harness)对测试进行资格筛选并冻结,后续不允许修改这些测试;
- Repair agent 根据执行反馈修订源代码,但不能改动测试。
- 分角色强化学习训练:
- Learn to Test:训练 Test agent 生成行为上有效、能区分正确补丁与错误补丁的测试;
- Test to Improve:训练 Repair agent 既学会直接解决任务,也学会根据测试反馈进行修订。
- 两个角色均以 Qwen-3.5-35B-A3B 为 backbone,但分开训练。
- 代码开源:https://github.com/MSR-Orchard/execcritic
主要结果 / 产业意义
- 在 SWE-bench Verified 上,测试质量直接决定执行反馈是否有益:
- 固定 base Repair agent 时,base Test agent 生成的测试将修复率从无测试基线的 61.2% 拉低到 57.3%;
- 而 GPT-5.6-sol 生成的测试能将修复率提高到 65.3%。
- 角色化后训练显著提升测试质量:Qwen Test agent 的 Base-to-Gold 成功率从 22.2% 提升到 62.2%。
- 组合两个 post-trained Qwen agents 后取得 72.6% 修复率,比原始无测试基线高 11.4 个百分点;评测时不依赖更强模型或 Oracle 反馈。
- 对编程智能体工具链的启示:增加“执行反馈”不等于自动变强,反馈源的质量必须先被训练或校验。
为什么重要 / 与既有脉络的关系
- 该工作揭示了“自我确认偏差”的一个具体形态:如果同一个 agent 同时生成补丁和测试,测试可能内化与补丁相同的错误,使执行反馈变成虚假确认。
- 将测试生成与修复解耦,并用角色专属 RL 分别训练,是缓解这一问题的一条可行路线。
- 与既有相关卡片的关系:本条与 CodeRescue 同属于“编程智能体利用执行反馈”的方向,但 ExecCritic 的增量主要在训练期,通过改善测试生成本身来提升修复效果,而非在推理期做预算/路由决策。
- 与 Petri 网引导测试生成的卡片相比,ExecCritic 不针对特定语言的并发资源建模,而是提出一个通用的“测试角色与修复角色分离 + 强化学习”范式。
局限与不确定性
- 本卡片基于 arXiv 摘要生成,以下细节在材料中未展开,待核实:
- fail-closed harness 的具体筛选规则和“冻结”条件;
- Base-to-Gold 成功率的确切计算口径;
- Learn to Test 和 Test to Improve 的奖励来源、训练数据、RL 算法与超参数;
- GPT-5.6-sol 对比基线的具体设置与评估方差;
- 在 SWE-bench Verified 之外其他基准上的泛化表现。
可用于图书/PPT/简报的角度
- “低质量测试比没有测试更糟”:61.2% → 57.3% → 65.3% 的数据很适合做一张图。
- “别让写补丁的人同时出考卷”:同源生成测试容易造成虚假信心。
- 把执行反馈从“事后信号”升级为“可训练对象”:Learn to Test, Test to Improve。
- 展示一条不依赖更强模型或 Oracle 反馈,也能提升 coding agent 修复率的训练路线。
原始材料
- 原文标题:ExecCritic: Learn to Test, Test to Improve for Coding Agents
- arXiv ID:2609.09133v1
- URL:https://arxiv.org/abs/2609.09133v1
- PDF:https://arxiv.org/pdf/2609.09133v1
- 作者:Leitian Tao, Baolin Peng, Haorui Wang, Hang Wang, Hao Cheng, Wenlin Yao, Qianhui Wu, Tao Ge, Sharon Li, Jianfeng Gao
- 发布时间:2026-09-08T17:53:37Z
- arXiv 分类:cs.AI;同时列出 cs.CL、cs.SE
- 代码:https://github.com/MSR-Orchard/execcritic
发现内容有误?
免登录提交,管理员审核并完成修正后才会公开修订说明。
值得关注
该工作揭示了“自我确认偏差”的一个具体形态:如果同一个 agent 同时生成补丁和测试,测试可能内化与补丁相同的错误,使执行反馈变成虚假确认。 将测试生成与修复解耦,并用角色专属 RL 分别训练,是缓解这一问题的一条可行路线。 与既有相关卡片的关系:本条与 CodeRescue 同属于“编程智能体利用执行反馈”的方向,但 ExecCritic 的增量主要在…
相关主题
对应的教材知识点
教材知识点匹配尚未完成。