Googleは最近、シーケンシャルパイプラインからhuman-in-the-loopアーキテクチャまで網羅するマルチエージェントシステム向けの8つの重要なデザインパターンを概説するガイドを公開した。このガイドはGoogleのAgent Development Kit向けのサンプルコードとともに各パターンについて具体的に解説している。
複雑でスケーラブルなエージェント型アプリケーションを作成するには他のソフトウェアシステムで用いられるのと同じ規律あるアプローチが必要、とGoogleは言う。なぜなら単一エンティティに依存すると、パフォーマンスやデバッグ性を低下させるボトルネックを生じさせるからだ。
信頼性は分散化と専門化から生まれます。マルチエージェントシステム(MAS)を使うことで、マイクロサービスアーキテクチャに相当するAIを構築できます。特定の役割(パーサー、評価、ディスパッチャー)を個々のエージェントに割り当てることで、よりモジュール性が高く、テスト容易性と信頼性に優れたシステムを構築できます。
GoogleはAgent Development Kitが提供する3つの基本実行パターン:シーケンシャル、ループ、パラレルを用いて、開発者が構造化された方法でマルチエージェントシステムを設計するのに役立つ8つの基本アーキテクチャ、またはパターンを特定した。
最も単純なパターンはシーケンシャルパイプラインで、エージェントを組立ラインのように配置し、各エージェントが出力を次のエージェントに渡す構成である。このパターンは「直線的で決定論的、かつデータの出所が常に正確に分かるためデバッグが驚くほど容易」とGoogleは言う。
シーケンシャルパイプラインにわずかな派生形がコーディネーター/ディスパッチャーパターンである。この構成では1つのエージェントが意思決定エージェントとして働き、リクエストを受け取って下流の専門エージェントに振り分ける。
パラレル・ファンアウト/ギャザーパターンは複数エージェントが同時処理し、それぞれが固有責務を持つ場合に有用である。例えばPRをレビューする際、プライマリエージェントがスタイルの強制、セキュリティ監査、パフォーマンス分析のような特定タスクを処理するためのパラレルエージェントを生成できる。パラレルエージェントは出力をシンセサイザーエージェントに渡し、そこで出力が集約され、PRの承認または却下が行われる。
より複雑なシナリオでは開発者は階層的分解を用いてエージェントを構成できる。この手法では高レベルエージェントが複雑な目標をサブタスクに分解し、それらを他のエージェントに委任する。
出力の信頼性が重要な場合にはジェネレーターと評価パターンを使用できる。このパターンでは1つのエージェントがコンテンツ生成を担当し、別エージェントがそれを検証、必要に応じて前者にフィードバックを提供して反復的に出力を改善する。
ジェネレーターと評価を汎用化したものが反復的改良パターンであり、ジェネレーターエージェント生成出力が批評エージェントとリファイナーエージェントにサブミットされ、両者が協調してオリジナル出力を反復的に改善する。
金融取引の実行、本番環境へのコードデプロイ、センシティブデータに基づくアクションなど、不可逆的な影響を伴う、あるいは重大な結果を伴う意思決定が必要なケースもある。このような場合にはhuman in the loopパターンが有効な解決策となり得る。この構成では承認ツールエージェントが必要に応じて実行を一時停止し、人間のレビュアーが提案を承認または却下するまで待機する。
最後に、コンポジットパターンでは他の任意のパターンを組み合わせ、例えばコーディネーターをリクエストのルーティングに使ったり、パラレルエージェントを処理高速化に使ったり、ジェネレーターと評価ループを出力品質の担保のために使ったりすることができる。
前述のとおり、Googleのガイドにはこれらすべてのパターンを実装するためのAgent Development Kit使用方法を示した詳細な図やコードスニペットが含まれている。ディテール全体をぜひ確認してください。
マルチエージェントシステムにADKを使用するための別ガイドとして、Hangsik Shin氏のガイドもチェックすること。