Bedrock multi-agent collaborationを試してみた

technologies

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/StatusEnabled
Multi-agent collaboration/Agent collaborators1

2. コラボレータエージェントをスーパーバイザーエージェントのコラボレータに指定する

エージェントビルダー画面の「Multi-agent collaboration」セクションにて編集ボタンを選択すると、以下のような画面が表示されます。コラボレータエージェントとプロンプト指示文を入力して保存します。

設定項目設定値説明
Collaboration statusEnabledBedrock multi-agent collaborationを有効化する場合はチェックをいれる
Collaboration configurationSupervisorレスポンスをスーパーバイザーエージェントに出力するか、コラボレータエージェントが出力するか
Agent collaborator既存Bedrock AgentどのBedrock Agentをコラボレータとするか
Collaborator namebjm-multi-agent-collaborator-testコラボレータエージェントの名前
Collaborator Instruction株式会社ベンジャミンについて質問をされます。ナレッジベースから情報を取得し、回答してください。単に株式会社ベンジャミンと指示があった場合もナレッジベースから情報を探すようにしてください。株式会社ベンジャミンはBJM、ベンジャミンと呼ばれることもあります。上記以外の場合は、ナレッジベースとは関係なく、一般的な質問への回答を生成してください。コラボレータエージェントに与えるタスク
Enable conversation history sharingEnabledスーパーバイザーエージェントが以前のコンテキストをコラボレータエージェントと共有するかどうか

3. スーパーバイザーエージェントからプロンプトを実行してみる

スーパーバイザーエージェントから以下のようなプロンプトを実行してみました。

スーパーバイザーエージェントはコラボレータエージェントに指示を行い、指示内容に応じてコラボレータエージェントがナレッジベースから情報を取得しスーパーバイザーエージェントに結果を返しています。また、プロンプト結果にナレッジベースから取得した情報が返却されています。

4. まとめ

Bedrock multi-agent collaborationでは、エージェント同士が協調してタスクをこなすことができます。役割ごとにBedrock Agentを構成し、タスクに応じてコラボレータエージェントに指示を与えるスーパーバイザーエージェントを構成していくのが良いかと思いました。
もう少し踏み込んだ内容については引き続き検証をしてみたいと思います。

Related posts