メインコンテンツへスキップ
セキュリティチェックは実際に実行されてこそ意味があります — しかし、安全性のために スループットを犠牲にすべきではありません。このページは開発者が最もよく尋ねる 質問に答えます:強制はエージェントを遅くするか、どのくらい? 短い答え:組み込みルールのコストは測定不可能です。高度なルールのコストは高々ひとつの 有界で並行したフェイルオープンなモデル呼び出しです。その理由と制御方法を説明します。

1. 2 つのクラスのチェック

すべてのガードレールルールとすべてのファイアウォール評価は 2 つのクラスのうちの ひとつに分類されます。

組み込み / 決定的チェック

キーワード拒否リスト(keyword)、正規表現(regex)、PII 検出(pii)、 最大長(max_chars)のガードレールルールは純粋なローカルの文字列と正規表現 操作です — モデル呼び出しなし、ネットワークホップなし、タイムアウトする可能性のある ものは何もありません。ファイアウォールルール評価(ツール名グロブマッチング、 引数述語、egress スコープ)も同様です:決定的でローカルです。 実際的な目的では、これらのチェックはリクエストに無視できるレイテンシを追加します。 ホットパスで実行しても安全であり、組み込みのガードレールテンプレートが作られている ものです。

高度 / セマンティックチェック

llm_judgegroundingexternal ベンダールールはチェックをモデルまたは ベンダーに委譲します。それらはラウンドトリップのコストがかかります。3 つの特性が そのコストを有界にします:
  1. 並行ディスパッチ。 ポリシーに複数の高度なルールがある場合、それらは並行して ディスパッチされます — ひとつの遅いチェックが別のチェックの背後で直列化することは ありません。
  2. ルールごとのタイムアウト。 各高度なルールにはタイムアウト (judge_timeout_ms / grounding_timeout_ms / timeout_ms)があります。 grounding チェックはデフォルトで約 3,000 ms;judge は設定可能な値(0 → エンジン デフォルト)を使用します。ルールは有界です — 無期限にハングすることはできません。
  3. デフォルトでフェイルオープン。 ルールがタイムアウトするかベンダーがエラーを 返す場合、イベントが記録されますがリクエストは継続します。見逃されたチェックが ポリシーにとって許容できない場合、judge_fail_open: false(judge)または fail_open: false(external)を設定してフェイルクローズに切り替えます。
したがって、任意の数の高度なルールの最悪ケースはすべてのタイムアウトの合計では なく、最長単一タイムアウトです。

2. 一目でわかる概要

チェックタイプレイテンシを追加するか?有界にする方法
keyword 拒否リスト無視できる — ローカル文字列スキャンネットワークなし;タイムアウト不要
regex無視できる — RE2 ローカルマッチネットワークなし;タイムアウト不要
pii 検出無視できる — ローカル正規表現/エンティティスキャンネットワークなし;タイムアウト不要
max_chars無視できる — 文字数カウントネットワークなし;タイムアウト不要
ファイアウォールルール評価無視できる — グロブ + 述語マッチングネットワークなし;タイムアウト不要
llm_judgeひとつの有界なモデル呼び出しjudge_timeout_ms;デフォルトでフェイルオープン
groundingひとつの有界なモデル呼び出しgrounding_timeout_ms(デフォルト約 3,000 ms);デフォルトでフェイルオープン
external ベンダーひとつの有界なベンダー呼び出しtimeout_ms;デフォルトで fail_open
複数の高度なルールひとつの有界なラウンドトリップ(並行ディスパッチ)最悪ケース = 最大単一タイムアウト、合計ではない

3. リクエストライフサイクルでチェックが実行される場所

強制はすべて同じポイントで発生するわけではありません。入力と出力のスクリーニングは 異なる場所で時間を追加します:
クライアント


[入力ガードレールスクリーニング]     ← ここで時間を追加、アップストリームの前


アップストリームモデル呼び出し


[出力ガードレールスクリーニング]    ← ここで時間を追加、モデル応答後


