コンテンツにスキップ

評価基準

ADKでサポートPython

このページでは、ツール使用の軌跡、応答の品質、安全性など、エージェントのパフォーマンスを評価するためにADKが提供する評価基準について概説します。

基準 説明 参照ベース ルーブリックが必要 LLM裁判官 ユーザーシミュレーションをサポート
tool_trajectory_avg_score ツール呼び出しの軌跡の完全一致 はい いいえ いいえ いいえ
response_match_score 参照応答とのROUGE-1類似度 はい いいえ いいえ いいえ
final_response_match_v2 参照応答とのLLM判定による意味的一致 はい いいえ はい いいえ
rubric_based_final_response_quality_v1 カスタムルーブリックに基づくLLM判定による最終応答品質 いいえ はい はい いいえ
rubric_based_tool_use_quality_v1 カスタムルーブリックに基づくLLM判定によるツール使用品質 いいえ はい はい いいえ
hallucinations_v1 コンテキストに対するエージェント応答のLLM判定による根拠性 いいえ いいえ はい はい
safety_v1 エージェント応答の安全性/無害性 いいえ いいえ はい はい

tool_trajectory_avg_score

この基準は、エージェントによって呼び出されたツールシーケンスを期待される呼び出しのリストと比較し、完全一致に基づいて平均スコアを計算します。

この基準を使用する場合

この基準は、エージェントの動作の正しさが、正確な引数を持つ正確なツール呼び出しシーケンスに従うことに厳密に依存するシナリオに最適です。特定のツール実行パスを強制し、ツール名、引数、または順序のいずれかの逸脱を失敗と見なす必要がある場合に使用します。特に、次の場合に役立ちます。

  • 回帰テスト: エージェントの更新によって、確立されたテストケースのツール呼び出し動作が意図せず変更されないようにします。
  • ワークフローの検証: エージェントが、特定の順序で特定のAPI呼び出しを必要とする事前定義されたワークフローに正しく従っていることを確認します。
  • 高精度タスク: ツールパラメータまたは呼び出し順序のわずかな逸脱が、大幅に異なるまたは誤った結果につながる可能性のあるタスクを評価します。

詳細

評価対象の各呼び出しについて、この基準は、エージェントによって生成されたツール呼び出しのリストと順序を、期待されるツール呼び出しのリストと比較します。比較は、リスト内の各ツール呼び出しのツール名とツール引数に対して完全一致を実行することによって行われます。呼び出し内のすべてのツール呼び出しが内容と順序で完全に一致する場合、その呼び出しに対して1.0のスコアが付与され、それ以外の場合はスコアは0.0になります。最終値は、評価ケース内のすべての呼び出しにわたるこれらのスコアの平均です。

この基準の使用方法

EvalConfigcriteriaディクショナリで、この基準のしきい値を指定できます。値は0.0から1.0の間の浮動小数点数である必要があり、評価ケースが合格するための最小許容スコアを表します。すべての呼び出しでツール軌跡が完全に一致することを期待する場合は、しきい値を1.0に設定する必要があります。

EvalConfigエントリの例:

{
  "criteria": {
    "tool_trajectory_avg_score": 1.0
  }
}

出力と解釈方法

出力は0.0から1.0の間のスコアであり、1.0はすべての呼び出しで実際のツール軌跡と期待されるツール軌跡が完全に一致することを示し、0.0はすべての呼び出しで完全に不一致であることを示します。スコアが高いほど優れています。1.0未満のスコアは、少なくとも1つの呼び出しで、エージェントのツール呼び出し軌跡が期待されるものから逸脱したことを意味します。

response_match_score

この基準は、エージェントの最終応答がRouge-1を使用してゴールデン/期待される最終応答と一致するかどうかを評価します。

この基準を使用する場合

エージェントの出力がコンテンツの重複の観点から期待される出力とどの程度一致するかを定量的に測定する必要がある場合、この基準を使用します。

詳細

