跳转至

BLAgent: Agentic RAG for File-Level Bug Localization — arXiv:2605.17965

摘要

Bug 定位是软件维护任务(包括根因分析、分诊和自动程序修复)的关键瓶颈。文件级 bug 定位在分层流水线中尤为重要,因为错误会传播到语句级定位或补丁生成等下游阶段。尽管检索增强生成(RAG)为将 LLM 修复锚定到代码上下文提供了有前景的方向,但现有基于 RAG 的 bug 定位方法无法捕捉文件级关系且缺乏准确定位故障代码所需的推理能力。本文提出 BLAgent,一种用于文件级 bug 定位的新型 agentic RAG 框架,整合了三个关键思想:代码结构感知检索、层次化推理规划,以及动态上下文窗口管理。

核心贡献

  1. 代码结构感知检索:利用代码的 AST 结构信息进行更精确的检索,而非仅依赖文本相似度
  2. Agentic 规划能力:将 bug 定位建模为多步骤推理任务,动态决定检索方向和范围
  3. 动态上下文窗口:根据 bug 特征自适应调整上下文窗口大小,平衡信息充足性与噪声
  4. 端到端评估:在真实软件仓库的 bug 定位任务上验证了方法的有效性

为什么重要

代码仓库级记忆的检索是大型代码 Agent 的核心能力。BLAgent 将 RAG 从静态检索升级为动态 agentic 推理,解决了传统 RAG 在代码仓库中"大海捞针"问题的根本局限。

与移动端/端侧的相关性

在移动端部署的代码辅助 Agent(如移动 IDE 插件)中,文件级 bug 定位能力可以在不依赖云端的情况下为开发者提供即时的代码质量反馈。BLAgent 的 agentic 框架可以扩展到移动端的轻量级代码分析场景。