クライアント
入力ガードレールはアップストリームモデル呼び出しの前に実行されます。 組み込みの入力ルールは前段にわずかなオーバーヘッドを追加します。高度な入力ルール (例:プロンプトインジェクションをチェックする llm_judge)はメインモデル呼び出しが 開始される前に有界なモデル呼び出しを追加します。 出力ガードレールはモデルが応答した後に実行されます。組み込みの出力ルールは 末尾にわずかなオーバーヘッドを追加します。高度な出力ルール(例:RAG の忠実性を チェックする grounding)はすでにモデルの回答を持った後に有界な呼び出しを 追加します。 ファイアウォールルール評価は決定的で、ツール呼び出しルーティングでインラインに 発生します — 上記のように無視できます。
ブロックされたリクエストは入力ステージのブロックに対してモデルトークンを 消費せず、アップストリームのレイテンシを追加しません。入力ブロックはメータリングと アップストリーム呼び出しの前に発火するため、クォータもアップストリームのラウンド トリップ時間も支払いません。出力ステージのブロックはレスポンスが拒否された後に 事前消費されたクォータを返金します。

4. タイムアウトとフェイルオープンが最悪ケースを有界にする方法

高度なルールには 2 つのダイヤルがあります: タイムアウト — チェックが許可される最大ウォール時間。リクエストはそのルールに 対してせいぜいこの長さだけ待ちます。並行ディスパッチはこの上限がポリシーごとではなく ルールごとに適用されることを意味します。それぞれ 2,000 ms タイムアウトの 3 つの llm_judge ルールがある場合、3 つすべてが同時に実行され、合計待機時間は 約 2,000 ms であり、約 6,000 ms ではありません。 フェイルオープン vs フェイルクローズ — ルールが時間内に完了しない(またはベンダーが エラーを返す)場合の対処方法:
設定タイムアウト / エラー時の動作
fail_open: true(デフォルト)イベントを記録;チェックが通過したかのようにリクエストを継続する
fail_open: falseタイムアウト / エラーをブロックとして扱う;HTTP 400 guardrail_blocked を返す
フェイルオープンは見逃されたチェックのコストで可用性を維持します。フェイルクローズは judge が遅いか到達不能な場合の可用性のコストでポリシーの保証を維持します。 ユースケースにとって何がより重要かに基づいて選択してください。

5. 実践的なガイダンス

ホットパスのルールは組み込みのままにしてください。 PII、クレデンシャル漏洩、 プロンプト長、またはキーワード拒否リストが主な懸念事項の場合 — これらはすべて 組み込みルールです。測定可能なレイテンシを追加せず、テキストマッチングが処理できる すべてのチェックのデフォルト選択肢であるべきです。 セマンティクスが必要な場合に llm_judgegrounding を使用してください。 有害性、ハラスメント、トピック外検出、プロンプトインジェクションの意図、RAG の忠実性 は本当に曖昧です — 正規表現では確実に捉えられません。これらが高度なルールの適切な ケースです。それぞれが有界な追加モデル呼び出しを追加することを受け入れてください。 レイテンシバジェットにタイムアウトをチューニングしてください。 エンドツーエンドの ターゲットが 1,000 ms の場合、judge_timeout_ms: 800(またはそれ以下)を設定して、 judge があなたの予算全体を消費できないようにします。エンジンのデフォルトタイムアウトは 安全な出発点です;厳しい要件がある場合は下げてください。 出力 grounding では、モデル呼び出しはすでに完了しています。 grounding チェックは アップストリームモデルが応答した後に実行されます — 追加レイテンシは末尾のみにあり、 最初のトークンまでの時間のクリティカルパスにはありません。これにより、セマンティック 強制を追加するリスクの低い場所になります。 複数の高度なルール?作業を分散させてください。 高度なルールは並行して実行される ため、3 つの llm_judge ルールをスタックしても 1 つとほぼ同じコストがかかります — 最も長い個別のタイムアウトがウォール時間を決定し、数ではありません。追加コストなしに セマンティックチェックを重ねるためにこれを使用してください。

強制モード

フェイルオープン vs フェイルクローズ — タイムアウトとエラー条件下でポリシーの 動作をチューニングするための完全なリファレンス。

ガードレール

ルールタイプ、judge フィールド、grounding しきい値、完全なガードレール設定 リファレンス。
組み込みルールはすべてのパスで無視できます;高度なルールはひとつの有界で並行した フェイルオープンな呼び出しのコストがかかります — タイムアウトとフェイルモードを チューニングすれば、強制はエージェントに制御されないレイテンシを追加しません。