Slide 1

Slide 1 text

2025年 Amazon Bedrock AgentCoreまとめ Hello! 神野 雄大(Jinno Yudai/@yjinn448208)

Slide 2

Slide 2 text

自己紹介 2 簡単な自己紹介です! 名前 神野 雄大(Jinno Yudai)/@yjinn448208 最近X始めました! 所属 クラスメソッド株式会社 クラウド事業本部 コンサルティング部 ソリューションアーキテクト 資格 ● Japan All AWS Top Engineers 2025 推しの サービス ● Amazon Bedrock AgentCore ブログはこのアイ コンで書いていま す! ラ・ムーとチーズ ナンが好きです!

Slide 3

Slide 3 text

対象と目的 3 本資料はAmazon Bedrock AgentCoreを知ってもらうために幅広く知識を詰め込んだ資 料になります。一部難しい箇所はスキップいただいても構いません。少しでも AgentCoreでAIエージェントを作りたいと思っていただけたら幸いです! 対象 対象と目的 ● Amazon Bedrock AgentCoreをもっと知りたいと思っている方 目的 ● Amazon Bedrock AgentCoreの全体像をふんわりと理解してもらう ● Amazon Bedrock AgentCoreでAIエージェントを作りたい!と思っていた だく!!

Slide 4

Slide 4 text

謝り 4 残念ながら本資料で全て説明できているわけではございません。より詳細に知りたいと 思った方は、手前味噌で恐縮ですが私のブログから関連するトピックを読んでいただく と理解が深まると思います。時間の兼ね合いでスキップしている箇所もあるので、また 本資料は継続的にアップデートしていきます!!!(あくまでベストエフォートですが ・・・) ブログ:https://dev.classmethod.jp/author/yjinn/ アップデート予定!!!

Slide 5

Slide 5 text

5 皆さん10月に一般公開(GA)されたAmazon Bedrock AgentCoreを使っていますか?? Agent君

Slide 6

Slide 6 text

6 勿体無い!!AIエージェントを作る上で魅力的な機能がいっぱいあるか ら今から機能説明するよ!!! Agent君 え、触っていないよ・・・機能も多いしなんだか難しそう。 私

Slide 7

Slide 7 text

7 まずはAmazon Bedrock AgentCoreの概要から説明し ますね! Agent君

Slide 8

Slide 8 text

Amazon Bedrock AgentCoreについて 8

Slide 9

Slide 9 text

Amazon Bedrock AgentCoreはAIエージェントを展開・運用するために最適なマネージ ドサービスとなります。マネージドサービスによりインフラ管理を排除し、開発者が エージェントのロジック構築に集中できる環境を提供します。 Amazon Bedrock AgentCore とは 9 Amazon Bedrock AgentCore ● AIエージェントのホスティング ○ Strands Agents、LangGraphなど多様なエージェ ントフレームワークに対応 ● 便利なマネージドサービス ○ AIエージェントを使用する上で認証・ツール連携な ど便利な機能がマネージドサービスとして提供 (IdentityやMemoryなど) 特徴

Slide 10

Slide 10 text

Amazon Bedrock AgentCoreはデプロイするためのRuntime機能をベースに認証機能 IdentityなどAIエージェントを開発する上で便利な機能が備わっています。 Amazon Bedrock AgentCoreが持つ機能群 10 ● Runtime:AIエージェントの実行環境 ● Identity:認証機能 ● Gateway:MCPツールの集約機能、外部サービスのMCPツール化機能 ● Memory:記憶機能 ● Observability:AIエージェントの挙動を可視化 ● Evaluations:AIエージェントの評価機能(Preview) ● Built in tools ○ Code Interpreter:コード実行環境 ○ Browser:ブラウザ実行環境

Slide 11

Slide 11 text

Amazon Bedrock AgentCoreはRuntime、Identity、Memory、Gateway、Built-in Tools、Observability、Evaluationsというサービスが、それぞれ本番運用の具体的な課 題を解決します。組み合わせても使用できる柔軟性を持っており、ニーズに応じた最適 な構成を選択できます。 Amazon Bedrock AgentCoreの連携イメージ 11 Amazon Bedrock AgentCore Identity Gateway Built in tools Memory Observability Evaluations Runtime Identity

Slide 12

Slide 12 text

12 AIエージェントって言葉はよく聞くけど、何を意味しているか迷うポイ ントですよね。今から簡単に説明しますね!  Agent君 便利そう・・・!!ただそもそもAIエージェントって何?? 私

Slide 13

Slide 13 text

LLM、RAG、ツール利用とAIの利用は進歩してきましたが、AIエージェントはさらに一 歩進んだ存在です。単にツールを使うだけでなく、タスクをこなすための計画を立て、 実行し、評価し、自己管理することができます。 Appendix:AIエージェント 13 ユーザー エージェント 韓国旅行の予約をお願 い わかりました!まずは 計画から考えて実行し ます! 検索ツールで航空券・ホテル情報を収集 カレンダーツールで予定の空き状況を確認 予約システムAPIで航空券・宿泊を確保 メールツールで予約確認書を送信 実行計画

Slide 14

Slide 14 text

AIエージェントとは、自律的に判断・行動できるAIシステムのことです。 ユーザーの指 示を理解し、必要なツールを自身で計画を立てて使いながらタスクを実行します。まさ に人間の代理として計画的に作業を行うからエージェントなんですね。 Appendix:AIエージェントのイメージ 14 私 旅行会社の人 今まで AIエージェントを活用した結果 私 AIエージェント 調査ツール ツール 実行 1/1に韓国旅行にいき たい 1/1の13時のフライト はいかがですか? 1/1に韓国旅行にい きたい (自分でツール選択&調 査した結果) 1/1の13時のフライトは どうですか?

Slide 15

Slide 15 text

AIエージェントを特徴づける2つの中核的な特性が、自律性と知性です。自律性により、 エージェントは人間の指示を待たずに目標に向かって自ら動き続けることを可能にし、 知性により、複雑な状況を理解し、推論し、最適な判断を下すことを可能とします。 Appendix:AIエージェントが持つ特性 15 ⾃律性 Success! ⾃分⼀⼈で最後ま でやり遂げる! 知性 xxxについ て教えて 資料によると yyyです この質問なら、こ の資料を読んで判 断して返事するか 必要に応じて外部環境を活用 参照

Slide 16

Slide 16 text

よく使われているClaude Codeも、まさにAIエージェントの一種です。 ファイルを読み込み、コードを生成・修正し、テストを実行し、エラーを自己修正す る...これらはまさにエージェントの自律性と知性の表れです。 Appendix:AIエージェントが持つ特性 16 AIエージェント Claude Code コーディングエージェント

Slide 17

Slide 17 text

17 それならRuntimeだね。まずはAIエージェントの実行環境について説明 するよ。 Agent君 なるほど!AIエージェントについて理解できたよ!まずはAgentCoreの コア機能から教えて! 私

Slide 18

Slide 18 text

Amazon Bedrock AgentCore Runtime 18

Slide 19

Slide 19 text

Runtime機能は、AIエージェントを実行するための「身体」(LLMが「脳」)として機 能します。サーバーレスで自動スケールし、ユーザーセッションごとに専用のマイクロ VMを提供することでセキュアな実行環境を実現します。 Amazon Bedrock AgentCore Runtime 19 AgentCore Runtime ユーザー Strands Agents Bedrock LLM エージェントに質問 AIエージェント Bedrockを使用

Slide 20

Slide 20 text

AgentCore Runtimeの強みは柔軟性にあります。Strands Agents、LangGraph、 Mastraなど、どんなエージェントフレームワークでも選択でき、LLMもBedrock、 OpenAI、Geminiなど自由に組み合わせられます。 Amazon Bedrock AgentCore Runtimeの柔軟性 20 AgentCore Runtime ユーザー Mastra Azure OpenAI LLM エージェントに質問 AIエージェント Azure OpenAI を使用

Slide 21

Slide 21 text

21 その通り!とってもシンプルに実装できるフレームワークなので AgentCoreからは少し脱線するけど大事だから説明しますね! Agent君 あれ、Strands Agentsって何?AIエージェントを実装するようなフ レームワークなのかな? 私

Slide 22

Slide 22 text

Strands Agentsは、AWSが提供するオープンソースSDKで、AIエージェントの構築をシ ンプルにします。開発者は複雑なワークフローを複雑なコードで実装する必要がなく、 目標とツールを定義するだけでエージェントが構築できます。 Strands Agents 22 Strands Agents たった3行で実行できる

