论文
代理错误本地化中面向检索的代码表示
Retrieval-Oriented Code Representations in Agentic Bug Localization
摘要
基于 LLM 的代理越来越多地用于支持软件开发,但它们在存储库级任务中的性能取决于检索正确的代码上下文。现有的研究已经探索使用文件路径和原始源代码上的传统信息检索来进行文件级本地化。然而,文本代码表示在检索和本地化中的作用仍未得到充分探索。我们将文件级错误定位作为表示驱动的检索问题来研究。在 Long Code Arena (LCA) 和 SWE-bench Verified (SWE) 数据集中,我们比较了五种代码表示形式:文件路径、原始源代码和三个 LLM 生成的文本表示形式。我们的实验包括词汇、语义和基于 LLM 的检索,然后是基于 LLM 的检索后排名。我们通过表示足迹来量化表示所产生的成本。我们发现代码表示的选择会影响本地化的有效性和成本。角色感知摘要的性能比文件路径表示形式高出高达 40% Hit@5,同时要求表示形式占用空间比原始源代码小 10.4 到 20.9 倍。将互补表示结果与 LLM 相结合并对检索到的候选者进行排名可分别提供高达 31.9% 和 42.0% 的进一步增益。总体而言,角色感知摘要提供了最佳的成本效益权衡,而原始源代码在某些设置中以显着更高的成本提供了有效性。 Agentless 的案例研究揭示了我们的技术在众所周知的管道中的实用性,文件本地化达到 94% Hit@6(相对于基线增加 4.7%)。我们的研究结果表明,代码表示应被视为代理本地化管道中的一流设计选择,并以管道阶段和成本准确性要求为指导。