Slide 1

Slide 1 text

Amazon Bedrock Multi Agents を試してきた 2025/01/22 Fin-JAWS 第38回 ~re:Invent 2024 金融re:Cap~

Slide 2

Slide 2 text

自己紹介 1 • 森岡 嗣人(もりおか つぐと) – 株式会社 大和総研 • フロンティア研究開発センター データドリブンサイエンス部 • チーフグレード 主任データサイエンティスト • 経歴 – データ基盤・データ利活用関連のキャリアを中心に経験 • 通信企業の情報系(全社データウェアハウス)システム担当 • グループ内外に向けた、データサイエンス・ビッグデータ・AI系のアーキテクト、CoE担当 – 2024 Japan AWS Top Engineers (Machine Learning) • 関心領域・サービス – AI/ML : Amazon SageMaker、 Amazon Bedrock – ETL : AWS Glue、 Amazon Athena、 Amazon S3 – Logging : AWS CloudWatch、 CloudWatch Logs、 AWS Config

Slide 3

Slide 3 text

Agenda 2 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 4

Slide 4 text

Agenda 3 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 5

Slide 5 text

2025年に向けて、生成AIはエージェント、がキーワード 4 • 各種調査機関などでもエージェント型AIの実用化元年は25年では、といわれる • ただ定義が多種多様。いわゆるバズワードなので、会話で出会った時には慎重な確認が必要 • https://www.gartner.co.jp/ja/articles/top-technology-trends-2025 トレンド1:エージェント型AI: 主体性を持って行動する次世代の人工知能 エージェント型AIは、ユーザーが設定した目 標に向けて自律的に計画を立て行動する新し いAIシステムです。従来のAIアシスタントや LLM(大規模言語モデル)とは異なり、人間 からの直接的な指示がなくても「主体性」を 持って行動できる点が特徴です。

Slide 6

Slide 6 text

AnthoropicはWorkflowとAgentを区別して定義している 5 • https://www.anthropic.com/research/building-effective-agents エージェントとは何ですか? 「エージェント」は、いくつかの方法で定義できます。一部の顧客は、 エージェントを、さまざまなツールを使用して複雑なタスクを遂行し、 長期間にわたって独立して動作する完全に自律的なシステムと定義し ています。また、定義済みのワークフローに従う、より規範的な実装 を説明するためにこの用語を使用する顧客もいます。 Anthropic では、これらすべてのバリエーションをエージェント シス テムとして分類していますが、ワークフローとエージェントの間には 重要なアーキテクチャ上の区別があります。 • ワークフローは、LLM とツールが事前定義されたコード パスを通じ て調整されるシステムです。 • エージェントは、LLM が独自のプロセスとツールの使用を動的に指 示し、タスクの達成方法を制御するシステムです。 エージェントを使用する場合: エージェントは、必要なステップ数を予測することが困難または不可 能で、固定パスをハードコードできないオープンエンドの問題に使用 できます。LLM は潜在的に多くのターンにわたって動作するため、そ の意思決定にはある程度の信頼が必要です。エージェントの自律性に より、信頼できる環境でタスクをスケーリングするのに最適です。 エージェントの自律性は、コストが高くなり、エラーが複雑化する可 能性を意味します。適切なガードレールとともに、サンドボックス環 境で広範囲にテストすることをお勧めします。 エージェントが役立つ例: •タスクの説明に基づいて多数のファイルを編集するSWE ベンチ タス クを解決するコーディング エージェント。 •クロードがコンピュータを使用してタスクを実行する「コンピュータ の使用」リファレンス実装。

Slide 7

Slide 7 text

Agenda 6 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 8

Slide 8 text

Amazon Bedrockの理解には、BedrockにおけるAgent定義をまず抑える 7 • Blackbelt : Amazon Bedrock Series #04a Amazon Bedrock Agents ⾃律型 AI の実現に向けて: 検討編