Slide 23

Slide 23 text

TypeScript版もPython版同様にシンプルに書けるのが特徴です。AgentCoreのデプロイ も公式ドキュメントに記載があるので展開可能です。ただ現時点ではPython版と比べる と使用できない機能もあるので注意です。(今後同期予定) Strands Agents(TypeScript版) 23 変わらずたった3行で実 行できる

Slide 24

Slide 24 text

Strands Agentsは生成AIがタスクを達成するために実行計画を立て適切なツールを使う ための仕組みであるエージェンティックループ(Agentic Loop)が存在します。LLMの 実行、ツールの選択、ツールの実行結果を返却といったループを簡単に実装可能です。 Agentic Loop 24 Strands Agents AIエージェント ユーザー タスクを依頼 Bedrock LLM 指示を入力 Tool MCP Server 状況に応じて ツール利用 失敗してもタスクが成功す るまで自動で反復して実行 可能 Agentic Loop

Slide 25

Slide 25 text

ツール実行も下記のようなシンプルな実装で自動的に使われます ツール実装のイメージ 25 ツールを定義して 呼び出すだけで機能

Slide 26

Slide 26 text

データ分析ツール ツールもエージェント化することも可能です。Agent As Toolsと呼ばれます。エージェ ント同士で協調して、自律的に判断したい時に便利です。 Agent As Tools 26 Strands Agents メインエージェント データ分析エージェント レポート作成エージェント レポート作成ツール このデータを分析して 情報をわかりやすくまとめて

Slide 27

Slide 27 text

27 AgentCoreへのデプロイも簡単なので説明していきますね! Agent君 シンプルにAIエージェントを実装できて良いね!! 早速処理を書いたからAgentCoreにデプロイしたい!!! 私

Slide 28

Slide 28 text

デプロイはシンプルです。Starter Toolkitを使用すると3つのコマンド(configure、 launch、invoke)だけで、AWS環境へのデプロイが完了および利用できます。 まずはAgentCoreの設定をするconfigureコマンドから確認します。 Starter Toolkit Configure コマンド 28 agentcore configure Dockerfile .bedrock_ agentcore.yaml ● デプロイ方法の選択(Zipかコンテナイメージ) ○ 推奨はZipアップロード(直接デプロイ) ● IAMロールの設定(自動作成も可能) ● コンテナの場合はECRの設定(自動作成も可能) ● (Zipの場合は)requirements.txtなどのパッケージ管 理ファイルの指定 ● 認証の設定(デフォルトはIAM) ● メモリーの設定(オプション) .dockerignore コンテナだった場合

Slide 29

Slide 29 text

シンプルな実装イメージ 29 シンプルなコードを書いてデプロイ手順を進めていきます。

Slide 30

Slide 30 text

configureコマンドは対話型で設定が可能で、エントリーポイントに処理を書いたコード を指定して、設定を進めると定義ファイルが作成されます。 Starter Toolkit Configure コマンド 30 対話形式で設定可能 .bedrock_ agentcore.yaml

Slide 31

Slide 31 text

Starter Toolkit Create コマンド 31 直近のアップデートでconfigureコマンドの代わりにcreateコマンドも使用可能となりま した。ゼロからAIエージェントのテンプレートを使ってセットアップが対話型で可能に なります。ゼロからサクッと動くものを作りたい際はこのコマンドの方がお手軽かもし れませんね。 .bedrock_ agentcore.yaml ソースコード一式 .bedrock_ agentcore.yaml ソースコード一式 IaCのコード一式 Starter Toolkitに よるデプロイ方法を 選択 IaCによるデプロイ 方法を選択 CDKかTerraformを選択可能

Slide 32

Slide 32 text

Starter Toolkit dev コマンド 32 デプロイする前にagentcore devコマンドを実行するとローカル環境でサーバーを建て られます。テストや動作確認をするのに良いですね。 ユーザー Strands Agents Bedrock LLM エージェントに質問 AIエージェント Bedrockを使用 agentcore invoke —dev ローカル環境(agentcore devで起動)

Slide 33

Slide 33 text

Starter Toolkit launch(deploy) コマンド 33 configureコマンド実行後はAIエージェントをStrandsなどで作成して、agentcore launchでデプロイ可能です。最近名称が変わってdeployコマンドでもデプロイ可能で す。deployコマンドとlaunchコマンドで実現できる機能は同じです。 AgentCore Runtime Strands Agents agentcore launch デプロイ AIエージェント

Slide 34

Slide 34 text

デプロイ実施 34 launchコマンドを実行してデプロイが完了します。

Slide 35

Slide 35 text

デプロイで実行される流れ(Zipアップロードによる直接デプロイ) 35 Zipアップロードによる直接デプロイはコンソールからも同じようにできますが、コマン ド上でやるのが依存関係のパッケージなどを読み解いて、自動でS3にアップロードして くれるので便利です。 .bedrock_ agentcore.yaml agentcore launch実行時 ファイル参照 依存関係を自動でパッケージングして ZipでS3にアップロード ソースコード AgentCore Runtime requirements.txt S3 ダウンロード して使用 S3バケットも自動作成

Slide 36

Slide 36 text

デプロイで実行される流れ(コンテナ版) 36 コンテナの場合はlaunchコマンドを実行することで裏でコンテナのビルド走り、ECRへ イメージがプッシュされます。このイメージをAgentCore RuntimeがPullして使用しま す。 agentcore launch実行時 Dockerfile .bedrock_ agentcore.yaml ファイル参照 イメージ ビルド実行 イメージPush AgentCore Runtime ECR イメージPull .dockerignore ソースコード CodeBuild

Slide 37

Slide 37 text

AgentCore Runtime Starter Toolkit invokeコマンド 37 デプロイしたエージェントはagentcore invokeコマンドで簡単に呼び出せます。 SDKや Curlなどでももちろん呼び出し可能です。 ユーザー Strands Agents Bedrock LLM エージェントに質問 AIエージェント Bedrockを使用 agentcore invoke

Slide 38

Slide 38 text

Starter Toolkit invokeコマンド 38 invokeコマンドを実行して呼び出すと下記のように動作確認ができます。

Slide 39

Slide 39 text

ストリーミングレスポンスも可能 39 Streamingで返信することもできます。下記実装に変更してデプロイを実施して、呼び 出してみます。

Slide 40

Slide 40 text

ストリーミングレスポンスも可能 40 呼び出してみるとストリーミングでレスポンスが返却されることを確認できます。 ● 返信がチャンク単位でスト リーミングで返信

Slide 41

Slide 41 text

41 いくつかあるので、Runtimeでポイントになりそうなところをピック アップして紹介しますね! Agent君 本当にあっという間にデプロイできた・・・AgentCore Runtime便利 ですね・・・細かく意識しておかないといけないポイントはあるの?? 私

Slide 42

Slide 42 text

Zipアップロードは250MB以下のパッケージをZIP形式で素早くデプロイでき、更新も高 速です。一方、コンテナベースは1GBまでの大規模パッケージや特殊な依存関係に対応 し、既存のCI/CDパイプラインも活用できます。開発フェーズでは直接コードで素早く プロトタイピングし、本番環境ではコンテナへ移行するハイブリッドアプローチも有効 です。 Zipファイルによる直接デプロイかコンテナイメージか 42 直接アップロード コンテナイメージ Runtime zip化してアップロード ● 250MBまでのパッケージに対応 ● 更新も高速 Runtime ビルドしてイメージを アップロード ECR PULL ● 1GBまでの大規模パッケージや依存 関係に対応 S3 ダウンロード

Slide 43

Slide 43 text

公式ドキュメントに直接アップロードかコンテナイメージかなどの比較情報などあるの で見ておくと参考になると思います。 Zipファイルによる直接デプロイかコンテナイメージか 43 引用 :https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runti me-get-started-code-deploy.html#runtime-code-deploy-concepts

Slide 44

Slide 44 text

IaCでのデプロイ 44 IaCも対応しています。インフラ環境としてAgentCoreを使用する場合は、ぜひIaCでの 管理も検討ください。Terraform、CDK、CloudFormationが対応しています。 Runtime CDK Terraform CloudFormation IaCツール 実装 デプロイ

Slide 45

Slide 45 text

Appendix:L2 Constructの実装イメージ 45 StarterToolkitと似たような実装で実現できます。使い勝手が良くて個人的に使用して います。

Slide 46

Slide 46 text

