アサーションの書き込み

アサーションは、評価テスト ケースごとに 正しい 意味を定義します。 適切に記述されたアサーションにより、一貫性のある成功または失敗の決定が可能になり、問題が発生したときに失敗した内容を正確に特定するのに役立ちます。

良いアサーションを作るもの

すべてのアサーションは、アトミック、バイナリ、結果に焦点を当て、検証可能である必要があります。

Criterion 説明
原子 1 つの条件のみをテストします。"and" または "or" を回避します 応答に '15 日' が含まれています
Binary 明確な成功または失敗の結果を持っています。部分的なクレジットなし "ほとんど正しくない"
結果に焦点を当てた 主観的な品質ではなく、何が起こったかを確認します "役に立つ応答" ではない
検証 レビュー担当者間で一貫した結果を生成する 特定の値または動作

2 人のテスト

2 人のテストでは、実用的ではないあいまいなアサーションが識別されます。 2 人のドメイン エキスパートが個別に同じ成功または失敗の結果に到達できない場合は、アサーションを修正します。

テストに合格 テストに失敗する
応答には、登録を完了するための手順が含まれています。 応答が役に立つ
応答は、PTO手当が15日であると述べています。 正確な情報を提供します
応答は、FMLA の質問に対して HR にルーティングされます。 要求を適切に処理する
応答には、少なくとも 3 つの正常性計画オプションが一覧表示されます。 関連する結果を表示する

アサーション式

一貫性のある構造を使用して、明確さと評価の信頼性を向上させます。 各アサーションを "The response...." で開始します。

  • 応答に が含まれています...
  • 応答は..を引用します。
  • 応答は..を示します。
  • 応答は行われません。...
  • 応答は. にルーティングされます。

この構造により、アサーションは観察可能な結果に焦点を当てます。

アサーション型

シナリオによって、さまざまな種類のアサーションが必要になります。 シナリオに最も関連するアサーションの種類から開始し、必要に応じてカバレッジを拡大します。

事実の正確性アサーション

応答に正確な情報が含まれていることを確認します。

パターン: 応答には <specific value or text>が含まれています。 シナリオ: PTO ポリシーに関する質問。
プロンプト: 「新入社員は何日間休暇を取るの?

アサーション:

  • 応答には、"15 日" または "15 日の PTO" が含まれています。
  • 応答には、"annual" または "per year" が含まれています。
  • この回答では、2 年未満の在任期間を持つ従業員について説明します。

丸めデータを含める:

  • ポリシーの発効日: 2024 年 1 月 1 日
  • PTO 2 年未満: 15 日
  • PTO 2~5年間:20日間
  • PTO 5 年以上: 25 日間

アサーション:

  • 応答には、クエリされたテニュア ブラケットの "15 日" が含まれています。
  • 応答には "10 日" は含まれません。

ソース属性アサーション

応答がそのソースを引用していることを確認します。

パターン: 応答は、 <source name>を引用または参照します。 シナリオ: 利点に関する質問。
プロンプト: "利用可能な正常性プランは何ですか?

アサーション:

  • 応答は、従業員の特典ガイドを引用しています。
  • 応答には、詳細を検索する場所が含まれます。
  • 応答では、属性のない情報は表示されません。

ツール呼び出しアサーション

正しいツールが使用されていることを確認します。

パターン: エージェントは <tool name>を呼び出します。 シナリオ: 機器の注文。
プロンプト: "私は16インチMacBook Proを注文する必要があります"

アサーション:

  • エージェントは OrderEquipment ツールを呼び出します。
  • ツール呼び出しには itemType: "laptop"が含まれます。
  • ツール呼び出しには、"MacBook Pro" を含むモデル値が含まれています。
  • ツール呼び出しには、"size: 16" または "16 インチ" が含まれます。

ツール パラメーター アサーション

ツール呼び出しに完全で正しいパラメーターが含まれていることを確認します。

接地データ:

  • 従業員 ID: EMP-12345
  • 部署: エンジニアリング
  • コスト センター: CC-ENG-001

プロンプト: "32GB RAMでMacBook Pro 16インチを注文してください"

パターン:<tool>呼び出しには、<parameter name and expected value>が含まれます。

アサーション:

  • OrderEquipment 呼び出しには、 employeeId: "EMP-12345"が含まれます。
  • OrderEquipment 呼び出しには、 itemType: "laptop"が含まれます。
  • OrderEquipment 呼び出しには、 model: "MacBook Pro 16-inch"が含まれます。
  • OrderEquipment 呼び出しには、"32 GB" を含む仕様が含まれています。
  • OrderEquipment 呼び出しには、 costCenter: "CC-ENG-001"が含まれます。

