6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JAWS-UG(AWS Users Group – Japan)Advent Calendar 2024

Day 25

ついに登場!AWS Bedrockマルチエージェント機能Multi-Agent Collaboration

Posted at

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エージェントの構築、設定できる
  • 定義可能な行動の種類
    1. LLMの実行
    2. アクショングループ:事前定義したLambda関数を実行
    3. ナレッジベース: Bedrock Knowledge basesから情報を検索

3 Multi-agent collaboration

  • Bedrockで利用できるフルマネージド型の機能
  • 特定の複数のエージェントと、それらをオーケストレーションするエージェントにより複雑なタスクの問題解決を実現する
    • オーケストレーションするエージェントをスーパーバイザーエージェントと呼ぶ
  • スーパーバイザエージェントがユーザリクエストをブレイクダウン、必要なタスクを決定する。タスクをそれぞれ得意とする専門エージェントに移譲、最後に結果を集約し、ユーザに回答する

fig3-1.png

なぜMulti-agent collaborationを使うのか

  • AIエージェント間のコラボレーションをGUIベースで簡単に構築可能!
  • 既存のBedrock Agentsをそのまま活用し、複雑なエージェントシステムが構築可能!
  • AWSが提供するトレーシングツールやデバッグコンソールを活用可能!

3 Multi-agent collaboration

そもそもなぜマルチエージェントシステムが必要なのか?

  • 複雑で規模が大きな課題であっても、解決できるから!
メリット 概要
専門性の向上 各エージェントを特定ドメインに特化させることで専門性を高められる ※1つのエージェントを複雑にすると、専門性を高めるチューニングがより困難になる
変更・管理コストの削減 エージェント単位で実装変更できるため、管理が容易になる ※シングルエージェントではシステム全体に変更の影響が発生する
タスクの分割と効率化 タスクを複数エージェントに分割するため、負荷も分散される ※シングルエージェントでは負荷が集中し、並行処理も困難
システムのスケラビリティ 新たな専門エージェントを追加することで、機能拡張可能 ※シングルエージェントだと、できることに上限ができてしまう

4 動作検証プロジェクト

  • AWS提供のサンプルプロジェクトを用いてMulti-agent Collaboration機能の動作を確認する
    • bedrock-multi-agents-collaboration-workshop

energy_manager_agent.png

図はGitHubより引用

4 動作検証プロジェクト

システム構成

  • 3つの専門エージェントと、1つのスーパーバイザーエージェントにより構成
  • 専門エージェント
    1. Energy Forecast Agent
      • 過去のエネルギー量計算、使用予測の提供、使用統計の生成、特定顧客の予測更新
      • アクショングループ(Lambda関数)、ナレッジベース、Code Interpreter(数値計算に利用)
    2. Solar Panel Maintenance Agent
      • 設置方法の提供、メンテナンス手順の提供、一般的な問題へのトラブルシューティング、専門家へのサポートチケット作成
      • アクショングループ(Lambda関数)、ナレッジベース
    3. Peak Load Manager Agent
      • IoTデバイスからデータ取得、ピーク時の必須でない負荷の特定とオフピークへの移行提案、スケジュール調整の推奨
      • アクショングループ(Lambda関数)

4 動作検証プロジェクト

  • スーパーバイザーエージェント
    • Multi-agent Collaborationの中心となるエージェント
    • 3つの専門エージェントを統括する
    • ユーザからの質問を受け取り、その質問に内容に応じて最適な専門エージェントに課題解決を依頼する

fig4-1.png

5 動作検証内容

  • 実行環境は参考プロジェクトのNotebookに沿って構築
  • 今回は2つのケースを実行し、エージェント動作内容を検証:
    • ケース1: Energy Forecast Agentのみで課題解決
    • ケース2: Energy Forecast AgentとPeak Load Manager Agentの2つの専門エージェントの回答を組み合わせて課題解決
  • マネージドコンソール上のBedrock Agentsの画面からテスト実行により確認

5-a テストケース1の実行結果

fig5-1.png

5-a テストケース1の実行結果

  • マネージドコンソールのテスト実行では、各エージェントのトレースタイムラインを確認可能
  • ケース1では実行後すぐにEnergy Forecast Agentが実行されていることがわかる
  • 処理時間のほぼすべてがEnergy Forecast Agentでの処理時間のため、応答精度を改善する場合はEnergy Forecast Agentを確認すればよいことがわかる

fig5-2.png

5-b テストケース2の実行結果

fig5-3.png

5-b テストケース2の実行結果

  • トレースタイムラインを確認すると、2つの専門エージェントがスーパーパイザーエージェントから呼び出されていることがわかる
  • 2つの専門エージェント間では依存関係がないため、並列で処理が実行されている
  • シングルエージェントよりも高速にユーザへ回答することが可能に!
  • ケース1と異なり、2つの専門エージェントの回答を組み合わせる処理も必要なため、専門エージェントの呼び出し前後で処理時間がかかっている

fig5-4.png

6 まとめ

  • re:Invent 2024で発表されたBedrockの新機能Multi-agent collaborationの実行環境を構築し、動作を検証した
  • マネージドコンソールでも構築/管理することができ、ノーコード/ローコードでマルチエージェントシステムが構築できる
    • 補足:今回はサンプルプロジェクトのNotebookから環境を構築したため、コード実装あり
    • 同等の手順をマネージドコンソールからGUIベースで実行可能
  • ユーザクエリに応じて適した専門エージェントが呼び出されることを確認できた
  • 複数の専門エージェントで処理が並行実行できることを確認できた
6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?