Runtimeにはエンドポイントが存在します。デプロイするたびにバージョンがインクリ メントします。特に何も指定しなければエンドポイントを呼び出した時は最新バージョ ンの処理が呼ばれます。これがDEFAULTエンドポイントです。 Runtimeのエンドポイントについて 46 開発者 ソースコード 開発端末 開発 AI エージェント開発 AgentCore Runtime バージョン1 バージョン2 バージョン3 デプロイ インクリメント 最新 DEFAULTエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations 紐づいている

Slide 47

Slide 47 text

名前付きエンドポイントも作成可能で、特定のバージョンを指定することが可能です。 名前付きエンドポイント 47 AgentCore Runtime バージョン1 バージョン2 バージョン3 最新 DEFAULTエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations 紐付け prodエンドポイント :https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{E ncodedAgentARN}/invocations?qualifier=prod 紐付け qualifierを指定しなければ DEFAULTが呼ばれるよ! PROD

Slide 48

Slide 48 text

ここで本番稼働向けアーキテクチャを考えてみます。デフォルトのエンドポイントを使 用するとインクリメントされるので、検証して然るべきタイミングでアップデートする ようにします。 Runtime Endpointの活用方法 48 バージョン2 バージョン3 PRODエンドポイント DEFAULT 開発者 入念にテスト ユーザー 安定バージョンを利用 テストOK!! PRODエンドポイントをバー ジョン3のするぞ!!! バージョン3 PROD,DEFAULT ユーザー 最新バージョンを利用 PRODをバージョン3 に紐付け おお、エージェントの返事がよ くなっているぞ!!!!

Slide 49

Slide 49 text

現時点で対応しているプロトコルはHTTPS、MCP、A2Aとなります。 例えばMCP ServerをAgentCoreにホストして、ローカルのMCP Clientなどから使用す ることも可能です。 Runtime の対応プロトコル 49 MCPクライアント (ex.Claude Code) /mcp with アクセス トークン AgentCore Runtime IdP (ex.Cognito) MCP Server アクセストークン取得

Slide 50

Slide 50 text

MCP Proxy for AWSを使えばIAM認証を活用して、ローカルのAWS認証情報を使ってア クセスすることも可能です。 MCP Proxy for AWS 50 MCPクライアント (ex.Claude Code) /mcp with IAM Sig V4認証 AgentCore Runtime MCP Server MCP Proxy for AWS ローカルの AWS 認証情報を使 用して MCP 通信を SigV4 で 署名

Slide 51

Slide 51 text

実際にMCP Proxy for AWSを活用した記事もDevIOに記載があるので、ぜひご参照くだ さい。 MCP Proxy for AWS 51 https://dev.classmethod.jp/articles/agentcore-mcp-iam-auth-ai-coding-tools/

Slide 52

Slide 52 text

WebSocketにも対応しているため、双方向ストリーミングにも対応しています。そのた め、リアルタイムでの音声のやり取りのような会話の割り込みも可能になります。 双方向ストリーミングも可能 52 AIエージェント ユーザー AgentCore Runtime XXXを実行してお願い!!! XXXを実行しますね。 以下を初期化中です・・・ (結果をまたずに)あ、やっぱ りYYYをすぐやって。 了解です!!XXXをやめて、 YYYをすぐに実行しますね。 双方向で会話が可能なため、結果を待たずに割り込み可能に エンドポイント :wss://bedrock-agentcore..amazon aws.com/runtimes//ws

Slide 53

Slide 53 text

SDKのデコレータを使用することでWebSocket用のエンドポイントを作成してくれま す。サクッと実装するには便利ですね。 双方向ストリーミングも可能 53 ● デコレータを使用することで、 8080番ポート、/wsエンドポイン トでの待ち受けを可能に

Slide 54

Slide 54 text

Runtime には idleRuntimeSessionTimeout(アイドル時のタイムアウト)と maxLifetime(最大稼働時間)パラメータが存在し、セッションの自動終了タイミング を制御できます。 Tips:Runtime lifecycle settings 54 しばらくリクエスト ないから寝るか zzz・・・ セッション idleRuntimeSessionTimeout アイドル状態が900秒経過 お話しし続けたけ ど、8時間たったか ら寝るね・・・zzz セッション maxLifetime 8時間経過 おはよう!(セッ ション開始) おはよう!(セッ ション開始) 終了 開始 開始 終了

Slide 55

Slide 55 text

公式ドキュメントにベストプラクティスの記載があるので、ぜひ設定される際は参考に することをお勧めします。 Tips:Runtime lifecycle settings 55 まずはデフォルト値(idle: 15分、max: 8時間)で運用 を開始し、実際の利用パターンを見ながら調整するのがベ ストプラクティスです。 開発・デモ環境では短め(idle: 2-5分)に設定してコス トを抑え、本番環境ではユーザー体験を優先して長め (idle: 10-15分)に設定することを推奨します。 引用:https://docs.aws.amazon.com/ja_jp/bedrock-agentcore/latest/devguide/runtime-lifecycle-settings.html

Slide 56

Slide 56 text

56 それならIdentityですね!!認証はAIエージェントをホストする上で とっても大事ですから丁寧に説明します! Agent君 おおお、盛りだくさんでした・・・!奥が深いですね・・!次の機能を 知りたいです!認証はとっても大事なので気になっています!! 私

Slide 57

Slide 57 text

Amazon Bedrock AgentCore Identity 57

Slide 58

Slide 58 text

Amazon Bedrock AgentCore IdentityはAIエージェントの認証機能を実現するマネージ ドサービスです。Inbound Auth / Outbound Authの2つ種類が存在します。 Amazon Bedrock AgentCore Identity 58 Inbound Auth Outbound Auth Runtime Identity IdP (ex.Cognito) リクエスト with アクセストークン トークン検証 Runtime Identity Secrets Manager IdP(ex.Cognito) リクエスト可能 API KeyやSecret取得 トークン取得( M2M認証) 外部サービス利用時

Slide 59

Slide 59 text

Inbound AuthはAIエージェント自体に対する認証機能です。CognitoやAuth0などのIdP と連携して認証を実現可能です。 Inbound Auth 59 IdP (ex.Cognito) アクセストークン取得 Runtime Identity トークンが有効な場合、 呼び出し可能 リクエスト with アクセストークン アクセストークンを検証

Slide 60

Slide 60 text

Outbound AuthはAIエージェントが外部サービスを呼び出すための認証機能です。 API キーやSecret認証情報をSecrets Managerで安全に管理し、自動で取得します。下記は APIキーの例です。 Outbound Auth(API Key) 60 Runtime リクエスト Identity Secrets Manager Azure OpenAIへ リクエスト API Keyを 取得 Azure OpenAI リクエスト with API Key

Slide 61

Slide 61 text

SDKで提供されているデコレーターを使って簡単にAPI Keyを取得可能です。こみ入った 処理を自前で実装しなくていいのはありがたいですね。 Outbound Auth(API Key) 61

Slide 62

Slide 62 text

Outbound AuthでMachine to Machine(M2M)認証する場合は下記フローで外部サー ビスを利用するための認証・認可が実施されます。例えばRuntime→Gatewayを例にみ てみます。 Outbound Auth(M2M) 62 Runtime Identity Gateway IdP(ex.Cognito) リクエスト with アクセ ストークン リクエスト with Secret Secrets Manager 取得したSecretを使って Gatewayアクセス⽤のアクセ ストークンを取得 IdPのSecretを取得 リクエスト with Gateway⽤ アクセス トークン

Slide 63

Slide 63 text

こちらもデコレーターを使って簡単に短命トークンを自動で取得可能です。込み入った 処理を自前で実装しなくていいのはありがたいです。 Outbound Auth(M2M) 63

Slide 64

Slide 64 text

最初のAgentCore Identityしようと書いてあるフローがデコレーターの実装でいい感じ に自動化されます。嬉しいですね。 Outbound Auth(M2M) 64 デコレータで簡略化

Slide 65

Slide 65 text

もちろんInbound AuthとOutbound Authは併用可能です。 下記はエージェントは Inbound AuthでCognitoを使用し、Gateway経由でツール(Lambda関数)を使用する ためにOutbound Authで短命のアクセストークンを別途取得して実行を可能にします。 Inbound AuthとOutBound Authの組み合わせ 65 Runtime Identity Gateway IdP(ex.Cognito) アクセス トークン取得 リクエスト with アクセス トークン リクエスト with Secret Secrets Manager 取得したSecretを使って Gatewayアクセス⽤のアクセ ストークンを取得 IdPのSecretを取得 リクエスト with Gateway⽤ アクセス トークン IdP(ex.Cognito) リクエスト with アクセストークン Lambda関数 ターゲットを実⾏

