通过仓库感知知识图谱提升仓库级软件修复能力
软件工程
2025-10-06 v3
摘要
仓库级软件修复面临着问题描述与代码补丁之间语义鸿沟的挑战。现有方法主要依赖大型语言模型(LLM),但受限于语义模糊性、结构上下文理解不足以及推理能力薄弱。为此,我们提出了 KGCompass,具备两项创新:(1)一种新的仓库感知知识图谱(KG),准确链接仓库构件(问题和拉取请求)与代码库实体(文件、类和函数),使我们能够将搜索空间有效缩小至仅20个最相关的函数,获取准确的候选故障位置和上下文信息;(2)一种受路径引导的修复机制,利用 KG 挖掘的实体路径进行跟踪,使我们能够通过相关上下文信息增强 LLM,以生成精确的补丁及其解释。实验在 SWE-bench Lite 上表明,KGCompass 实现了最高的单一 LLM 修复性能(58.3%)和函数级故障定位准确率(56.0%),覆盖多个开源方案,仅需 $0.2 即可完成单次修复。对于 KGCompass 成功定位的 bug 中,89.7% lacks 问题中缺乏明确位置提示,仅通过多跳图遍历发现,而纯 LLM 在定位 bug 时难以准确完成。相对于纯 LLM 基线,KGCompass 在 Claude-4 Sonnet 上提升了 50.8%,在 Claude-3.5 Sonnet 上提升了 30.2%,在 DeepSeek-V3 上提升了 115.7%,在 Qwen2.5 Max 上提升了 156.4%。这些持续的改进表明,这一图驱动的修复框架提供了模型无关、成本效益高的修复能力,为仓库级修复树立了新的强基准。
引用
@article{arxiv.2503.21710,
title = {Enhancing repository-level software repair via repository-aware knowledge graphs},
author = {Boyang Yang and Jiadong Ren and Shunfu Jin and Yang Liu and Feng Liu and Bach Le and Haoye Tian},
journal= {arXiv preprint arXiv:2503.21710},
year = {2025}
}