Slide 1

Slide 1 text

©Mitsubishi Electric Corporation フレームワークを活用したAIエージェントの評価 ~AIエージェントを育てるために~ 三菱電機株式会社 AI戦略プロジェクトグループ 塚田 真規

Slide 2

Slide 2 text

©Mitsubishi Electric Corporation 自己紹介 2 塚田 真規 Masaki Tsukada 三菱電機株式会社 デジタルイノベーション事業本部 AI戦略プロジェクトグループ • AWS Community Builder 2025 (AI Engineering) • 2024/2025 Japan AWS All Certifications Engineers • JAWS-UG AI/ML支部運営

Slide 3

Slide 3 text

©Mitsubishi Electric Corporation 3 AIエージェント開発フレームワーク 生み出したAIエージェントを評価して、AIエージェントを育てていく Agent Development Kit Strands Agents Microsoft Agent Framework AIエージェントを“生み出す”ツール AIエージェントを使えるようにするために

Slide 4

Slide 4 text

©Mitsubishi Electric Corporation AIエージェントの評価とは 4 データベース ※参考ドキュメント 1. Google Cloud • Agents Companion 2. Langfuse • Evaluating LLM Agents 3. Confident AI • LLM Agent Evaluation • AI Agent Evaluation 4. LangSmith • Application-specific evaluation approaches ツールβ AIエージェント LLM ツールγ ツールα ユーザー 質問 回答 ファイル操作 Web検索 AIエージェントの最終回答の評価 AIエージェントの単一ステップの評価 AIエージェントの軌跡の評価 • AIエージェントを評価する3つを方法

Slide 5

Slide 5 text

©Mitsubishi Electric Corporation 6 ユーザー AIエージェント AIエージェントの最終回答の評価 AIエージェントとはー AIエージェントに ついて教えて~! • ユーザーに対する回答を評価するため、 ユーザー目線でサービスとしての性能を確認できる • 途中経過を評価しないため、問題発生時のデバッグが困難 • E2Eで実行が必要なので、時間がかかる場合も ツールβ ツールγ ツールα AIエージェントの行動履歴は ブラックボックス 評価対象

Slide 6

Slide 6 text

©Mitsubishi Electric Corporation AIエージェントの単一ステップの評価 7 • それぞれのステップを評価するため、失敗場所を絞り込める • テストに必要実行時間が短い • AIエージェント全体の評価はできない • 入力や環境の想定が難しく、テストデータを準備しにくい ツールβ ツールα LLM 入出力に対して: • 正しいツールを選択したか? • ツールへの引数は適切か? を評価

Slide 7

Slide 7 text

©Mitsubishi Electric Corporation 8 • AIエージェントがどのステップで失敗したか調査できる • 正解までの軌跡が複数あるときや期待する軌跡を設定できない場合は 評価できない AIエージェントの軌跡の評価 LLM AIエージェント ツールβ ツールγ ツールα ツールα LLM LLM LLM LLM 期待する軌跡 ツールβ ツールγ ツールα 軌跡 比較評価

Slide 8

Slide 8 text

©Mitsubishi Electric Corporation 完全一致 順序一致 順序不問 9 AIエージェントの軌跡の評価 軌跡の評価方法 実行軌跡 実行軌跡 実行軌跡 軌跡が完全に 一致したか 必要なツールを 正しい順序で実行したか ツールβ ツールγ ツールα ツールα ツールβ ツールγ ツールα ツールα ツールβ ツールγ ツールα ツールα ツールβ ツールγ ツールα ツールα 必要なツールを 実行したか ツールβ ツールγ ツールα ツールβ ツールγ ツールα ツールβ ツールγ ツールα 期待する軌跡 期待する軌跡 期待する軌跡

Slide 9

Slide 9 text

©Mitsubishi Electric Corporation AIエージェントを評価してみる 「AIエージェントの軌跡」を評価 10 ケース1:完全一致 ケース2:順序一致 ケース3:順序不問 期待通りに動作した場合 期待通りに動作しなかった場合 評価フレームワークのビルトイン評価メトリクスを活用!

Slide 10

