Lock in $30 Savings on PRO—Offer Ends Soon! ⏳

AIエージェント開発/運用入門 ~re:Invent 2025 新機能活用Edition~

Avatar for matsukada matsukada
December 23, 2025
30

AIエージェント開発/運用入門 ~re:Invent 2025 新機能活用Edition~

2025年12月25日に開催された「AWS re:Invent 2025 re:Cap with KAG」の登壇資料です。

https://kddi-agile.connpass.com/event/377965/

Avatar for matsukada

matsukada

December 23, 2025
Tweet

More Decks by matsukada

Transcript

  1. ©Mitsubishi Electric Corporation 自己紹介 2 塚田 真規 Masaki Tsukada 三菱電機株式会社

    デジタルイノベーション事業本部 AI戦略プロジェクトグループ • AWS Community Builder 2025 (AI Engineering) • 2024/2025 Japan AWS All Certifications Engineers • JAWS-UG AI/ML支部運営
  2. ©Mitsubishi Electric Corporation 人と対話するAIエージェント(4.5節) 3 AIエージェントの評価(8.4節) GUI LLM AIエージェント ユーザー

    クエリ 承認/ 拒否 まとめ レポート ユーザー ツール “re:Invent 2025”edition ユーザー クエリ 承認/ 拒否 まとめ レポート 評価項目 AIエージェント Ragas Langfuse Trace Trace HumanMessage AIMessage ToolMessage AIMessage AgentGoal Accuracy ToolCall Accuracy … … 軌跡の 評価 Amazon SQS ユーザー Lambda durable functions Amazon S3 GUI ユーザー クエリ 承認/ 拒否 まとめ レポート
  3. ©Mitsubishi Electric Corporation 4 NEW Lambda durable functions AWS Lambdaでワークフローを構築可能に!

    • 自動チェックポイントを用いた状態管理 • ステップや待機の実行前後の情報を自動取得し、中断箇所からの再開が可能 • 最大1年間の待機時間 • 待機中はコンピュートコストはかからない • 並列実行も可能 • MapやParallel
  4. ©Mitsubishi Electric Corporation 5 from aws_durable_execution_sdk_python.config import Duration from aws_durable_execution_sdk_python.context

    import DurableContext, StepContext, durable_step from aws_durable_execution_sdk_python.execution import durable_execution @durable_step def my_step(step_context: StepContext, my_arg: int) -> str: step_context.logger.info("Hello from my_step") return f"from my_step: {my_arg}" @durable_execution def lambda_handler(event, context) -> dict: msg: str = context.step(my_step(123)) context.wait(Duration.from_seconds(10)) context.logger.info("Waited for 10 seconds without consuming CPU.") return { "statusCode": 200, "body": msg, } from langgraph.checkpoint.memory import InMemorySaver from langgraph.func import entrypoint, task from langgraph.types import interrupt @task def write_essay(topic: str) -> str: """Write an essay about the given topic.""" time.sleep(1) return f"An essay about topic: {topic}" @entrypoint(checkpointer=InMemorySaver()) def workflow(topic: str) -> dict: essay = write_essay("cat").result() is_approved = interrupt({ "essay": essay, "action": "Please approve/reject the essay", }) return { "essay": essay, "is_approved": is_approved, } Lambda durable functions LangGraph Functional API 似ている…? 置き換え可能では!?
  5. ©Mitsubishi Electric Corporation 人と対話するAIエージェント (AIエージェント開発/運用入門 4.5節) 6 ユーザー • ユーザークエリの内容をWeb検索し、レポート作成するAIエージェント

    • ツールとしては「Web検索」と「ファイル出力」が利用可能 • ツール使用前にユーザー事前確認するHuman-in-the-loopを搭載 GUIパート AIエージェントパート ツール GUI ユーザークエリ 承認/拒否 LLM AIエージェント ファイル出力 Web検索 まとめレポート ユーザークエリ 承認/拒否 まとめレポート
  6. ©Mitsubishi Electric Corporation Lambda durable functionsを使った「人と対話するAIエージェント」 7 Amazon SQS AWS

    Lambda LLM推論 ツール実行 @durable_step @durable_execution context.step(~) context.step(~) @durable_step SQSへpush context.wait_for_callback(~) • クエリ • ツール承認/拒否 Long Polling Amazon S3 ツール情報 ユーザー 生成レポート 署名付きURL • Lambda→Streamlitへのデータ通知はSQSを採用 • 生成結果はS3にアップロードし、署名付きURLで共有 • エージェント開発フレームワークは使用しない 起動/フィードバック通知
  7. ©Mitsubishi Electric Corporation 人と対話するAIエージェント(4.5節) 11 AIエージェントの評価(8.4節) GUI LLM AIエージェント ユーザー

    クエリ 承認/ 拒否 まとめ レポート ユーザー ツール ユーザー クエリ 承認/ 拒否 まとめ レポート 評価項目 AIエージェント Ragas Langfuse Trace Trace HumanMessage AIMessage ToolMessage AIMessage AgentGoal Accuracy ToolCall Accuracy … … 軌跡の 評価 Strands Evals SDK Strands Agents AIエージェント Trajectory Evaluator 評価項目 軌跡の評価 “re:Invent 2025”edition “re:Invent 2025”edition Amazon SQS ユーザー Lambda durable functions Amazon S3 GUI ユーザー クエリ 承認/ 拒否 まとめ レポート
  8. ©Mitsubishi Electric Corporation 12 Strands Evals SDK re:Invent 2025で発表されたAIエージェント/LLMアプリケーション評価フレームワーク 評価メトリクス

    Output Trace Session AIエージェントの単一出力を評価 シングルターンの行動を評価 E2Eの動作結果を評価 OutputEvaluator ToolSelectionEvaluator TrajectoryEvaluator CustomEvaluator GoalSuccessRateEvaluator FaithfulnessEvaluator テストケース生成 シミュレータによる動的会話生成
  9. ©Mitsubishi Electric Corporation 13 Strands Evals SDKによるAIエージェントの軌跡評価 評価メトリクス Session TrajectoryEvaluator

    • AIエージェントが利用した一連のツール呼び出しを評価 ✓ 適切なツールやアクションを実行したかを確認 LLM AIエージェント ツールβ ツールγ ツールα ツールα LLM LLM LLM LLM 期待する軌跡 ツールβ ツールγ ツールα 軌跡 比較評価
  10. ©Mitsubishi Electric Corporation 14 軌跡評価のためのビルトインツール exact_match_scorer 完全一致 in_order_match_scorer 順序一致 any_order_match_scorer

    順序不問 test_cases = [ Case[str, str]( name="calc trajectory evaluation", input="3 + 4 * 5 - 1 =", expected_trajectory= ["mul", "add", "sub"], ), ] evaluator = TrajectoryEvaluator( rubric=""" AIエージェントが期待した順番で抜け漏れなしにツールを利用 して回答したか評価してください 期待する順番と異なっている、抜け漏れがある場合は失敗と 判断してください """, include_inputs=True ) テストケース STRANDS AGENTS add:足し算ツール sub:引き算ツール mul:掛け算ツール div:割り算ツール Claude Haiku 4.5 評価対象エージェント Evaluator
  11. ©Mitsubishi Electric Corporation 15 div:割り算ツール input: {5, 5} add:足し算ツール input:

    {3, 4} sub:引き算ツール input: {7, 1} 期待する軌跡 div:割り算ツール input: {5, 5} 期待する軌跡 add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} 「実行軌跡」と「期待する軌跡」が一致する場合 「実行軌跡」と「期待する軌跡」が一致しない場合
  12. ©Mitsubishi Electric Corporation まとめ 16 • 書籍ハンズオンをAWS re:Invent 2025の新機能へ置き換えるチャレンジ •

    「Lambda durable functions」を「人と対話するAIエージェント実装 • チェックポイントを活用したHuman-in-the-loop • Strands Evals SDKによるAIエージェントの評価 • ビルドインツールとTrajectoryEvaluatorでAIエージェントの実行軌跡を評価