Slide 66

Slide 66 text

66 AgentCore Memoryで会話などの記憶情報を持たせることができます! 今からご紹介しますね!! Agent君 Identity使いこなして各種サービスと連携しつつ、セキュアなAIエー ジェントにしたいですね!Runtimeを実装しているけど、どのデータ ベースに記憶を持たせるのがいいのかな?DynamoDB? 私

Slide 67

Slide 67 text

Amazon Bedrock AgentCore Memory 67

Slide 68

Slide 68 text

AIエージェントに「記憶」を持たせることで、より賢く、よりパーソナライズされた対 応が可能になります。AgentCore Memory機能は、短期記憶(会話履歴)と長期記憶 (重要な情報の抽出)の両方をマネージドで提供します。開発者は複雑な記憶管理の実 装に悩むことなく、エージェントに学習能力と文脈理解能力を付与できます。 Amazon Bedrock AgentCore Memory 68 Amazon Bedrock AgentCore ユーザー Strands Agents Bedrock LLM エージェントに質問 AIエージェント Bedrockを使用 Memory ● 会話履歴 ● サマリー ● 客観的事実

Slide 69

Slide 69 text

Memoryは大きく分けて短期記憶と長期記憶の2種類の記憶を管理できます。 短期記憶と長期記憶 69 短期記憶 ● セッション中の会話履歴を保持 ● 最大365日まで保存可能 ● リアルタイムでアクセス可能 長期記憶 ● 短期記憶から自動的に戦略に基づく情報を抽出し ベクトルで保存 ● 抽出するための4つのビルトイン戦略およびカス タムの戦略を設定可能 ● ビルトインの戦略は4つ提供されている ○ Semantic Memory Strategy ■ 知識や事実を保存 ○ UserPreference Strategy ■ ユーザーの好みや傾向を保存 ○ Summary Memory Strategy ■ 会話のサマリーを保存 ○ Episodic Memory Strategy ■ やり取りから教訓を保存 自動抽出

Slide 70

Slide 70 text

短期記憶はユーザー毎にactor_id、セッション毎にsession_idがビルトインの属性で存 在するので簡単にユーザー毎の会話履歴を保持可能となります。 記憶構造のイメージ 70 memory_id:memory-001 actor_id:user-001 session_id:sess ion_001 Q:xxxについて 教えて A:YYY actor_id:user-002 session_id:sess ion_002 Q:zzzについて 教えて A:TTT session_id:sess ion_001 Q:DDDについ て教えて A:EEE session_id:sess ion_002 Q:FFFについて 教えて A:XXX

Slide 71

Slide 71 text

短期記憶の単位はChatGPTやCluadeなどの会話履歴タブがイメージしやすいです。 記憶構造のイメージ 71 actor_id:ユーザーの識別の単位 session_id:一連の会話履歴の単位

Slide 72

Slide 72 text

長期記憶は、短期記憶から自動的に重要な情報を抽出・統合する機能です。抽出された インサイトはベクトルデータとして保存され、セマンティック検索により関連性の高い 記憶を効率的に取得できます。 短期記憶から長期記憶への抽出イメージ 72 AIエージェント 短期記憶 りんごについて教えて 大好きなんです。 質問履歴を記録 長期記憶 自動的にベクトル化して抽出 AIエージェント 私の好みを教えて UserPreference Memory Strategyを設定 好みについてセ マンティック検 索 あなたはりんごが好きですね。

Slide 73

Slide 73 text

短期記憶から長期記憶への抽出はStrategyを設定することで簡単に設定できます。 actor_idやsession_idでNamespaceを作成して、ユーザー単位やセッション単位など、 どういった単位で抽出するかを設定可能です。 長期記憶の設定イメージ 73 ● UserPreferenceMemoryStrategy ○ Namespace : /retail-agent/{actor_id}/preferences ○ 特定の顧客の好みを抽出 ● SemanticMemoryStrategy ○ Namespace : /retail-agent/product-knowledge ○ ユーザーがアクセスできる共有製品情報を抽出 ● SummaryMemoryStrategy ○ Namespace : /support-agent/{actor_id}/case-summaries/{session_id} ○ 過去のサポートケースの概要やサマリーを抽出 使用例のイメージ

Slide 74

Slide 74 text

74 Episodic Memoryは他の抽出戦略と少し異なるので説明しますね! Agent君 あれ、長期戦略ってもう一つあったよね。Episodic Memory・・・ これはどう使うの?? 私

Slide 75

Slide 75 text

Amazon Bedrock AgentCore Memory Episodic Memory 75 新しい長期記憶戦略が追加されました。エピソード記憶といって、今までのやり取りか らAIエージェントがユーザーのリクエストを効果的に満たすためのナレッジや教訓に昇 華できる面白い戦略です。2段階で抽出が行われるのが他の長期記憶戦略とは異なる特徴 となっています。 ConsolidationとReflectionの2段階で抽出を実現

Slide 76

Slide 76 text

Amazon Bedrock AgentCore Memory Episodic Memory 76 より具体的に長期記憶への保存プロセスを確認してみます。短期記憶のやり取りからエ ピソードを抽出し、構造化してさらに複数のエピソードからも振り返りを行い、別途構 造化して記憶されるのが特徴になっています。 Extraction(抽出) Consildation(統合) Reflection(振り返り) インタラクションを分析 し、エピソードの完了を自 動で判定。完了時点でのレ コードを生成 関連イベントを構造化され た1つの記録に統合 複数のエピソードを横断分 析し、成功パターンや失敗 からの解決策など、広範囲 な洞察を抽出 長期記憶 短期記憶 Episode Memoryとして抽出 Reflectionとして抽出

Slide 77

Slide 77 text

実際に試す 77 計算機AIエージェントを作成して、エピソード記憶を長期記憶に設定して試してみまし た。NameSpaceはEpisode MemoryとReflectionでそれぞれ設定する必要があります。 Episode Memoryがセッション単位、Reflectionはユーザー単位とします。 計算機AIエージェント 私 Runtime 短期記憶 長期記憶 12 + 31 = 123 (わざと間違える) 違います・・・ 43です。 やり取りを記録 抽出 Episode Memory:/strategies/{memoryStrate gyId}/actors/{actorId}/sessions/{se ssionId} Reflection:/strategies/{memoryStra tegyId}/actors/{actorId} 参考 :https://dev.classmethod.jp/articles/amazon-bedrock-agentcore-episodic-memory- strategy/

Slide 78

Slide 78 text

Episode Memory 78 エピソードが完了すると、会話内容が5つの観点で構造化されます。何が起きて、なぜ成 功/失敗したかが記録されます。かなり詳細にエピソードとして記憶されている印象です 下記観点でやり取りをエピソード記憶とし て構造化 ● situation(状況) ● intent(意図) ● assessment(評価) ● justification(根拠) ● reflection(振り返り) ● turns(各ターンの詳細)

Slide 79

Slide 79 text

Reflection 79 複数のエピソードを横断して分析し、パターンやベストプラクティスを抽出します。 エージェントが将来のタスクで活用できる学びとして保存されます。 下記観点でやり取りを教訓として構造化 ● title(パターンのタイトル) ● use_cases(適用可能なユースケー ス) ● hints(実践的なヒント) ● confidence(信頼度スコア)

Slide 80

Slide 80 text

ユースケースの例 80 経験などを記憶させて回答させるケースには向いている印象ですね。あとは振り返って よりAIエージェントの作業練度を高めたいといったオペレーションにも良さそうです。 具体的なユースケース例が見つかりましたらまた共有させていただきます! ユースケース 説明 カスタマーサポート 過去の対応パターンから効果的な解決策を学習 エージェント駆動ワークフロー 過去のタスク実行経験を次のタスクに活用 コードアシスタント セッション履歴に基づいたコンテキスト理解 トラブルシューティング 過去の問題解決パターンを参照 パーソナル生産性ツール ユーザーの作業パターンを学習

Slide 81

Slide 81 text

81 安心してください!Strands AgentsのAgentCore Memory Session Managerを使えば簡単にAIエージェントと連携できます! Agent君 総じてMemory機能便利そうですね!!私のAIエージェントに取り込み たいのですが実装って難しいんですか・・・? 私

Slide 82

Slide 82 text