ROUGE-1は、システム生成テキスト(候補要約)と参照テキスト間のユニグラム(単一単語)の重複を具体的に測定します。基本的には、参照テキストの個々の単語が候補テキストにいくつ存在するかをチェックします。詳細については、ROUGE-1の詳細を参照してください。

この基準の使用方法

EvalConfigcriteriaディクショナリで、この基準のしきい値を指定できます。値は0.0から1.0の間の浮動小数点数である必要があり、評価ケースが合格するための最小許容スコアを表します。

EvalConfigエントリの例:

{
  "criteria": {
    "response_match_score": 0.8
  }
}

出力と解釈方法

この基準の値の範囲は[0,1]であり、1に近い値ほど望ましいです。

final_response_match_v2

この基準は、LLMを裁判官として使用して、エージェントの最終応答がゴールデン/期待される最終応答と一致するかどうかを評価します。

この基準を使用する場合

エージェントの最終応答の正しさを参照と比較して評価する必要があるが、回答の提示方法に柔軟性が必要な場合、この基準を使用します。中心的な意味と情報が参照と一致する限り、異なる表現や形式が許容される場合に適しています。この基準は、正確な字句の重複よりも意味的な同等性が重要な質問応答、要約、またはその他の生成タスクを評価するのに適しており、response_match_scoreよりも洗練された代替手段となります。

詳細

この基準は、大規模言語モデル(LLM)を裁判官として使用して、エージェントの最終応答が提供された参照応答と意味的に同等であるかどうかを判断します。エージェントの応答に正しい情報が含まれているかどうかに焦点を当て、書式、表現、または追加の正しい詳細の包含の違いを許容するため、字句一致メトリック(response_match_scoreなど)よりも柔軟になるように設計されています。

各呼び出しについて、この基準は、裁判官LLMに、参照と比較してエージェントの応答を「有効」または「無効」として評価するように促します。これは、堅牢性のために複数回繰り返され(num_samplesを介して構成可能)、多数決によって呼び出しが1.0(有効)または0.0(無効)のスコアを受け取るかどうかが決まります。最終的な基準スコアは、評価ケース全体で有効と見なされた呼び出しの割合です。

この基準の使用方法

この基準はLlmAsAJudgeCriterionを使用するため、評価のしきい値、裁判官モデル、および呼び出しごとのサンプル数を構成できます。

EvalConfigエントリの例:

{
  "criteria": {
    "final_response_match_v2": {
      "threshold": 0.8,
      "judge_model_options": {
            "judge_model": "gemini-2.5-flash",
            "num_samples": 5
          }
        }
    }
  }
}

出力と解釈方法

この基準は、0.0から1.0の間のスコアを返します。スコア1.0は、LLM裁判官がすべての呼び出しでエージェントの最終応答を有効であると見なしたことを意味し、0.0に近いスコアは、参照応答と比較した場合に多くの応答が無効であると判断されたことを示します。値が高いほど優れています。

rubric_based_final_response_quality_v1

この基準は、LLMを裁判官として使用して、ユーザー定義のルーブリックセットに対してエージェントの最終応答の品質を評価します。

この基準を使用する場合

単純な正しさや参照との意味的な同等性を超える応答品質の側面を評価する必要がある場合、この基準を使用します。ルーブリックで定義されたトーン、スタイル、有用性、または特定の会話ガイドラインへの準拠など、微妙な属性を評価するのに最適です。この基準は、単一の参照応答が存在しない場合、または品質が複数の主観的な要因に依存する場合に特に役立ちます。

詳細

この基準は、ルーブリックとして定義した特定の基準に基づいて応答品質を評価するための柔軟な方法を提供します。たとえば、応答が簡潔であるかどうか、ユーザーの意図を正しく推測しているかどうか、または専門用語を避けているかどうかを確認するためのルーブリックを定義できます。

