Bedrock multi-agent collaborationを試してみた
1. はじめに
こんにちは!ベンジャミンの松延(まつのぶ)です!
AWS re:Invent 2024のKeynoteにて、Bedrock複数エージェント間でタスクを協調する機能である「Bedrock multi-agent collaboration」が発表されました。気になったのでKeynoteが終わった後に検証してみました。
2. Bedrock multi-agent collaborationとは
Bedrock multi-agent collaborationは、「スーパーバイザーエージェント」の指示のもとに様々な専門性をもつエージェント(コラボレータエージェント)が細かいタスクをこなし、スーパーバイザーエージェントと情報を交換しながら最終的なレスポンスに統合される機能となります。複数エージェント間でタスクを協調することが可能になります。現時点(2024年12月6日)ではプレビュー版となります。
3. Bedrock multi-agent collaborationを試してみる
本検証では、前提としてコラボレータエージェントはすでに作成済みであることを想定しています。検証で使用するコラボレータエージェントは、弊社の基本情報をナレッジベースとして構成しているBedrock Agentを使用しています。
1. スーパーバイザーエージェントを作成する
以下のような設定値でスーパーバイザーエージェントを作成しました。Bedrock Agentの設定項目に「Multi-agent collaboration」が追加されています。
(記載していないパラメータはデフォルト値を使用)
設定項目 | 設定値 |
---|---|
エージェント名 | bjm-multi-agent-supervisor |
エージェントリソースロール | 既存のサービスロールを使用 |
モデル | Claude3.5 Sonnet |
エージェント向けの指示 | 株式会社ベンジャミンについて質問をされます。コラボレータから情報を取得し、回答してください。 |
Multi-agent collaboration/Status | Enabled |
Multi-agent collaboration/Agent collaborators | 1 |
2. コラボレータエージェントをスーパーバイザーエージェントのコラボレータに指定する
エージェントビルダー画面の「Multi-agent collaboration」セクションにて編集ボタンを選択すると、以下のような画面が表示されます。コラボレータエージェントとプロンプト指示文を入力して保存します。
設定項目 | 設定値 | 説明 |
---|---|---|
Collaboration status | Enabled | Bedrock multi-agent collaborationを有効化する場合はチェックをいれる |
Collaboration configuration | Supervisor | レスポンスをスーパーバイザーエージェントに出力するか、コラボレータエージェントが出力するか |
Agent collaborator | 既存Bedrock Agent | どのBedrock Agentをコラボレータとするか |
Collaborator name | bjm-multi-agent-collaborator-test | コラボレータエージェントの名前 |
Collaborator Instruction | 株式会社ベンジャミンについて質問をされます。ナレッジベースから情報を取得し、回答してください。単に株式会社ベンジャミンと指示があった場合もナレッジベースから情報を探すようにしてください。株式会社ベンジャミンはBJM、ベンジャミンと呼ばれることもあります。上記以外の場合は、ナレッジベースとは関係なく、一般的な質問への回答を生成してください。 | コラボレータエージェントに与えるタスク |
Enable conversation history sharing | Enabled | スーパーバイザーエージェントが以前のコンテキストをコラボレータエージェントと共有するかどうか |
3. スーパーバイザーエージェントからプロンプトを実行してみる
スーパーバイザーエージェントから以下のようなプロンプトを実行してみました。
スーパーバイザーエージェントはコラボレータエージェントに指示を行い、指示内容に応じてコラボレータエージェントがナレッジベースから情報を取得しスーパーバイザーエージェントに結果を返しています。また、プロンプト結果にナレッジベースから取得した情報が返却されています。
4. まとめ
Bedrock multi-agent collaborationでは、エージェント同士が協調してタスクをこなすことができます。役割ごとにBedrock Agentを構成し、タスクに応じてコラボレータエージェントに指示を与えるスーパーバイザーエージェントを構成していくのが良いかと思いました。
もう少し踏み込んだ内容については引き続き検証をしてみたいと思います。