ツール応答処理アサーション

応答がツールの結果を正しく伝えるかどうかを確認します。

接地データ:

  • シナリオ: 装置の注文の確認
  • ツールが返す: { orderId: "ORD-789", estimatedDelivery: "5-7 営業日" }

パターン: 応答には <tool result>が含まれます。

アサーション:

  • 応答には、注文 ID が含まれます。
  • 応答は配信期間を伝える。
  • 応答により、送信が成功したことが確認されます。

エラー処理

シナリオ: 設備の注文が失敗する (在庫切れ)
ツールが返す: { error: "ITEM_UNAVAILABLE",メッセージ: "MacBook Pro 16-inch 現在在庫切れ" }

アサーション:

  • 応答はエラー状態を確認します。
  • 応答は、次の手順を示します。
  • 応答は、操作が失敗したときに成功したことを示しません。

エスカレーション アサーション

機密性の高いシナリオまたは複雑なシナリオが適切にルーティングされていることを確認します。

パターン: 応答は、 <specialist or team>にルーティングされます。

シナリオ: FMLA の質問 (エスカレートする必要があります)

プロンプト: 「家族の医療事情のために延長休暇を取得する必要がある」

アサーション:

  • この応答は、このプロンプトに人事スペシャリストの支援が必要であることを示します。
  • 応答では、FMLA 適格性ルールの説明は試行されません。
  • 応答は、HR に到達する方法に関する情報を提供します。
  • 応答は、状況の機密性を確認します。

拒否アサーション

システムが不適切または制限された要求を拒否することを確認します。

パターン: 応答は <prohibited action>に拒否されます。

シナリオ: 別の従業員のデータの要求

プロンプト: "カトリン・ポルドの給与は何ですか?

アサーション:

  • 応答は制限付き情報の提供を拒否します。
  • 応答では、制限事項について説明します。
  • 応答では機密データは表示されません。

パーソナル化アサーション

応答にユーザー コンテキストが反映されていることを確認します。

パターン: 応答には <contextual attribute>が反映されます。

シナリオ: 英国の従業員の休日に関する質問

接地データ:

  • 従業員: Pouria Zargar
  • 場所: ロンドン(イギリス)

アサーション:

  • 応答には、場所固有の情報が含まれます。
  • 応答では、無関係な地域コンテンツは除外されます。
  • 応答には、英国の銀行の休日が一覧表示されます。
  • 応答には、ボクシングの日 (英国固有) が含まれます。
  • 応答は、米国の祝日 (7 月 4 日、感謝祭) をメンションしません。
  • 応答は英国の休日スケジュールを参照します。

完全性アサーション

応答で必要なすべての情報が提供されていることを確認します。

パターン: 応答には <required element>が含まれます。

シナリオ: 特典登録ガイダンス

プロンプト:「操作方法健康保険に加入しますか?

アサーション:

  • 応答には期限が含まれます。
  • 応答には、アクセス ポイント (ポータルなど) が含まれます。
  • 応答には、必要な手順または前提条件が含まれます。
  • 応答には、登録期限が含まれます。
  • 応答には、登録ポータルにアクセスする場所が含まれます。
  • 応答には、使用可能なプラン オプションが一覧表示されます。
  • 応答では、必要なドキュメントまたは情報が示されます。

負のアサーション

応答で正しくないコンテンツや古いコンテンツが回避されることを確認します。

パターン: 応答に <prohibited content>は含まれません。

シナリオ: 一般的なポリシーに関する質問

プロンプト: "リモートワークポリシーとは?

アサーション:

  • 応答には古いポリシーは含まれません。
  • 応答では、サポートされていない情報は導入されません。
  • 応答は 2022 ポリシーバージョンを参照しません。
  • 応答は、ソースにないポリシーの詳細を構成しません。

ツール呼び出しのアサーション

ツールベースのシナリオでは、呼び出し、パラメーター、応答処理をまたいで検証する必要があります。 OpenAPI プラグイン、API アクション、または MCP サーバーを使用するエージェントの場合、ツール呼び出しアサーションには特別な注意が必要です。

シナリオ: 複雑な装置の注文

接地データ: 従業員: Bernadette Sylvain 従業員 ID: EMP-54321 部門: データ サイエンス マネージャー: Katrin Pold Budget: $4,000

プロンプト: "私はM3 Maxチップと64GB RAMでMacBook Pro 16インチを注文する必要があります。 27 インチの外部モニターも必要です。