この基準は、LLM裁判官を使用して、各ルーブリックに対してエージェントの最終応答を評価し、それぞれに対してyes(1.0)またはno(0.0)の判定を生成します。他のLLMベースのメトリックと同様に、呼び出しごとに裁判官モデルを複数回サンプリングし、多数決を使用してその呼び出しの各ルーブリックのスコアを決定します。呼び出しの全体的なスコアは、そのルーブリックのスコアの平均です。評価ケースの最終的な基準スコアは、すべての呼び出しにわたるこれらの全体的なスコアの平均です。

この基準の使用方法

この基準はRubricsBasedCriterionを使用するため、EvalConfigでルーブリックのリストを提供する必要があります。各ルーブリックは、一意のIDとその内容で定義する必要があります。

EvalConfigエントリの例:

{
  "criteria": {
    "rubric_based_final_response_quality_v1": {
      "threshold": 0.8,
      "judge_model_options": {
        "judge_model": "gemini-2.5-flash",
        "num_samples": 5
      },
      "rubrics": [
        {
          "rubric_id": "conciseness",
          "rubric_content": {
            "text_property": "エージェントの応答は直接的で要点をまとめています。"
          }
        },
        {
          "rubric_id": "intent_inference",
          "rubric_content": {
            "text_property": "エージェントの応答は、あいまいなクエリからユーザーの根本的な目標を正確に推測します。"
          }
        }
      ]
    }
  }
}

出力と解釈方法

この基準は、0.0から1.0の間の全体的なスコアを出力します。1.0は、エージェントの応答がすべての呼び出しですべてのルーブリックを満たしたことを示し、0.0は、どのルーブリックも満たされなかったことを示します。結果には、各呼び出しの詳細なルーブリックごとのスコアも含まれます。値が高いほど優れています。

rubric_based_tool_use_quality_v1

この基準は、LLMを裁判官として使用して、ユーザー定義のルーブリックセットに対してエージェントのツール使用の品質を評価します。

この基準を使用する場合

最終的な応答が正しいかどうかだけでなく、エージェントがツールをどのように使用するかを評価する必要がある場合、この基準を使用します。エージェントが適切なツールを選択したか、正しいパラメータを使用したか、または特定のツール呼び出しシーケンスに従ったかを評価するのに最適です。これは、エージェントの推論プロセスを検証し、ツール使用エラーをデバッグし、規定のワークフローへの準拠を保証するのに役立ちます。特に、複数のツール使用パスが同様の最終回答につながる可能性があるが、1つのパスのみが正しいと見なされる場合に役立ちます。

詳細

この基準は、ルーブリックとして定義した特定のルールに基づいてツール使用を評価するための柔軟な方法を提供します。たとえば、特定のツールが呼び出されたかどうか、そのパラメータが正しいかどうか、またはツールが特定の順序で呼び出されたかどうかを確認するためのルーブリックを定義できます。

この基準は、LLM裁判官を使用して、各ルーブリックに対してエージェントのツール呼び出しと応答を評価し、それぞれに対してyes(1.0)またはno(0.0)の判定を生成します。他のLLMベースのメトリックと同様に、呼び出しごとに裁判官モデルを複数回サンプリングし、多数決を使用してその呼び出しの各ルーブリックのスコアを決定します。呼び出しの全体的なスコアは、そのルーブリックのスコアの平均です。評価ケースの最終的な基準スコアは、すべての呼び出しにわたるこれらの全体的なスコアの平均です。

この基準の使用方法

この基準はRubricsBasedCriterionを使用するため、EvalConfigでルーブリックのリストを提供する必要があります。各ルーブリックは、一意のIDとその内容で定義し、評価するツール使用の特定の側面を記述する必要があります。

EvalConfigエントリの例:

{
  "criteria": {
    "rubric_based_tool_use_quality_v1": {
      "threshold": 1.0,
      "judge_model_options": {
        "judge_model": "gemini-2.5-flash",
        "num_samples": 5
      },
      "rubrics": [
        {
          "rubric_id": "geocoding_called",
          "rubric_content": {
            "text_property": "エージェントは、GetWeatherツールを呼び出す前にGeoCodingツールを呼び出します。"
          }
        },
        {
          "rubric_id": "getweather_called",
          "rubric_content": {
            "text_property": "エージェントは、ユーザーの場所から派生した座標を使用してGetWeatherツールを呼び出します。"
          }
        }
      ]
    }
  }
}

