block、mask、
flag、annotate、spotlight。このページは、最初に手を伸ばす 3 つの強制選択を
扱います:block、mask、flag。ルールごとに 1 つ選びます(あるいは、PII
ルールでは異なるエンティティを異なるアクションにルーティングします。
§5を参照)。他の 2 つは
プロンプト形成型の非ブロッキングアクションです:annotate はアップストリームへ
セキュリティノートを注入し(コードセキュリティ
を参照)、spotlight はマッチした信頼されていない入力をデリミタで囲み、モデルが
それを指示ではなくデータとして扱うようにします。完全な一覧は
ガードレール概要にあります。
より広いエンジン — ルールの種類、ステージ、ポリシーをキーにアタッチすること —
については、ガードレール概要または完全な
ガードレールリファレンスから始めてください。
1. ガードレール block mask flag の判断を一行で
block
HTTP 400
guardrail_blocked で呼び出しを拒否します。モデルは実行されない
(入力ステージ)か、その回答が決して返らない(出力ステージ)かのいずれかです。mask
各マッチをリダクトし — 例:
jane@acme.com → [EMAIL] — サニタイズされた
テキストを通します。リクエストは継続します。flag
トラフィックについて何も変えません。フィードにマッチを記録して進みます。
観察専用。
これらが 3 つの強制アクションです。設定したものは、ルールが走るあらゆる場所で
尊重されます — コンソールのルールビルダー、Test サンドボックス、
そしてライブ
/v1/* リレーパスはすべて同じ block / mask / flag の値を
読みます。2. ひとつの具体例 — 3 つのルール、3 つのアクション
3 つのルールがそれぞれ異なるアクションを選ぶ単一のガードレールです。これは あなたのセッション上のコンソール(/console/guardrails)で作成します —
sk-orca-... リレーキーは /v1/* 呼び出し専用で、ポリシーの編集には決して
使いません。ガードレールの作成または編集には Developer+ ロールが必要です。
- block ルールは、それらのリテラル用語のいずれかを含む任意のプロンプトを 拒否します — HTTP 400、モデルは実行されません。
- mask ルールは、モデルが目にする前にプロンプト内の email と電話番号を
[EMAIL]/[PHONE]に書き換えます。 - flag ルールは、機密マーカーについてモデルの出力を監視し、レスポンスを 変えずにマッチを記録します — 強制を決定する前に、それがどれくらいの頻度で 現れるかを測定できます。
3. block — HTTP 400 で拒否する
block アクションは呼び出し全体を拒否します。呼び出し元は、発火したガードレールと
ルールを示すメッセージとともに、エラーコード guardrail_blocked の HTTP 400 を
受け取ります。
クォータは消費されない
クォータは消費されない
入力ステージのブロックはメータリングの前に発火するため、何も消費されません。
出力ステージのブロックは回答を拒否した後に事前消費されたクォータを返金します。
いずれにせよ呼び出し元はブロックされた呼び出しに何も支払いません。
skip-retry とマークされる
skip-retry とマークされる
guardrail_blocked の結果は skip-retry です — 同じプロンプトを別の
チャネルに対して再実行してもまたブロックされるだけなので、ゲートウェイは
リトライを無駄にしません。
guardrail_blocked エラーを参照。ストリーミングでも強制される
ストリーミングでも強制される
非ストリーミングレスポンスでは回答が返る前にスクリーニングされます。
ストリーミングレスポンスではスキャナが飛行中のストリームを打ち切り、ブロック
対象のコンテンツがクライアントに到達する前に置換メッセージを発します。
ストリーミングカバレッジを参照。
block に手を
伸ばします — プロンプト内のシークレット、jailbreak 試行、厳格なコンプライアンス
ライン。
4. mask — リダクトして継続する
mask アクションは各マッチをリダクトし、サニタイズされたテキストでリクエストを
通します。アップストリームモデルが元のものを目にすることはありません。PII ルール
では、各マッチがエンティティから導出された型付きタグで置換されます — email は
[EMAIL] に、SSN は [SSN] に、クレジットカードは [CREDIT_CARD] に、といった
具合です。(カスタムエンティティごとに置換文字列をオーバーライドできます。
マスキングフォーマットを参照。)
入力ステージのマスキングはすべてのストリームでライブです。 モデルが実行される
前にリクエストを書き換えます、ストリーミングかどうかを問わず。出力ステージの
マスキングは非ストリーミングレスポンスのみに適用されます — マスク済みテキストは
完全な回答がスクリーニングされた後に転送されます。ストリーミングレスポンスでは
ゲートウェイがマスクを計算しますがリダクトされたテキストをまだ転送しないため、
mask ルールは今日、ストリーミングの返信をリダクトしません。ストリーム内出力
マスキングはロードマップ上です。(出力 block は依然として飛行中のストリームを
打ち切ります — §3 を参照。)正確なステージ/ストリームの組み合わせをまずサンド
ボックスで証明してください。
ストリーミングカバレッジを参照。
mask に手を
伸ばします — PII リダクションが正典的なケースです。ターンキーの出発点は PII
Shield プリセットです。PII Shieldを参照。
5. flag — ログのみ、何も変えない
flag アクションは観察専用です:リクエストは、マッチが
マッチフィードに記録されることを除き、
ルールが全くないものとバイト単位で同一です。何もブロックされず、何もリダクト
されません。
フラグされたマッチは、ルールの種類、アクション、ステージ、detail 文字列を記録します
— そしてマッチした部分文字列は、そのガードレールで Log raw content がオンの
場合のみ(デフォルトはオフ、プライバシー保守的な姿勢)。
ロギングとプライバシーを参照。
6. エンティティごとのアクションオーバーライド
単一の PII ルールは、重なり合うルールを積み重ねる代わりに、entity_actions を
介して異なるエンティティを異なるアクションにルーティングできます。各オーバーライド
値は block / mask / flag / annotate のいずれかでなければならず、ルールが
すでに宣言しているエンティティを参照しなければなりません — バリデータはそれ以外の
ものを拒否します。
7. 適切なアクションを選ぶ
| …したい場合 | 使う | 効果 |
|---|---|---|
| リクエストを完全に止める | block | HTTP 400、クォータなし、skip-retry |
| 部分文字列を取り除き、呼び出しを保持する | mask | リダクトされたテキストを転送 |
| トラフィックに触れずに監視する | flag | マッチを記録するだけ |
8. 次にどこへ
guardrail_blocked エラー
400 がどう見えるか、なぜクォータを消費しないか、skip-retry がどう機能するか。
マスキングフォーマット
型付きタグ、カスタム置換文字列、そしてマスクされたプロンプトがモデルにどう
読まれるか。
ストリーミングカバレッジ
今日どの アクション × ステージ × ストリーム の組み合わせが強制されるか正確に。
強制モード
block / mask / flag が、ファイアウォールの audit 判定を含むゲートウェイの
より広い強制モデルにどうマッピングされるか。