Slide 9

Slide 9 text

Agentは与えられたToolsをもとに、計画を立てて、使い分け、返答する 8 • Blackbelt : Amazon Bedrock Series #04a Amazon Bedrock Agents ⾃律型 AI の実現に向けて: 検討編

Slide 10

Slide 10 text

Amazon Bedrock Agents(サービス)をAWS用語で理解する 9 • Blackbelt : Amazon Bedrock Series #04a Amazon Bedrock Agents ⾃律型 AI の実現に向けて: 検討編 Lambdaが呼べる →定義済みコードや 別APIも呼べる DB検索(RAG) 動的に生成したコー ドを分離環境で実行 LLMを使って理解・思考 →IAMRoleで権限付与

Slide 11

Slide 11 text

Amazon Bedrock Multi Agents(サービスの定義)とは 10 • https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_AWS-reInvent_1206_v1.pdf AgentがAgentを呼 べるようになった、 だけ InterfaceはLLMなので、テキ ストを受け渡せばよい

Slide 12

Slide 12 text

要はこうなっただけ 11 • Blackbelt : Amazon Bedrock Series #04a Amazon Bedrock Agents ⾃律型 AI の実現に向けて: 検討編 AgentがAgent を呼べるよう になった

Slide 13

Slide 13 text

AWS Blogでもマルチエージェントの例が紹介されている 12 • https://aws.amazon.com/jp/blogs/news/introducing-multi-agent-collaboration-capability-for-amazon-bedrock/ 統括するAgent(SuperAgent)がいて、そこで ルーティング戦略に基づき、タスクを決めます 適宜、後続のAgent(SubAgent)とやり取りをし て、結果を最終的にUserに返却します。

Slide 14

Slide 14 text

Multi Agentsサービスには「コラボレーション構成」という設定がある 13 • https://aws.amazon.com/jp/blogs/news/introducing-multi-agent-collaboration-capability-for-amazon-bedrock/ 2 つのコラボレーション構成がある。 ①スーパーバイザーモード ・スーパーバイザーエージェントが入力を分析し、複雑な問題 を分解したり、要求を言い換えたりして(=実行計画を考え て)、Agentを(場合によっては複数)呼び分ける、一般的な モード。 ②ルーティングを行うスーパーバイザーモード ・スーパーバイザーエージェントが、要求を解決できそうなサ ブエージェントを一つ特定し、そのサブエージェントへの応答、 からの回答を直接ルーティングするモード。 ・入力が複雑であいまいな場合、システムはスーパーバイザー モードにロールバックします。スーパーバイザーエージェント が問題を分析したり、フォローアップの質問をしたりしてから、 標準のスーパーバイザーモードと同様に進みます。 ⇒このアプローチにより、単一のフレームワーク内で単純なク エリと複雑なクエリの両方を効率的に処理できます。

Slide 15

Slide 15 text

Agenda 14 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 16

Slide 16 text

Jupyter環境が必要。Sagemaker AI環境が無難。 15 • ハンズオンにはJupyter環境が必要 ⇒Amazon SageMaker AI (旧SageMaker。緑アイコン。)のStudioを動作環境とする

Slide 17

Slide 17 text

ハンズオンに必要な権限を付与 16 • ExecutionRoleに、BedrockFullAccess、IAMAdministratorなどをAttach – Invoke、CreateAgent、CreateIAMRole、IAMPassRoleなどが実行される – 検証レベルであれば、Administrator Accessをつけてしまうのが悩みは少ない

Slide 18

Slide 18 text

StudioからJupyterを起動 17 • Studio>JupyterLabを起動

Slide 19

Slide 19 text

StudioからJupyterを起動 18 • JupyterLabのSpaceを新規作成し、JupyterLab を開く

Slide 20

Slide 20 text

AWSsampleHandsonではTerminalかNotebookを使う 19 • Terminalをつかって、ハンズオンのGitCloneや、ライブラリインストール実行 • JupyterNotebookからHandsOnを実行していくことになる