Strands AgentsにSession Managerといった便利な機能があります。 この機能を活用することで、シームレスにMemoryを利用できて実装が簡単です。  Amazon Bedrock AgentCore MemoryとStrands Agentsとの連携 82 ● MemoryID、SessionID、ActorIDの設 定をしてセッションマネージャーを作成 し、Agentの引数に設定すればMemory と連携可能

Slide 83

Slide 83 text

長期記憶の連携も簡単に設定できます。NameSpaceを設定すればOKです。 Amazon Bedrock AgentCore MemoryとStrands Agentsとの連携 83 ● Configの設定に長期記憶戦略の設定を行 えば使用可能 ● NameSpaceを設定 ● Episodic Memoryも設定可能 ● 複数の長期記憶戦略の設定も可能

Slide 84

Slide 84 text

84 よかったです!!次はGatewayといった少しわかりづらい機能について 説明していきますね。 Agent君 おおお、これなら簡単に自分のAIエージェントに組み込めそうですね! 早速試してみます! 私

Slide 85

Slide 85 text

Amazon Bedrock AgentCore Gateway 85

Slide 86

Slide 86 text

既存のAPI、Lambda関数、MCP Server、各種サービスをMCP(Model Context Protocol)互換のツールに変換して、AIエージェントから簡単に呼び出せるようにして くれるサービスです。 Amazon Bedrock AgentCore Gateway 86 Runtime Gateway /mcp ツールとして 呼び出し ・MCPに変換して実行 ・MCP Toolsを 中央集約的に管理 Lambda関数 OpenAPI仕様のAPI Remote MCP Server API Gateway Smithyモデル 統合サービス(Slack、GitHub)

Slide 87

Slide 87 text

GatewayはMCP Server自体をホストするものではないです。あくまで既存のLambda 関数をツール化したり他のMCP Serverを中央集約的に管理するのが役目となります。 MCP Server自体をホストしたいならRuntimeを使うことになるかと思います。 Gatewayの役割について 87 Gateway MCP Server ✖ Runtime MCP Server Gateway AIエージェント /mcp Runtime MCP Server MCP Server Lambda関数 RuntimeにMCP Server をホスト Gatewayで中央集約 GatewayにMCP Serverを ホスト(できない)

Slide 88

Slide 88 text

88 そう思いますよね・・・!!今からGatewayのメリットを説明してきま すね! Agent君 え、GatewayってMCPサーバーをホストするものではないんですね。何 に使うんですか??何だかGatewayを使うことでより複雑になっている 気が・・・RuntimeでMCPサーバー自体はホストできますし・・・ 私

Slide 89

Slide 89 text

下記のようにAgentCore Runtimeからツール利用する場合を比較してみます。左のよう にそのままツール利用もできるので一見Gatewayを挟むことで複雑な気がします。 Gateway有無の比較 89 AgentCore Runtime Lambda関数 Remote MCP Server ツール利用 ツール利用 AgentCore Runtime Gateway Lambda関数 Remote MCP Server ツール情報 取得 ツール利用 Gatewayを使わない場合 Gatewayを使う場合

Slide 90

Slide 90 text

ですがこれが100個以上ツールがある場合はどうでしょうか・・・???毎回MCPツー ルの定義を書くコードを書いたり、はたまた適切なツールを連携できるのでしょうか? Gatewayを使わない場合 90 AIエージェント Lambda関数 Remote MCP Server ツール利用 Gatewayを使わない場合 たくさんのツール 私 AIエージェントの処理コードに毎回、 新しいツールのコードを書くのか ・・・ またこんな連携して適切なツールを選 択できるのかしら?? どのツールが正しいん だ??

Slide 91

Slide 91 text

この疑問に対してAgentCore Gatewayが役立ちます。Gateway側に登録することで、 AIエージェント自体の処理は毎回変えずにツールの情報を同期取ることが可能かつ、適 切なツールを探すのにはSemantic Search機能が使えます。 Gatewayを使う場合 91 Lambda関数 Remote MCP Server ツール情報取得 ツール利用 Gatewayを使う場合 たくさんのツール AIエージェント with Semantic Search Gatewayに登録されたツー ル情報同期できる Semantic Searchで適切な ツールを見つけることがで きる Gateway

Slide 92

Slide 92 text

Strands Agentsではtool_call_syncメソッドが存在し、Gatewayに紐づいているツール 情報を取得することができます。 具体的なツール同期の処理 92 AIエージェント Gateway ユーザー XXXをやって Gatewayに紐づいた ツール情報取得 たくさんのツール ターゲット

Slide 93

Slide 93 text

MCP Serverがツールとして大量に使える状態にあるとコンテキストを圧迫および不適切 なツールを使用する可能性があります。そういった時にSemantic Search機能を使って 適切なツールを見つけてAIエージェントに使わせましょう。 Semantic Search 93 引⽤:https://catalog.us-east-1.prod.workshops.aws/workshops/015a2de4-9522-4532-b2eb-639280dc31d8/en-US/30-agentcore-gateway/34-gateway-search-tools

Slide 94

Slide 94 text

GatewayでSemantic Searchを有効にすると、ツール名 x_amz_bedrock_agentcore_searchを呼び出せます。 Semantic Searchのリクエスト・レスポンス例 94 リクエスト レスポンス

Slide 95

Slide 95 text

Strands Agentsで実装する場合はcall_tool_syncで検索しつつ、適切なツールをAIエー ジェントと同期することが可能です。 Semantic Searchを活用してツール同期をする 95 AIエージェント Gateway ユーザー XXXをやって Gatewayに紐づいた ツール情報を検索し て取得 たくさんのツール ターゲット XXXに関連する ツール探すで

Slide 96

Slide 96 text

Semantic Searchを使用することでコンテキスト汚染を回避することにつながります。 ANTHROPICの記事もMCP Serverをツールとして登録しすぎると、ツールの定義や結果 に過剰なトークンが消費され、エージェントの効率が低下する可能性があるといってい ます。 Appendix:MCP Serverをツールとして過剰に登録することによるコンテキストの汚染 96 Code execution with MCP: Building more efficient agentsより引 用 :https://www.anthropic.com/engineering/code-execution-with-mc p

Slide 97

Slide 97 text

これは人間でも同じことが言えると思います。いきなり、新しい職場に行って全ての情 報を詰め込まれても適切な行動はできず自分がやりたいことに対してアドバイスしてく れる人が欲しいですよね。AIエージェントも同じで、最適に実行できるようSemantic Searchで適切なツールを教えてあげるイメージを持つとわかりやすいです。 Appendix:現実での例 97 私 SaaS Slack Google Workspace XXXをしたいけど何を使っ たらいいんだ??? 私 SaaS Slack GoogleWorkspace XXXをしたいけど何を使っ たらいいんですか?? 先輩 XXXならこのSaaSツールを 使ったらいいよ。 ※ざっくりとした例えです、例えは正確ではない箇所もあります

Slide 98

Slide 98 text

組織に既存のLambda関数やMCP Serverがたくさんあって、組み合わせる場合は Gatewayに軍配が上がる気がします。あくまでオプションの選択肢で上記以外の用途な ら無理に使う必要はない気もします。シンプルにLambda関数やRuntimeにMCP Servre をホストして使う方が早いと思います。 Gatewayの使い所所感 98 MCP Serverを新規でホス トしたい。多くの数を展開 する訳ではない。サクッと 展開したい ユーザー Runtime MCP Server MCP Server Lambda Gatewayを使用しない ケース Gatewayを使用する ケース 接続するMCP Serverは既 存のLambda関数を多数活 用するし、MCP Serverは 中央集約したい ユーザー Gateway たくさんのツール RuntimeやLambdaなどにホスティング Gatewayで中央集約

Slide 99

Slide 99 text

99 そうですね!後はGatewayがたくさんのツールを活用できるといったこ とはきめ細かい権限制御も必要になってきますよね。そこでいくつかき め細かい権限制御ができる機能があるので紹介します。 Agent君 なるほど!!だいぶ理解できました!!MCPツールを中央集約的に管理 したい際にGatewayは輝くイメージですね!! 私

Slide 100

Slide 100 text

Policyは12月にPreviewリリースされた機能です。ポリシー言語であるCedarを使って、 きめ細やかにツールの認可制御ができるようになりました。AIエージェントが返金処理 を実施するツールを利用する例を考えてみます。 Gateway Policy(Preview) 100 AIエージェント Gateway $50返⾦するで 返⾦ツール使うで ⾦額が $200未満 か 評価 OK 返⾦ ツール AIエージェント Gateway $1000返⾦するで 返⾦ツール使うで ⾦額が $200未満 か 評価 NG ✖ ⚪ ポリシーに適合している場合 ポリシーに適合していない場合

