メインコンテンツへスキップ
モデルが返信するとき、それはテキストを返すだけではありません — tool_calls を発行 します:実際の、モデルが選んだ引数を持つ具体的な呼び出しです。エージェント ファイアウォールresponse サーフェスは、まさに それらを、モデルを離れた瞬間に、エージェントループに到達する前に検査します。それは、 モデルが実際に決めたことを、実際に選んだ引数とともにフィルタするサーフェスです。 このページは response サーフェスでのフィルタリングのユースケースをカバーします — いつ inbound より優先して手を伸ばすか、それが 加えるひとつの判定のひねり、そしてストリーム上でどう振る舞うか。完全なルール語彙と 判定セマンティクスについては、ルールスキーマ判定を参照してください。

1. llm ツールレスポンス呼び出しを、引数をスコープに入れてフィルタ

inbound ステージアドバタイズするツール — 名前 のみ、まだ呼び出し時の引数なし — を見ます。response ステージはモデルが発行する tool_calls を見て、それはモデルが選んだ引数を運びます。それがここでフィルタする 理由そのものです:それはクライアント実行(非 MCP)ツールの実際の呼び出し + 引数を 見る唯一のサーフェスなので、引数句、 シーケンス、実行状態ルールはすべて response に着地します。 1 行での区別:
ステージ見るもの使い道
inboundアドバタイズされるツール定義ツールをモデルに不可視にする
response発行される tool_calls + 引数モデルが実際に行った呼び出しをフィルタ
そのため inboundどのツールが存在するかに答えます;responseモデルが それで何をしたかに答えます。ツールが一部のリクエストに正当に現れるが特定の呼び出し が危険なとき — またはアドバタイズされるツールセットではなくエージェントループのみを 制御するとき — response に手を伸ばします(または両方をカバーするには stage を空の ままにします)。
stage のないルールは response を含むすべてのサーフェスで実行されます。ルールが 発行された呼び出しのみを検査すべきとき — 例えばどのみち inbound サーフェスで マッチするものがない引数句 — のみ response に固定します。 ステージを参照。

2. 具体例 1 つ

shell.exec を一般的に許可しつつ、その command 引数が破壊的に見える瞬間にモデルの 返信からそれを剥がします。ワークスペースコンソールでポリシーを開き(または 作成し)、response サーフェスに固定された ルールを追加します:
{
  "label": "block destructive shell calls",
  "stage": "response",
  "tool_name_glob": "shell.exec",
  "verdict": "deny",
  "args_match_json": "{\"clauses\":[{\"path\":\"$.command\",\"op\":\"regex\",\"value\":\"rm -rf|mkfs|dd if=\"}]}"
}
引数マッチャは args_match_json に存在します — {"clauses":[…]} を保持する JSON 文字列で、各句は path / op / value の組です(opeqcontainsregexgtlt のいずれか)。コンソールフォームがそれをあなたのために構築します; フィールド名が曖昧でないよう、生の形をここに示します。 ツールはアドバタイズされ続けます — モデルは依然として shell.exec提案できます — しかし発行された呼び出しが破壊的な command を運ぶとき、ファイアウォールはエージェントが 見る前にその tool_call を返信から削除します。無害な shell.exec(例えば ls -la)は 手を加えられずに通り抜けます。これは response サーフェスが存在する理由である「ツールを 許可し、呼び出しをゲートする」パターンです;引数句がそれを可能にするものです。
ルールは優先度順に評価され、最初にマッチしたものが勝ちます。狭い allow 例外を広い deny より低い priority 番号に置き、例外が先に実行されるようにします。 ルール優先度を参照。

3. response サーフェスで判定が何をするか