Slide 21

Slide 21 text

例:Hello Worldを動かして、環境確認する 20 • SupervisorAgent、SubAgent一つずつの構成 – ロジックもHelloWorldが返ってくるだけ • https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/multi-agent-collaboration/00_hello_world_agent

Slide 22

Slide 22 text

環境構築 21 • GitCloneして、Pipを用いて環境構築する – 1/15にレポジトリの構成が変わったので、エラーが出たときはPATH、階層などを疑うとよいかも。

Slide 23

Slide 23 text

環境構築 22 • GitCloneして、Pipを用いて環境構築する – 1/15にレポジトリの構成が変わったので、エラーが出たときはPATH、階層などを疑うとよいかも。

Slide 24

Slide 24 text

環境構築完了 23 • GitCloneして、Pipを用いて環境構築する – 1/15にレポジトリの構成が変わったので、エラーが出たときはPATH、階層などを疑うとよいかも。

Slide 25

Slide 25 text

Agenda 24 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 26

Slide 26 text

実行その1:エージェントをPythonから作る。 25 • Agentをつくる作業 – Agent作る際のエラーは基本権限不足(IAM、Bedrock)のはず。

Slide 27

Slide 27 text

Agentのロジックを理解するにはInstructionsを読むと良い 26 • Instructions、というAgentに与える指示・役割が動きを決める。プロンプトエンジニアリング。 – SuperVisorはSubAgentに丸投げし、その返答をそのまま返す – SubAgentは、何を聞かれてもHelloWorldとだけいう • https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/multi-agent-collaboration/00_hello_world_agent

Slide 28

Slide 28 text

実行その2:エージェントを呼び出す 27 • Agentをつくる作業をしてから、実際に呼び出す – ここの権限エラーは起きないはず(起きたらBedrock周りだとは思う)。

Slide 29

Slide 29 text

実行ログ1。Traceログが見える 28 • 想定通り、Agent間の判断・受け渡し(ChainOfThought)が見える – ※何を言われてもHelloWorldと返そう、というサンプルなので、ちょっと奇妙 – What is the weather like in Seattle? => Hello World … SuperAgentの動き。 UserINPUTを直接、SubAgentに Pass。 SubAgentの動き。 何を言われてもHelloWorldと返す SuperAgentの動き。 作業終了と判断し、レスポンス。

Slide 30

Slide 30 text

実行ログ2。複数回SubAgentを呼び出す例。 29 • Taskを2つ定義し、そのListを渡してInvoke。2つの結果をMergeして回答。 – [“Say Hello.”, “Say Hello in French.”] => [”Hello World”, “Hello World”] … SuperAgentはタスク1を実行する ために、問い合わせ。返答を収集。 SuperAgentはタスク2を実行する ために、問い合わせ。返答を収集。 SuperAgentは回答をMergeして、 Userに返却

Slide 31

Slide 31 text

このとき、BedrockのGUIから何が見えるか? 30 • Agentが2個見える。

Slide 32

Slide 32 text

GUIから各Agentの単体テストが可能 31 • GUI上でチャットプロンプト形式でのテストも実行可能 – (Multi以前からのBedrock Agentの機能ではある)

Slide 33

Slide 33 text

エージェントビルダーで編集も可能。 32 • LLMモデルはSuper AgentはSonnet3.5v2, Sub Agentはv1だった – SuperAgentには賢いLLMモデルを、SubAgentは軽いLLMモデルを使えるとよい

Slide 34

Slide 34 text

参考:Handsonの中で意識しなければいけなかったAWSリソース 33 • 各AgentはIAMRoleを持っている。呼び出すAPIやLLMの権限が必要。 – マイクロサービス的な権限設計をすればよい。 – InvokeModelやAgent.Invoke()はBedrockの権限が必要。 – 今回はHandsonの中で、RoleもAgentも作ったので、IAMの権限も必要だった • https://github.com/awslabs/amazon-bedrock-agent-samples/blob/main/examples/multi-agent-collaboration/00_hello_world_agent/architecture.png に追記 Role Role Foundation model Foundation model

