類似性マッチングの失敗に関するトラブルシューティング

類似性ルーティングは、エージェント選定の第一段階です。 ユーザーの入力内容を、各エージェントごとに設定された類似フレーズと比較し、最も一致するものを特定します。 このプロセスにより、一般的なリクエストを効率的にルーティングし、不要な大規模言語モデル(LLM)への呼び出しを削減することができます。

エージェントの信頼度が設定された閾値を下回り、かつ類似性ルーティングによって適切な一致が特定できない場合、エージェント選択のためにリクエストがLLMに送信されます。

ルーターエージェントは、これらのイベントをログに記録します。 ログを確認することで、類似フレーズの網羅性における不足箇所を特定し、閾値を調整し、時間の経過とともにルーティングの精度を向上させることができます。

類似性ルーティングの理解

以下の設定要素は、類似性ルーティングの動作を制御します。
表 1. 類似性ルーティングの設定
構成 説明
similarityThreshold ルーティングの一致に必要な最低類似度スコア。
similarityPhrases エージェントに対してユーザーが予想されるリクエストを表す例文。
最高スコアのエージェントが設定された閾値を下回ると、Router Agent は次のようなログエントリを記録します
SimilarityRouter: no match above threshold=<value>, topScore=<value>, query=<prompt>

類似性マッチングの失敗の検証

OpenSearch を使用して、類似性ルーティングによってエージェントに割り当てられなかったリクエストを特定します。
  1. OpenSearch のダッシュボードで、「 Discover」 を選択して検索画面を開きます。
  2. 検索バーに、次のクエリを入力してください:
    "SimilarityRouter: no match above threshold"

    クエリ構文の詳細については、 『 OpenSearch 』のドキュメントを参照してください。

  3. 分析対象とする期間の日付範囲を設定してください。
  4. フィールド選択画面で、以下のフィールドを選択してください:
    • ext_requestId
    • メッセージ
    • タイムスタンプなどの追加フィールド
  5. 返されたログエントリを確認してください。
  6. 結果に含まれる繰り返し出現するプロンプトのパターンを確認してください。
  7. 結果」 ページで、「 CSV としてダウンロード」 をクリックし、さらなる分析のためにデータをエクスポートします。

以下の例は、典型的なログエントリを示しています:
SimilarityRouter.scoreAll SimilarityRouter: no match above threshold=0.6, topScore=0.5231, query=Check delivery status
表 2. ログエントリのフィールド
フィールド 説明
threshold 設定された値 similarityThreshold
topScore 設定されたすべてのエージェントを対象に算出された、コサイン類似度スコアのうち最も高い値。
query しきい値チェックに失敗したユーザーのプロンプト。

この例では、最も高い類似度スコアは でしたが 0.5231、設定された閾値である に達しませんでした 0.6。 最高スコアのエージェントが設定された閾値を下回ったため、類似性ルーティングでは一致するエージェントが見つからず、AIモデルを使用してエージェントが選択されました。

このログエントリは、類似性マッチングの失敗を示す主な指標であり、ルーティングの不備を特定するのに役立ちます。

  • 一貫して低い値は、エージェントの類似フレーズが、ユーザーがリクエストを表現する方法を適切に反映していないことを示 topScore しています。
  • 設定された閾値に常に近いものの、それを満たさない の場合 topScore 、類似フレーズが関連性があることを示唆しており、その の similarityThreshold 値が厳しすぎる可能性がある。

これらのログエントリを長期的に確認し、ユーザーのリクエストに見られる繰り返しパターンを特定してください。

類似度マッチングの性能向上

エクスポートしたデータを活用して、類似度マッチングの性能を向上させるための改善点を特定してください。
類似フレーズがほとんどない、または存在しない
ユーザーが、特定のエージェントに該当しない有効なリクエストを頻繁に送信する場合は、ユーザーがそのエージェントの機能を表現する際に最もよく使う表現を反映した、8~15個の類似フレーズを追加してください。
過度に具体的な類似表現
フレーズに注文番号、メールアドレス、アカウントIDなどの具体的な値が含まれている場合は、それらをより一般的な表現に置き換えてください。
たとえば、次の部分を次のように置き換えてください:
Find order 12345
使用:
Find order by order number
類似性の閾値が厳しすぎる
有効なリクエストの多くが、設定された閾値には達していないものの、その値に一貫して近いスコアを示している場合は、その similarityThreshold 値を引き下げることを検討してください。
変更を行う前に、ルーティングの正確性を確認してください。
重複する類似フレーズ
複数のエージェントが類似した表現や一般的な表現を使用すると、ルーティングの信頼性が低下する可能性があります。
各エージェントのフレーズは、そのエージェント独自の機能に焦点を当て、複数のエージェントに広く当てはまるような表現は避けるようにしてください。
通常とは異なる、あるいは曖昧な依頼
ユーザーからのリクエストの中には、意図的に大まかだったり、不完全だったり、曖昧だったりするものがあります。
こうしたリクエストは、多くの場合、類似性ルーティングを迂回して、AIモデルを経由してルーティングされます。 この動作は想定内のものであり、通常、設定の変更は必要ありません。
類似フレーズを持たないエージェント
エージェントは、類似性マッチングに参加するために、類似性フレーズを持っている必要があります。
これらのエージェントが類似性ルーティングに参加できるよう、類似性フレーズを追加してください。