Slide 1

Slide 1 text

Strands AgentsとBedrock AgentCoreを使って社内タレント アサイン支援AIを開発してみた JAWS-UG Presents - AI Builders Day 2025.12.20 KDDIアジャイル開発センター 南川 虎之介

Slide 2

Slide 2 text

2 KDDI Agile Development Center Corporation アジェンダ 1. 開発しているプロダクトの概要 2. v1 (Bedrock Agents) での課題 3. v2 (Strands + AgentCore) への移行と結果 4. 今後の展望と期待 伝えたいこと • Strands Agentsはいいぞ 話さないこと • Strands Agents, Bedrock AgentCoreの具体的な使い方

Slide 3

Slide 3 text

3 KDDI Agile Development Center Corporation 自己紹介 現在 • 仕様駆動開発で試行錯誤チーム 今日の気になるセッション • AI-DLC関連 最近ハマっていること • バスケ観戦 ◦ B1 レバンガ北海道 趣味 • 野球観戦 • 麻雀 • ビール KDDIアジャイル開発センター 南川 虎之介(とら) 新卒1年目 ソフトウェアエンジニア 初JAWS, 社会人初登壇 Twitter (新X) : @fun_tora_

Slide 4

Slide 4 text

4 KDDI Agile Development Center Corporation 開発しているプロダクトの概要

Slide 5

Slide 5 text

5 KDDI Agile Development Center Corporation KAGの事業

Slide 6

Slide 6 text

6 KDDI Agile Development Center Corporation 何を作っているか 社内タレントアサイン支援システム 解決したい課題: • スキルや稼働状況などの情報を一箇所に集約して可視化したい • 部長などに属人化しているアサイン作業にかかる時間を減らしたい → 生成AIの力を借りて「空きリソース」×「ロール」×「スキル」等の複合条件で柔軟な 検索をしてチームを組みたい 「1月に空いている人でAWSできる人でスクラムチーム提案して」

Slide 7

Slide 7 text

7 KDDI Agile Development Center Corporation デモデータです。KAGには200人以上います

Slide 8

Slide 8 text

8 KDDI Agile Development Center Corporation

Slide 9

Slide 9 text

9 KDDI Agile Development Center Corporation

Slide 10

Slide 10 text

10 KDDI Agile Development Center Corporation

Slide 11

Slide 11 text

11 KDDI Agile Development Center Corporation v1 アーキテクチャ

Slide 12

Slide 12 text

12 KDDI Agile Development Center Corporation アクショングループ v1 Bedrock Agentsの構成 システムプロンプト(要約) • 時間を扱う場合は現在時刻を取得して判断する • ステップ1: ユーザーのリクエストに基づき検索機能を実行する • ステップ2: 件数を絞り込む ◦ 続きを出してと聞かれたら次の25件を返す • ステップ3: 詳細を取得する • 結果はJSONで返却し、コードブロックは含めない ロール検索 スキル検索 工数検索 現在時刻取得 従業員詳細取得 ・・・ Bedrock Agent

Slide 13

Slide 13 text

13 KDDI Agile Development Center Corporation ちなみにこんな時代もありました

Slide 14

Slide 14 text

14 KDDI Agile Development Center Corporation v1の課題

Slide 15

Slide 15 text

15 KDDI Agile Development Center Corporation v1 課題 現在時刻の不確実性 • 現在時刻取得ツールを使わない、使っても検索に反映されない • 過去や未来のデータを参照する不安定な挙動

Slide 16

Slide 16 text

