Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Bedrock AgentCoreで解き放て! Strands Agentsで構築するマルチエ...

Avatar for みのるん みのるん PRO
September 19, 2025

Bedrock AgentCoreで解き放て! Strands Agentsで構築するマルチエージェントの実装Tips

Avatar for みのるん

みのるん PRO

September 19, 2025
Tweet

More Decks by みのるん

Other Decks in Technology

Transcript

  1. 1 KDDI Agile Development Center Corporation $ whoami 御⽥ 稔(みのるん)

    @minorun365 テックエバンジェリスト KDDIアジャイル開発センター株式会社(KAG) クラウドや⽣成AIで内製開発を⾏いながら 技術の楽しさを広める活動をしています AWS Community Hero AWS Samurai 2023, 2024 2025 Japan AWS Top Engineer 2025 Japan AWS All Certs Engineer Qiita 2024 Top Contributor
  2. 3 KDDI Agile Development Center Corporation # みのるんワールドツアー2025 千秋楽︕ ⽉

    ⽕ ⽔ ⽊ ⾦ ⼟ ⽇ 8/18 19 20 21 22 23 24 25 26 27 28 29 30 31 9/1 2 3 4 5 6 7 8 9 10 11 ★書籍校了 12 13 14 15 16 17 18 19 20 21 新潟 シアトル 横浜 ⼤阪 ⾚坂 岩⼿ 新宿 名古屋 横浜
  3. 11 KDDI Agile Development Center Corporation AIエージェントとは︖ AIを使った「なんか賢いアプリケーション」全般をAIエージェントと呼んでいます。 旅⾏の予約しといて 稟議資料の叩き作って

    旅⾏予約AIエージェント 資料作成AIエージェント コード書いて、 プルリク出しといて コーディングAIエージェント これが流⾏りすぎて、 AIエージェント=開発者が使うもの だと思われちゃってることも🥹
  4. 12 KDDI Agile Development Center Corporation コーディング以外のAIエージェントの例 KDDIの “本部⻑AI” こと「A-BOSS」

    営業の提案資料を何度でもレビューしてくれる︕ AWS 資料をアップするだけ
  5. 13 KDDI Agile Development Center Corporation LLM時代の「AIエージェント」の特徴 概ね以下の特徴をもつと⾔われている (Wang et

    al. 2024) AIエージェント プロファイリング ⻑期記憶 計画&振り返り ツール実⾏ 役割を定義したり パーソナライズできる ⼈間のように⻑い期間の 記憶をうまく保持する ⽬的を達成するために 計画を⽴て適宜修正する テキスト⽣成だけでなく 様々な外部ツールを使える
  6. 16 KDDI Agile Development Center Corporation なぜ「AIエージェント案件」は難しいのか︖ 概念が理解しづらく、そもそも発注側が「AIエージェント」の要件を出すに⾄りづらい • ⽣成AIで最も多い「AIで何かやらなきゃ」案件、どうしても発注担当者の技術知識

    (RAGやファインチューニング等)に引っ張られた要件になりがち • エンジニア側の提案⼒も必要。顧客の潜在ニーズを察知して「その要件なら、 アプローチをこう変えればAIエージェントでうまく解決できますよ」と提案する必要がある
  7. 17 KDDI Agile Development Center Corporation なぜ「AIエージェント案件」は難しいのか︖ 概念が理解しづらく、そもそも発注側が「AIエージェント」の要件を出すに⾄りづらい • ⽣成AIで最も多い「AIで何かやらなきゃ」案件、どうしても発注担当者の技術知識

    (RAGやファインチューニング等)に引っ張られた要件になりがち • エンジニア側の提案⼒も必要。顧客の潜在ニーズを察知して「その要件なら、 アプローチをこう変えればAIエージェントでうまく解決できますよ」と提案する必要がある せっかく導⼊しても、UXを⼯夫しないと使われず放置される • AIアプリはチャットボットになりがち。「このフォームに何でも⼊れてください︕」だと、 多くのユーザーは何をしたらいいか分からない
  8. 18 KDDI Agile Development Center Corporation なぜ「AIエージェント案件」は難しいのか︖ 概念が理解しづらく、そもそも発注側が「AIエージェント」の要件を出すに⾄りづらい • ⽣成AIで最も多い「AIで何かやらなきゃ」案件、どうしても発注担当者の技術知識

    (RAGやファインチューニング等)に引っ張られた要件になりがち • エンジニア側の提案⼒も必要。顧客の潜在ニーズを察知して「その要件なら、 アプローチをこう変えればAIエージェントでうまく解決できますよ」と提案する必要がある せっかく導⼊しても、UXを⼯夫しないと使われず放置される • AIアプリはチャットボットになりがち。「このフォームに何でも⼊れてください︕」だと、 多くのユーザーは何をしたらいいか分からない • 開発前に業務を徹底分析する「サービスデザイン」と、⼩さいリリースを繰り返して ユーザーのフィードバックを素早く取り込むアプローチが効果的
  9. 22 KDDI Agile Development Center Corporation 私のプリセールス芸「Vibe商談」 この活動で気づいたポイント︓ • 実際に動くものを⾒せるまで、AIエージェントはパワポの世界にいる空想上の存在

    • 裏でエージェントが何をしているか、ストリーミングで逐次表⽰するUXがめちゃ重要 すげぇ︕︕ これください localhost:30000
  10. 24 KDDI Agile Development Center Corporation AWSクラウド 必ず使うビルディングブロック「Amazon Bedrock」 AWSが提供する開発者向けの⽣成AIサービス。

    ⽣成AIモデルをサーバーレスで、API経由の従量課⾦で⼿軽に利⽤できる︕ アプリケーション サーバー Amazon Bedrock APIを叩くだけ アプリ利⽤者
  11. 25 KDDI Agile Development Center Corporation Bedrockを使って、AIエージェントを構築するには︖ Bedrock Agents Bedrock

    AgentCore Strands Agents 初⼼者向け 本格⼊⾨セット GUIでAIエージェントを 簡単に作れる︕ デプロイも運⽤もAWSに おまかせ ⾃分で開発したエージェントを サーバーレスでデプロイ︕ 認証、ツール、可観測性など 必要な機能だけをアドオンできる Python⽤のフレームワーク 最⼩3⾏のシンプルなコードで AIエージェントが書ける︕
  12. 26 KDDI Agile Development Center Corporation Amazon Bedrock Agents 本格的なAIエージェントが、AWSマネジメントコンソールからGUIで簡単に作れる︕

    AWS Cloud Webアプリ Amazon Bedrock エージェント Amazon Bedrock ナレッジベース アクショングループ (AWS Lambda) 頭脳となるLLM (Claudeなど) Web API (例︓カレンダー サービス) 議事録を⾒て 次回予定を カレンダーに 登録しといて︕ ⾏動計画を ⽴てる 「ツール」を使って 外部サービスを操作 社内データを RAGで検索
  13. 27 KDDI Agile Development Center Corporation Amazon Bedrock エージェントの作り⽅ コンソールの「エージェントビルダー」から簡単作成︕

    Lambda関数は、Claudeに書くのを⼿伝ってもらおう。 LLMを選択 指⽰を⼊⼒ 動作テスト できる ツールやRAGなど、 持たせる「武器」を設定
  14. 31 KDDI Agile Development Center Corporation 「かんたん」と「⾃由度」はトレードオフ︕ Bedrock Agentsのつらみ •

    GUIは簡単だけど、何体もエージェント作るのがつらい︕ • IaCも⼀応対応してるけど、結構ハードル⾼め デプロイ
  15. 32 KDDI Agile Development Center Corporation 「かんたん」と「⾃由度」はトレードオフ︕ Bedrock Agentsのつらみ •

    GUIは簡単だけど、何体もエージェント作るのがつらい︕ • IaCも⼀応対応してるけど、結構ハードル⾼め • 新しいモデルが出ても、対応するまで時間がかかる • Bedrockのクォータに抵触すると即エラーで終了してしまう デプロイ LLM
  16. 33 KDDI Agile Development Center Corporation 「かんたん」と「⾃由度」はトレードオフ︕ Bedrock Agentsのつらみ •

    GUIは簡単だけど、何体もエージェント作るのがつらい︕ • IaCも⼀応対応してるけど、結構ハードル⾼め • 新しいモデルが出ても、対応するまで時間がかかる • Bedrockのクォータに抵触すると即エラーで終了してしまう • MCPに直接対応していない • マルチエージェントの構成に制限がある デプロイ LLM 応⽤
  17. 36 KDDI Agile Development Center Corporation 定番の⽼舗、LangChainファミリー。 「グラフ」を描いてワークフローを構築 TypeScriptファーストの新星︕ Webアプリの延⻑でエージェントが書ける

    AWSが作ったPythonベースのSDK とにかくシンプルなので⼊⾨に最適 ⼈気のAIエージェント開発⽤フレームワーク もはや、AIエージェント開発は データサイエンティストがNotebookで ポチポチする難しそうなものではありません。 僕らのような普通のWebエンジニアが アプリのバックエンドの⼀部として ⼿軽に組み込める武器のひとつなのです
  18. 39 KDDI Agile Development Center Corporation ツール モデル Strands =「より⽷」

    「モデル」と「ツール」をガッチャンコするのがStrandsの思想。 少し前はLLMが賢くなかったので、 複雑なワークフローを書いて縛る必要があった。 今はLLMが優秀なので、モデルとツールだけ指定すれば AIエージェント⾃体はシンプルに書ける︕ 新しいフレームワークだからこその利点と⾔える。
  19. 47 KDDI Agile Development Center Corporation Agent as Tools の例

    いわゆるSupervisorパターンの実装。 親エージェントが⼦エージェントを ツールとして呼び出す Agent as Tools
  20. 51 KDDI Agile Development Center Corporation A2A on Strandsの実装例 リモートエージェントをTool

    Useで呼べる専⽤クラスが便利︕ A2A A2A クライアント A2A サーバー
  21. 55 KDDI Agile Development Center Corporation Bedrock AgentCoreとは︖ AIエージェント専⽤の便利パーツ集︕ •

    ランタイム(サーバーレス基盤) • メモリー(記憶管理) • ゲートウェイ(ツール集約) • アイデンティティ(認証認可) • オブザーバビリティ(運⽤監視) などなど… ⾃分の好きなフレームワークに、 APIで欲しい機能だけ導⼊可能︕
  22. 59 KDDI Agile Development Center Corporation AIに記憶をもたせる「メモリー」 AgentCore SDKを使ってメモリーを操作できる。 Strandsでは、短期記憶をHooksで制御したり、

    AgentCoreMemoryToolProviderで⻑期記憶を呼ぶと便利。 その話、 詳しく教えて︖ 呼び出し イベントの保存 イベントの 呼び出し 短期記憶の例
  23. 63 KDDI Agile Development Center Corporation エージェントをとりまく権限制御ができる「アイデンティティ」 ユーザー / エージェント

    / ゲートウェイ間の認証認可を制御してくれるAPI。 AgentCore ゲートウェイ インバウンド の認証/認可 アウトバウンド の認可 インバウンド の認証/認可 ユーザー エージェント AgentCore アイデンティティ アウトバウンド の認可 SaaS
  24. 68 KDDI Agile Development Center Corporation フロントエンドの選択肢 初⼼者向け 本格UI開発に⼊⾨ Pythonで簡単に綺麗なUIが書ける︕

    JSが苦⼿なバックエンドエンジニアは ここから始めてみよう Next.jsやReactなどのリポジトリを 紐づけるだけで⾃動デプロイ︕ Gen2でめっちゃ進化しました
  25. 75 KDDI Agile Development Center Corporation うまく実装するコツ • イベントを検知しよう エージェントをストリーミングモードで呼び出して、もしSSEのレスポンスオブジェクトに

    「contentBlockStart」があれば、その種別をyield(出⼒)してフロントエンドに渡す。 • 応答テキストを逐次表⽰しよう イベントと同様にSSEレスポンスを条件判定して、もし「contentBlockDelta」があれば、 その内容(差分コンテンツ)をyieldしてフロントエンドに渡す。
  26. 76 KDDI Agile Development Center Corporation うまく実装するコツ • イベントを検知しよう エージェントをストリーミングモードで呼び出して、もしSSEのレスポンスオブジェクトに

    「contentBlockStart」があれば、その種別をyield(出⼒)してフロントエンドに渡す。 • 応答テキストを逐次表⽰しよう イベントと同様にSSEレスポンスを条件判定して、もし「contentBlockDelta」があれば、 その内容(差分コンテンツ)をyieldしてフロントエンドに渡す。 • サブエージェントもイベント検知&ストリーミングしよう サブエージェントごとにキューを張り、すべてのキューを親のストリームにマージすると リアルタイムで全員の動きを逐次表⽰することができる。