Slide 10 text

©Mitsubishi Electric Corporation 11 STRANDS AGENTS 計算エージェント ツール add:足し算ツール sub:引き算ツール mul:掛け算ツール div:割り算ツール Claude Haiku 4.5 入力 3+4-5/5=? 実行軌跡 評価対象 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} ※実行軌跡を固定し、「期待する軌跡(正解データ)」を変化させて、評価結果を観測

Slide 11

Slide 11 text

©Mitsubishi Electric Corporation フレームワークを活用したAIエージェントの評価 12 • 評価フレームワーク: DeepEval • Confident AI社が開発するオープンソースフレームワーク • RAG、AI Agent向けなど様々な評価メトリクスを提供 test_case = LLMTestCase( input=input, actual_output=output, tools_called=call_tool_results, expected_tools=extected_tools, ) mcp_use_metrics = ToolCorrectnessMetric( threshold=0.8, available_tools=available_tools, # 利用可能ツール should_consider_ordering=True, # 順序を考慮するか should_exact_match=False, # 完全一致かどうか … ) テストケース メトリクス:ToolCorrectnessMetricsを使用 3つのケースでAIエージェントを評価 ケース1:完全一致 ケース2:順序一致 ケース3:順序不問

Slide 12

Slide 12 text

©Mitsubishi Electric Corporation 13 ケース1:完全一致 mcp_use_metrics = ToolCorrectnessMetric( threshold=0.8, available_tools=available_tools, # 利用可能ツール should_consider_ordering=False, # 順序を考慮するか should_exact_match=True, # 完全一致かどうか … ) 実行軌跡 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} 期待する軌跡 ケース1-1 - Tool Correctness (score: 1.0, threshold: 0.8, strict: False, evaluation model: None, ツール呼び出し理由: 完全一致:予想 ['div', 'add', 'sub']、呼び出し ['div', 'add', 'sub']。詳細は上記を参照してください。 ツール選択理由:必要なすべてのツールを正しく選択しました。「div」ツールは除算 (5/5) に適切に使用され、 「add」ツールは加算 (3+4) に、「sub」ツールは減算に使用され、演算の順序を正しく守っています。 すべてのツール選択は意図された目的に適切に一致し、より適切なツールは省略されていません。

Slide 13

Slide 13 text

©Mitsubishi Electric Corporation 14 ケース1:完全一致 mcp_use_metrics = ToolCorrectnessMetric( threshold=0.8, available_tools=available_tools, # 利用可能ツール should_consider_ordering=False, # 順序を考慮するか should_exact_match=True, # 完全一致かどうか … ) 実行軌跡 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 3} sub:引き算ツール input: {4, 1} 期待する軌跡 ケース1-2 - Tool Correctness (score: 0.0, threshold: 0.8, strict: False, evaluation model: None ツール呼び出し理由: 完全一致ではありません:予想 ['div', 'sub', 'add']、呼び出し ['div', 'add', 'sub']。詳細は上記を参 照してください。 ツール選択理由: エージェントは数式 3+4-5/5 に対して適切なすべてのツールを正しく選択しました。「add」ツールは 3+4 に使用され、「div」ツールは 5/5 に使用され(演算の順序を守っています)、「sub」ツールは最終的な減算に使用されました。 すべてのツール選択はそれぞれの演算に適切に一致し、より適切なツールもなく、省略されたツールもありません。

Slide 14

Slide 14 text

©Mitsubishi Electric Corporation 15 ケース2:順序一致 mcp_use_metrics = ToolCorrectnessMetric( threshold=0.8, available_tools=available_tools, # 利用可能ツール should_consider_ordering=True, # 順序を考慮するか should_exact_match=False, # 完全一致かどうか … ) 実行軌跡 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} ツール正確性(スコア: 1.0、閾値: 0.8、厳密: False、評価モデル: なし、理由: ツール呼び出し理由: 正しい順序:すべての期待されたツール ['div', 'sub'] が正しい順序で呼び出されました。 ツール選択理由: エージェントは数式 3+4-5/5 を解くために必要なすべてのツールを正しく選択しました。「div」ツールは最 初に除算(5/5=1)を処理するために適切に使用され、「add」ツールは 3+4=7 を計算するために正しく適用され、「sub」 ツールは最終的な減算(7-1=6)を完了するために適切に使用されました。すべてのツール選択は意図された目的とタスク要件 に直接一致していました。 div:割り算ツール input: {5, 5} sub:引き算ツール input: {7, 1} 期待する軌跡 ケース2

Slide 15

Slide 15 text

©Mitsubishi Electric Corporation 16 mcp_use_metrics = ToolCorrectnessMetric( threshold=0.8, available_tools=available_tools, # 利用可能ツール should_consider_ordering=False, # 順序を考慮するか should_exact_match=False, # 完全一致かどうか … ) 実行軌跡 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 4} sub:引き算ツール input: {7, 1} ツール正確性(スコア: 1.0、閾値: 0.8、厳密: False、評価モデル: なし、理由: ツール呼び出し理由: すべての期待されたツール ['div', 'sub', 'add'] が呼び出されました(順序は考慮されません)。 ツール選択理由: エージェントは数式 3+4-5/5 を解くために必要なすべてのツールを正しく選択しました。「add」ツールは 3+4 に使用され、「div」ツールは 5/5 に使用され、「sub」ツールは最終的な減算に使用され、演算の順序を正しく守っていま す。より適切なツールは利用できず、省略されたツールもありません。 ケース3:順序不問 div:割り算ツール input: {5, 5} add:足し算ツール input: {3, 3} sub:引き算ツール input: {4, 1} 期待する軌跡 ケース3

Slide 16

Slide 16 text

©Mitsubishi Electric Corporation AWSにおけるAIエージェントの評価 18 AgentCore Evaluations Strands Evals SDK • ルーブリックによる出力評価 • AIエージェントの軌跡評価 • テストデータ作成 • マルチターン会話シミュレーション など • 13のビルトイン評価指標+カスタム評価指標 • オンライン評価 • オンデマンド評価 など AIエージェント/LLMアプリの 評価フレームワーク AIエージェントを継続的かつ 自動で評価、監視できるSaaS

Slide 17

Slide 17 text

©Mitsubishi Electric Corporation フレームワークを活用したAIエージェントの評価 19 • 評価フレームワーク: Strands Evals SDK 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 ) テストケース(入力) メトリクス:TrajectoryEvaluatorを使用 軌跡評価のためのビルトインツール exact_match_scorer in_order_match_scorer any_order_match_scorer 完全一致 順序一致 順序不問 完全一致ツールを使うように指示

Slide 18

Slide 18 text

©Mitsubishi Electric Corporation 20 def get_response(case: Case) -> dict: response = agent(case.input) trajectory = tools_use_extractor.extract_agent_tools_used_from_messages(agent.messages) evaluator.update_trajectory_description( tools_use_extractor.extract_tools_description(agent, is_short=True) ) return {"output": str(response), "trajectory": trajectory} experiment = Experiment[str, str](cases=test_cases, evaluators=[evaluator]) reports = experiment.run_evaluations(get_response) reports[0].run_display() AIエージェントの実行と評価 フレームワークを活用したAIエージェントの評価 • 評価フレームワーク: Strands Evals SDK AIエージェントの実行 評価の実施

Slide 19

Slide 19 text

©Mitsubishi Electric Corporation 21 完全一致 : Strands Evals SDK mul:掛け算ツール input: {4, 5} add:足し算ツール input: {3, 20} sub:引き算ツール input: {23, 1} 期待する軌跡 mul:掛け算ツール input: {5, 5} 期待する軌跡 add:足し算ツール input: {3, 19} sub:引き算ツール input: {20, 1}

Slide 20

Slide 20 text

©Mitsubishi Electric Corporation まとめ 22 • オープンなフレームワークでAIエージェントの軌跡評価を実施 • 軌跡評価にDeepEvalとStrands Evals SDKを活用 • AIエージェントの評価として3つの観点を紹介 • 最終回答の評価 • 単一ステップの評価 • 軌跡の評価

Slide 21

Slide 21 text

No content