response サーフェスは発行された各 tool_call を検査し、返信をその場で書き換えます。 保持された呼び出しはバイト単位で転送されます;マッチした呼び出しのみが変わります:
マッチした tool_call は、エージェントに到達する前にモデルのレスポンスから削除 されます。inbound の deny — コード firewall_blockedHTTP 400 を返す — とは異なり、response サーフェスの deny はリクエストを失敗させません;返信の残り (他のツール呼び出し、任意のテキスト)は、問題の呼び出しが単に欠落した状態で流れます。
呼び出しの引数内のマッチした部分文字列がエンジンのリダクトされた引数で置き 換えられ、クリーニングされた呼び出しが転送されます — ツールは問題ないがモデルが 引数にシークレットや PII 値を入れたときに便利です。サニタイズはツール呼び出しの 引数のみをリダクトします;ツールが返すコンテンツは決して触りません。エンジンに 置き換えるものが何もない場合、呼び出しは剥がされます(フェイルクローズ)。 レスポンスのサニタイズを参照。
ヒューマンインザループの保留は response ではなく inbound サーフェスで開かれ ます。発行された呼び出しで最初にマッチする pending_approval ルールはしたがって 剥がされます(フェイルクローズ) — それを保持すると、人間の決定なしにレビュー されていない呼び出しを転送してしまうからです。HITL の保留は inbound で発火するよう 作成します;承認を参照。
allowaudit は両方とも呼び出しを転送します;audit は通常の default_verdict です — 強制する準備ができるまで、すべてを記録し、何もブロック しません。
cap_costpending_approval はこのサーフェスでは inbound の概念です。 cap_costresponse では不活性であり(モデルはすでに実行された)、 pending_approval は保留ではなく剥がしに解決されます。コスト上限と HITL の保留は inbound サーフェスに置きます — コスト上限承認を参照。

4. ストリーミング:保持されてからフィルタされる

非ストリームの返信では、レスポンス全体が一度にパースされフィルタされます。ストリーム では、モデルの tool_calls は多くの SSE フレームをまたいだインデックスごとのデルタとして 到着します — そしてデルタが転送されると、エージェントはすでにそれを持っており、撤回 できません。そのためゲートウェイはツール呼び出しフレームを保持します:それらは ストリーム途中で決して転送されません。ストリームの終わりで、ファイアウォールは各呼び出し (名前 + 完全な引数)を組み立て、評価し、生き残った呼び出しのみを発行します。
コンテンツフレームは依然として通常どおりストリームされます — テキストトークンは到着 するにつれてクライアントに到達します。tool_call フレームのみが評価のために保留される ため、deny またはサニタイズされた呼び出しは、組み立てられたツール呼び出しが配信される 前にフィルタアウトされます。判定とルールのセマンティクスは非ストリームサーフェスと 同一です。フレームレベルの詳細については、 ストリーミング内部プロバイダストリーミングを参照。

5. 安全にロールアウトする

コンソールの Test タブはサンプルのツール呼び出しに対してポリシーを実行し、 判定、マッチしたルール、理由を返します — 何もディスパッチされず、何も永続化 されません。キーをアタッチする前に、グロブと引数句が意図した呼び出しにマッチする ことを確認します。ルールのテストを参照。
シャドウモードをオンにすると、すべての強制 判定 — response サーフェスの deny を含む — が audit に格下げされ、理由に [shadow] would … が前置されます。ルールが 1 つの返信を変える前に、実トラフィックに 対して何を剥がすであろうかを正確に測定します。
すべての評価は判定、サーフェス、ツール、マッチしたルールを持つファイアウォール イベントを書き込みます。events ログをサーフェス response でフィルタし、期待した発行呼び出しでルールが発火するのを見ます。 分析を参照。

6. ポリシーをアタッチし、誰が設定できるか

ポリシーはキーがそれに解決するまで何もしません。コンソールで キーfirewall_policy_id を設定してアタッチ するか、ポリシーをワークスペースデフォルトにします。解決:キーのアタッチ済みポリシー (存在し有効である場合)、そうでなければワークスペースデフォルト — そして無効化 されたアタッチ済みポリシーはワークスペースデフォルトにフォールバックします。 ポリシーの管理を参照。 すべての設定はセッション下のコンソールで実行されます(/api/workspace/firewall/*):
アクションロール
ポリシー、プリセット、discovered tools、Simulate の読み取りMember
ドライラン(Test)、events ログと実行集計の読み取りDeveloper+
ルールとポリシーの作成 / 編集 / 削除Developer+

関連

引数の検証

response サーフェスのフィルタリングを精密にする引数句。

レスポンスのサニタイズ

呼び出しを剥がす代わりに、その引数からシークレットをリダクト。

ファイアウォールステージ

response が inbound、mcp、egress とどう比較されるか。

ツールをブロック

inbound の対応物:モデルに提供される前にツールを deny。

危険なツール呼び出し

レスポンスフィルタリングが対処する脅威。

ファイアウォールリファレンス

完全なルール + マッチングリファレンス。