評価スコアを解釈し、重点分野を特定した後、なぜ個々のテスト ケースが失敗したのか、誰が対応すべきかを判断してください。
本記事はテスト ケース レベルでの失敗の診断のための構造化された指針を提供します。 根本原因を分類し、エージェント、評価、インフラの問題を区別し、適切な次の行動を選ぶのに役立ちます。
準備
失敗トリアージを始める前に:
- スコア解釈および準備度評価を完了し、どの評価セットに注意が必要かを特定してください。
- 準備状況とリスクに基づいて、最優先度の高い故障に集中しましょう。
重要
この手順を省略すると、影響の小さい問題や非ブロッキングの問題に時間を費やすことになるかもしれません。
トリアージ前チェック: インフラの健全性を確認する
個々の失敗を診断する前に、評価実行中に依存関係が正常であったかを確認してください。 インフラストラクチャの問題は、エージェントや評価の問題のように見える障害を引き起こすことがありますが、どちらにも関係ありません。
次の条件を確認します。
- サポート情報ソースがアクセス可能で、完全にインデックス化されている。
- API バックエンドやコネクタがエラーやタイムアウト、レート制限応答を返さないこと。
- 認証トークンが実行中有効であること。
- 評価環境が意図されたエージェント構成に一致していること。
依存関係が正常でない場合は、問題を修正し、評価を再度実行してから次に進んでください。 異常な実行から結果をトリアージすると、不正確な結論が生じる可能性があります。
手順0: 失敗の優先順位付け
個別のテスト ケースをトリアージする前に、まずどこに注力するか決定してください。
失敗の優先順位は以下の通りです:
| 優先度 | 最初にトリアージ | 理由 |
|---|---|---|
| 1 | 安全およびコンプライアンスの失敗 | 最も重大な影響。 これらの失敗は展開前に解決してください。 |
| 2 | コア ビジネス シナリオでの失敗 | エージェントの価値提案への直接的な影響。 |
| 3 | 最低得点評価セットでの失敗 | おそらくシステム的な問題です。 根本原因を修正すれば、複数の失敗が解決する可能性があります。 |
| 4 | 複数回の実行で繰り返される失敗 | 一貫した失敗は診断が容易です。 |
| 5 | 機能シナリオの失敗 | 重要ですが、通常は影響が小さい傾向があります。 |
失敗が多数ある場合 (例: 15 件以上)、すべてを個別にトリアージする必要はありません。 スコアが最も低い評価セットから始め、いくつかの失敗を手動で確認してください。 もし根本原因が共通していれば、それを修正することで多くの失敗をまとめて解決できます。
失敗したテストの品質シグナルを特定する
評価結果で失敗したテスト ケースが示されていても、品質シグナルが明確に特定できない場合は、評価セットと採点方法を用いてシグナルを推論してください。
以下にその例を示します。
- 評価セットは、安全性、グラウンディング、ツール使用などの能力領域を示します。
- キーワード マッチやルーブリックベースのスコアリングなどの採点方法は、より詳細なコンテキストを提供します。
意図された品質信号を特定することで、最も関連性の高い診断質問を選ぶことができます。
手順 1: 評価セットアップを検証する
重要
必ずここから始めてください。 エージェントを調査する前に、評価セットアップが正しいか必ず確認してください。
各失敗について、エージェントの実際の応答、期待値、評価方法を手動で確認してください。
以下の質問を順番に進めてください。 結果が出たらやめてください。
エージェントの応答は受け入れ可能でしょうか? 実際のユーザーは、評価に失敗してもこの回答に満足するでしょうか?
- はいの場合、評価設定に問題があります。グレーダーまたは期待される値が間違っています。
- いいえの場合、次の質問に進んでください。
期待される回答はソースに対して最新かつ正確ですか?
- はいの場合は、次の質問に進んでください。
- いいえの場合、評価設定に問題があります。期待される回答が古いか間違っています。
テスト ケースは現実的なユーザー入力を反映していますか?
- はいの場合は、次の質問に進んでください。
- いいえなら、評価設定に問題があります。テスト ケースが非現実的です。
合理的な代替応答が正解となり得る場合でも、グレーダーがそれを許容していないことはありますか?
- はいの場合、評価設定に問題があります。グレーダーが厳格すぎて有効なバリエーションを考慮していません。
- いいえの場合、次の質問に進んでください。
評価方法はテスト対象に適していますか?
- はいの場合、その評価は有効です。 手順 2: エージェントの診断へ進みます。
- いいえの場合、評価セットアップに問題があります。評価方法はこの品質シグナルに適していません。
応答の受容性の判断
以下のシグナルを使って、エージェントの応答が許容されるかどうかを判断してください:
- 同じ重要な事実、異なる表現 → 多くの場合受容可能 (採点者が厳しすぎる可能性がある)。
- ソースに記載されている重要な情報が欠落している→ 多くの場合、受容不可。
- 「十分かどうか」の閾値が曖昧 → 受け入れ基準が不明確である可能性があります (手順 4 にフラグ付け)。
判断に迷う場合は、期待される答えだけでなく、実際の内容を元のソースと照合してください。
これらの指標は判断の参考になりますが、判断を置き換えるものではありません。
一般的な評価セットアップの失敗タイプ
| エラーの種類 | プロパティ | 例 |
|---|---|---|
| 古くなった期待値 | ソース コンテンツが変更されたのに、期待値が更新されていない | ポリシーが 15 日に更新されたが、評価では依然として「30 日間の返品期間」が期待されます。 |
| 過度に厳格なグレーダー | キーワード一致が正しい同義語や言い換えを認識できない | 「冷たい水」を期待していたが、エージェントの応答は「冷水、30 度 C」となっており、意味的には正確です。 |
| 非現実的なテスト ケース | テスト シナリオが実際のユーザーの行動と一致しない | 実際のユーザーは 5〜10 語しか入力しないのに、4 段落のクエリをテストしています。 |
| 評価方法が間違っている | 評価方法が実際にテストしている内容に一致しない | 比較の意味が適切な総合問題で、「キーワード一致 (すべて)」を使用する。 |
| グレーダーの事実誤認 | 言語モデル判定者が存在しない失敗理由を捏造する (単発のエラー) | 言語モデルの採点者が「応答は返品ポリシーについて言及していない」と判断しますが、実際には明確に言及されています。 |
| グレーダーの系統的バイアス | 言語モデル判定者がテスト ケース間で一貫性のない基準を適用する (調整の問題) | グレーダーは、同じ品質基準であっても短い応答は合格させ、長い応答は内容に関係なく不合格にします。 |
| あいまいな合格基準 | 期待される内容に複数の解釈が可能 | 「価格情報も含めるべきです。」月次? 年次? ユーザーごと? |
グレーダーの検証
グレーダーの信頼性は信頼できるトリアージの前提条件です。 グレーダー自体が信頼できない場合、関与したすべての失敗を誤判定してしまいます。
グレーダーの信頼性を検証するには:
- 手動レビューで合否が明確なテスト ケースを 5~10 件選びます。
- 評価を実行し、グレーダーの出力と手動の判定を比較してください。
- グレーダーが 20% 以上のケースで判定が一致しない場合は、エージェントのデバッグを行う前にグレーダーを再調整してください。
グレーダーの点検が必要な兆候:
- 同じテスト ケースで、実行ごとに判定が異なります。
- モデル ベースの採点を使用する評価セットでは失敗が集中する一方で、決定論的手法では合格します。
- グレーダーは、エージェントの応答を確認しても再現できない問題を指摘します。
グレーダー再調整のオプション:
- 可能な限り決定論的手法を使用してください。
- ルーブリックに明確な「許容可能」と「許容不可」の例を追加してください。
- キーワード セットを拡大し、同義語や適切な言い換えを含めるようにします。
- セマンティック同等性のチェックには、意味の比較をキーワード一致 (すべて) の代わりに使用してください。
手順 2: エージェントを診断する
この時点で評価は有効であり、エージェントは誤った応答を生成しました。 エージェント設定で何が問題だったのかを診断してください。
ヒント
一部の診断質問では、エージェントが内部で何を行ったか (例えば、どのサポート情報ソースが取得されたか、どのツールが呼ばれたか、どのトピックがトリガーされたか) を把握する必要があります。 トレース ログ、会話のトランスクリプト、またはテスト分析を利用可能な場合は活用してください。 プラットフォームがこれらの詳細を表示しない場合は、応答から推測してください (例えば、ソース A にしか現れない内容はソース Aから来た可能性があります)。
事実の正確性や知識の根拠に関する失敗がないか確認する
| Question | もしそうなら → 根本原因 |
|---|---|
| エージェントは間違ったサポート情報ソースから取得しましたか? | サポート情報ソースの構成。 誤ったソースがインデックスまたは優先されます。 |
| エージェントは正しいソースを取得したが、間違った情報を抽出したのでしょうか? | プロンプトや指示のギャップ。 モデルに抽出ガイダンスが必要です。 |
| ソースの内容自体が誤っている、または古いのでしょうか? | サポート情報ソースのコンテンツ。 ソース ドキュメントを更新します。 |
| エージェントはサポート情報ソースを使わずに答えたのでしょうか (答えをでっち上げたのですか)? | ソースのアクセシビリティ。 ソースがインデックスされていない、またはクエリがソースの語彙と一致しません。 |
| エージェントはソースの情報と矛盾する回答をしましたか? | 正しくない情報。 明示的なグラウンディング指示を追加します。 |
ツール呼び出しの失敗を確認する
| Question | もしそうなら → 根本原因 |
|---|---|
| 間違ったツールがトリガーされましたか? | ツールの説明の曖昧さ。 ツール間で説明が重複しています。 |
| 正しいツールが不適切なパラメーターで呼び出されましたか? | パラメーター定義。 スキーマまたは説明が不明瞭です。 |
| ツールが全く実行されませんでしたか? | トリガー条件。 入力が呼び出し基準を満たしていません。 |
| ツールが不要なタイミングで実行されましたか? | 欠陥のあるガードレールがありません。 ツールを呼び出さない条件に関する指示がありません。 |
| ツールが正しく呼び出されたが、応答が出力を誤用したのでしょうか? | 応答の指示。 エージェントはツールの出力を整形するための指示が必要です。 |
| ツールは正しく呼び出されたが、ツール自体が失敗した (エラー、タイムアウト、データの誤りなど) のでしょうか? | ツールや統合の障害。失敗はエージェントではなくバックエンド システムにあります。 エージェントではなく、ツールを修正します。 |
トリガー ルーティングの失敗を確認する
| Question | もしそうなら → 根本原因 |
|---|---|
| 間違ったトピックがトリガーされましたか? | トピック トリガーが重複します。 トピック間のトリガーが曖昧です。 |
| トピックは起動しませんでしたか (フォールバックが実行されましたか)? | トピック カバレッジ ギャップ。 どのトピックもこの入力形式に対応していません。 |
| 複数のトピックが誤った判別で一致しましたか? | 判別ロジック。 優先度または明確化フローの設定ミス。 |
トーンや応答品質の不具合を確認する
| Question | もしそうなら → 根本原因 |
|---|---|
| エージェントのトーンがシステム プロンプトのガイダンスと一致しませんか? | トーン指示のギャップ。 欠落または矛盾しているガイダンスを修正します。 |
| 質問に対する応答は冗長すぎるか、簡潔すぎますか? | フォーマット指示。 長さや構造のガイダンスを追加します。 |
| エージェントはセンシティブな状況で共感力が欠けているか? | 共感指示のギャップ。 感情的な入力への明確なガイダンスを追加します。 |
| 応答の構造に問題がありますか (長文のみで手順が記載されていない)? | フォーマット指示。 書式設定要件を追加します。 |
安全と境界の失敗を確認する
| Question | もしそうなら → 根本原因 |
|---|---|
| エージェントはシステム情報を公開しましたか? | システム プロンプト保護。 「絶対に明かさないこと」という指示を追加します。 |
| エージェントが範囲を逸脱しましたか? | スコープ定義のギャップ。 境界をより明確に定義します。 |
| エージェントはプロンプト インジェクションに従いましたか? | 安全性指示。 敵対的耐性に関するガイダンスを追加します。 |
| エージェントは個人情報を不適切に扱いましたか? | PII 取り扱いルール。 データ保護指示を追加してください。 |
エスカレーションと正常なエラーの確認
| Question | もしそうなら → 根本原因 |
|---|---|
| エージェントは必要な時にエスカレーションしませんでしたか? | エスカレーション トリガー。 基準が未定義か、または範囲が狭すぎます。 |
| エージェントが必要以上に早くエスカレーションしましたか? | エスカレーション閾値。 基準が過度に反応します。 |
| エスカレーションは会話のコンテキストを失いましたか? | ハンドオフの構成。 コンテキスト保持が設定されていません。 |
| エージェントは失敗を認めずにループしましたか? | フォールバック ロジック。 再試行制限やフォールバック動作が設定されていません。 |
診断後、失敗パターンを根本原因ごとに修正戦略にマッピングします。
手順 3: プラットフォームの制限を特定する
評価が正しく、合理的な設定変更で結果が改善しない場合、問題はプラットフォームの制限かもしれません。
プラットフォーム制限指標
| インジケーター | 示唆している内容 |
|---|---|
| 同じ失敗が様々なプロンプトや設定でも繰り返し発生する | 構成の問題ではない |
| 取得は正しいソース構成にもかかわらず、一貫して誤った文書を返す | 取得ランキングの制限 |
| 明確な指示があるにもかかわらず、エージェントが必要な推論を行うことができない | モデル機能の境界線 |
| 必要なオーケストレーションパターンが構成オプションでサポートされていない | オーケストレーション ロジック制約 |
| モデルベースのグレーダーはルーブリックの調整にもかかわらず一貫して誤分類する | グレーダー モデルの制限 |
プラットフォーム制限のアクション パス
- 制限事項を明確に記録してください (何が失敗したか、試したこと、設定が原因ではない証拠など)。
- 可能な場合は回避策を適用してください (例: 検索性を向上させるためにソース ドキュメントを再構成する)。
- テスト ケースを既知の制限としてマークするか、無関係な進行を妨げないように閾値を調整してください。
- 証拠を添えてプラットフォーム チームにエスカレーションします。
- プラットフォームの機能が更新された際に再評価するため、失敗ログで項目を追跡してください。
分類後は、プラットフォームの制限への対応に関する回避策やエスカレーション ガイダンスを確認します。
失敗がフレームワークに合わない場合
一部の失敗は単一の根本原因タイプにはっきりと分類できない場合があります。 次のような例がよく見られます。
- バックエンド データ品質の問題: サポート情報ソースの内容は実質正しいが、曖昧に書かれているため、エージェントも評価も間違っていません。
- 断続的なインフラ問題: ネットワークのタイムアウト、API レート制限、および再現性のないコネクタ問題。
- モデル バージョンの変更: 開始しなかったプラットフォーム モデルのアップデート後にエージェントの挙動が変わりました。
- 曖昧なテスト ケース: シナリオが曖昧で、合理的な人の間でも正解について見解が異なります。
推奨される対応: 観察した内容 (障害、エージェントの応答、確認した事項) を記録してください。 その項目を失敗ログに「未分類」として記録してください。 失敗が再発した場合、追加の証拠によって分類可能になることがよくあります。
複合原因への対応
単一の失敗に複数の根本原因が関与することもあります。 以下にその例を示します。
- 期待される回答がやや古い (評価設定) ことと、サポート情報ソースが不完全 (エージェント設定) であることによる事実の正確性の失敗。
- ツールの説明が曖昧 (エージェント構成) であり、かつオーケストレーションが条件付きツール呼び出しをサポートしていない (プラットフォーム制限) 場合のツール呼び出し失敗。
推奨方法: 失敗ごとにトリアージ全体を実施します。 複数の根本原因タイプが該当する場合は、優先順位に従って対処してください:
- まず評価を修正し、エージェントの変更が実際に効果を発揮するかどうかを正確に把握できるようにします。
- エージェントの設定を修正して、残された障害が本当にプラットフォームの問題かどうかを判断してください。
- 1 と 2 が解決した後に、プラットフォームの制限を記録します。
変更ごとに影響を受けたテスト ケースを再実行してから進めてください。
マルチターン会話失敗の対応
マルチターン シナリオでは、失敗はターン間でのみ現れます。
マルチターン問題を疑うタイミング
- エージェントは初期のターンでは正確に応答しますが、後のターンで自分の回答と矛盾します。
- エージェントは後のターンで前のツール呼び出しや知識取得のコンテキストを失います。
- エスカレーションのタイミングは、会話履歴全体を考慮したときにのみ適切に判断できます。
- 会話が長くなるにつれて、エージェントのトーンは徐々に低下します。
- エージェントはユーザーが既に提供した情報を再度求めます。
ヒント
失敗は後のターンに現れることがありますが、根本原因はそれより早い段階で発生している場合があります。 会話が分岐した最初のターンを遡って確認してください。
追加の診断質問
| Question | もしそうなら → 根本原因 |
|---|---|
| 失敗は前のターンで失われた情報に依存していましたか? | コンテキスト管理の問題、会話状態はターンごとに保持されません。 |
| そのエージェントは、前のターンでの発言と矛盾しましたか? | 一貫性のガイダンス ギャップ; ターン間の一貫性を保つ指示がありません。 |
| エージェントは、ユーザーがすでに提供した情報を再度求めましたか? | コンテキスト取得の問題。エージェントが以前の会話ターンを参照していません。 |
| 失敗は 5 回以上のターンを重ねた後にのみ発生しましたか? | 有効なコンテキスト長が上限を超えました。 |
マルチターン問題の修正ガイダンス
- コンテキスト損失: 会話状態の設定を確認してください。 ツールの出力や重要な事実がターン間で保持されるようにしてください。
- 矛盾点: 一貫性を保つよう指示を追加します (例:「この会話における前回の応答と一貫性を保ってください」)。
- 再質問: プラットフォームの会話メモリ構成を確認してください。
- 長い会話の劣化: 会話要約やコンテキストの剪定戦略を検討します。
合格したテスト ケースの検証 (誤検知チェック)
このフレームワークは失敗したテスト ケースに焦点を当てています。 しかし、誤って合格したテスト ケースは隠れた品質のギャップを生むことがあります。
推奨事項: 各評価実行で合格したテスト ケースの 5〜10% を手動でレビューし、特に以下の場合に行うことを推奨します。
- モデルベースのグレーディング (誤検知のリスクが高い)
- 主観的なシグナル (トーン、有用性)
- 以前失敗していたが変更後にパスしたテスト
もし誤検知が見つかったら、グレーダーを再調整します。
次の手順
失敗トリアージを完了した後:
- レイヤー 3: 失敗パターンを修復戦略にマップする を使用します。
- レイヤー4: パターンを分析してシステム上の問題を特定します。
- フレームワークの層が実際のシナリオでどのように連携して機能するかを示した実践例をご確認ください。