通过自动程序修复的轨迹指导完善错误报告规范
Bug Report Specification Refinement with Trajectory Guidance for Automated Program Repair
摘要
Bug 报告充当存储库级自动程序修复 (APR) 代理的任务规范,但它们通常仅描述观察到的故障,而忽略与修复相关的信息,例如故障诱发行为、行为要求和实施范围。因此,修复代理可能会检查不相关的代码,推断出不正确的需求,或者生成解决所报告症状的补丁,而不恢复预期的存储库行为。我们提出了 TrajSpec,一种用于存储库支持的错误报告规范细化的轨迹引导方法。给定原始报告和前缀存储库,TrajSpec 运行轨迹收集代理,并使用生成的未经验证的轨迹作为轨迹派生规范证据的来源。它将这些证据组织成三级表示,包括对问题的高级解释、支持该解释的诊断结果以及具体的存储库观察。然后,TrajSpec 生成一份完善的报告草案,并应用基于存储库的审查来删除不受支持的声明、修改不确定的声明并添加存储库支持的详细信息。我们使用 Mini-SWE-Agent V2 在所有 300 个 SWE-Bench Lite 实例上评估 TrajSpec。 TrajSpec 的精细报告将 GPT-5-mini 的 Pass@1 从 41.00% 提高到 59.67%,使用 MiniMax M2.5 从 54.67% 提高到 64.33%。在 100 个实例的分层样本中,TrajSpec 的精细报告还使用 Agentless 将 Pass@1 从 41.00% 提高到 71.00%,使用 AutoCodeRover 将 Pass@1 从 47.00% 提高到 72.00%。消融结果表明,删除基于存储库的审查或分层证据表示将 Pass@1 从 59.67% 分别减少到 48.00% 和 47.67%。总体而言,TrajSpec 提供了可操作的存储库支持的上下文,可持续提高修复性能。