Skip to main content
QUICK REVIEW

[論文レビュー] AgentFL: Scaling LLM-based Fault Localization to Project-Level Context

Yihao Qin, Shangwen Wang|arXiv (Cornell University)|Mar 25, 2024
Software Engineering Research被引用数 4
ひとこと要約

AgentFL は、障害の理解、コードベースのナビゲーション、障害の確認の3段階に分解することで、プロジェクトレベルのコードベースへの障害局所化をスケーリングするマルチエージェント LLM システムです。テスト動作の追跡やドキュメント誘導型検索といった専用ツールを活用することで、1つのバグあたり平均 0.074 ドルおよび 97 秒の低コストで、395 個のバグのうち 157 個を Top-1 で局所化し、最先端のパフォーマンスを達成しています。

ABSTRACT

Fault Localization (FL) is an essential step during the debugging process. With the strong capabilities of code comprehension, the recent Large Language Models (LLMs) have demonstrated promising performance in diagnosing bugs in the code. Nevertheless, due to LLMs' limited performance in handling long contexts, existing LLM-based fault localization remains on localizing bugs within a small code scope (i.e., a method or a class), which struggles to diagnose bugs for a large code scope (i.e., an entire software system). To address the limitation, this paper presents AgentFL, a multi-agent system based on ChatGPT for automated fault localization. By simulating the behavior of a human developer, AgentFL models the FL task as a three-step process, which involves comprehension, navigation, and confirmation. Within each step, AgentFL hires agents with diversified expertise, each of which utilizes different tools to handle specific tasks. Particularly, we adopt a series of auxiliary strategies such as Test Behavior Tracking, Document-Guided Search, and Multi-Round Dialogue to overcome the challenges in each step. The evaluation on the widely used Defects4J-V1.2.0 benchmark shows that AgentFL can localize 157 out of 395 bugs within Top-1, which outperforms the other LLM-based approaches and exhibits complementarity to the state-of-the-art learning-based techniques. Additionally, we confirm the indispensability of the components in AgentFL with the ablation study and demonstrate the usability of AgentFL through a user study. Finally, the cost analysis shows that AgentFL spends an average of only 0.074 dollars and 97 seconds for a single bug.

研究の動機と目的

  • 文脈長の制限により、従来の LLM を用いた障害局所化手法が単一メソッド程度の小さなコードスコープに限定されているという制限に対処すること。
  • 人間の開発者がデバッグする際の行動を模倣することで、障害の理解、コードベースのナビゲーション、不具合箇所の確認という段階を経て、プロジェクトレベルの障害局所化を可能にすること。
  • 長文書の文脈における LLM の性能低下を回避するため、専用エージェントを用いた制御された複数ステップのフェーズにタスクを分解すること。
  • テスト動作の追跡やマルチラウンド対話といった補助戦略を通じて、LLM を用いた障害局所化の正確性と使いやすさを向上させること。
  • コスト分析とユーザースタディを通じて、スケールアップにおけるコスト効率と実用的使いやすさを実証すること。

提案手法

  • 障害局所化を3段階に分解する:障害の理解(障害トレースの分析)、コードベースのナビゲーション(関連するコードパスの探索)、障害の確認(疑わしき不具合箇所の検証)。
  • 各段階に特化した LLM ドリブンのエージェントを配置し、それぞれが適切なツール(例:テスト実行、コード検索、意味的類似度マッチング)を装備する。
  • 失敗するテストの実行パスを追跡する Test Behavior Tracking を統合し、エージェントが関連するコードへナビゲートするのを支援する。
  • ドキュメント誘導型検索を適用して、埋め込みと RAG に類似した検索手法を用いてプロジェクト内から意味的に関連するコードスニペットを取得する。
  • マルチラウンド対話を用いて、段階的な明確化と検証を通じてエージェントの推論を改善し、予測の正確性を向上させる。
  • GPT-3.5-turbo-16k-0613 を活用し、プロンプト工学と入力フィルタリングを用いてデータ漏洩れを回避しながらパフォーマンスを維持する。

実験結果

リサーチクエスチョン

  • RQ1マルチエージェント LLM システムは、メソッドレベルからプロジェクトレベルのコードベースへの障害局所化を効果的にスケーリングできるか?
  • RQ2AgentFL の3段階アーキテクチャ(理解、ナビゲーション、確認)は、ベースラインの LLM プロンプトと比較して、局所化の正確性をどのように向上させるか?
  • RQ3補助戦略(テスト動作の追跡、ドキュメント誘導型検索、マルチラウンド対話)が、障害局所化のパフォーマンスに与える影響は何か?
  • RQ4実用的状況下で AgentFL はどの程度使いやすく、開発者が不具合を特定するのを支援する意味のある説明を提供できるか?
  • RQ5スケールアップしてデプロイする際の計算コストと財務的コストは何か?

主な発見

  • AgentFL は Defects4J-V1.2.0 の 395 個のバグのうち 157 個を Top-1 予測で局所化し、既存の LLM を用いたアプローチを上回るパフォーマンスを示した。
  • 本システムは最先端の学習ベースの技術と相乗効果を示し、ハイブリッドな障害局所化パイプラインの可能性を示唆している。
  • ユーザースタディでは、参加者の多くが AgentFL の説明を役立つと評価しており、80% 以上の不具合で、正しい不具合箇所が3回未満の誤予測で特定された。
  • AgentFL は低コストかつ低時間消費を達成しており、1バグあたり平均 0.074 ドルおよび 97 秒であり、95% のケースが 0.20 ドル未満、200 秒未満に収束している。
  • アブレーションスタディにより、Test Behavior Tracking や Multi-Round Dialogue といったコアコンポonentsが最適なパフォーマンスを発揮するために不可欠であることが確認された。
  • ケーススタディでは、トップ予測が誤りであった場合でも、AgentFL はしばしば正しい根本原因を特定し、関連するメソッド(例:呼び出し元)を示しており、開発者の作業負荷を軽減した。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。