论文链接:XAgent: eXecution-guided Agentic AI for Effective Localization and Resolution of GitHub Issues 发表时间:2026年9月10日 机构:Monash University × University of Melbourne(澳洲)—— 高校合作 领域标签:cs.SE / SWE Agent / Automated Program Repair

一、论文背景

仓库级 GitHub issue 自动解决是 SWE-bench 催生的核心任务:给定 issue 描述+代码库,产出通过测试的补丁。现有 agent(SWE-Agent、EXPEREPAIR、Refact 等)的主流工作方式是静态的、描述导向的——从 issue 文本推断 bug 位置、生成补丁、跑已有测试验证。

静态路线有两个系统性缺陷:定位偏差——issue 描述质量参差,措辞会把 LLM 推理偏向狭窄范围,导致补丁只修表面症状;验证不全——已有测试往往只覆盖报告者提到的路径,补丁在未描述的边缘条件下仍可能出错。人类开发者的做法恰恰相反:先复现问题(跑起来)、观察行为差异(差分定位)、再写新测试覆盖边界。

二、论文定位和关联工作

维度SWE-Agent/EXPEREPAIR/RefactXAgent
定位信号issue 文本+代码静态检索差分执行+树编辑距离
验证集仓库已有测试已有测试+生成式边缘用例
上下文issue 描述框定程序动力学+程序上下文
范式描述导向(静态)执行引导(动态)

定位结论:本文是"执行引导"范式在 issue 解决任务上的系统化落地——与 AgentGrad 的干预验证、Show-Harness 的接口思想同日出现,共同勾勒 2026 年"动态证据优先于静态文本"的方法论走向。

三、问题定义

具体问题:给定 issue 报告 r 与仓库 R,如何不依赖 r 的措辞质量,定位真正的故障根因并产出覆盖完整修复语义的补丁?

核心洞察:bug 的本质是行为分歧——程序在 buggy 版本与期望版本上的执行差异。行为信号比文本信号更接近 bug 本体:issue 描述可能误导,但执行差异不会说谎。

四、问题解法

1. 执行引导定位(execution-guided localization):构建 buggy 与非 buggy(修复后/参考)版本,在受控输入上差分执行两版本,收集行为分歧点(输出差异、异常栈、状态差异);用树编辑距离对齐两版本的执行轨迹/语法树,把分歧映射到具体函数——定位结果直接给出函数级 F1 86.6%/72.8% 的锚点。

2. 上下文感知测试增强(context-aware test augmentor):分析程序上下文(依赖、调用关系、issue 涉及模块),生成超越 issue 描述的边缘用例测试——空输入、边界值、交互路径——扩展验证覆盖面,防止补丁过拟合于报告症状。

3. 迭代修复循环:定位→补丁生成→增强测试验证→失败则用新测试的失败信息回灌定位,闭环收敛。

五、评估指标与实验证据

  • 主结果(SWE-bench-Lite):resolve rate 62.0%(新 SOTA);函数级定位准确率 72.8%、文件级 F1 86.6%(均 SOTA)。
  • 成本:$1.56/issue,比前 SOTA(Mu et al.)便宜 37%;token 用量减约 40%(全库总计省约 $300)。
  • 增量价值:解决 7 个 SWE-Agent、EXPEREPAIR、Refact 等顶级基线全部失败的 issue——增量而非持平。
  • 消融:执行引导定位+测试增强合计贡献最高 9% 相对提升。

六、效果优势的根源解释

定位机制差异:静态方法从文本到代码是"翻译"问题——描述怎么写,检索就怎么偏;差分执行从行为到代码是"测量"问题——分歧点在哪里,根因就在附近。树编辑距离把轨迹级差异对齐到语法级位置,等价于给定位装上测距仪。72.8% 函数级准确率是测量式定位的直接产物。

验证机制差异:已有测试是"过去的规格",报告的 issue 是"现在的故障",补丁需要通过的是"未来的用例"——生成式边缘测试把验证集推向未来分布,防止"通过旧测试但没修好"的假阳性。

成本机制:精确定位(函数级锚点)缩小了补丁生成需要读的上下文,token 省 40% 与定位精度是同一机制的两面——更准的定位=更小的搜索空间=更便宜的生成。

七、必要知识反推

  • SWE-bench-Lite:300 个人工验证 issue 的子集,resolve rate 是主指标。
  • 差分分析(differential analysis):对比两个版本行为的调试技术,安全领域(fuzzing 差分)与本文的执行差分同源。
  • 树编辑距离(tree edit distance):两棵树最小编辑操作代价,本文用它把执行轨迹差异对齐到代码位置。
  • EXPEREPAIR/Refact:前 SOTA 的经验修复与重构式修复 agent。

八、论文中可以提取的通用性灵感

  1. 行为证据优先于文本证据:凡有"可执行副本"的诊断任务(bug、性能、安全),先设计差分实验再读描述——描述是假设,执行是测量。
  2. 验证集要超越输入分布:生成式测试把验证推向"报告者想象力之外"的用例,是防过拟合修复的通用手段(同样适用于需求验收、合同测试)。
  3. 定位精度决定成本曲线:诊断类任务的下游成本(读多少上下文、生成多大补丁)是定位精度的单调函数——先投资定位,再优化生成。
  4. 失败回灌闭环:新生成的测试失败信息作为下一轮定位证据,让系统随修复进程自我增强——任何"诊断→行动→验证"流程都值得加这条回路。