Skip to main content
QUICK REVIEW

[論文レビュー] MarsCode Agent: AI-native Automated Bug Fixing

Yizhou Liu, Pengfei Gao|arXiv (Cornell University)|Sep 2, 2024
Scientific Computing and Data ManagementDecision Sciences被引用数 3
ひとこと要約

MarsCode Agent は、マルチエージェント計画、コード知識グラフ、言語サーバープロトコル、コンテナ化デバッグを統合した、LLMネイティブなフレームワークであり、自動的でエンドツーエンドのソフトウェアバグ修正を実現する。SWE-bench Lite ベンチマークにおいて34%の解決率を達成し、ファイルおよびコードスニペットの局所化精度で既存のツールを上回った。

ABSTRACT

Recent advances in large language models (LLMs) have shown significant potential to automate various software development tasks, including code completion, test generation, and bug fixing. However, the application of LLMs for automated bug fixing remains challenging due to the complexity and diversity of real-world software systems. In this paper, we introduce MarsCode Agent, a novel framework that leverages LLMs to automatically identify and repair bugs in software code. MarsCode Agent combines the power of LLMs with advanced code analysis techniques to accurately localize faults and generate patches. Our approach follows a systematic process of planning, bug reproduction, fault localization, candidate patch generation, and validation to ensure high-quality bug fixes. We evaluated MarsCode Agent on SWE-bench, a comprehensive benchmark of real-world software projects, and our results show that MarsCode Agent achieves a high success rate in bug fixing compared to most of the existing automated approaches.

研究の動機と目的

  • LLMを活用して、複雑で大規模なコードベースにおける現実世界のソフトウェアバグ修正を自動化する課題に取り組むこと。
  • ヒューリスティックベースやルール駆動のアプローチに依存するのを減らし、自律的で文脈に適応した故障局所化とパッチ生成を可能にすること。
  • 統合された静的および動的解析ワークフローを通じて、自動プログラム修復の信頼性とスケーラビリティを向上させること。
  • コード知識グラフおよび言語サーバープロトコル統合を活用して、コード理解と修正の正確性を高めること。
  • パッチ検証を隔離された環境でするなど、人間を介さないエンドツーエンドのソフトウェア修復パイプラインの実行を可能にすること。

提案手法

  • MarsCode Agent は、問題の特性に応じて静的または動的修復パイプラインを動的に割り当てるマルチエージェント協調フレームワークを採用している。
  • コード知識グラフおよび言語サーバープロトコル(LSP)統合を活用して、正確なコードエンティティの検索、定義/参照のナビゲーション、文脈に即したコード理解を可能にしている。
  • コンFLICTベースのコード編集記述と静的構文チェックを用いて、構文的に正しい、整合性のあるコードパッチを生成している。
  • 動的デバッグでは、Dockerベースのサンドボックス環境を活用して欠陥を再現し、ログを挿入し、テストフレームワークを実行している。これは、人間の開発者が行うデバッグワークフローを模倣している。
  • エージェントパイプラインには、計画、バグ再現、故障局所化、候補パッチ生成、検証が含まれており、正しさを保証するとともにリグレッションを最小限に抑える。
  • LLMの推論と構造的なツール利用を組み合わせて、コードベースおよび修復戦略の体系的探索を導く。

実験結果

リサーチクエスチョン

  • RQ1LLMベースのエージェントは、現実世界のソフトウェアプロジェクトにおいて、高精度でエンドツーエンドの自動バグ修正を達成できるか?
  • RQ2マルチエージェントフレームワークは、多様なバグタイプに応じて静的および動的修復戦略を動的に選択するのにどの程度効果的か?
  • RQ3コード知識グラフおよびLSP統合は、複雑なコードベースにおける故障局所化の正確性をどの程度向上できるか?
  • RQ4純粋に静的修復と比較して、サンドボックス化された動的デバッグは、パッチの成功確率にどのような影響を与えるか?
  • RQ5現実世界のベンチマークにおいて、MarsCode Agent は既存のエージェントと比較して、ファイルおよびコードスニペットの局所化精度で優れているか?

主な発見

  • MarsCode Agent は、SWE-bench Lite ベンチマークで34%の解決率を達成し、300件の現実世界のソフトウェア工学タスクのうち102件を正常に解決した。
  • ファイル局所化の正確性は88.3%で、300件中265件でターゲットファイルを正しく特定し、先行する最先端ツールを上回った。
  • コードスニペット局所化の正確性は68.7%で、300件中206件で修正対象を正しく特定した。
  • 300件中28%が動的デバッグにルーティングされ、そのうち38.1%(84件中32件)が正常に解決された。静的修復よりも高い成功率を示した。
  • 静的修復では216件中70件(成功率32.4%)が成功した。これは、動的デバッグが複雑または文脈依存性の高いバグに対してより効果的であることを示している。
  • 比較評価を通じて、MarsCode Agent のコード取得および局所化能力は、CodeR や Moatless、Agentless を含む既存のトレーサブルなソリューションを上回った。

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

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

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

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