论文
BLAgent:用于文件级错误本地化的代理 RAG
BLAgent: Agentic RAG for File-Level Bug Localization
摘要
Bug 定位仍然是基于 大语言模型 (LLM) 的软件维护的关键瓶颈,其中准确识别错误代码对于调试、根本原因分析、分类和自动程序修复 (APR) 至关重要。文件级错误定位在分层本地化和修复管道中尤其重要,其中错误的文件选择可能会传播到下游阶段,例如功能级本地化和补丁生成。虽然检索增强生成 (RAG) 提供了一种在存储库上下文中依据关联 LLM 的有前途的方法,但现有的 RAG 管道通常依赖于静态检索,并且缺乏准确识别错误代码所需的推理。在这项工作中,我们提出了 BLAgent,一种用于文件级错误定位的新型代理 RAG 框架,它集成了三个关键思想:(i)代码结构感知存储库编码与基于路径增强 AST 的分块,(ii)从错误报告中捕获结构和行为信号的双视角查询转换,以及(iii)将符号检查与基于证据的推理相结合的两阶段代理重新排序。与之前基于图的或多跳代理方法不同,BLAgent 采用有界推理策略,将基于 LLM 的检查和重新排序限制为紧凑的、经过检索过滤的候选文件集,从而避免开放式存储库遍历。该设计平衡了定位精度和计算成本。在 SWE-bench-Lite 上,BLAgent 使用开源模型实现了超过 78% 的 Top-1 准确率,使用闭源模型实现了超过 86% 的 Top-1 准确率,同时比使用相同模型的最强基线便宜了 18 倍以上。当集成到 APR 框架中时,BLAgent 将端到端修复成功率提高高达 25%。