ベトナムの FPT Software AI Center によるこのプレプリントは、LLM ベースのソフトウェアエージェントが 開発プロセスをどのようにモデル化しているかを問題にする。標準作業手順(Standardized Operating Procedures)を符号化する MetaGPT と、チャット駆動の仮想的なテクノロジー 企業をシミュレートする ChatDev を、どちらも古典的なウォーターフォール モデルに従うものとして説明し、それが現実の開発の動的で反復的な性質を過度に単純化していると 論じる。論文によれば、現実にはプロのチームの約 70% がアジャイル手法を採用している。また、 これらのシステムはリポジトリ全体にわたるコード生成の管理を LLM に頼りすぎているとも論じている。
論文が示す答えは、アジャイルのワークフローを模倣するマルチエージェントフレームワークである AgileCoder である。エージェントはプロダクトマネージャー、スクラム マスター、開発者、シニア開発者、テスターの役割を担う。プロダクトマネージャーがタスクと受け入れ 基準からなるプロダクトバックログを作成した後、作業はスプリント単位で進み、各スプリントには 計画、開発、テスト、レビューのフェーズがある。成果物はスクラムマスターがソフトウェアを提供可能と 判断するまで、スプリントからスプリントへと引き継がれる。エージェントと並んで、静的解析モジュール である Dynamic Code Graph Generator が、コードファイルをノードとし、主に import 関係をエッジと するコード依存グラフを維持し、コードが変更されるたびに更新する。このグラフは、どのファイルに 新しいテストが必要かを判断し、テストの実行順序を決め、エラーが発生したときにコードベース全体を モデルに読み込むのではなく関連するファイル横断のコンテキストを取得するために使われる。
このフレームワークは HumanEval と MBPP、そして著者らがまとめた、より込み入った 14 件の ソフトウェア開発タスクからなる ProjectDev で評価されている。著者らは ProjectDev を、 複雑なマルチエージェントシステムの評価には HumanEval や MBPP よりも適切なものと説明している。 AgileCoder は、前 2 者では比較対象のエージェントの中で最高の pass@1 を達成し、ProjectDev では ChatDev や MetaGPT よりも著しく高い実行可能性を達成したが、その代償としてより多くのトークンと 実行時間を要したと報告されている。
要点
- 論文は MetaGPT と ChatDev をウォーターフォールモデルに従うものと特徴づけ、代わりにアジャイル手法(役割、バックログ、スプリント)をマルチエージェントフレームワークに適用することを提案する。
- AgileCoder のエージェントはプロダクトマネージャー、スクラムマスター、開発者、シニア開発者、テスターの役割を担い、各スプリントでは計画、開発、テスト、レビューのフェーズが実行される。
- シニア開発者は 3 つの逐次的なステップ(基本的な実装チェック、バックログへの準拠、そして受け入れ基準とバグの特定)で静的なコードレビューを行い、アブレーションではこれが単一ステップのレビューを上回っている。
- Dynamic Code Graph Generator はファイルとその import 関係からなるコード依存グラフを維持し、それはテストするファイルの選択、トポロジカル順序を逆にすることによるテスト計画の導出、バグ修正のためのコンテキスト取得に使われる。
- エージェントは、メッセージストリームを作業記憶とする二者間の指示者–アシスタント型の対話でコミュニケーションし、グローバルなメッセージプールがすべての対話の出力とタスクの状態を保持する。各対話は関連する部分にのみアクセスする。
- GPT-3.5 Turbo を用いた場合、AgileCoder は HumanEval で 70.53%、MBPP で 80.92% の pass@1 を報告しており、著者らはこれを MetaGPT に対してそれぞれ 7.71% および 6.19% の改善だと述べている。
- ProjectDev では、AgileCoder は実行可能性 57.79% を報告しており、ChatDev の 32.79%、MetaGPT の 7.73% を上回り、実行不能なプログラムはなかった。一方で、より多くのトークンと実行時間を使い、タスクを平均 1.64 スプリントで完了した。
- アブレーションでは、インクリメンタルな開発、生成されたテストスイート、コードレビューのいずれを取り除いても pass@1 が低下し、コード依存グラフがない場合は実行可能性が 57.50% から 23.38% に低下し、コンテキスト長のエラーが発生すると報告されている。
補足
著者らは、主に単純な競技プログラミングの問題からなる HumanEval と MBPP が複雑なマルチエージェント システムには適さない可能性を認め、MetaGPT(SoftwareDev)と ChatDev(SRDD)の同等のベンチマークは 公開されていない一方、ProjectDev は公開予定だと述べている。ProjectDev の実行可能性は、開発者が 各タスクの要件リストに照らして手作業で評価する。挙げられている制限には、コード生成と意思決定を 引き続き LLM に依存していること、コードベースが大きくなるにつれて依存グラフを維持する計算コスト、 そしてチームダイナミクスのようなアジャイル開発の非技術的な側面が含まれていないことがある。 さらに探究すべきアジャイルのプラクティスとして、ペアプログラミング、CI/CD、カンバン、リーンを 提案している。この論文は、ソフトウェア開発のための LLM ベースのマルチエージェントシステム の 設計に関する研究の一つに位置づけられる。