Slide 101

Slide 101 text

Gateway Policy ツール拒否のイメージ 101 ポリシーで許可されていないツールを実行した場合は実行を拒否されます。 AIエージェント Gateway ユーザー ツールCを実行し て Gatewayに紐づくたくさんの ツール tools/call 一覧取得 ツールCを実行するよ ポリシーで許可され たツール Policy ツールA ツールB ツールC ツールD ツールCは実行できな いよ ツールAとBのみ許可

Slide 102

Slide 102 text

Gateway Policy 102 ポリシーで拒否される場合は下記のような権限不足のエラーが返却されます。

Slide 103

Slide 103 text

Gateway Policy 103 ツールの一覧を取得するTool/Listの場合はPolicyで許可されたツールのみ表示される形 となります。ALLOWしていない、もしくは明示的にDenyしているツールは表示されま せん。 AIエージェント Gateway ユーザー ツールの一覧を教 えて Gatewayに紐づくたくさんの ツール tools/list 一覧取得 Gatewayに紐づくツー ルの一覧を取得するよ ポリシーで許可され たツール Policy ツールA ツールB ツールC ツールD 使用できるツールはA とBだよ ツールAとBのみ許可

Slide 104

Slide 104 text

注意:Gateway Policyで発生するエラー 104 Policyを使用する際はGatewayのService-Linked Roleには必要な権限があります。下記 のようなエラーが出た場合はIAMの権限が適切かチェックしましょう。後からGateway にPolicyを紐づけた際は要注意です。 Gateway Policy ステータスコードは200だがInternalServerEceptionが発生 紐付け Service-Linked Roleに bedrock-agentcore:AuthorizeAction、 bedrock-agentcore:PartiallyAuthorizeAct ions、bedrock-agentcore:GetPolicyEngine の権限が必要

Slide 105

Slide 105 text

付与する具体的なIAM権限 105 Service-Linked RoleにPolicy用に付与する具体的な権限は下記イメージです。

Slide 106

Slide 106 text

Gateway Policyの評価方法 106 LOG_ONLY とENFORCEの2種類の評価方法が存在します。LOG_ONLYモードはログに 評価記録を残すだけで実際にはDenyされません。そのため、まずは。LOG_ONLYモード で挙動確認して、設計通りDenyされているか判断して問題なければ、ツール実行の拒否 まで実施するENFORCEに切り替えるのが良いかと思います。 AIエージェント Gateway ユーザー ツールCを実行し て Gatewayに紐づくたくさんの ツール tools/call 一覧取得 ツールCを実行するよ ポリシーで許可され たツール Policy (LOG ONLY) ツールA ツールB ツールC ツールD ツールCを実行しました(ログの記 録のみなので実行は可能) ツールAとBのみ許可 CloudWatch 評価結果を記録

Slide 107

Slide 107 text

LOG_ONLY モードの確認 107 LOG_ONLY モードの評価結果はObservability機能として提供されているCloudWatchの Dashboardで確認可能です。拒否された全体の傾向や個々のトレースも確認することが できます。 ビジュアルで拒否の割合を確認 個々のトレースから拒否されているリクエストを確認

Slide 108

Slide 108 text

直感的にかけるポリシー言語です。下記記載なら認証を受けたユーザーが process_refundツールをあるGateway経由で使用する時を対象にしています。また条件 として、ロールはrefund-agentが対象で、amountが200未満の場合に利用できると いった条件を記載できます。注意点としてCedarはIAMと同じように許可しなければ暗 黙的に全て拒否されるので注意が必要です。 Cedar言語 108

Slide 109

Slide 109 text

自然言語によるポリシー作成 109 Cedarポリシーは自然言語でLLMを活用して作成することも可能です。Cedarってなんだ か難しそうって方にも便利な機能が備わっております。ただ強すぎる権限やエラーが発 生する設定になることもあるので注意も必要です。 ユーザー 注文情報は参照可能で、更新や 作成は不可にして欲しいです。 コンソール上で入力 情報を読み取ってポリシーが作成される

Slide 110

Slide 110 text

Gatewayへのリクエスト、GatewayからのレスポンスにLambda関数を介して介入する 機能となります。きめ細かい認可制御などを可能にします。 Gateway Interceptors 110 引用:https://aws.amazon.com/jp/blogs/news/apply-fine-grained-access-control-with-bedrock-agentcore-gateway-interceptors/

Slide 111

Slide 111 text

Gatewayに対してリクエスト・レスポンスにInterceptorsを使って介入できます。 Gateway Interceptors Request Interceptors Response Interceptors AIエージェント Request Interceptor Gateway Gateway Response Interceptor AIエージェント ターゲット ターゲット Gatewayがターゲットを呼び出す前に実行されます。 ユースケース ● きめ細やかな認可制御(例:ユーザーグループに基 づくツール実行可否) ● アクセストークンの変換(例:なりすまし防止) ● ガードレールとの連携などなど Gatewayがレスポンスをクライアントに返却する前に実行さ れます。 ● ツール一覧情報の権限に紐づく動的なフィルタリン グ ● 個人情報などの機密データのマスキング ● etc・・・ ユースケース

Slide 112

Slide 112 text

Request Interceptorのユースケースも考えてみましょう。Gatewayの認証が通ると、 ユーザーAの権限では実行させたくないツールも実行できるような状態になります。 Gateway Request Interceptor 112 AIエージェント Gateway ユーザーA (一般ユーザー) 更新処理をしてほ しい Gatewayに紐づくたくさんの ツール ユーザーAの権限ではツールAは 実行させたくないが実行できてし まう ユーザーAの権限ではこの ツールしか実行させたく ない ユーザーB (管理者ユーザー) 更新処理をして欲 しい tools/call ツール実行 更新処理 = ツールAを 実行します ツールA

Slide 113

Slide 113 text

Request Interceptorを活用して、ユーザーの権限に応じてツールの実行を制御すること ができます。 Gateway Request Interceptor AIエージェント Gateway ユーザーA (一般ユーザー) 更新処理をしてほ しい Gatewayに紐づくたくさんの ツール ユーザーAの権限ではこの ツールしか実行させたく ない ユーザーB (管理者ユーザー) tools/call ツール実行 あなたの権限では更新 処理 = ツールAを実行 できませんでした ツールA Request Interceptor 権限NGならレスポン スを返却 ユーザーAのアクセストークンをデコードして 検証して、権限が適切か確認。権限がNGなら レスポンスを返却するように

Slide 114

Slide 114 text

Response Interceptorのユースケースも考えてみましょう。GatewayにPolicyも何も付 与していないと下記のように全てのツール情報が返却されてしまいます。 Gateway Response Interceptor 114 AIエージェント Gateway ユーザーA (一般ユーザー) ツールで何ができ るの? Gatewayに紐づくたくさんの ツール ユーザーAの権限では一部ツール情報しか取得 してほしくないが全てのツールが取得できて しまう 本当はユーザーAに取得 させたいツール一覧 ユーザーB (管理者ユーザー) ツールで何ができ るの? tools/list ツール情報 取得 全てのツール情報を返却 Aさんの権限では実行 して欲しくないツール も提示しちゃうよ

Slide 115

Slide 115 text

Response Interceptorを活用して、ユーザーの権限に応じたツール一覧を返却すること を可能とします。 Gateway Response Interceptor 115 AIエージェント Gateway ユーザーA (一般ユーザー) ツールで何ができ るの? Gatewayに紐づくたくさんの ツール 本当はユーザーAに取得 させたいツール一覧 ユーザーB (管理者ユーザー) tools/list ツール情報 取得 Aさんが実行できる ツールは下記の通りで す。 Response Interceptor ユーザーに応じたツール一 覧をフィルタリング Aさんの権限に応じ て、ツールの一覧を フィルタリングする

Slide 116

Slide 116 text

116 はい、また考えたら教えてくださいね。 次はAIエージェントの挙動を可視化する大事なObservability機能を説 明してきますね! Agent君 PolicyとInterceptorsを使ってきめ細やかい権限制御できるようになり ますね!この2つの使い分けについてはまたじっくり考えたいです。 私

Slide 117

Slide 117 text

Amazon Bedrock AgentCore Observability 117

Slide 118

Slide 118 text

