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

20260228_JAWS_Beginner_Kansai

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.

 20260228_JAWS_Beginner_Kansai

Avatar for Takuya Yonezawa

Takuya Yonezawa

February 28, 2026
Tweet

More Decks by Takuya Yonezawa

Other Decks in Programming

Transcript

  1. 1 © 2026 Japan Digital Design, Inc. Takuya Yonezawa 2026.02.28

    苦しんで覚えるSSE × AgentCore 〜なぜアプリケーションがぬるぬる動くのか?〜 JAWS-UG初心者支部#77 関西 LT 大会
  2. 2 © 2026 Japan Digital Design, Inc. 米澤 拓也 Software

    Engineer Technology & Development Div. and Corporate Culture室 プロフィール 前職ではCCoE、現職ではSoftware Engineer。 フロント/バックエンドの実装からインフラ構築など何でもやってます 証券系→銀行系 と 金融×IT なキャリアを歩んでいます 生息地:大阪 & 奈良 Community Builder (Serverless) 2023~ 資格は1冠です、優しくしてください。 takuya_y0ne
  3. 5 © 2026 Japan Digital Design, Inc. 一言でAgentCoreとStrandsについて AI Agentを

    いい感じに動かすための フルスタック基盤 AI Agentを超楽に実装するための AWS謹製フレームワーク
  4. 6 © 2026 Japan Digital Design, Inc. つまるところ 「Strandsで作ったAI Agent

    を AgentCore上で動かす」 のである ちなみに私は今月まで 「StrandsとAgentCoreって何が違うねん?」という状態でした 笑
  5. 12 © 2026 Japan Digital Design, Inc. Server Sent Eventは

    技術としては昔からあるもの Server Sent Event (SSE) 2004年に初めて仕様化 ※1 ※2 サーバからクライアントに逐次的に データを送信するための仕組み HTTPベースで実現される サーバ→クライアントの単方向通信 ▪ なんで今さら? LLMの回答生成には時間がかかる。 回答生成が完了してから一発で レスポンスを返すような従来方式だと、 UX的に微妙なので再注目されている。 ※1 https://html.spec.whatwg.org/multipage/server-sent-events.html Client Server https://developer.mozilla.org/ja/docs/ Web/API/Server-sent_events/Using_server-sent_events ※2 HTTPで接続 データ データ データ HTTP接続終了 ・・・
  6. 13 © 2026 Japan Digital Design, Inc. WebSocketは? クライアント側のポーリングは? 玄人の方向け

    WebSocketやクライアント側の ポーリングだと、 - 双方向のハンドシェイク - クライアント側の処理負荷増大 などをケアして上げる必要があり、 アプリケーションが複雑になる WebSocketに対応していない プラットフォームもある その点 Server Sent Eventは単方向の HTTPベースなのでトータルすっきりする (らしい) Client Server データ取得 データ取得 データ取得 ・・・ Client Server WebSocketコネクション確立 データ送受信 WebSocket Client Polling
  7. 14 © 2026 Japan Digital Design, Inc. Server Sent Eventの中身

    https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events/Using_server-sent_events
  8. 15 © 2026 Japan Digital Design, Inc. Server Sent Eventの中身

    https://developer.mozilla.org/ja/docs/Web/API/Server-sent_events/Using_server-sent_events AgentCoreで特に意識しないといけないのは この”data”という項目
  9. 16 © 2026 Japan Digital Design, Inc. 実際に Strands on

    AgentCore が 返してくるSSEデータの中身を眺めてみる
  10. 20 © 2026 Japan Digital Design, Inc. この細切れのデータを組み立てると 「こんにちは!今日はお手伝いできることはありますか」 になる(=Strandsの応答)

    キー名が”event”のデータのみ抽出 Agent実行で消費されたトークン数 キー名が”event”のデータのみ抽出
  11. 23 © 2026 Japan Digital Design, Inc. そもそも event: messageStartとか

    event: contentBlockDeltaとか って何なのよ?
  12. 25 © 2026 Japan Digital Design, Inc. messageStart contentBlockStart contentBlockDelta

    contentBlockStop messageStop metadata ▪ メッセージ開始イベント アプリケーション上は無視してOK ▪ ツール利用時に出力される どのツールを利用するか?等が出力される ▪ ツール利用時に出力される ツール呼び出し時のインプットなどが出力される ▪ ツール利用時に出力される ツール利用の際の停止イベント ▪ メッセージの停止イベント 各処理ごとにモデルの回答生成が完了したら出力される ▪ モデル回答が完了する際に出力される トークン利用量やレイテンシーが出力される
  13. 34 © 2026 Japan Digital Design, Inc. x おまけ ~

    今回組んだシステム構成 & Demo ~
  14. 36 © 2026 Japan Digital Design, Inc. Strandsの中の構成。米澤の興味領域とも言える Master Agent

    WEB検索Agent (MCP) What’s New 検索Agent AWS環境 調査Agent 不動産情報 取得Agent フロント実装Tips 取得Agent Knowledge Bases Knowledge Bases StrandsTools RSS tavily
  15. 37 © 2026 Japan Digital Design, Inc. - なんでHonoとかFastAPI使ってるの? -

    なんでAPI-GW分けてるの? - Lambdaの中で何しているの? - KnowledgeBaseの精度向上Tips? - Bedrockモデルの選定は? などもネタとしては有るのですが、 明らかに今回は場違いなレベルになるのでまたの機会に