Microsoft Research India によるこの論文は、ソフトウェアエンジニアが複雑なコーディングの問題に取り組むやり方 ── 問題を部分問題に分解し、それぞれを異なる戦略で扱う ── から出発する。著者らは、問題の複雑さが増すにつれて、あらゆる場面で通用する単一の包括的な戦略を考案することは難しくなると論じ、ソフトウェアエンジニアリング AI エージェントのためのモジュラーアーキテクチャ MASAI を提案する。MASAI はイシュー解決を 1 本の長い推論と行動の連鎖として扱うのではなく、LLM 駆動のサブエージェントに分担させる。各サブエージェントは、入力、問題解決戦略 ── 素の補完、Chain-of-Thought プロンプティング、ReAct、RAG など ── 、出力仕様によって規定される。サブエージェントは、あるサブエージェントの出力を別のサブエージェントの入力に渡すことで組み合わされる。著者らは、サブエージェント間の一対一の会話やグループでの会話を必要としないため、これは AutoGen、ChatDev、MetaGPT のようなマルチエージェントフレームワークよりも単純だと述べている。

リポジトリレベルのイシュー解決のために、本論文は 5 つのサブエージェントをインスタンス化している。Test Template Generator(ReAct)はリポジトリで新しいテストをどう書いて実行するかを割り出し、Issue Reproducer(ReAct)はそのテンプレートを使って報告されたイシューを再現するテストを書く。Edit Localizer(ReAct)はリポジトリ内を移動して編集すべきコード箇所を見つける。Fixer(Chain-of-Thought)は環境に対するアクションを与えられず、行番号とあいまいマッチングによってファイル内の位置を特定する最小限の書き換えとして、複数の候補パッチを提案する。Ranker(Chain-of-Thought)は各パッチに対して再現テストを実行し、イシューを解決する可能性が高い順にパッチを順位付けする。サブエージェントは小さなアクション空間を通じてリポジトリに作用する。ファイル、クラス、関数の遅延表現を返す READ、EDIT、ADD、WRITE、LIST、シェルコマンドのための COMMAND、そして DONE である。

すべてのサブエージェントで GPT-4o を用いて SWE-bench Lite で評価したところ、MASAI はイシューの 28.33% を解決した。本論文はこれを、比較した手法のなかで CodeR と並ぶ最高の解決率と報告している。論文の残りでは、その結果がどこから来るのか ── 障害箇所の特定、候補パッチのサンプリングと順位付け、イシューの再現、編集に用いる表現 ── を分析しており、著者らは検証のために結果を SWE-bench Lite のリーダーボードに提出した。

主なポイント

  • MASAI は 1 本の長い軌跡ではなく、それぞれが明確に定義された目的とそれに合わせて調整された戦略を持つサブエージェントを組み合わせる。著者らはこれにより、サブエージェントごとに異なる戦略を使えること、リポジトリのさまざまな部分から情報を収集できること、コストを膨らませ無関係なコンテキストを加える長い軌跡を避けられることが可能になるとしている。
  • イシュー解決のためのインスタンス化では、Test Template Generator、Issue Reproducer、Edit Localizer、Fixer、Ranker の 5 つのサブエージェントを用い、最初の 3 つは ReAct、残りの 2 つは Chain-of-Thought を使う。
  • SWE-bench Lite(11 の Python リポジトリから集めた 300 の GitHub イシュー)において、MASAI は 28.33% の解決率、75% のファイルレベルの特定率、95% を超えるパッチ適用率を報告しており、GPT-4o でのコストはイシューあたり平均 1.96 USD である。
  • Edit Localizer の 75% という特定率は、独立した特定用サブエージェントを使わない手法である SWE-agent と OpenDevin の 61% と 63% と比較されている。
  • Fixer から 5 つの候補パッチをサンプリングすると、オラクル解決率はサンプル 1 つの場合の 23.33% から 35% に上がるが、テストなしで LLM がそれらの中から選ぶと 23.33% にしか達しない。生成された再現テストを用いて順位付けすると 28.33% に達する。
  • 珍しいテストフレームワークを使うリポジトリに対応するため、テストの再現は 2 段階 ── まずリポジトリ固有のテストテンプレートを生成し、次にイシュー固有のテストを生成する ── に分けられている。
  • 本論文は、MASAI が元の SWE-bench Lite の設定だけに依拠して高い自律性のレベルで動作すると主張している。一方、比較対象の手法の一部は、ヒントのテキストやあらかじめ決められたテストコマンドなどの追加入力を用いている。

補足

評価は SWE-bench Lite に限られており、著者らは、そのイシューがテストで検証できるものに限られていること、イシューの記述がすべて英語であることを指摘している。時間とコストの理由からすべてのサブエージェントを GPT-4o でインスタンス化したため、アーキテクチャ上はサブエージェントごとに異なるモデルを使えるものの、本論文は固定した戦略のもとで異なる LLM を比較してはいない。より広い懸念として、著者らは、シェルコマンドを実行できるエージェントはユーザーのシステムに意図しない副作用を引き起こしうるが、それはガードレールとサンドボックス化によって緩和できること、そしてこうしたツールが提案するコード変更はデプロイ前に熟練した開発者がレビューすべきであることを指摘している。SWE-bench Lite での評価により、本研究は SWE-Bench や ソフトウェアイシュー解決 と並んで位置づけられる。