AgileGen は、生成的ソフトウェア開発 — エンドユーザーの要件からソフトウェアを構築すること — のためのエージェントであり、人間と AI のチームワークを軸に設計されている。ソースコードは https://github.com/HarrisClover/AgileGen で公開されている。これは 人間と AI のチームワークによるアジャイルベースの生成的ソフトウェア開発の強化 で導入された。著者らは、エンドユーザーが得意とする意思決定 — 要件の明確化と結果の受け入れ — をエンドユーザーが行い、その間のコード生成をエージェントが担うようにこれを構築した。その中核となる考え方は、ユーザーの要件に欠けている受け入れ基準を、振る舞い駆動開発の言語である Gherkin を用いて補完し、その結果得られたシナリオを使ってコード生成を方向づけることである。

機能

このシステムには 2 つの中核コンポーネントがあり、どちらも著者らが AI-Chain と呼ぶ方式で、LLM プロンプトの連鎖として構築されている。Scenario Design コンポーネントは、ユーザーの自然言語の要件を受け取り、メモリプールから最も類似した過去の要件を探し、Gherkin シナリオを生成して、それを自然言語に翻訳してユーザーに示す。ユーザーは各シナリオを確認、追加、削除、変更できる。決定されたシナリオはメモリプールに保存し直され、再び Gherkin に変換される。続いて Rapid Prototype Design コンポーネントが、ビジュアルデザイン — 8 つのビジュアルデザイン原則に導かれたページデザインとビジュアル記述 — を計画し、コードを生成し、Gherkin から一貫性要因(シナリオごとに少なくとも 1 つのビジネスロジックのケース)を導出し、それを用いて生成されたコードを自動的に 1 回修正する。

ユーザーインターフェースは Gradio ライブラリの上に構築されている。要件の入力エリア、各シナリオを編集・削除・補足できるシナリオエリア、ログ出力エリアを備え、生成後には、アプリケーションを試すためのコード実行リンク、コードのダウンロードリンク、そして新たな反復のきっかけとなるリクエストを送る、デザインと機能それぞれの変更エリアが提供される。論文の実装では、Web アプリケーションを HTML、CSS、JavaScript の各ファイルとして生成する。

採用とエコシステム

論文では、gpt-3.5-turbo と gpt-4-1106-preview で AgileGen を実行しており、モデルは設定パラメータで切り替えられると述べている。そして、Web プロジェクトや ChatDev の SRDD データセットのタスクでこれを使用した参加者によって評価している。著者らは、Gherkin シナリオを自動テストとして実行できるよう Cucumber テストツールを統合する計画と、ユーザーの意思決定を長期にわたって蓄積するためにシステムを公開テストプラットフォームにデプロイする計画を述べている。また、より高い同時実行性が必要な場合には、メモリプールの SQLite3 データベースを MySQL などのサーバーサイドのシステムに拡張できるとも述べている。