One Tool Is Enough: Reinforcement Learning for Repository-Level LLM Agents

📄 arXiv: 2512.20957v5 📥 PDF

作者: Zhaoxi Zhang, Yitong Duan, Yanzhi Zhang, Yiming Xu, Zhixiang Wang, Kun Liang, Yang Li, Jiahui Liang, Deguo Xia, Jizhou Huang, Jiyan He, Yunfang Wu

分类: cs.SE, cs.AI

发布日期: 2025-12-24 (更新: 2026-01-24)


💡 一句话要点

RepoNavigator:利用强化学习和单一代码跳转工具解决大型代码库问题定位

🎯 匹配领域: 支柱一:机器人控制 (Robot Control) 支柱二:RL算法与架构 (RL & Architecture)

关键词: 代码定位 强化学习 LLM Agent 代码理解 软件仓库

📋 核心要点

  1. 现有方法依赖多工具,忽略代码执行逻辑,模型控制复杂,难以有效定位大型代码库中的问题。
  2. RepoNavigator采用单一代码跳转工具,模拟代码执行流程,并通过强化学习进行端到端训练。
  3. 实验结果表明,RepoNavigator在性能上优于现有方法,甚至超越了更大规模的模型和闭源模型。

📝 摘要(中文)

在大型软件仓库中定位需要修改的文件和函数极具挑战,因为其规模庞大且结构复杂。现有的基于LLM的方法通常将其视为仓库级别的检索任务,并依赖于多个辅助工具,但这些工具常常忽略代码执行逻辑并使模型控制复杂化。我们提出了RepoNavigator,一个配备了单一执行感知工具(跳转到被调用符号的定义)的LLM Agent。这种统一的设计反映了代码执行的实际流程,同时简化了工具操作。RepoNavigator通过强化学习(RL)从基础预训练模型进行端到端训练,无需依赖闭源蒸馏。实验表明,经过RL训练的RepoNavigator取得了最先进的性能,7B模型优于14B基线,14B模型超越32B竞争对手,32B模型在大多数指标上超过了GPT-5等闭源模型。这些结果证实,将单一的、结构化的工具与RL训练相结合,为仓库级别的问题定位提供了一种高效且可扩展的解决方案。

🔬 方法详解

问题定义:论文旨在解决大型软件仓库中难以定位需要修改的文件和函数的问题。现有方法通常依赖于多个辅助工具进行仓库级别的检索,但这些方法忽略了代码的实际执行逻辑,导致模型控制复杂,效率低下。

核心思路:论文的核心思路是使用一个单一的、执行感知的工具——“跳转到被调用符号的定义”,来模拟代码的实际执行流程。通过这种方式,Agent可以像开发者一样,沿着代码的调用链逐步定位到问题所在。同时,使用强化学习进行端到端训练,避免了对复杂工具链的依赖。

技术框架:RepoNavigator的技术框架主要包含以下几个部分:1) LLM Agent:作为核心控制器,负责接收问题描述,并决定下一步要跳转到的符号定义。2) 代码跳转工具:提供从当前位置跳转到被调用符号定义的功能。3) 强化学习训练:使用奖励函数来指导Agent学习如何有效地利用代码跳转工具来定位问题。Agent通过与代码库环境交互,不断优化其策略。

关键创新:最重要的技术创新点在于将问题定位任务简化为一个单一工具的强化学习问题。与现有方法依赖多个工具不同,RepoNavigator只使用代码跳转工具,这大大简化了模型控制和训练过程。此外,通过强化学习进行端到端训练,使得Agent能够更好地适应代码库的结构和执行逻辑。

关键设计:在强化学习训练中,奖励函数的设计至关重要。论文中可能使用了稀疏奖励,即只有当Agent成功定位到问题时才给予奖励。此外,可能还使用了模仿学习作为预训练步骤,以加速Agent的学习过程。具体的网络结构和参数设置在论文中应该有详细描述,但摘要中未提及。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果显示,经过强化学习训练的RepoNavigator在问题定位任务上取得了显著的性能提升。7B模型优于14B基线模型,14B模型超越32B竞争对手,32B模型甚至在大多数指标上超过了闭源模型GPT-5,证明了该方法的有效性和可扩展性。

🎯 应用场景

RepoNavigator可应用于软件开发、代码维护、漏洞修复等领域。它可以帮助开发者快速定位代码库中的问题,提高开发效率和代码质量。未来,该方法可以扩展到更复杂的代码理解和生成任务,例如自动代码重构和代码补全。

📄 摘要(原文)

Locating files and functions requiring modification in large software repositories is challenging due to their scale and structural complexity. Existing LLM-based methods typically treat this as a repository-level retrieval task and rely on multiple auxiliary tools, which often overlook code execution logic and complicate model control. We propose RepoNavigator, an LLM agent equipped with a single execution-aware tool: jumping to the definition of an invoked symbol. This unified design reflects the actual flow of code execution while simplifying tool manipulation. RepoNavigator is trained end-to-end via Reinforcement Learning (RL) directly from a base pretrained model, without relying on closed-source distillation. Experiments demonstrate that RL-trained RepoNavigator achieves state-of-the-art performance, with the 7B model outperforming 14B baselines, the 14B model surpassing 32B competitors, and the 32B model exceeding closed-source models such as GPT-5 on most metrics. These results confirm that integrating a single, structurally grounded tool with RL training provides an efficient and scalable solution for repository-level issue localization.