- はじめに
- セッション概要
- シングルエージェントの課題
- ②エージェントがサイロ化する
- Amazon Bedrock マルチエージェントコラボレーション
- マルチエージェントコラボレーションのメリット
- 終わりに
- 参考
はじめに
こんにちは、藤本です。 気づいたら、もうre:Invent参加から1カ月経っていて、とても驚いています。 re:Inventの記憶が薄れる前に、参加した中で印象的であったセッションの一つを紹介したいと思います。
2024年12月3日 re:Invent 2日目のMatt GarmanによるKeynoteで、Amazon Bedrock Agents マルチエージェントコラボレーションが発表されました。
マルチエージェントコラボレーションとは、Amazon Bedrock Agentsに新たに追加された機能であり、連携する複数のAIエージェントを構築および管理できる機能です。 詳しくは後ほど紹介します。
マルチエージェントは生成AI業界でも注目のトピックであり、以前から私自身もエージェントに関心があったため、マルチエージェントに関するセッション「Using multiple agents for scalable generative AI applications (AIM304) : スケーラブルな生成AIアプリケーションのためのマルチエージェントの使用」に参加しました。
本記事では、セッション内容を通してマルチエージェントコラボレーションについて紹介していきたいと思います。
セッション概要
このセッションでは、金融サービスチェーンNorthwestern Mutual社がどのようにAmazon Bedrock Agentsのマルチエージェントコラボレーションを使ってアプリケーション開発支援システムを変革し、エージェント間の計画とコミュニケーションを改善したかというテーマを取り上げていました。 生成AIエージェントやAmazon Bedrock Agentsなどの基本的な説明が導入としてあり、エージェントにあまりなじみのない私でも聞きやすい内容でした。 また、Keynote発表後に解禁されたセッションであり、中継会場が2つ用意されるほど注目度が高いセッションでもありました。
- セッションの動画(YouTube)
- セッションのスライド
シングルエージェントの課題
マルチエージェントコラボレーションの説明にあたり、シングルエージェントの課題が導入としてありました。
シングルエージェントは単独で意思決定や問題解決を行うAIエージェントを指します。 対して、マルチエージェントでは複数のAIエージェントが互いに協力・連携して問題を解決します。
シングルエージェントの課題として、①エージェントの機能が複雑化する、②エージェントがサイロ化する の2点が挙げられていました。
①エージェントの機能が複雑化する
大規模で複雑な問題を解決する要件の場合、シングルエージェントでは複数の役割や責任を一手に担うことになり、エージェントのタスクの成功率や精度、ワークフロー全体の成功率が低下します。 1つのエージェントに多くの機能を詰め込むことで、エージェントの機能が肥大化し、複雑さが増すことになります。 また、Amazon Bedrock エージェントを使用して堅牢な生成 AI アプリケーションを構築するためのベストプラクティス「小規模で焦点を絞ったエージェントを構築する」に反することになり、結果として壊れやすく、管理が難しくなります。
さらに、シングルエージェントの機能が複雑化することにより以下の問題が引き起こされます。
処理のブラックボックス化
エージェントの機能が複雑化することで、エージェントを構成するコードも複雑になります。 その結果、処理ステップや必要なツールが正しい順序で呼び出されているかを確認することが難しくなります。 このように、エージェントの処理がブラックボックス化してしまうことで、AIに求められる透明性と説明可能性が担保できなくなります。
エージェントの処理自体が遅くなる
LLM(大規模言語モデル)の処理能力は非常に優れていますが、一度に大量のタスクを任せると、ハルシネーション(誤った情報の生成)や、役に立たない回答を生成することがあります。 この問題を回避するために、エージェントのプロンプトが長くなり、結果的にエージェントの処理速度が遅くなります。 加えて、遅くなった処理を高速化するために、グレードの高いモデルにアップグレードし、コストの増加を引き起こす可能性もあります。
②エージェントがサイロ化する
では、1つのエージェントに機能を詰め込まずに、機能ごとに複数のエージェントを作成し、それらのエージェントを連携させて、監督するようなエージェントを用意してみます。
この場合、単一のシングルエージェントより処理が迅速になりますが、エージェントが別々に管理され、連携が取れていない状態(サイロ化)になります。 各エージェントは機能しますが、複数のエージェント間での調整が非常に難しく、複雑な自動化は解決されません。 また、エージェントが複数存在することで、スケーリングやセキュリティ、メンテナンスの観点で管理が難しくなります。
これらの課題を解決するために、マルチエージェントコラボレーションが発表(プレビュー)されました。
Amazon Bedrock マルチエージェントコラボレーション
マルチエージェントコラボレーションとは、複雑なワークフローを解決するために、連携する複数のAIエージェントを構築および管理できる機能です。 この機能により、単一のエージェントの開発の容易さと、複数のエージェントを調整して問題を解決することを組み合わせることができます。
この機能はプレビュー版であり、AWS GovCloud (米国西部) を除き、Amazon Bedrock エージェントをサポートするすべての AWS リージョンで利用することができます。 対応している基盤モデルの一覧は以下になります(2025年1月時点)。 マルチエージェントコラボレーションと同日に発表されたAmazon Novaも対応しています。
- Anthropic Claude 3 Haiku
- Anthropic Claude 3 Opus
- Anthropic Claude 3 Sonnet
- Anthropic Claude 3.5 Haiku
- Anthropic Claude 3.5 Sonnet
- Anthropic Claude 3.5 Sonnet v2
- Amazon Nova Pro
- Amazon Nova Lite
- Amazon Nova Micro
最新の情報は、マルチエージェントコラボレーションでサポートされているリージョン、モデル、Amazon Bedrock エージェント機能でご確認ください。
スーパーバイザーエージェントとは
マルチエージェントコラボレーションでは、スーパーバイザーエージェントと呼ばれるエージェントを作成し、エージェント間の調整を行います。 スーパーバイザーは、英語で監督者・管理者を意味します。 スーパーバイザーエージェントは、与えられたタスクに対して、計画を自動的に作成・実行し、関連するリクエストとタスクを適切なサブエージェントにルーティングします。 スーパーバイザーエージェントには最大10人のサブエージェントを関連付けることができます。 また、エージェントの配下にさらにエージェントを作成するように、マルチレベルの階層も作成できます。
スーパーバイザーエージェントの設定はコードやロジックを記述する必要がなく、簡単に行うことができます。 また、既存のエージェントをスーパーバイザーに設定することもできます。 マネジメントコンソール上でマルチエージェントコラボレーションを設定する場合は、エージェント作成時に「Multi-agent collaboration」にチェックを入れて設定する必要があります。
ルーティングの方法
マルチエージェントコラボレーションのサブエージェントへのルーティングの方法は、スーパーバイザーモードとルーティング付きスーパーバイザーモードの2つがあります。
スーパーバイザーモード
スーパーバイザーモードは、スーパーバイザーエージェントがタスクを分析し、必要に応じて複数のサブエージェントを調整するモードです。 基本的にスーパーバイザーエージェントがメインの処理を行います。
ルーティング付きスーパーバイザーモード
ルーティング付きスーパーバイザーモードは、スーパーバイザーエージェントが単純なリクエストを専用のサブエージェントに直接ルーティングするモードです。 複雑なクエリや明確な意図が検出されない場合は、自動的にスーパーバイザーモードに変わります。 サブエージェントに直接ルーティングすることで、スーパーバイザーエージェントの完全なオーケストレーションを避けることができます。 上記のスーパーバイザーモードより分散的に意思決定を行うことができます。
ルーティングの方法は、エージェントビルダーの「Collaboration configuration」から選択することができます。
マルチエージェントコラボレーションのメリット
複数のエージェントをまたいだ可観測性・可視性
スーパーバイザーエージェントを経由してサブエージェントをオーケストレーションすることで、マルチエージェント間の可観測性・可視性を向上させます。 フロー全体やサブエージェントの呼び出しを確認できるだけでなく、プロセス全体のステップやサブステップも確認することができます。 これは、課題①シングルエージェントの機能が複雑化するで挙げられていた処理のブラックボックス化を解決します。
効率的なルーティング
組み込みの意図分類を活用することで、エージェント間の会話を統一し、効率的なルーティングを実現します。 事前に設定されたシナリオに基づき、コードを書くことなく、最適化されたルーターが意図分類を行います。 ユーザーがエージェントにリクエストを送ると、そのコンテキストはルーターに渡され、ルーターが迅速に意思決定を行います。 このアプローチにより、適切なサブエージェントへのルーティングが高速かつ低遅延で行われ、サブ秒で処理が完了します。 独自にオーケストレーションを構築する場合は、3〜4秒の時間がかかりますが、組み込みのルーターでは1秒以内で処理することが可能です。 また、ルーティングを行うモデルも選択することができます。 これは、課題②シングルエージェントがサイロ化するを解決します。
複雑なワークフローの自動化
スーパーバイザーエージェントのルーティングによって、複雑なワークフローを自動化します。 スーパーバイザーエージェントがタスクを細分化し、計画を自動的に作成し、関連するタスクを適切なサブエージェントにルーティングします。 複数ステップにわたる推論、ツールの使用、高度なオーケストレーションによってサブエージェントを制御し、複雑な目標を達成します。
ナレッジベースの利用
ベストプラクティス「小規模で焦点を絞ったエージェントを構築する」に沿ったエージェントとナレッジベースを簡単に組み合わせることができます。 また、サブエージェントごとにナレッジベースを設定することで適切なアクセス権限を設定することができます。
エージェント機能のスケーラビリティ
シングルエージェントでは、新たに機能を追加する場合、エージェントソリューション全体をアップグレードする必要があります。 しかし、マルチエージェントコラボレーションを用いると、サブエージェントのみを追加することで、機能を簡単に拡張することができます。
終わりに
今回は、re:Inventで参加したセッション「スケーラブルな生成AIアプリケーションのためのマルチエージェントの使用」の内容を基に、マルチエージェントコラボレーションについてまとめてみました。
セッション中に「エージェントを本番環境にデプロイしたことがあるか」という質問が発表者から会場の参加者に投げかけられる場面がありましたが、手を挙げたのは会場参加者の4分の1ほどでした。 また、マルチエージェントの利用については、ほとんど手が挙がらない状況でした。 このことから、エージェントの普及はまだまだ進んでいないように感じました。 しかし、マルチエージェントコラボレーションによってエージェント開発は今後加速していくことが考えられるため、今のうちに学習を始め、取り残されないようにするべきであると強く感じました。
今回紹介したマルチエージェントコラボレーションは、まだプレビュー版であり、今後のアップデートで仕様の変更や新たに機能が追加される可能性があることに、ご注意ください。