[论文解读] UniDebugger: Hierarchical Multi-Agent Framework for Unified Software Debugging
该论文提出 FixAgent,一种基于大语言模型(LLM)的统一多智能体框架,受橡胶鸭调试法启发,通过分层智能体协同实现端到端软件调试。通过专门化故障定位、修复生成和事后分析三个智能体,并让每个智能体详细解释其推理过程,该框架在 QuixBugs 数据集上实现了 97.26% 的准确率,修复了 80 个错误中的 79 个,包括 9 个此前未修复的错误,且在最小采样情况下,其合理修复补丁数量比现有工具高出 1.9 倍。
Software debugging is a time-consuming endeavor involving a series of steps, such as fault localization and patch generation, each requiring thorough analysis and a deep understanding of the underlying logic. While large language models (LLMs) demonstrate promising potential in coding tasks, their performance in debugging remains limited. Current LLM-based methods often focus on isolated steps and struggle with complex bugs. In this paper, we propose the first end-to-end framework, FixAgent, for unified debugging through multi-agent synergy. It mimics the entire cognitive processes of developers, with each agent specialized as a particular component of this process rather than mirroring the actions of an independent expert as in previous multi-agent systems. Agents are coordinated through a three-level design, following a cognitive model of debugging, allowing adaptive handling of bugs with varying complexities. Experiments on extensive benchmarks demonstrate that FixAgent significantly outperforms state-of-the-art repair methods, fixing 1.25$ imes$ to 2.56$ imes$ bugs on the repo-level benchmark, Defects4J. This performance is achieved without requiring ground-truth root-cause code statements, unlike the baselines. Our source code is available on https://github.com/AcceptePapier/UniDebugger.
研究动机与目标
- 解决传统及基于大语言模型的调试工具的局限性,特别是故障定位不准确、难以处理复杂逻辑错误以及上下文理解不足的问题。
- 通过将推理与上下文理解整合到调试流程中,克服对预识别错误位置的依赖,提升修复质量。
- 通过协同工作的 LLM 智能体模拟人类调试实践(如橡胶鸭调试),实现端到端、统一的调试流程。
- 在无需微调或访问历史错误修复数据的情况下,增强 LLM 对程序逻辑与上下文的推理能力。
提出的方法
- 设计一个分层多智能体系统,包含三个专用 LLM 智能体:故障定位器、程序修复器和分析器,每个智能体通过提供详细、分步的解释来模拟橡胶鸭调试过程。
- 引入关键变量追踪机制,聚焦于关键逻辑元素,提升复杂错误下的推理准确性。
- 通过在提示工程中整合函数定义、变量作用域和外部库信息,实现程序上下文理解,减少上下文无知问题。
- 实现智能体间的协同机制,使修复器能够通过在初始可疑代码行之外进行补丁修改,纠正定位器的错误。
- 采用基于橡胶鸭调试原则的通用提示设计,引导 LLM 进行更深层次推理,无需重新训练或微调。
- 采用填空式补丁生成范式,模型在完整上下文下预测缺失代码段,提升语义一致性。
实验结果
研究问题
- RQ1统一的多智能体 LLM 框架是否能在不依赖预识别错误位置的前提下,优于现有最先进 APR 工具,在准确率和覆盖率方面表现更优?
- RQ2与标准提示法相比,受橡胶鸭调试启发的推理机制在多大程度上能提升 LLM 检测和修复复杂逻辑错误的能力?
- RQ3专用智能体之间的协同机制在多大程度上能缓解故障定位不准确对下游修复质量的影响?
- RQ4程序上下文理解是否能显著减少上下文无知问题,并提升基于 LLM 的调试中的修复准确性?
- RQ5该框架是否能在仅使用极少数据且未进行微调的情况下,泛化到未见过或此前未修复的错误?
主要发现
- FixAgent 在 QuixBugs 数据集上修复了 80 个错误中的 79 个,准确率达 97.26%,其中 9 个此前未修复的错误现已成功修复。
- 在 Codeflaws 数据集上,FixAgent 生成的合理补丁数量是表现最佳修复工具的 1.9 倍,且未使用任何错误位置信息。
- 与基础 LLM 相比,FixAgent 在多个模型上平均使正确且合理的修复数量提升约 20%,证明了智能体协同与推理设计的有效性。
- 该框架显著减少了现有 APR 工具常见的过拟合问题,这在新收集的未见数据上表现出高泛化性能。
- 该方法的采样时间低于 0.6%,表明其具有高效率和低计算开销。
- 采用受橡胶鸭调试启发的提示法显著提升了推理深度与逻辑理解能力,使 LLM 更有效地处理复杂逻辑错误,优于标准提示法。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。