AI消息速览

ExecCritic:让编程智能体“学会测试,并用测试改进修复”

事件日期 2026-09-08 · 学术前沿 · 已接受

事件日期2026-09-08
信息日期2026-09-08
入库日期2026-09-09
通道学术前沿
状态已接受
来源arXiv 论文

知识卡片: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 的增量主要在…

相关主题

对应的教材知识点

教材知识点匹配尚未完成。