OwlPath:用于 LLM Bug 修复的无损知识压缩
OwlPath: Lossless Knowledge Compression for LLM Bug Repair
摘要
基于 LLM 的软件工程代理受到有限上下文窗口的限制:大约 100K 词元必须存储结构相关的代码子集才能解决错误。标准检索模型将代码视为纯文本,迫使代理通过缓慢的试错来解决多跳依赖关系,包括子类链、传递调用者和接口实现。我们通过无损知识压缩来解决这一限制,将源代码编码到 OWL2 本体中,以使用最少的相关代码片段来回答结构查询。我们推出了 OwlPath,这是一个位于 CodeGraph 之上的 OWL2 推理层,CodeGraph 是一个广泛使用的代码智能平台,拥有超过 50 万个 GitHub 星,为结构代码检索提供了统一的 CLI。在树守护者解析的支持下,OwlPath 支持多语言存储库(Python、JavaScript、TypeScript、Go 等),并将特定于语言的语义编码到统一的 OWL2 本体中。它采用两个互补的模块。首先,传递闭包引擎通过单个 SPARQL 属性路径查询获取所有结构链接符号,捕获字符串匹配错过的多跳关系。其次,OWL 软件知识图 (OWL-SKM) 预先计算一个紧凑的 3KB 摘要,其中包含模块树、核心 API 和问题相关符号,指导代理在第一个查询中找到目标模块。在 18 个 SWE-bench Pro 实例上进行评估,OwlPath 获得了 68.4% 的严格应用率,而 CodeGraph 基线的严格应用率为 66.7%,将词元使用量减少了 28.8%,运行时间减少了 39.5%。在超过 67 个实例的离线检索测试中,OwlPath 将召回率提高了 2.06 倍(0.464 vs 0.226),命中率达到 88.1%,而 CodeGraph 的命中率为 59.7%。在 37 个问题的结构检索基准上,召回率从 4.4% 上升到 28.8%,传递调用者和界面任务的准确率达到 69-80%。