評価は、エージェントのパフォーマンスをテストし、特定の状況で想定どおりに動作していることを確認するための重要なツールです。評価を使用すると、テストを自動化し、変更後の機能低下を検出し、エージェントの回答の品質を測定してエージェントの品質を向上させることができます。
まず、エージェント ビルダーの上部にある [評価] ボタンをクリックします。
評価のコンセプト
テストケース: 各テストケースは、エージェントのパフォーマンスを評価するために設計された、特定の自己完結型のテスト シナリオまたはプロンプトです。次の 2 種類のテストケースを作成できます。
- シナリオ: テストをブートストラップし、包括的なテスト カバレッジを確保するための AI 搭載機能。ユーザーの目標を記述すると、システムがユーザーを自動的にシミュレートし、会話を生成して、エージェントがシナリオに堅牢に対応できるかどうかをテストします。シナリオは、テストを行い、優れた会話を定義するうえで役立ちます。
- ゴールデン: 回帰テストに最適です。特定の「理想的な」会話パスを指定すると、評価によってエージェントの動作(ツール呼び出しを含む)がそのパスに沿っているかどうかがチェックされます。
実行: 評価の実行は、テスト対象のエージェントのパフォーマンスに対して、一連のゴールデン テストケースとシナリオ テストケースを 1 回完全に実行することを表します。各実行には 1 つ以上のテストケースを含めることができます。
結果: テストケースの結果は、1 回の実行で特定のテストケースが 1 回実行されたことを指します。1 回の評価実行中にテストケースが複数回実行される場合(整合性や不安定さなどを確認する場合など)、個々の実行は個別の結果となります。結果は、各テストケース行の列に長方形のアイコンとして表示されます。実行が失敗した場合は赤い X、合格した場合は緑色のチェックマークが表示されます。
タグ: テストケースをタグでグループ化して、管理を容易にできます。
テストケースを作成する
エージェントのテストケースを作成してアクセスするには、エージェント ビルダーの上部にある [評価] ボタンをクリックします。ゴールデン ベースのテストケースとシナリオ ベースのテストケースのいずれかを作成して管理できます。
シナリオ
シナリオベースのテストケースでは、AI を使用して、定義した大まかなユーザー目標に基づいてさまざまな会話を自動的に生成します。これらのテストケースでは、特定のゴールデン会話を提供するのではなく、生成されたシナリオを選択するか、テストする必要がある特定のシナリオを記述します。これは、考えられるすべての会話パスを手動で作成することなく、エッジケースを調査し、エージェントの堅牢性をテストするのに役立つ強力なツールです。
これらのシナリオがうまく機能したら、ゴールデン会話として保存できます。
シナリオを作成するには:
- [シナリオを作成] をクリックします。複数のシナリオが提案されます。
- 選択に基づいてシナリオを生成することも、新しいシナリオを最初から作成することもできます。
シナリオのリストを表示しているときに、シナリオをクリックすると、各シナリオの詳細と会話リストが表示されます。
シナリオをゴールデン会話として保存するには:
- シナリオを選択します。
- 右上にあるメニューボタンをクリックします。
- [ゴールデン会話として保存] を選択します。
シナリオのユーザーの目標
各シナリオには、エージェント アプリケーションを使用する際のエンドユーザーの目標を説明するユーザー目標があります。次に例を示します。
Securely book a specific room at a chosen hotel and receive a confirmation.
CX Agent Studio は、ユーザーの目標に基づいて、評価に使用される会話を自動的に生成します。
シナリオ変数
シナリオを定義するときに、シナリオで使用する変数を指定できます。
シナリオの想定値
評価を行うには、テストケースの期待値を定義します。
期待値には次の 2 種類があります。
- メッセージ: 想定されるエージェントの回答。
- ツール呼び出し: 想定される入力と出力を含むツール呼び出し。
期待値には次の条件を設定できます。
- 必須
- 含めてはならない
- ツール呼び出し後
- 変数の値
期待値を作成するには:
- 特定のシナリオをクリックして、詳細を開きます。
- [期待] セクションで、[すべて表示] をクリックします。
- インターフェースの手順に沿って、シナリオの期待値を作成します。
Golden
これらのテストケースは、回帰テストの理想的な会話パスを定義するために使用されます。これにより、エージェントを更新しても、コアとなる重要な会話パスが壊れることはありません。模範となる会話を作成するには、次の複数のオプションがあります。
シミュレータから会話をインポートするには:
- シミュレータを使用して会話を開始します。
- シミュレーターの右上にある縦に 3 つ並んだ点(その他アイコン)をクリックして、シミュレーター メニューを表示します。
- [ゴールデンとして保存] をクリックします。
- ゴールデン テストケースの名前を入力して、[保存] をクリックします。これで、[評価] タブに表示されます。
会話履歴からテストケースを作成する手順は、次のとおりです。
- [評価] タブに移動します。
- [+ テストケースを追加] をクリックします。
- [Golden] を選択します。
- [次へ] をクリックします。
- [会話履歴から選択] をクリックします。
- 表示されたウィンドウで、ゴールデン テストケースとして保存する会話を選択します。会話 ID で検索することもできます。
- 秘匿化を有効にしている場合は、不足している情報を処理する前に、エージェントの回答と変数が秘匿化されているかどうかを確認します。
- [追加] をクリックします。
テストケースをゼロから作成するには:
- [評価] タブに移動します。
- [+ テストケースを追加] をクリックします。
- [Golden] を選択します。
- [次へ] をクリックします。
- [Create from scratch] をクリックします。
- 表示されたウィンドウで、テストケースの表示名を追加します。
- 必要に応じて、ユーザー入力とエージェントの期待値のテキストを追加します。[+ ユーザー入力を追加] と [+ エージェントの期待値を追加] をクリックして、回答を追加します。[+ ターンを追加] をクリックして、テストケースに新しい会話ターンを追加します。
- [作成] をクリックして、ゴールデン テストケースをテストケースのリストに追加します。
シナリオ テストケースのシミュレートされた会話からテストケースを作成するには:
- 評価実行結果ページに移動します。
- 選択した会話の右にあるメニュー アイコン(縦に並んだ 3 つの点)をクリックし、[Save as golden conversation](ゴールデン会話として保存)をクリックします。
ファイルからテストケースを一括アップロードする手順は、次のとおりです。
ファイル形式と CSV テンプレートの詳細については、ゴールデン テストケースの CSV 形式のページをご覧ください。
ゴールデン エクスペクテーション
評価を行うには、ゴールデン テストケースの期待値を定義します。期待値とは、会話の特定の時点でエージェントから期待される特定の結果のことです。評価では、エージェントの実際の動作がこれらの期待値と比較されます。
期待値は次のいずれかのタイプになります。
- メッセージ: エージェントからエンドユーザーへの想定されるテキスト レスポンス。評価では、エージェントの回答がこの期待値と意味的に一致するかどうかを確認します。
- ツール呼び出し: エージェントが特定のツールとレスポンスを呼び出すという期待値。ツール呼び出しの期待される入力引数を指定することもできます。
- エージェントの引き継ぎ: エージェントが会話を人間のエージェントまたは別の bot に転送することを想定しています。
期待値を作成するには:
- 特定のゴールデン テストケースをクリックして、詳細を開きます。
- [詳細] セクションで、[ゴールデンを表示] をクリックします。
- インターフェースの手順に沿って、期待事項を追加または変更します。
評価の設定
テストケース リストの見出し行で、評価設定を構成できます。
- ゴールデン:
- 合格/不合格の基準: シミュレートされた会話が合格か不合格かを判断するロジックを設定します。
- ターンレベル:
これらのルールは、個々のターンを評価します。これらのしきい値のいずれかが満たされていない場合、特定の指標は失敗として赤色で色分けされます。
- セマンティック類似度: セマンティック類似度のしきい値。
- Tool correctness(ツールの正確性): ツールの正確性のしきい値。
- ハルシネーション: 無効にすると、ハルシネーションは合格/不合格の対象外になります。
- 期待値レベル: これらのルールは、ターン内の期待値を判断します。これらのしきい値のいずれかが満たされていない場合、特定の指標は失敗として赤色で色分けされます。
- Tool correctness(ツールの正確性): ツールの正確性のしきい値。
- ゴールデン実行メソッド: ナイーブな再生検証と安定した再生検証のいずれかを選択します。
- ツール フェイク: 実際の本番環境の API 呼び出しの代わりに、モックデータを使用します。
- Scenarios:
- シナリオの合格/不合格の基準: シミュレートされた会話が合格か不合格かを判断するロジックを設定します。
- 会話の開始者: 会話を開始するユーザーまたはモデルを設定します。
- ツール フェイク: 実際の本番環境の API 呼び出しの代わりに、モックデータを使用します。
- 音声評価
- 音声評価の録音
評価を実行する
評価を実行するには、テストケースの行にある実行ボタンをクリックするか、複数のテストケースを選択して実行します。
複数のバージョンを保存している場合は、使用するエージェント バージョンを選択するか、下書きエージェントを新しいバージョンとして自動的に保存して実行できます。
評価の実行後、指標が更新され、結果が表示されます。
特定の実行評価をクリックすると、実行の詳細な結果が表示されます。標準指標に加えて、次の指標が表示されます。
- 失敗したターン
- すべてのターンの詳細のページネーション リスト。実際のエージェントの応答と想定されるエージェントの応答の両方が含まれます。
ゴールデン テストケースでは、「安定した再生」という用語が表示されることがあります。これは、テストが一貫した環境で実行されたことを明確にするものです(コンテキストや入力の変更がないなど)。
AI を使用してテストケースを改善する(プレビュー)
必要に応じて、AI を使用して実行のトラブルシューティングを行い、エージェントの品質を改善する方法を提案できます。AI による提案は、実行回数(実行数)が 3 回以上の場合に最適です。AI を有効にするには、評価するテストケースを選択して [選択したテストケースを実行] をクリックします。ポップアップ表示されたウィンドウで、[AI で問題を見つける] の横にあるチェックボックスをオンにします。
実行が完了すると、結果ページに AI ベースの提案が表示されます。Gemini は、エージェントのパフォーマンスの側面を要約し、改善できる領域をハイライト表示するダウンロード可能な loss_report を自動的に生成します。
AI が提案した修正はどのユーザーでも確認できますが、結果に基づいてアクションを実行できるのは、実行を開始したユーザーのみです。
[Gemini に相談] をクリックして、ヘルパー エージェントとやり取りします。最初に、モデルまたはエージェントのハイレベルな問題について説明する損失レポートが表示されます。ヘルパー エージェントにレポートの説明を依頼できます。レポートが要約され、修正案が提示されることがあります。修正が適用されたら、ヘルパー エージェントに評価の再実行を依頼できます。
インポートとエクスポート
評価テストケース、実行、結果は、YAML 形式または JSON 形式でインポートおよびエクスポートできます。インポートする際は、エクスポートされたデータで定義されているすべてのリソース(ツール、変数、サブエージェント)が受信エージェントに含まれていることを確認してください。
テストケースをエクスポートする手順は、次のとおりです。
- 1 つ以上のテストケースを選択します。
- [テストケースをエクスポート] をクリックします。
- 添付する形式を選びます。
- zip ファイルがダウンロードされます。
テストケースをインポートする手順は、次のとおりです。
- [+ テストケースを追加] をクリックします。
- [Golden] を選択します。
- [次へ] をクリックします。
- zip ファイルをアップロードします。
- インポートで競合が発生した場合は、その処理方法が案内されます。
- [作成] をクリックします。
評価の実行と結果をエクスポートするには:
- 1 つ以上の評価実行を選択します。
- [実行をエクスポート] をクリックします。
- 添付する形式を選びます。
- zip ファイルがダウンロードされます。
指標
各テストケースの結果には、選択したテストケースに対するエージェントのパフォーマンスを測定する一連の指標が含まれています。指標は、コンソールに示されているように、ターンレベルまたは期待値(会話)レベルで計算されます。
いずれの場合も、[評価] タブの [設定] メニューで、実行パスに必要な値をカスタマイズできます。
Tool correctness(ツールの正確性)
ゴールデン テストケースとシナリオ テストケースに対して計算されます。この指標は、想定されるツール呼び出しとその想定されるパラメータ値が与えられた場合に、一致した想定されるパラメータの割合を反映します。見逃されたツール呼び出しは 0 と評価され、入力パラメータのないツール呼び出しは存在する場合 1 と評価されます。ゴールデン評価中に予期しないツール呼び出しが行われた場合、結果は失敗と見なされますが、ツールの正しさの値には影響しません。
ユーザーの目標達成度
シナリオ用に計算されます。ユーザー目標達成度は、ユーザー シミュレーション評価用に設計されたバイナリ指標です。シミュレートされたユーザーが目標を達成したと信じているかどうかを測定します(0=いいえ、1=はい)。入力は、シミュレートされたユーザー構成と会話の文字起こしで定義された user_goal です。指定された user_goal で明示的または暗黙的な目標が指定されていない場合、出力スコアは -1 になります。
ハルシネーション
ゴールデン テストケースとシナリオ テストケースで利用できます。ハルシネーション スコアは、生成されたターンごとに計算されます。この指標は、エージェントがコンテキストで正当化されない主張を行ったかどうかを反映します(0=なし、1=あり)。コンテキストは、会話の前のターン、セッション変数、ツール呼び出し、エージェントの指示で構成されます。この指標は、ツール呼び出しを含むターンに対してのみ計算されます。ツール呼び出し内のハルシネーションは検出されません。コンテキストとして提供されたツール呼び出しは正しいと想定されます。誤検出を最小限に抑えるため、回答に事実に基づく主張が含まれていない場合や、すでに確立されている一般的な知識のみが含まれている場合、指標は N/A のスコアを返すことがあります。
ハルシネーションは、評価設定で有効または無効にできます。
意味による一致
ゴールデン テストケース用に計算されます。この指標は、観測されたエージェントの発話が、想定されるエージェントの発話とどの程度一致するかを測定します。セマンティック一致はターンレベルで計算されます。返される値の範囲は 0(完全に矛盾している)から 4(完全に一致している)までです。
シナリオの想定値
シナリオについて計算されます。この指標は、シミュレートされたユーザーが想定したエージェントの動作が満足のいくものだったかどうかを測定します(0=いいえ、1=はい)。次の 2 種類のシミュレートされたユーザーの期待値がサポートされています。
- ツール呼び出しの期待値: ツール呼び出しの正しさと同様に計算されますが、次の例外があります。
- 結果は 0(いいえ)または 1(はい)のいずれかになります。
- 予期しないツール呼び出しはペナルティの対象になりません。期待値は、会話がシミュレートされたユーザーの期待を満たすために不可欠なツール呼び出しのセットを指定するためのものです。
- ツール呼び出しの入力の期待値が満たされると、呼び出しがインターセプトされ、実行時にモックの戻り値に置き換えられます。
- エージェントの回答の期待値: 会話内のエージェントの回答に想定される文字列が含まれているかどうかを確認します。
タスクの完了
シナリオについて計算されます。タスクの完了は、会話の品質の指標です。ユーザーの目標が達成されたかどうかと、エージェントの動作が正しかったかどうかを同時に測定します。次のように定義されます。
User_Goal_Satisfied AND no_hallucinations_detected AND Expectations Satisfied
ペルソナ
ペルソナは、カスタマイズして、シナリオ テストケースでエージェントのテストに使用できるシミュレートされたユーザー ペルソナです。この機能は、エージェントが実行時に遭遇する可能性のある人間のユーザーのタイプと適切にやり取りできるようにするために役立ちます。
ペルソナを選択しない場合、シナリオの結果ごとにランダムなペルソナが選択されます。
この機能は、テキスト入力と音声入力の両方で使用できます。
ペルソナを作成する
- ペルソナを作成するには、[評価] タブに移動し、[ペルソナ管理](設定アイコンの横)をクリックします。
- [+ ペルソナを追加] をクリックします。
- ポップアップ表示されたメニューで、名前、ユーザーの個性、追加のユーザー コンテキスト(年齢、場所、電話をかけてきた理由など)を入力します。
- [+ Add] をクリックします。
ペルソナを使用して評価を実行するには:
- メインの [評価] ページに戻り、1 つ以上のシナリオ テストケースを選択します。[選択項目を実行] をクリックします。
- ポップアップ表示されたウィンドウで、[ペルソナ] プルダウン メニューから作成したペルソナを選択し、[実行] をクリックします。