Amazon Bedrock AgentCore ObservabilityはAIエージェントの各種メトリクス、ト レース、スパンを可視化することが可能です。マネージドサービスで可視化を簡単に実 現できます。 Amazon Bedrock AgentCore Observability 118 AIエージェント Amazon CloudWatch メトリクス‧トレー スログを送信 ダッシュボードを参照 ユーザー

Slide 119

Slide 119 text

セッションは会話全体、トレースは1回のリクエスト、スパンは個別の処理を表します。 セッション・トレース・スパンの関係 119 セッションID:abc-001(会話全体) トレースID:def-001 スパン POST /invocati ons スパン invoke_a gent Strands トレースID:def-002 スパン POST /invocati ons スパン invoke_a gent Strands

Slide 120

Slide 120 text

トランザクション検索を有効化すると、エージェントの実行フローを可視化できます。 アカウントごとに1回だけ有効化すればOKです。 Amazon Bedrock AgentCore Observability 120

Slide 121

Slide 121 text

デプロイ時にaws-opentelemetry-distroが依存関係に含まれている必要があります。た だstarter toolkitを使ってコンテナを選択して、デプロイすると下記のように自動で Dockerfileに含まれて、自動的にトレースされます。 依存関係(コンテナの場合) 121 開発端末 .bedrock_agentcore.yaml Dockerfile configureコマンドで作成 CMD ["opentelemetry-instrument", "python", "<>.py"]が⾃動的に含まれている launchコマンドでコンテナイメージ をビルド&Push ECR Runtime Pull トレース可能な状態に!!!

Slide 122

Slide 122 text

直接アップロードの場合はaws-opentelemetry-distroをrequirements.txtなどのパッ ケージ管理ファイルに依存関係を含めることでトレースされるようになります。create コマンドでテンプレートから作成した場合は自動的に含まれるので特に気にしなくてOK です。 依存関係(直接アップロードの場合) 122 .bedrock_agentcore.yaml requirement s.txt configureコマンドで作成 launchコマンドでZipアップロード Runtime トレース可能な状態に!!! 開発端末 aws-opentelemetry-distroが 必要 S3 ダウンロード

Slide 123

Slide 123 text

アプリケーションログとOpenTelemetry形式のログの2種類が出力されます。 otel-rt-logsストリームにはOTEL形式、日付つきストリームにはアプリログが記録され ます。 CloudWatchに出力されるログ 123 OTEL形式 アプリログ

Slide 124

Slide 124 text

トレースを下記のように確認できます。処理時間やそれぞれのスパンでのメッセージ内 容なども細かく確認できてどこがボトルネックになっているかも分析しやすいです。 統合ダッシュボード 124 処理フローが可視化されている それぞれのイベント内容を確認 可能 ツリー状にスパンを表現、処理 時間も表⽰されている

Slide 125

Slide 125 text

Runtimeだけではなく、Memory、Identity、Gateway、Built-in tools、Evaluationsな どの機能もトレース可能なので便利です。挙動を見る際は積極的に活用していきたいで すね。 Runtime以外での機能でもトレース可能 125 Memory Gateway ⻑期記憶が抽出された数 ポリシーによって拒否された割合

Slide 126

Slide 126 text

126 積極的に可視化機能を使って、エージェントの動きを理解したいです ね!次はAIエージェントで運用する上で大事な評価を実現する Evaluations機能について説明しますね! Agent君 可視化できるのは便利ですね・・・不明瞭な動きやエラーがあったらまずはこのダッシュ ボードを見て・・・って運用になりそうですね。また、Runtime以外も可視化されているの は便利ですね。特にGatewayとか拒否ポリシーかどうか挙動を見たい時もあると思います し。 私

Slide 127

Slide 127 text

Amazon Bedrock AgentCore Evaluations(Preview) 127

Slide 128

Slide 128 text

開発・運用しているAIエージェントの評価がコンソール上からできるようになりまし た。ダッシュボードからわかりやすく確認できます。LLMを使った評価 (LLM-as-a-Judge)となります。 Amazon Bedrock AgentCore Evaluations(Preview) 128 AIエージェント ユーザー Gateway ⼤阪の天気を教え て 天気検索ツールを 使って返事する! (ツールの結果を踏まえて) 晴れです 天気検索 ツール リアルタイムでも質問に対 する適切な回答‧ツール選 択ができているかなど評価 ⼀連の 流れを 観点に 基づい て評価

Slide 129

Slide 129 text

若干のラグはありつつもリアルタイムで評価も可能です。また、Starter Toolkitを使え ばオンデマンドでの評価も実現できます。ログをベースに評価しているため既存のエー ジェントの動作には影響がありません。 評価方法 129 Online evaluation On-demand evaluation ● リアルタイムでエージェント品質 を継続的にモニタリング可能、サ ンプリング率やフィルタ条件を指 定もできる。 ● 評価結果はObservabilityのダッ シュボードからも確認可能 ● 特定のセッションIDなどを指定し てオンデマンドで評価可能。 ● Starter Toolkitで簡単に実⾏可能 どちらも運⽤中のエージェントには影響しない

Slide 130

Slide 130 text

オンライン評価の場合ならコンソール上から簡単に有効化することが可能です。最大10 個まで評価指標を用いて評価することが可能です。 設定方法 130 どの評価指標を⽤いるか選択する(最⼤10個まで) 評価にする対象のフィルタリングやサンプリング率 を選択する

Slide 131

Slide 131 text

具体的な以下の観点で評価可能です。下記以外でもカスタム評価も実装可能となりま す。 評価項目の一覧 131 Session-level Evaluator (セッション全体を評価) ● Goal Success Rate(⽬標達成率) ○ 会話セッション全体を通じて、ユーザーの ⽬標が全て達成されたかを評価する Tool-level Evaluators (ツール呼び出しを評価) ● Tool Parameter Accuracy(ツールパラ メータ正確性) ○ ツール呼び出し時のパラメータが会話コン テキストから正しく取得されているかを評 価する ● Tool Selection Accuracy(ツール選択正 確性) ○ 状況に応じて適切なツールが選択されてい るかを評価する

Slide 132

Slide 132 text

具体的な以下の観点で評価可能です。下記以外でもカスタム評価も実装可能となりま す。 評価項目の一覧 132 Trace-level Evaluators (各ターンの応答を評価) ● Coherence(⼀貫性) ○ 応答に論理的な⽭盾、⾶躍、⾃⼰⽭盾がない かを評価する ● Conciseness(簡潔性) ○ 必要な情報を最⼩限の⾔葉で伝えているか、冗 ⻑でないかを評価する ● Context Relevance(コンテキスト関連性) ○ RAGなどで取得したコンテキストが質問に適切 に関連しているかを評価する ● Correctness(正確性) ○ 応答内容が事実として正しいか、回答が正確か を評価する ● Faithfulness(忠実性) ○ 応答が会話履歴やツール出⼒と⽭盾していな いかを評価する ● Conciseness(簡潔性) ○ 必要な情報を最⼩限の⾔葉で伝えているか、冗 ⻑でないかを評価する ● Harmfulness(有害性) ○ 侮辱、ヘイト、暴⼒、不適切な性的コンテン ツなど有害な内容が含まれていないかを評価 する

Slide 133

Slide 133 text

具体的な以下の観点で評価可能です。下記以外でもカスタム評価も実装可能となりま す。 評価項目の一覧 133 Trace-level Evaluators (各ターンの応答を評価) ● Helpfulness(有⽤性) ○ ユーザーの⽬標達成に向けて、応答がどれだけ 役⽴っているかを評価する ● Instruction Following(指⽰遵守) ○ ユーザーの明⽰的な指⽰(形式、⻑さ、スタ イルなど)に従っているかを評価する ● Refusal(拒否検出) ○ エージェントがリクエストへの回答を拒否ま たは回避しているかを検出する ● Response Relevance(応答関連性) ○ 応答がユーザーの質問やリクエストに直接答 えているか、的外れでないかを評価する ● Stereotyping(ステレオタイプ検出) ○ 特定のグループに対する偏⾒やステレオタイプ 的な内容が含まれていないかを評価する

Slide 134

Slide 134 text

オンデマンド評価の実施方法 134 オンデマンド評価はStarter Toolkit のevalコマンドで実行可能です。開発中で特定の セッションについて評価して欲しいタイミングなどサクッと確認できて便利ですね。 評価する対象のセッション IDおよび、評価指標を指定 実⾏コマンド 評価結果 点数や評価、評価の根 拠を説明 根拠については適切に 評価しているか確認し たいですね

