[論文レビュー] Alibaba LingmaAgent: Improving Automated Issue Resolution via Comprehensive Repository Exploration
RepoUnderstander はリポジトリ知識グラフと Monte Carlo Tree Search を用いて LLM-based エージェントが全ソフトウェアリポジトリを理解する能力を可能にし、従来の RAG およびエージェントベースのベースラインと比較して自動的な課題解決を改善します。
This paper presents Alibaba LingmaAgent, a novel Automated Software Engineering method designed to comprehensively understand and utilize whole software repositories for issue resolution. Deployed in TONGYI Lingma, an IDE-based coding assistant developed by Alibaba Cloud, LingmaAgent addresses the limitations of existing LLM-based agents that primarily focus on local code information. Our approach introduces a top-down method to condense critical repository information into a knowledge graph, reducing complexity, and employs a Monte Carlo tree search based strategy enabling agents to explore and understand entire repositories. We guide agents to summarize, analyze, and plan using repository-level knowledge, allowing them to dynamically acquire information and generate patches for real-world GitHub issues. In extensive experiments, LingmaAgent demonstrated significant improvements, achieving an 18.5\% relative improvement on the SWE-bench Lite benchmark compared to SWE-agent. In production deployment and evaluation at Alibaba Cloud, LingmaAgent automatically resolved 16.9\% of in-house issues faced by development engineers, and solved 43.3\% of problems after manual intervention. Additionally, we have open-sourced a Python prototype of LingmaAgent for reference by other industrial developers https://github.com/RepoUnderstander/RepoUnderstander. In fact, LingmaAgent has been used as a developed reference by many subsequently agents.
研究の動機と目的
- 全自動ソフトウェア工学タスクにおいてリポジトリ全体を理解することが重要であると主張する。
- 入力の複雑さを削減するためにリポジトリ情報を構造化された知識グラフに凝縮する。
- リポジトリグラフを効率的にナビゲートするための MCTS ベースの探索戦略を開発する。
- 要約と計画を活用してリポジトリレベルの知識を故障 Localization とパッチ生成に活用する。
提案手法
- ファイル・クラス・関数のトップダウン階層構造化と関数呼び出し参照グラフを用いてリポジトリ知識グラフを構築する。
- 相関と参照拡張探索を備えた Monte Carlo Tree Search を適用し、課題に最も関連するリポジトリ領域を特定する。
- インコンテクスト学習とチェーン・オブ・思考に触発された報酬ベースの評価を用いて、リーフノードを課題への関連性でスコア付けする。
- 解決過程でリポジトリの経験を要約し、APIツールを介して局所情報を動的に取得してコードスニペットを収集する。
- ReAct に触発されたフレームワークを用いて、リポジトリの照会とパッチ生成の推論経路と行動を生成する。
- 故障を特定し、関連コードコンテキストを抽出し、構文の正確さを最大三回のリトライで確認しつつ差分を生成する。
実験結果
リサーチクエスチョン
- RQ1リポジトリレベルの知識グラフは、ローカル中心のアプローチと比べて自動課題解決の効率性と有効性を改善できるか。
- RQ2MCTS ベースの探索戦略は、パッチ生成のために関連するリポジトリ情報を見つけて活用するエージェントの能力を高めるか。
- RQ3リポジトリからの要約と動的情報取得が故障 Localization とパッチ品質にどのように影響するか。
- RQ4リポジトリレベルの知識を取り入れることがパッチ適用性と成功率にどのような影響を及ぼすか。
主な発見
| Model/Method | Resolved | Apply |
|---|---|---|
| RAG-based SWE-Llama 7B | 1.33% (4) | 38.00% |
| RAG-based SWE-Llama 13B | 1.00% (3) | 38.00% |
| RAG-based ChatGPT-3.5 | 0.33% (1) | 10.33% |
| RAG-based GPT-4 | 2.67% (8) | 29.67% |
| RAG-based Claude-2 | 3.00% (9) | 33.00% |
| RAG-based Claude-3 Opus | 4.33% (13) | 51.67% |
| Agent-based AutoCodeRover | 16.11% (48) | 83.00% |
| Agent-based SWE-agent | 18.00% (54) | 93.00% |
| Agent-based RepoUnderstander | 21.33% (64) | 85.67% |
- RepoUnderstander は SWE-bench Lite(64 件の課題)で 21.33% の解決率、パッチ適用率は 85.67% を達成。
- RAG ベースのベースラインと比較して、RepoUnderstander はパフォーマンスをほぼ 5 倍改善。
- エージェントベースのベースラインに対して、RepoUnderstander は解決達成指標で SWE-agent のパフォーマンスを 18.5 ポイント向上。
- AutoCodeRover と SWE-agent は引き続きパッチ適用性で強力であり、フィードバックの活用価値を示す。RepoUnderstander はこれらのアプローチを補完する。
- 本研究は SWE-bench における情報の非対称性を特定し、より信頼性の高い評価を可能にする FIX バージョンを提案する。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。