$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
Search
そのだ
December 20, 2025
Technology
3
120
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
【connpass】
AI Builders Day
-
https://jawsug.connpass.com/event/371658/
そのだ
December 20, 2025
Tweet
Share
More Decks by そのだ
See All by そのだ
RAGの基礎から実践運用まで:AWS BedrockとLangfuseで実現する構築・監視・評価
sonoda_mj
0
1.2k
Amazon Bedrock Knowledge Basesに Data Autometionを導入してみた
sonoda_mj
1
130
Amazon Bedrock Knowledge basesにLangfuse導入してみた
sonoda_mj
2
990
AIエージェントに脈アリかどうかを分析させてみた
sonoda_mj
2
340
Amazon Bedrock Knowledge Basesのアップデート紹介
sonoda_mj
2
630
Snowflake未経験の人がSnowflakeに挑戦してみた
sonoda_mj
1
220
生成AIアプリのアップデートと配布の課題をCDK Pipelinesで解決してみた
sonoda_mj
0
480
AWSでRAGを作る方法
sonoda_mj
1
620
緑一色アーキテクチャ
sonoda_mj
2
310
Other Decks in Technology
See All in Technology
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
150
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
240
AI駆動開発における設計思想 認知負荷を下げるフロントエンドアーキテクチャ/ 20251211 Teppei Hanai
shift_evolve
PRO
2
420
AWS re:Invent 2025で見たGrafana最新機能の紹介
hamadakoji
0
420
LLM-Readyなデータ基盤を高速に構築するためのアジャイルデータモデリングの実例
kashira
0
270
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
210
AI駆動開発の実践とその未来
eltociear
0
190
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
270
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
230
寫了幾年 Code,然後呢?軟體工程師必須重新認識的 DevOps
cheng_wei_chen
1
1.5k
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
430
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
Featured
See All Featured
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
[SF Ruby Conf 2025] Rails X
palkan
0
540
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Music & Morning Musume
bryan
46
7k
Why Our Code Smells
bkeepers
PRO
340
57k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
How to Ace a Technical Interview
jacobian
281
24k
Bash Introduction
62gerente
615
210k
How GitHub (no longer) Works
holman
316
140k
Statistics for Hackers
jakevdp
799
230k
Transcript
1 © 2025 Leverages Co., Ltd. ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で 学んだ4つの重要要素 2025.12.20
苑田 朝彰 @sonoda_mj
2 © 2025 Leverages Co., Ltd. 自己紹介
3 © 2025 Leverages Co., Ltd. 苑田 朝彰 普段の業務内容 •
AI エージェント開発(Strands Agent, Google ADK) • 社内AI推進(Agent開発, AI駆動開発) • クラウド(AWS, Google Cloud) 資格 • AWS Community Builders(ML) • 甲賀流忍者検定(中級) 趣味 • 月一で面白いことをするのにハマってます ◦ Spartanレース ◦ 100kmウォーキング ◦ 無人島かくれんぼ ◦ 滝行 SNS • https://x.com/sonoda_mj • https://zenn.dev/tomomj • https://note.com/sonoda_mj Tomotada Sonoda システム本部 / テクノロジー戦略室 AI Agent開発チーム リーダー 自己紹介
4 © 2025 Leverages Co., Ltd. Contents 引き継ぎコンシェルジュ ko⭐shiとは コンテキスト管理
プロンプト設計 ツール設計 評価 まとめ 01. 02. 03. 04. 05. 06.
5 © 2025 Leverages Co., Ltd. 引き継ぎコンシェルジュ ko⭐shiとは
6 © 2025 Leverages Co., Ltd. AWS Summit Japan 2025
生成AIエージェントハッカソンで準優勝!! 社内プロダクトへ!
7 © 2025 Leverages Co., Ltd. 引き継ぎはめんどくさい 引き継ぎは、ドキュメントの不備や時間の欠如によって「前任者しか知らないこと」が失わ れるリスクを常に孕んでいます。 対話が消失した後は、些細な疑問すら解消できず、開発の
停滞を招きます。 ドキュメント不足 暗黙知の言語化が追いつかず 仕様がブラックボックス化する リリースや退職までに情報を 整理しきれない 聞けば5分で済むことが 一生聞けなくなる 時間の欠如 対話の消失 膨大な 既存資料 前任者 後任者 誰にも 聞けない... 前任者 ここはドキュメントにせ んでええやろ 不十分な 引き継ぎ資料
8 © 2025 Leverages Co., Ltd. 引き継ぎコンシェルジュ ko☆shiとは ko☆shiを導入することで、暗黙知の情報を自動で吸い上げ、前任者がいなくなった後も、 24時間いつでも対話できるようになります。
ドキュメント不足 ko☆shiが情報を抽出し ブラックボックスを解消 退職までの限られた時間で 全情報を構造化 まるで前任者と会話しているかのよ うに対話できる 時間の欠如 対話の消失 膨大な 既存資料 後任者 ko☆shi なんでも聞いてな ko☆shi 引き継ぎ資料 作っといたで ko☆shi 全部読んどいたで
9 © 2025 Leverages Co., Ltd. デモ
10 © 2025 Leverages Co., Ltd. ko☆shiの詳細 プロジェクト管理画面 Slackでのやり取り
11 © 2025 Leverages Co., Ltd. 1日1回その日あった出来事を要約してくれる
12 © 2025 Leverages Co., Ltd. 構成図 SQS + Lambda
13 © 2025 Leverages Co., Ltd. 構成図(Agent編) Orchestrator Agent Github
Agent Asana Agent Slack Agent 地図 Github関連 Asana関連 Slack関連 DynamoDB Agent Tool (自作関数) 評価
14 © 2025 Leverages Co., Ltd. 構成図(Agent編) Agent Tool (自作関数)
Orchestrator Agent Github Agent Asana Agent Slack Agent 地図 Github関連 Asana関連 Slack関連 DynamoDB プロンプト管理 コンテキスト管理 Tool管理 評価 評価
15 © 2025 Leverages Co., Ltd. コンテキスト管理
16 © 2025 Leverages Co., Ltd. コンテキスト管理 1. コンテキストエンジニアリングの基本戦略 2.
コンテキストの腐敗とは 3. 34万Token事件 4. 適切なツールを選択する 5. 会話管理(Conversation Management)の選択
17 © 2025 Leverages Co., Ltd. 1. コンテキストエンジニアリングの基本戦略 LLMのコンテキストウィンドウには限りがあるので、コンテキストの取捨選択をしなければ なりません。望ましい結果を得るために、最小限の情報セットを見つけ出すことが、コンテ
キストエンジニアリングの基本となります。 引用: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents doc 1 Tool 1 Tool 2 Memory file 会話履歴 doc 2 doc 3 Tool 2 doc 1 doc 3 Memory file 会話履歴 抽出 入力 LLM 会話履歴
18 © 2025 Leverages Co., Ltd. 2. コンテキストの腐敗とは 最近のLLMは広大なコンテキストウィンドウを持ちますが、入力する情報量に比例して性能 が向上するわけではありません
。むしろ、トークン数が増大するほど情報の検索精度や推論 能力が低下する傾向にあります 。したがって、単にすべての情報を入力するのではなく、本 当に必要なコンテキストのみを渡す必要があります。 引用:https://research.trychroma.com/context-rot Agent doc 1 doc 2 (関係なし) doc 3 (関係なし) doc 4 コンテキストウィンドウ Agent doc 1 doc 2 (関係なし) doc 3 (関係なし) doc 4 コンテキストウィンドウ
19 © 2025 Leverages Co., Ltd. 3. 34万Token事件 公式のGitHub MCPを使用していた時、わずか1回の対話で34万トークン(コスト約0.5ド
ル)を消費する事象が発生しました 。 Traceで詳細を分析したところ、多くの不純物が含ま れていることが判明しました。 参考:https://zenn.dev/leverages/articles/github-zenn-linkage-20251201-1 Toolのアウトプット リポジトリ2つ × 10 PR - PRの番号 - PRのタイトル - PRの内容 欲しい情報 - user - assignee - commit url - comment url - など 不純物 最新のPRを 2件教えて
20 © 2025 Leverages Co., Ltd. 3. 34万Token事件 必要な情報だけを取得する自作関数を作成しました。実際に評価パイプラインを実行したと ころ、アウトプットの品質は下げずに、Token使用量を9割削減することに成功しました。公
式MCPは便利ですが、不要な情報が多すぎる場合、推論精度が低下する可能性があります。 Toolのアウトプット - PRの番号 - PRのタイトル - PRの内容 欲しい情報 - user - assignee - commit url - comment url - など 不純物 ← 33.5万 ← 3.5万 0.37ドル 0.05ドル
21 © 2025 Leverages Co., Ltd. 3. 34万Token事件 必要な情報だけを取得する自作関数を作成しました。実際に評価パイプラインを実行したと ころ、アウトプットの品質は下げずに、Token使用量を9割削減することに成功しました。公
式MCPは便利ですが、不要な情報が多すぎる場合、推論精度が低下する可能性があります。 呼び出しているツールの 種類は同じ 最新の2件のみを 取得できている
22 © 2025 Leverages Co., Ltd. 4. 適切なツールを選択する ツールは多ければ多いほど多機能に思えますが、LLMにとっては「一度に何十種類もの道具 を渡されて、その中から今すぐ一つ選べ」と言われているようなものです。この認識負荷を
下げてあげることが、エージェントを賢く動かすための鍵になります。 Strands Agentsでフォーマット name: ツール名 description: ツールの説明 inputSchema: 入力パラメータ Tool A name: ツール名 description: ツールの説明 inputSchema: 入力パラメータ Tool B name: ツール名 description: ツールの説明 inputSchema: 入力パラメータ Tool C Tool群 Amazon Bedrock 抽出 入力
23 © 2025 Leverages Co., Ltd. 5. 会話管理(Conversation Management)の選択 基本的にはSlidingWindow(デフォルト搭載)を標準とし、コンテキストオーバーフローが
頻発する場合にSummarizing へ移行するのが良さそうです。 会話履歴を変更しないシ ンプルな実装 Null ConversationManager 直近の会話履歴を一定数 保持する SlidingWindow ConversationManager コンテキスト溢れ発生時、 履歴を要約する Summarizing ConversationManager 会話履歴 1 会話履歴 2 会話履歴 3 会話履歴 4 会話履歴 1 会話履歴 2 会話履歴 3 会話履歴 4 会話履歴 1 会話履歴 2 会話履歴 3 1, 2, 3を要約した 会話履歴 独自にコンテキストをカス タムできる Custom ConversationManager 会話履歴 1 会話履歴 2 会話履歴 3 独自にカスタムした会 話履歴
24 © 2025 Leverages Co., Ltd. 学び 1. 情報を読ませるほど賢くなるわけではなく、逆に精度が下がる可能性がある 2.
提供されているMCPは不純物を含んでる可能性がある 3. 適切にツールを選択する必要がある
25 © 2025 Leverages Co., Ltd. プロンプト設計
26 © 2025 Leverages Co., Ltd. プロンプト設計 1. プロンプトをちょうどいい粒度で書く 2.
プログラム(if文)で書けることをAgentでやらない 3. 指示ではなく、ツールの使い方を記載する 4. 【re:Invent 2025】ステアリング機能を使う
27 © 2025 Leverages Co., Ltd. 1. プロンプトをちょうどいい粒度で書く 指示が細かすぎるとLLM特有の柔軟性がなくなり、曖昧すぎると暴走します。したがって、 AIが自分の頭で考えて最短ルートを見つけられるような、ちょうどいいガイドラインを作る
必要があります。 get_weather(city_name) 関 数を呼び出す。 戻り値の temperature が25 度以上なら『暑いです』、それ 未満なら『涼しいです』とだけ 答える。 それ以外の言葉は一切話さ ないでください。 ## 役割 あなたは、ユーザーの生活を サポートする親切な「お天気 エージェント」です。 提供されたツールを使用して 正確な気象情報を取得し、 ユーザーに役立つアドバイス を提供します。 あなたは天気予報AIです。 ユーザーの質問に答えてくだ さい。 具体的すぎる 抽象的すぎる ちょうどいい 引用: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
28 © 2025 Leverages Co., Ltd. 1. プロンプトをちょうどいい粒度で書く 指示が細かすぎるとLLM特有の柔軟性がなくなり、曖昧すぎると暴走します。したがって、 AIが自分の頭で考えて最短ルートを見つけられるような、ちょうどいいガイドラインを作る
必要があります。 get_weather(city_name) 関 数を呼び出す。 戻り値の temperature が25 度以上なら『暑いです』、それ 未満なら『涼しいです』とだけ 答える。 それ以外の言葉は一切話さ ないでください。 ## 役割 あなたは、ユーザーの生活を サポートする親切な「お天気 エージェント」です。提供され たツールを使用して正確な気 象情報を取得し、ユーザーに 役立つアドバイスを提供しま す。 あなたは天気予報AIです。 ユーザーの質問に答えてくだ さい。 具体的すぎる 抽象的すぎる ちょうどいい 引用: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents ツールの強制力がなく、最新の天気デー タをどこから取得するのか定義されてい ない。
29 © 2025 Leverages Co., Ltd. 1. プロンプトをちょうどいい粒度で書く 指示が細かすぎるとLLM特有の柔軟性がなくなり、曖昧すぎると暴走します。したがって、 AIが自分の頭で考えて最短ルートを見つけられるような、ちょうどいいガイドラインを作る
必要があります。 get_weather(city_name) 関 数を呼び出す。 戻り値の temperature が25 度以上なら『暑いです』、それ 未満なら『涼しいです』とだけ 答える。 それ以外の言葉は一切話さ ないでください。 ## 役割 あなたは、ユーザーの生活を サポートする親切な「お天気 エージェント」です。提供され たツールを使用して正確な気 象情報を取得し、ユーザーに 役立つアドバイスを提供しま す。 あなたは天気予報AIです。 ユーザーの質問に答えてくだ さい。 具体的すぎる 抽象的すぎる ちょうどいい 引用: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents 単純なタスク処理には向いていますが、 ユーザーが「傘は必要?」と聞いても、こ の指示通りだと「涼しいです」としか返せ ない(あるいはエラーになる)可能性があ ります。
30 © 2025 Leverages Co., Ltd. 1. プロンプトをちょうどいい粒度で書く 指示が細かすぎるとLLM特有の柔軟性がなくなり、曖昧すぎると暴走します。したがって、 AIが自分の頭で考えて最短ルートを見つけられるような、ちょうどいいガイドラインを作る
必要があります。 get_weather(city_name) 関 数を呼び出す。 戻り値の temperature が25 度以上なら『暑いです』、それ 未満なら『涼しいです』とだけ 答える。 それ以外の言葉は一切話さ ないでください。 ## 役割 あなたは、ユーザーの生活を サポートする親切な「お天気 エージェント」です。 提供されたツールを使用して 正確な気象情報を取得し、 ユーザーに役立つアドバイス を提供します。 あなたは天気予報AIです。 ユーザーの質問に答えてくだ さい。 具体的すぎる 抽象的すぎる ちょうどいい 引用: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents 動作を効果的に導くのに十分な 具体的さと、柔軟性のあるバラン スの取れたレベルです。
31 © 2025 Leverages Co., Ltd. すべてをAIに任せるのではなく、「確実な処理」と「不確実な判断」を切り分けることが重 要です。手順が確定している処理は従来のコード(Workflow)に任せ、Agentは調査や高度 な推論が必要なシーンにのみ活用します。 2.
プログラム(if文)で書けることをAgentでやらない Workflow Agentic Workflow 金額は 3000円 以下? 経費申請 自動承認 Yes 上長承認 No 経費申請 (ゲーム機) 過去の履歴 ① ゲーム機だけどテスト端末かもしれない 過去の履歴を確認する 担当者 ② 用途を具体的に 書いてください - Anthropic: プロンプトにif-elseロジックを詰め込むのは、保守性を下げる「失敗モード」である。 - LLMのプロンプトエンジニアリング: 決定論的な処理は、LLMより従来のコードの方が信頼性が高く安い。
32 © 2025 Leverages Co., Ltd. 3. 指示ではなく、ツールの使い方を記載する プロンプトに手順を書くと柔軟性が失われます。Agentにはツールの利用条件のみを提示 し、具体的な実行手順を委ねることで、状況に応じた柔軟な対応が可能になります。
引用:https://www.anthropic.com/engineering/writing-tools-for-agents ツールの使い方を説明 コードでは記述できない「曖昧な状況」の判 断基準を教えることで、様々な聞き方をさ れても、エージェントが自律的に「最短ルー ト」を導き出せます。
33 © 2025 Leverages Co., Ltd. 4. 【re:Invent 2025】ステアリング機能を使う 参考:https://zenn.dev/leverages/articles/github-zenn-linkage-20251206-1
指示や禁止事項は、コンテキストが長くなるほど見落とされるリスクが高まります。ステア リング機能なら、プロンプトをスリムに保ちつつ、必要なタイミングで確実にルールを徹底 できます。ただし、レイテンシーとコストは注意してください。 Agent Tool (取得) アウトプット ステアリング • Proceed: そのままツール実行を許可する。 • Guide: ツール呼び出しをキャンセルし、エージェントにフィードバック を返す。エージェントはこのフィードバックを受けて別のアプローチを 試みる。 • Interrupt: ツール実行を一時停止し、人間の入力を待つ。承認され れば実行、拒否されればキャンセル。 Proceed Guide / Interrupt
34 © 2025 Leverages Co., Ltd. 4. 【re:Invent 2025】ステアリング機能を使う 参考:https://zenn.dev/leverages/articles/github-zenn-linkage-20251206-1
指示や禁止事項は、コンテキストが長くなるほど見落とされるリスクが高まります。ステア リング機能なら、プロンプトをスリムに保ちつつ、必要なタイミングで確実にルールを徹底 できます。ただし、レイテンシーとコストは注意してください。 7.96s 10.31s
35 © 2025 Leverages Co., Ltd. 学び 1. 具体的すぎると柔軟性が失われ、抽象的すぎると暴走するため、バランスが 重要
2. if文で書ける確定的な処理はコードで行い、Agentには不確実な判断を任せる 3. 「何をしろ」ではなく「これを使うには何が必要か」を書き、Agentに思考 させる
36 © 2025 Leverages Co., Ltd. Tool設計
37 © 2025 Leverages Co., Ltd. Tool設計 1. APIをそのままToolとして使用するのは避けるべき 2.
ゴールから逆算して適切なToolを選択する 3. 粒度の大きさを定義する 4. 「答え」ではなく、「地図」を渡す 5. 認知負荷の軽減のためにマルチエージェントへ変更
38 © 2025 Leverages Co., Ltd. • search_users • find_user_by_name
• get_user_profile • list_users 1. APIをそのままToolとして使用するのは避けるべき APIの情報をそのまま渡すと、Agentは情報の多さに混乱し、誤作動を起こします。 ムダな コストを抑え、Agentの判断精度を最大限に高めるために、「AIが理解しやすい形」に整え て渡すことが重要です。 モデルが理解しやすいように、パラメー タを必要最小限に削ぎ落とした関数を 定義する 人間がAPI仕様書を読むように、モデ ルは「関数名」と「引数名」からその機 能を推測する 機能の重複を避け、担当領域を明確 に分割する Toolの定義 Toolと引数の命名 適切なツールの選択 • PRの番号 • PRのタイトル • PRの内容 欲しい情報 • user • assignee • commit url • comment url • など 不純物 「名前でユーザーを探して」と 頼まれた時に、機能が似ているとどち らを使うべきか判断できなくなる
39 © 2025 Leverages Co., Ltd. 2. ゴールから逆算して適切なToolを選択する 最初から完璧な設計は困難です。まずは多様なツールで試作し、「理想のアウトプット」か ら逆算してツールの役割を再設計することで、エージェントの精度が高まります。
PR取得 Issue 作成 ファイル検索 commit 削除 コメント書き込み commit 編集 Agent 最新#64って 何をしていますか? 〇〇さんがコードを修正しま した。具体的には... 1. PRの情報が必要 2. PRに紐づくファイルの 内容を確認する 必要なTool 適切なToolを選択 Tool群
40 © 2025 Leverages Co., Ltd. 3. 粒度の大きさを定義する ツールの「粒度」は、エージェントの自由度と安定性のバランスを左右します。 細かすぎる
と判断ミスやループのリスクが増え、大きすぎると特定の用途以外に使い道がなくなりま す。目的に応じた最適なサイズ感の設計が必要です。 回答の安定性と品質を確保できる一方で、タスク 特化型になりやすく応用(拡張性)が利かなくなりま す。 粒度大きめ Agent Tool (粒度大) アウトプット 自律的で柔軟なタスク処理が可能になる一方で、 探索の失敗による無限ループや暴走のリスクが高 まります。 粒度小さめ Agent Tool (粒度小) アウトプット
41 © 2025 Leverages Co., Ltd. 4. 「答え」ではなく、「地図」を渡す 闇雲に「答え」を探させると、不要な情報の読み込みによってコンテキストが溢れ、回答精 度が低下します。
まず情報の全体像を示す「地図(メタデータや要約)」をツールとして提 供し、 どこを調べるべきかAgentに「当たり」をつけさせる設計にしました。 Agent Tool (取得) アウトプット ユーザー まずはPRを全部読んで Asanaを確認して・・・ Agent アウトプット ユーザー Tool (取得) 地図 (PRあればわかるマン) PR番号はわかったから 関連情報を検索しよう Before After EventBridgeって なぜ作られた? EventBridgeって なぜ作られた?
42 © 2025 Leverages Co., Ltd. 4. 「答え」ではなく、「地図」を渡す GitHub PRの背景情報を構造化し、DynamoDBへ「インデックス(地図)」として蓄積。
エージェントがこの地図を起点に探索することで、最短ルートで目的に到達できる仕組みを 構築しました。 # 背景 請求計算システム( Billing System)の夜間 バッチ処理を自動化する必要があったため、 EventBridgeを作成。 - 議論の経緯:SlackのURL(リトライ回数の 決定について) # 詳細 - terraform/main.tf に、毎日AM2:00に `calc-billing-lambda` をトリガーする EventBridge Ruleのリソースを作成。 # 備考 - タスク管理:Asanaのリンク(要件定義書あ り) Pull Request Agent (Slack調査) Agent (Github調査) Agent (Asana調査) Amazon DynamoDB Agent ユーザー EventBridgeって なぜ作られた? PK: Slack チャンネル ID SK:link#org/repo/pr:PR番号 その他: 要約内容など
43 © 2025 Leverages Co., Ltd. 5. 認知負荷の軽減のためにマルチエージェントへ変更 シングルエージェント構成では、膨大なツール定義と実行結果がコンテキストを圧迫し、回 答精度の低下を招きます。そこで、特定の役割を切り出したAgent
as Tools(サブエージェ ント構成)を採用しました。 Agent Tool (Asana関連) Tool (GitHub関連) Tool (Slack関連) Agent Agent Agent Agent Tool (Asana関連) Tool (GitHub関連) Tool (Slack関連)
44 © 2025 Leverages Co., Ltd. 学び 1. APIをそのまま渡さず、モデルが理解しやすい関数名と最小限の引数で再構築 する
2. いきなり「答え」を探させず、メタデータや要約を渡して最短ルートへ導く のも効果的である 3. マルチエージェントに分割することで、回答精度を向上できる
45 © 2025 Leverages Co., Ltd. 評価
46 © 2025 Leverages Co., Ltd. 評価 1. ある程度Agentが完成したら、評価パイプラインを作る 2.
何を評価するか決める 3. 【re:Invent 2025】Strands AgentsのEvaluation機能を使う 4. テストデータを作成する 5. 【re:Invent 2025】Experiment Generator機能を使う
47 © 2025 Leverages Co., Ltd. 1. ある程度Agentが完成したら、評価パイプラインを作る 手動による品質確認は、モデル変更やプロンプト調整のたびに膨大な工数を要します。開発 の初期段階で評価パイプラインを構築することで、継続的な精度向上を実現できます。
評価器 Datasets ユーザー 評価したい Agent スコア1.0 Input: 入力 Expected Output: 予期する回答 Input Expected Output Output • モデルを変更した • プロンプトをチューニングした • 精度を上げるために、 Toolを追加・変更した • など • StrandsAgents Eval • DeepEval • ragas • など
48 © 2025 Leverages Co., Ltd. 1. ある程度Agentが完成したら、評価パイプラインを作る 手動による品質確認は、モデル変更やプロンプト調整のたびに膨大な工数を要します。開発 の初期段階で評価パイプラインを構築することで、継続的な精度向上を実現できます。
評価器 Datasets ユーザー 評価したい Agent スコア1.0 Input: 入力 Expected Output: 予期する回答 Input Expected Output Output • モデルを変更した • プロンプトをチューニングした • 精度を上げるために、 Toolを追加・変更した • など • StrandsAgents Eval • DeepEval • ragas • など
49 © 2025 Leverages Co., Ltd. 1. ある程度Agentが完成したら、評価パイプラインを作る 手動による品質確認は、モデル変更やプロンプト調整のたびに膨大な工数を要します。開発 の初期段階で評価パイプラインを構築することで、継続的な精度向上を実現できます。
評価器 Datasets ユーザー 評価したい Agent スコア1.0 Input: 入力 Expected Output: 予期する回答 Input Expected Output Output • モデルを変更した • プロンプトをチューニングした • 精度を上げるために、 Toolを追加・変更した • など • StrandsAgents Eval • DeepEval • ragas • など
50 © 2025 Leverages Co., Ltd. 2. 何を評価するか決める Agentの特性や用途によって定義すべき品質は異なるため、汎用的な正解は存在しません。 まずは「何を担保すべきか」を明確に定義し、小さく構築することが重要です。
評価項目 日本語 評価の視点 Trajectory 軌跡 目標達成までのアクションの流れ。 Interactions 相互作用 タスク完了までに要したやり取りの回数。 Helpfulness 有用性 応答や行動がユーザーの目的に貢献した度合い。 Faithfulness 忠実性 情報源や指示内容に対する正確さと誠実さ。 Goal Success Rate 目標達成率 最終的なタスクやゴールの達成できた割合。 Tool Selection Accuracy ツール選択精度 タスクに対し、適切な外部ツールを選べた正確性。 Tool Parameter Accuracy ツール引数精度 ツールの利用時に渡した引数の正確性。 Custom カスタム 評価者が独自に定義・設定した評価基準。
51 © 2025 Leverages Co., Ltd. 2. 何を評価するか決める Agentの特性や用途によって定義すべき品質は異なるため、汎用的な正解は存在しません。 まずは「何を担保すべきか」を明確に定義し、小さく構築することが重要です。
評価項目 日本語 評価の視点 Trajectory 軌跡 目標達成までのアクションの流れ。 Interactions 相互作用 タスク完了までに要したやり取りの回数。 Helpfulness 有用性 応答や行動がユーザーの目的に貢献した度合い。 Faithfulness 忠実性 情報源や指示内容に対する正確さと誠実さ。 Goal Success Rate 目標達成率 最終的なタスクやゴールの達成できた割合。 Tool Selection Accuracy ツール選択精度 タスクに対し、適切な外部ツールを選べた正確性。 Tool Parameter Accuracy ツール引数精度 ツールの利用時に渡した引数の正確性。 Custom カスタム 評価者が独自に定義・設定した評価基準。
52 © 2025 Leverages Co., Ltd. 2. 何を評価するか決める 評価したい Agent
Trajectory Tool 1 Tool 2 Tool 3 目標達成までのアクションの流れ 最終的なタスクやゴールの達成できた割合 Goal Success Rate 適切なツールが 呼び出されるか 評価したい Agent アウトプット 最終的にユーザーの 目的が果たされたか たまたま正解しただけの非効率な動き(まぐれ)や、手順は完璧なのに最後の一歩で間違え たのかを切り分けたいので、この2つを選択しました。
53 © 2025 Leverages Co., Ltd. 3. 【re:Invent 2025】Strands AgentsのEvaluation機能を使う
実際のコード 結果
54 © 2025 Leverages Co., Ltd. なんでもいいのでテストデータを作成することをお勧めします。 4. テストデータを作成する 実データから作成
ユーザー ファイル検索がちゃんとできる か確認したい! 担保したいものから自分で作成 Datasets Input: 〇〇ファイルについて詳しく教えてください Output: 〇〇は苑田さんが作成して、詳しくは... テストデータ自作して Datasetsに登録
55 © 2025 Leverages Co., Ltd. 5. 【re:Invent 2025】Experiment Generator機能を使う
参考:https://zenn.dev/leverages/articles/github-zenn-linkage-20251206-1 Experiment Generatorを使用すると、Agentの特性に沿ったテストデータを作成すること が可能です。しかし、LLMで生成しているので、人間のチェックが必須です。 Toolとタスクの定義 テストデータを生成する
56 © 2025 Leverages Co., Ltd. 学び 1. あらかじめ評価パイプラインの構築することで、改善サイクルを高速で回す ことができる
2. 軌跡や忠実性など、プロダクトに合わせた指標を設定する
57 © 2025 Leverages Co., Ltd. まとめ
58 © 2025 Leverages Co., Ltd. まとめ 1. コンテキスト: 量より質。不純物を削ぎ落とし、精度を最大化する
2. プロンプト: 具体的すぎず抽象的すぎず、バランスよく定義する 3. ツール設計: モデルの認知負荷を下げ、迷わせないための「地図」を作る 4. 評価: 定量的な指標に基づき、確信を持って開発サイクルを回す
59 © 2025 Leverages Co., Ltd. ご清聴ありがとう ございました!!