Slide 135

Slide 135 text

具体的な評価の画面は下記のようになります。コンソール上のGenAI Observabilityダッ シュボードから確認可能です。 オンライン評価結果はダッシュボードから確認可能 135 各評価指標ごとにビジュアルでスコアを確認できる 評価がNGだったケースから特定のセッションを確認 することも可能

Slide 136

Slide 136 text

オンライン評価結果のログはCloudWatchに格納されていれます。ログを確認すること も可能です。LLMによる評価のため、予想と異なる結果のケースもあるかと思います。 気になれば適宜チェックして改善に活かしていきましょう!! AIによる評価 136 ● explanationでAIが何を持って正解とし たかの根拠を記載 ○ AIの根拠と想定が一致しているかは 要チェック

Slide 137

Slide 137 text

137 はい、Evaluations機能を活用して、AIエージェントを育てていけると 良いですね。次はAIエージェントが起こせるアクションを増やす便利な built-in tools機能について説明しますね。 Agent君 Evaluations機能は欠かせない機能ですね・・・AIエージェントは作っ て終わりではないから、継続的に評価してAIエージェントをよくしてい きたいですね。またAIによる評価も適切かどうかの判断が必要ですね。 私

Slide 138

Slide 138 text

Amazon Bedrock AgentCore built-in tools 138

Slide 139

Slide 139 text

Code Interpreter Code Interpreterは、AIが生成したコードを完全に隔離されたサンドボックスで安全に 実行し、Browserはブラウザ操作による自動化を可能にします。データ分析からWebに 対するアクションまで、エージェントの適用範囲を大きく広げる強力な機能です。 Amazon Bedrock AgentCore Built-in Tools(Code Interpreter & Browser) 139 Browser 引⽤:https://catalog.us-east-1.prod.workshops.aws/workshops/015a2de4-9522-4532-b2eb-639280dc31d8/en-US/60-agentcore-tools/62-browser-tool/01-browser-with-novaact 引⽤:https://catalog.us-east-1.prod.workshops.aws/workshops/015a2de4-9522-4532-b2eb-639280dc31d8/en-US/60-agentcore-tools/61-code-interpreter

Slide 140

Slide 140 text

140 はい、便利なのでユースケースに応じて活用していきたいですね! まずはCode Interpreterから説明していきます! Agent君 なるほど、ブラウザとコードの実行環境ですか。どちらもあったらエー ジェントの実行できるアクションの幅が広がりますね。 私

Slide 141

Slide 141 text

生成AIが作成したコードを外部の安全な環境で実行するための機能となります。 Amazon Bedrock AgentCore Built-in Tools(Code Interpreter) 141 ● 完全に隔離されたサンドボックス環境でコード実⾏ ● Python、JavaScript、TypeScriptに対応 ● pandas、numpy、matplotlibなどのデータサイエンス系ライブラリが利⽤ 可能 ● インライン100MB、S3経由で最⼤5GBのファイル処理が可能 ● デフォルト15分、最⼤8時間の実⾏時間 ● セッション内でのファイルや変数の状態維持

Slide 142

Slide 142 text

動作イメージとしては下記のようなイメージで動作します。独立した環境で動作し、AI エージェントの実行環境に影響を与えることはございません。 Code Interpreterの実行イメージ 142 Amazon Bedrock AgentCore AgentCore Runtime AIエージェント Code Interpreter ツール経由で呼び出し 生成AIが作成したコード 独立した環境で安全に実行 コードを実行 実行環境には影響しない ✖

Slide 143

Slide 143 text

Code Interpreterで生成AIが作成したコードを実行するイメージは下記のようになりま す。 Code Interpreterのユースケース例 143

Slide 144

Slide 144 text

144 はい、Strands Agentsで簡単に実装できますよ!Code Interpreter用 のツールが提供されています! Agent君 画像作成とか便利そうですね。また大規模なファイルはS3連携できた り、ビルトインのライブラリが入っているのも良いですね。ちなみに Strands Agentsで簡単に実行できたりしますか・・・? 私

Slide 145

Slide 145 text

Strands AgentsでもCode Interpreterを操作する便利なツールが提供されていて、下記 のようなコードでCode Interpreter上で作成したコードの実行を可能にします。 Strands Agentsでの活用 145 ● ツールをimportして初期化すれ ば、エージェントがツールとして Code Interpreterを可能に! 参考 :https://docs.aws.amazon.com/be drock-agentcore/latest/devguide/c ode-interpreter-using-strands.html

Slide 146

Slide 146 text

146 わかりました!Browser機能について説明します! Agent君 おお、簡単に実装できましたね。次はBrowser機能について説明をお願 いします! 私

Slide 147

Slide 147 text

Amazon Bedrock AgentCore Browserは生成AIがブラウザを操作するための実行環境を 提供するサービスです。下記のような操作可能なブラウザをLLMがPlaywriteや Browser-useなどを活用して操作します。 Amazon Bedrock AgentCore Built-in Tools(Browser) 147 Browser AgentCore Runtime AIエージェント 操作

Slide 148

Slide 148 text

Strands AgentsでもBrowserを操作する便利なツールが提供されていて、下記のような コードでブラウザ操作を可能にします。 Strands Agentsとの統合 148 ● ツールをimportして初期化すれ ば、エージェントがツールとして ブラウザ操作を可能に! 参考 :https://docs.aws.amazon.c om/bedrock-agentcore/lates t/devguide/browser-onboardi ng.html

Slide 149

Slide 149 text

検索エンジンを使うとCAPTCHAに引っかかる可能性があります。 一般的な検索にはブ ラウザ以外のMCPツール(Tavilyなど)の利用を推奨すると公式ドキュメントに記載が ありました。あくまで使用用途としてはForm入力や特定ページのアクションなどWeb操 作を自動化するのがいいかもしれませんね。 注意:検索での使用について AgentCore Runtime AIエージェント Identity TavilyAPI Browser ブラウザ操作の 自動化 Web検索 Secrets Manager API Key 取得 リクエスト

Slide 150

Slide 150 text

CAPTCHA対策としてWeb Bot Auth(Preview)も提供されています。 エージェントに暗号化された身元証明を付与することで、Cloudflare・Akamai等の主要 WAFプロバイダーに「正当な自動化ボット」として認識させ、CAPTCHA表示を減らす 仕組みです。あくまでプレビュー機能であり、引き続き検索をメインで使う場合はMCP ツールなどで検索するやり方が手堅く感じます。 CAPTCHA対策(Preview) Reduce CAPTCHAs for AI agents browsing the web with Web Bot Auth (Preview) in Amazon Bedrock AgentCore Browser

Slide 151

Slide 151 text

151 はい、検索はまずはTavilyなどで実現できないかを検討するのが良いか と思います!Form入力や特定ページのアクションなどWeb操作を自動化 する際にBrowserを使用するのが良いかと思います。 Agent君 なるほど、検索のユースケースは向いていないんですね。検索はBrowserを 活用せず、別の検索APIで実装するのを第一案にして、WebのForm入力や 情報収集などの別アクションでBrowserを活用してみます! 私

Slide 152

Slide 152 text

152 はい!今回説明したかった内容は以上となります!お疲れ様でした!! 今回説明した内容はほんの一部でしかない箇所もあるので実際に触って 理解を深めていってくださいね! Agent君 ブラウザ操作やコードを外部環境で実行したい時はBuilt-in tools便利で すね!これでAgentCoreの説明は以上かな? 私

Slide 153

Slide 153 text

まとめ 153

Slide 154

Slide 154 text

154 もちろんAgentCoreの機能を全て使う必要はございません!! 必要な要件に応じて使用する機能を組み立てて便利なAIエージェントを 組み立ててもらえると良いかと思います! Agent君 Agent君、説明ありがとう!!今日説明してもらった機能は全部使う必 要があるのかな?いっぱいあって難しいなと思って・・・ 私

Slide 155

Slide 155 text

まとめ 155 この資料ではAgentCoreについて幅広く説明させていただきました。 もちろん説明しきれていないことも多くありますが、少しでもAgentCoreに興味を持っ ていただけたり、理解が深まったら何よりでございます。 来年はAgentCoreをより活用して便利なAIエージェントを生み出していきましょ うー!! 引き続き皆様のためになるよう本資料はアップデートしていきますので、よろしくお願 いします! 最後までご覧いただきありがとうございましたー!!

Slide 156

Slide 156 text

Thank you!