Slide 35

Slide 35 text

Agenda 34 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 36

Slide 36 text

Workshopでのシナリオ例 35 • エネルギー管理会社のユーザサポートエージェント。 – JupyterNotebookに従って実行していくと下記リソースをすべて作ることになる。 – コード含め、2時間で理解するのは難しかった。 • amazon-bedrock-agent-samples/examples/multi-agent-collaboration/energy_efficiency_management_agent at main · awslabs/amazon-bedrock-agent-samples · GitHub

Slide 37

Slide 37 text

Workshopでのシナリオ例 36 • エネルギー管理会社のユーザサポートエージェント。 – スーパーバイザールーターモードでの稼働。 – 今回のケースではAgentごとの窓口が一つになったような形か。UNIFY customer experience、と言っていた。 • amazon-bedrock-agent-samples/examples/multi-agent-collaboration/energy_efficiency_management_agent at main · awslabs/amazon-bedrock-agent-samples · GitHub

Slide 38

Slide 38 text

ライブラリの環境インストールに失敗した…のでここまでです… 37 • JupyterKernel上のライブラリが想定より古い? – →発表後確認したところ、リポジトリ統合前のURLを使えば動きます!

Slide 39

Slide 39 text

READMEにちゃんと書いてありました 38 • 別のリポジトリの方がちゃんとメンテナンスしてあるよ – https://github.com/aws-samples/bedrock-multi-agents-collaboration-workshop • https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/examples/multi-agent-collaboration/energy_efficiency_management_agent

Slide 40

Slide 40 text

参考:ほかの金融っぽい例 39 • 株式データとニュースを組みあわせてレポートを書くAgent例などあり。 – リポジトリを眺めていただけるとよいか • amazon-bedrock-agent-samples/examples/multi-agent-collaboration/portfolio_assistant_agent at main · awslabs/amazon-bedrock-agent-samples · GitHub

Slide 41

Slide 41 text

Agenda 40 • AIエージェントの昨今の情報 • Amazon Bedrock Multi Agentsとは • 試してみるには – 実行環境整備 – HandsOnのHelloWorldの挙動 – 現地参加したWorkshopのご紹介 • 所感

Slide 42

Slide 42 text

所感 41 • マルチエージェント自体、LLMの判断精度と速度が向上したことで実用に登場 – LLMの判断が複数回連なっていくため。 • 精度が低くても、指数的に悪くなる。 例:(0.95)^10 = 0.59。 • 時間も長くなる。UXを踏まえると、思考過程を見せる、ストリーミングなども必要か。 – 昨今の優秀な基盤モデルが登場したから、実用性の芽がでてきた • とはいえAIは完璧ではない、ので、ユースケースの限定や、例外時運用フローの考慮などが、 エンタープライズ用途としては必要となる想定。 • エージェントを小分けにすることで、開発やテストの効率性、権限管理などが容易に。 – マイクロアーキテクチャのようなもの。 • Divide And Conquer。実際のチーム業務に近い形で設計は行えるはず。 – Bedrock Muiti Agentsを試す場合、「2階層で」「1種類のSubAgentへの1回の要求で完結する」よう な設計・仕様にすると、ルーティングモードの利用もあり使いやすいか。 • 顧客体験を統合するためのルーティングモード、複雑なプロセスの自動化にスーパバイザモード • エージェントをどの技術やサービスを利用して実装するかはまだ不安定 – 今回はAgentの仕組み自体をBedrockのマネージドで実装してみたもの。 – OSSや別サービスも多い。技術の進化も見ながら検証比較などが必要そう。柔軟に考えたい。