RETRACE:从纠缠的修复历史到可复用的 CI 修复经验
RETRACE: From Entangled Repair Histories to Reusable Experience for CI Repair
精选理由
将纠缠的CI修复历史转化为可复用经验,显著提升代码修复成功率。
AI 摘要
大型语言模型(LLM)智能体日益广泛地复用既有经验,但大多数方法都假设问题与解决方案已经完成对齐。软件历史很少能提供这种对齐:一个拉取请求(PR)可能包含多个持续集成(CI)问题、失败的尝试、回滚的编辑以及无关变更,从而难以判断哪些变更解决了哪些问题。我们提出 RETRACE,一种从此类历史中重构问题级修复经验的框架。RETRACE 结合了终点视角与开发视角:前者从通过测试的修订版本中保留的变更出发进行反向推理,后者沿提交历史正向追踪修复的演变过程。CI 执行证据用于协调这两个视角,恢复出的经验则以三个抽象层级表示,从具体修复到可迁移的修复模式。对于新的失败,RETRACE 会检索相关的问题级经验以指导修复。在 CI-REPAIR-BENCH 上,该基准包含来自 101 个仓库、涵盖 12 类失败的 565 个 PR 级修复,RETRACE 将 mini-SWE-agent 的 Pass@1 使用 MiniMax-M2.5 时从 19.6% 提升至 31.9%,使用 DeepSeek-V4-Flash 时从 23.3% 提升至 32.8%。在匹配的子集上,Codex 的表现从 15.5% 提升至 27.5%。结合两个视角始终优于单独使用任一视角,这表明恢复问题与变更之间的对齐关系,能够使历史上的 CI 修复成为可复用的修复经验。