[論文レビュー] UniDebugger: Hierarchical Multi-Agent Framework for Unified Software Debugging
本稿では、ラバーダックデバッグにインspiredされた階層的エージェント連携を活用し、エンド・ツー・エンドのソフトウェアデバッグを実現する統合的でLLMベースのマルチエージェントフレームワーク、FixAgentを提案する。故障局所化、修復生成、後続分析の各エージェントを専門化させ、それぞれが詳細な推論を説明することで、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がプログラム論理と文脈を推論する能力を強化すること。
提案手法
- 故障局所化エージェント、プログラム修復エージェント、分析エージェントという3つの専門的LLMエージェントを備えた階層的マルチエージェントシステムを設計。各エージェントはラバーダックデバッグを模倣し、詳細かつ段階的な説明を提供する。
- キーワン数の追跡を導入し、エージェントが重要な論理的要素に集中することで、複雑なバグにおける推論の正確性を向上させる。
- 関数定義、変数スコープ、外部ライブラリ情報などをプロンプト工学に組み込むことで、プログラム文脈理解を強化し、文脈無視を低減する。
- エージェント連携を実装し、修復エージェントが当初特定された懸念のある行を超えて、局所化エラーを修正できるようにする。
- ファインチューニングや再トレーニングなしに、LLMがより深い推論を指向するよう導くため、ラバーダックデバッグの原則に基づくユニバーサルプロンプト設計を採用する。
- 修復生成にクローズ型インフィルティングパラダイムを適用し、モデルが完全な文脈を考慮して欠落したコード断を予測することで、意味的整合性を向上させる。
実験結果
リサーチクエスチョン
- RQ1統合的でマルチエージェントのLLMフレームワークは、事前に特定されたバグ位置に依存せず、正答率とカバレッジの両面で、既存の最先端APRツールを上回ることができるか?
- RQ2ラバーダックデバッグにインスパイアされた推論は、標準的なプロンプト提示に比べて、LLMの複雑な論理バグの検出・修復能力をどの程度向上させることができるか?
- RQ3専門的エージェント間の連携は、不完全な故障局所化がその後続の修復品質に与える影響をどの程度軽減できるか?
- RQ4プログラム文脈理解は、LLMベースのデバッグにおける文脈無視を顕著に低減し、修復の正確性を向上させることができるか?
- RQ5本フレームワークは、未確認または従来未修復のバグに一般化可能か?特に、最小限のデータで学習し、ファインチューニングなしに運用可能なか?
主な発見
- FixAgentはQuixBugsデータセットで80個のバグのうち79個を修正し、正答率97.26%を達成。そのうち9個は従来未修復のバグが正常に修復された。
- Codeflawsデータセットでは、バグ位置情報が一切ない状態でも、最良の修復ツールに比べて1.9倍の妥当なパッチを生成した。
- 複数のモデルを対象にした評価で、FixAgentはベースとなるLLMに比べ、正しくかつ妥当な修正を平均して約20%多く生成した。これはエージェント連携と推論設計の有効性を示している。
- 新しく収集した未確認データにおいても高い汎化性能を示したため、既存のAPRツールに一般的に見られる過学習の問題が顕著に軽減された。
- 0.6%未満のサンプリング時間で高いパフォーマンスを達成したため、高い効率性と低コストの計算負荷を実現した。
- ラバーダックデバッグにインスパイアされたプロンプト提示は、推論の深さと論理理解を向上させ、標準的なプロンプト提示に比べ、LLMが複雑な論理エラーをより効果的に処理できるようにした。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。