论文
SemNav:以语义导航图与候选工作区定位代码问题
Semantic Navigation for Issue Localization in Code Repository
摘要
存储库级问题定位旨在识别与解决所报告问题相关的文件和函数并对其进行排名。 LLM 代理迭代地完成此任务:他们识别一组潜在相关的位置,检查相应的代码,并在获得新证据时修改对这些候选项的判断。然而,现有环境对此循环提供的支持有限:代理必须搜索未解决的关系目标,从原始源代码重建实体语义,并在没有证据基础的情况下修改候选者。为了解决这些限制,我们提出了 SemNav,这是一个框架,它利用确定性检索来建立广泛的候选集,并使用 LLM 代理来不断完善该集,从而将初始覆盖范围与证据引导的修订相结合。 SemNav 通过三个关键组件支持此过程。语义导航图通过语言服务器按需解析程序关系,从而能够跨文件直接导航到相关实体。以问题为条件的语义卡为每个实体的角色以及与问题的相关性提供了紧凑的、基于来源的解释。持久的候选项工作空间记录每个候选项及其证据基础,从而实现有根据的验证、修订和排名。在 SWE-bench Lite 和 PLocBench 中,SemNav 的性能优于现有基准,使用 Gemma 4B 将 File Hit@10 从 68.33% 提高到 82.67%。组件消融和轨迹分析支持所有三个组件的互补作用,而语义卡相对于完整源阅读减少了 48.2% 的工作上下文负载。 SemNav 在 SWE-Explore 的所有七个证据质量指标上进一步排名第一,并将下游问题解决率从 44.00% 提高到 52.33%。