出力と解釈方法

この基準は、0.0から1.0の間の全体的なスコアを出力します。1.0は、エージェントのツール使用がすべての呼び出しですべてのルーブリックを満たしたことを示し、0.0は、どのルーブリックも満たされなかったことを示します。結果には、各呼び出しの詳細なルーブリックごとのスコアも含まれます。値が高いほど優れています。

hallucinations_v1

この基準は、モデルの応答に虚偽、矛盾、または裏付けのない主張が含まれているかどうかを評価します。

この基準を使用する場合

エージェントの応答が提供されたコンテキスト(ツール出力、ユーザークエリ、指示など)に基づいていることを確認し、幻覚が含まれていないことを確認するために、この基準を使用します。

詳細

この基準は、開発者の指示、ユーザープロンプト、ツール定義、ツール呼び出しとその結果を含むコンテキストに基づいて、モデルの応答に虚偽、矛盾、または裏付けのない主張が含まれているかどうかを評価します。LLM裁判官を使用し、次の2段階のプロセスに従います。

  1. セグメンター: エージェントの応答を個々の文に分割します。
  2. 文検証ツール: 提供されたコンテキストに対して、分割された各文の根拠を評価します。各文には、supportedunsupportedcontradictorydisputed、またはnot_applicableのラベルが付けられます。

このメトリックは、精度スコア(supportedまたはnot_applicableである文の割合)を計算します。デフォルトでは、最終応答のみが評価されます。基準でevaluate_intermediate_nl_responsesがtrueに設定されている場合、エージェントからの中間的な自然言語応答も評価されます。

この基準の使用方法

この基準はHallucinationsCriterionを使用するため、評価のしきい値、裁判官モデル、呼び出しごとのサンプル数、および中間的な自然言語応答を評価するかどうかを構成できます。

EvalConfigエントリの例:

{
  "criteria": {
    "hallucinations_v1": {
      "threshold": 0.8,
      "judge_model_options": {
            "judge_model": "gemini-2.5-flash",
          },
      "evaluate_intermediate_nl_responses": true
    }
  }
}

出力と解釈方法

この基準は、0.0から1.0の間のスコアを返します。スコア1.0は、エージェントの応答のすべての文がコンテキストに基づいていることを意味し、0.0に近いスコアは、多くの文が虚偽、矛盾、または裏付けのないものであることを示します。値が高いほど優れています。

safety_v1

この基準は、エージェントの応答の安全性(無害性)を評価します。

この基準を使用する場合

エージェントの応答が安全ガイドラインに準拠し、有害または不適切なコンテンツを生成しないことを確認する必要がある場合、この基準を使用する必要があります。ユーザー向けのアプリケーションや、応答の安全性が優先されるシステムには不可欠です。

詳細

この基準は、エージェントの応答に、ヘイトスピーチ、ハラスメント、危険な情報など、有害なコンテンツが含まれているかどうかを評価します。ADK内でネイティブに実装されている他のメトリックとは異なり、safety_v1は評価をVertex AI General AI Eval SDKに委任します。

この基準の使用方法

この基準を使用するには、Google Cloudプロジェクトが必要です。Vertex AI SDKが正しく機能するには、通常、エージェントのディレクトリの.envファイルにGOOGLE_CLOUD_PROJECTおよびGOOGLE_CLOUD_LOCATION環境変数を設定する必要があります。

EvalConfigcriteriaディクショナリで、この基準のしきい値を指定できます。値は0.0から1.0の間の浮動小数点数である必要があり、応答が合格と見なされるための最小安全スコアを表します。

EvalConfigエントリの例:

{
  "criteria": {
    "safety_v1": 0.8
  }
}

出力と解釈方法

この基準は、0.0から1.0の間のスコアを返します。1.0に近いスコアは応答が安全であることを示し、0.0に近いスコアは潜在的な安全性の問題を示します。