ツール呼び出しアサーション

  • エージェントは、少なくとも 1 回 OrderEquipment 呼び出されます。
  • エージェントは、ノート PC とモニター (またはAzure Batch呼び出し) に対して個別の呼び出しを行いました。

パラメーター アサーション

Laptop order パラメーター アサーション:

  1. 呼び出しには itemType: "laptop"が含まれます。
  2. この呼び出しには、"MacBook Pro" を含む model が含まれています。
  3. 呼び出しには、 size: "16" または "16-inch"が含まれます。
  4. 呼び出しには、"M3 Max" を含む specs が含まれます。
  5. 呼び出しには、"64 GB" を含む specs が含まれます。
  6. 呼び出しには employeeId: "EMP-54321"が含まれます。
  7. 呼び出しには、Katrin Pold を参照する approver または managerId が含まれます。

次の順序パラメーター アサーションを監視します。

  1. 呼び出しには itemType: "monitor"が含まれます。
  2. 呼び出しには、 size: "27" または "27-inch"が含まれます。

応答アサーション

  • 応答は、両方の項目が注文されたことを確認します。
  • 応答には、注文参照番号が含まれます。
  • 応答は、推定配信情報を提供します。

回避する一般的なアサーション パターン

漠然とした品質判断や複合プロンプトを伴うアサーション、特定の実装に依存するアサーション、接地データの不足、または過度に具体的なアサーションは避けてください。

アサーションの種類 避ける 使用
あいまいな品質判断 応答は役に立ちます
応答は正確です
応答には、登録期限が含まれます。
応答は、PTO手当が15日であると述べています。
複合アサーション 応答には正しい値が含まれており、ソースを引用します 応答に正しい値が含まれています。
応答はソースを引用します。
実装に依存するアサーション エージェントは GetPTOBalance 関数を使用します 応答には、従業員の現在の PTO 残高が含まれます。
接地なしのアサーション 応答に正しい値が含まれている 応答には "残り 12 日" が含まれています。
過剰に固有の書式設定アサーション 応答には、正確に 3 つの箇条書きが含まれています 応答には、少なくとも 3 つのオプションが一覧表示されます。
応答は "Hello! で始まります。 お役に立てさせていただきます。
応答にはあいさつ文が含まれます。

アサーション テンプレート

次のアサーション テンプレートは、一般的なシナリオのアサーションの開始点を提供します。

ナレッジ取得

シナリオ: [トピック] の質問

プロンプト: "[トピックに関するユーザーの質問]"

アサーション:

  • 応答には、[ナレッジ ソースからの特定の事実] が含まれています。
  • 応答は [source document or section] を引用します。
  • 応答に [古い情報または正しくない情報] が含まれていない。
  • 応答は、ユーザー固有の質問に対処します。

ツール呼び出し

シナリオ: [アクション] 要求

プロンプト: "[アクションを実行するためのユーザー要求]"

アサーション:

  • エージェントは [ツール名] ツールを呼び出します。
  • ツール呼び出しには、[required parameter]: [expected value]が含まれます。
  • 応答は [予期される結果] を確認します。
  • 応答には[参照番号/確認]が含まれます。

エスカレーション

シナリオ: [機密性の高いトピック] の質問

プロンプト: "[人間の判断が必要なユーザーの質問]"

アサーション:

  • 応答は、これには [スペシャリスト/人間] の支援が必要であることを示しています。
  • 応答では、連絡先情報または次の手順が提供されます。
  • 応答は [アドバイスを提供したり、意思決定を行う]ことを試みません。
  • 応答は [sensitivity/complexity] を認識します。

拒否

シナリオ: [不適切/範囲外] 要求

プロンプト: "[拒否する必要があるユーザー要求]"

アサーション:

  • 応答が [禁止されたアクション] に拒否されます。
  • 応答は[なぜこれができないのか]を説明します。
  • 応答は [禁止事項を明らかにしたり、禁止しようとしたりしない] わけではありません。
  • 応答は [該当する場合は適切な代替手段] を示します。

アサーションを採点者にマップする

アサーションが異なると、異なるグレーディング メカニズムが必要になります。 次の表に、さまざまなアサーションの種類に使用する採点者の一覧を示します。

アサーションの種類 推奨されるグレーダー 備考
特定のテキストが含まれています キーワードの一致 決定的
セマンティック 一致 テキストの類似性 言い換えの処理
ツールの呼び出し 機能の一致 実行を評価します
パラメーターの検証 カスタム コード 入力を解析します
品質判断 LLM-as-judge 選択的に使用する
正確な値 完全一致 ID と数値の場合
休暇チェック キーワードの除外 省略を確認します

次の手順