16 KDDI Agile Development Center Corporation v1 課題 結果の出力をJSONだけにしてほしいが不確実 • 「説明不要、JSONのみ返せ」と指示してもコードブロック(```)が含まれることがあ り結果をうまく表示できない • プロンプト芸つらい

Slide 17

Slide 17 text

17 KDDI Agile Development Center Corporation v1 課題 返答するまでの時間が長い • 簡単な検索プロンプトでも30秒。Lambda + Auroraのオーバーヘッド

Slide 18

Slide 18 text

18 KDDI Agile Development Center Corporation v2の開発

Slide 19

Slide 19 text

19 KDDI Agile Development Center Corporation v2 アーキテクチャ

Slide 20

Slide 20 text

20 KDDI Agile Development Center Corporation Strands Agents の機能の紹介 Tools: エージェントの拡張機能。よしなに使ってくれる。 • Strands Agents Tools: Strands Agentsが提供して いるツール ◦ use_aws ◦ current_time • Agents as Tools ◦ ツールとしてエージェントを設定できる ◦ マルチエージェント Structured Output: Pydanticのモデルを定義することで、 Strandsがよしなに理解してJSONで返してくれる

Slide 21

Slide 21 text

21 KDDI Agile Development Center Corporation Strands Agents と AgentCore を採用 Strands Agents AgentsCore Runtime / Memory • 厳密なGraph定義より、自律ループしてく れる方が検索タスクに良いのではないか • ツールのcurrent_timeやuse_awsを使いた い • 今後、機能を増やしやすそう • AWS製であり親和性が高い • リリースされたばかりでせっかくなら使っ てみよう

Slide 22

Slide 22 text

22 KDDI Agile Development Center Corporation 出力管理 (Structured Output) • JSONを確実に返却 • プロンプトによる不安定さを解消 v2 エージェントの構成 基本的な流れ マルチエージェント構成、それぞれがAgent as Tools 検索ツール ツール選択・実行 (current_time, use_aws) 絞り込みツール 25件以上の場合に発動 メンバー詳細取得ツ ール メンバー詳細取得 (use_aws) メモリ機能 • Strandsのコードに少し書くだけで有効化 • Summary Strategyでセッションタイトル を付与

Slide 23

Slide 23 text

23 KDDI Agile Development Center Corporation デモ v2

Slide 24

Slide 24 text

24 KDDI Agile Development Center Corporation v2 改善されたこと 現在時刻を取得し正しく使うようになった • ツール current_time を使ってコードも削減 必ず結果をJSON出力 (Structured Output) • v1の「JSONのみ返せ、云々、、、」を廃止し、プロンプトの記述量を大幅に削減 ◦ 40行、500トークンほど削減 ◦ システムプロンプトがシンプルに • 返す値に説明を加え、安定した出力を実現

Slide 25

Slide 25 text

25 KDDI Agile Development Center Corporation v2 解決しなかったこと 応答速度は変わらず • フレームワークを変えても、Lambda + Auroraのボトルネックは不変

Slide 26

Slide 26 text

26 KDDI Agile Development Center Corporation v2 余談 • CDKとフロントのコードはAWS Knowledge MCPとCDK MCP使えばほぼ手直しせず に書けた • AgentCore Memory の (Custom) Summary Strategy はセッションタイトルには使 いづらい ◦ 期待: 「1月に空いているメンバーのスクラムチーム提案」 ◦ 現実: 「ユーザーが〇〇と検索し、△△と返した。なんとかかんとか、、、」

Slide 27

Slide 27 text

27 KDDI Agile Development Center Corporation 今後と期待

Slide 28

Slide 28 text

28 KDDI Agile Development Center Corporation 今後のアーキテクチャ 料金を抑えるために支援システム全体としてSPA化 • Aurora → DynamoDBへ • API Gatewayのストリーミングレスポンス対応を活用 応答時間の短縮 • DynamoDB移行でAuroraへの接続オーバーヘッドを排除 • Strandsの use_aws ツールで直接DynamoDBを読み取り Confluenceなどに外部サービスにあるデータをMCPを使って取得 • 案件データの一部はConfluenceにまとめられている • AgentCore GatewayやIdentityを活用して集約したい

Slide 29

Slide 29 text

29 KDDI Agile Development Center Corporation TypeScript版 Strands Agentsへの期待 現状はCDK, Lambda, フロント全てTypeScript • RuntimeもTSにしたい そんな時にTypeScript版 Strands Agentsの登場! • 2025年12月にPreview公開されたばかり • Python版にある「Structured Output」などが未実装 • Python版に追いついてほしいなっ

Slide 30

Slide 30 text

30 KDDI Agile Development Center Corporation まとめ • Strands AgentsのツールとStructured Outputにより、自律的なエージェントの構築と安 定した出力が実現し、回答の精度と開発体験が向上 • エージェントにStrands Agentsを使用しただけではI/Oボトルネックは解消せず、応答速 度の課題が残った • 今後はDynamoDB移行やSPA化による高速化、MCPでのデータソース拡張を推進する

Slide 31

Slide 31 text

Be a Change Leader. アジャイルに⼒を与え 共に成⻑し続ける社会を創る