1 はじめに
Multi-agent collaborationは複雑なタスクを解決するために、複数のBedrock Agentと協力して細分化したタスクを解決していく機能で、re:Invent2024のKeynoteで発表された機能です。
すでにOSSなどでマルチエージェントフレームワークは多く公開されていますが、Bedrock Agentsとシームレスに統合でき、マネージドコンソールから構築できるものとしては初めてとなります。
1.1 本記事の内容
- re:Invent 2024で発表された生成AIサービスBedrockへの新機能Multi-agent collaborationについて、その概要を紹介します
- 公開されているサンプルコードを実際に動かして、その動作概要やマルチエージェントを利用する利点についても把握します
2 Bedrock Agents
AIエージェントとは?
- AIエージェントは、ユーザからの複雑なリクエストを解決するために、”どのような行動が必要か”、“どのように行動するべきか”を自律的に計画する
- 計画したそれぞれの行動は、LLM自身が持つ情報や外部情報を取り込むツールなどを用いて解決していく
- どのようなツールを使うかなどの具体的な行動内容もエージェント自身が思考して決定する
BedrockにおけるAIエージェント
- Amazon Bedrock Agentsサービスを使うことで、CLI/GUI問わずに簡単にAIエージェントの構築、設定できる
- 定義可能な行動の種類
- LLMの実行
- アクショングループ:事前定義したLambda関数を実行
- ナレッジベース: Bedrock Knowledge basesから情報を検索
3 Multi-agent collaboration
- Bedrockで利用できるフルマネージド型の機能
- 特定の複数のエージェントと、それらをオーケストレーションするエージェントにより複雑なタスクの問題解決を実現する
- オーケストレーションするエージェントをスーパーバイザーエージェントと呼ぶ
- スーパーバイザエージェントがユーザリクエストをブレイクダウン、必要なタスクを決定する。タスクをそれぞれ得意とする専門エージェントに移譲、最後に結果を集約し、ユーザに回答する
なぜMulti-agent collaborationを使うのか
- AIエージェント間のコラボレーションをGUIベースで簡単に構築可能!
- 既存のBedrock Agentsをそのまま活用し、複雑なエージェントシステムが構築可能!
- AWSが提供するトレーシングツールやデバッグコンソールを活用可能!
3 Multi-agent collaboration
そもそもなぜマルチエージェントシステムが必要なのか?
- 複雑で規模が大きな課題であっても、解決できるから!
メリット | 概要 |
---|---|
専門性の向上 | 各エージェントを特定ドメインに特化させることで専門性を高められる ※1つのエージェントを複雑にすると、専門性を高めるチューニングがより困難になる |
変更・管理コストの削減 | エージェント単位で実装変更できるため、管理が容易になる ※シングルエージェントではシステム全体に変更の影響が発生する |
タスクの分割と効率化 | タスクを複数エージェントに分割するため、負荷も分散される ※シングルエージェントでは負荷が集中し、並行処理も困難 |
システムのスケラビリティ | 新たな専門エージェントを追加することで、機能拡張可能 ※シングルエージェントだと、できることに上限ができてしまう |
4 動作検証プロジェクト
- AWS提供のサンプルプロジェクトを用いてMulti-agent Collaboration機能の動作を確認する
- bedrock-multi-agents-collaboration-workshop
図はGitHubより引用
4 動作検証プロジェクト
システム構成
- 3つの専門エージェントと、1つのスーパーバイザーエージェントにより構成
- 専門エージェント
- Energy Forecast Agent
- 過去のエネルギー量計算、使用予測の提供、使用統計の生成、特定顧客の予測更新
- アクショングループ(Lambda関数)、ナレッジベース、Code Interpreter(数値計算に利用)
- Solar Panel Maintenance Agent
- 設置方法の提供、メンテナンス手順の提供、一般的な問題へのトラブルシューティング、専門家へのサポートチケット作成
- アクショングループ(Lambda関数)、ナレッジベース
- Peak Load Manager Agent
- IoTデバイスからデータ取得、ピーク時の必須でない負荷の特定とオフピークへの移行提案、スケジュール調整の推奨
- アクショングループ(Lambda関数)
- Energy Forecast Agent
4 動作検証プロジェクト
- スーパーバイザーエージェント
- Multi-agent Collaborationの中心となるエージェント
- 3つの専門エージェントを統括する
- ユーザからの質問を受け取り、その質問に内容に応じて最適な専門エージェントに課題解決を依頼する
5 動作検証内容
- 実行環境は参考プロジェクトのNotebookに沿って構築
- 今回は2つのケースを実行し、エージェント動作内容を検証:
- ケース1: Energy Forecast Agentのみで課題解決
- ケース2: Energy Forecast AgentとPeak Load Manager Agentの2つの専門エージェントの回答を組み合わせて課題解決
- マネージドコンソール上のBedrock Agentsの画面からテスト実行により確認
5-a テストケース1の実行結果
5-a テストケース1の実行結果
- マネージドコンソールのテスト実行では、各エージェントのトレースタイムラインを確認可能
- ケース1では実行後すぐにEnergy Forecast Agentが実行されていることがわかる
- 処理時間のほぼすべてがEnergy Forecast Agentでの処理時間のため、応答精度を改善する場合はEnergy Forecast Agentを確認すればよいことがわかる
5-b テストケース2の実行結果
5-b テストケース2の実行結果
- トレースタイムラインを確認すると、2つの専門エージェントがスーパーパイザーエージェントから呼び出されていることがわかる
- 2つの専門エージェント間では依存関係がないため、並列で処理が実行されている
- シングルエージェントよりも高速にユーザへ回答することが可能に!
- ケース1と異なり、2つの専門エージェントの回答を組み合わせる処理も必要なため、専門エージェントの呼び出し前後で処理時間がかかっている
6 まとめ
- re:Invent 2024で発表されたBedrockの新機能Multi-agent collaborationの実行環境を構築し、動作を検証した
- マネージドコンソールでも構築/管理することができ、ノーコード/ローコードでマルチエージェントシステムが構築できる
- 補足:今回はサンプルプロジェクトのNotebookから環境を構築したため、コード実装あり
- 同等の手順をマネージドコンソールからGUIベースで実行可能
- ユーザクエリに応じて適した専門エージェントが呼び出されることを確認できた
- 複数の専門エージェントで処理が並行実行できることを確認できた