跳转到主要内容
当你读一个防火墙事件或一条防护栏匹配时,那一行告诉你网关决定了什么 ——denysanitize[EMAIL]。本页是这些词的查找表:每一个意味着什么、 它对调用做什么,以及去哪里看完整的机制。在你编写规则或分诊事件信息流时, 把它开着。 两个控制平面产生两套词汇。防火墙 治理工具动作 并发出一个判定(verdict)防护栏 筛查提示词 和响应文本并发出一个动作(action),外加在一次脱敏时一个类型化的 脱敏标签。它们从不共用一个词——一个防护栏从不说 deny,一个防火墙 从不说 mask
这是一份参考索引,而非操作指南。关于每个控制背后的使用场景,参见 防护栏 vs 防火墙;关于 HTTP 错误体,参见 安全错误码

1. 防火墙判定词汇表

一条防火墙规则(或策略的 default_verdict)会把每一次工具调用解析为这六个 判定中恰好一个。引擎按优先级顺序遍历规则,首个匹配生效(first match wins),如果没有任何东西匹配则回退到默认值。
调用进行到工具。仍作为一个防火墙事件被记录,因此它会出现在 Runs 和 事件信息流里。这是你对一个智能体被明确信任去使用的工具所想要的。
allow 相同的流量,但被标记为你想观察的东西。它是推荐的 default_verdict:观察一切,不拦截任何东西,直到你的规则被调优好。 balanced 自治级别把 PII Shield 防护栏作为 flag-only(audit)发布, 因此 PII 被记录而不挂起调用。
调用永远到不了工具。在 inbound 执行面上这返回 HTTP 400 firewall_blocked;通过 MCP 网关它作为一个工具错误firewall deny: <reason>)回来,这样模型能反应而不是崩溃。标记为 skip-retry。不消耗模型 token。
用一个 [redacted:<preset>] 令牌替换工具调用参数中匹配的子串 (密钥、PII),然后携带清理后的参数转发调用。它只脱敏参数——绝不脱敏 一个工具返回的内容。在 inbound 执行面上,此时还没有调用时参数, sanitize 会升级为一个 deny
调用被入队以供审查,智能体得到一个携带审批 id 的已挂起响应 (HTTP 400 firewall_approval_pending)。一名审查者在控制台或经由 一个 HMAC webhook 回调解决它;智能体轮询该 id 并携带一次性审批头重新 提交一次。参见 人工审批
作为一条带逐规则分(cents)上限的规则编写。当智能体运行在预算内时它 解析为 allow,一旦累积花费越过上限就解析为 deny——因此一个事件显示 allowdeny,而不是字面词 cap_cost。失控循环的断路器。
影子模式下,deny / sanitize / pending_approval 全部被降级为 audit,原因前缀为 [shadow] would …。事件记录那个本会触发的判定, 但流量不变——这正是一次安全上线的全部意义。

默认判定

default_verdict 只接受三个非交互式判定:
取值当没有规则匹配时的含义
allow静默放行未覆盖的工具调用。
audit放行但记录——默认值
deny拦截任何没有规则明确允许的内容(默认拒绝姿态)。
tight 自治级别设置 default_verdict: denybalanced 和出厂默认值使用 audit

2. 防护栏动作

一条防护栏规则触发五个动作之一。它们是判定的文本平面对等物——而一条 防护栏规则从不产生一个防火墙判定。
动作它做什么配额
blockHTTP 400 guardrail_blocked 拒绝整个请求。无——输入拦截在计量之前触发;输出拦截退回。
mask把每个匹配脱敏为一个类型化标签(见 §3)并转发清理后的文本。正常——调用照常进行。
flag仅记录。记录一条匹配;不改变流量的任何方面。正常。
annotate非阻塞。给请求附加一条人类可读的备注(作为安全通知注入上游),不脱敏也不拦截文本。正常。
spotlight非阻塞。把匹配到的(不可信)文本用分隔符包裹起来,并告诉模型把这个被分隔的区域当作数据、绝不当作指令——提示注入的 “spotlighting” 防御。正常。
一个被拦截的防护栏请求被标记为 skip-retry——对照另一个通道重新运行 同一个提示词只会再次被拦。
flag 在你把一条新规则切换到 blockmask 之前对照真实流量衡量它。 Matches 信息流 显示本会被捕获 什么,且零流量影响——这是防火墙影子模式的防护栏对应物。
单条 pii 规则可以用 entity_actions 对不同实体应用不同动作——从一条规则 里 mask 邮箱和电话,但对 credit_cardssn 执行 block。键必须是规则上 启用的一个实体;值必须是 block / mask / flag / annotate

3. 脱敏标签词汇表

在一个 mask 动作上,每个匹配到的实体被就地替换为一个类型化标签—— [<UPPERCASE_ENTITY_NAME>]——这样模型(输入阶段)或调用方(输出阶段)就 看到数据的形状而非其值。脱敏在两个阶段上都运行,包括流式响应:一个 token 感知的流式扫描器会在匹配跨越分块边界的内容到达客户端之前对其脱敏。
实体标签
email[EMAIL]
phone[PHONE]
credit_card[CREDIT_CARD]
ssn[SSN]
ip[IP]
iban[IBAN]
mac_address[MAC_ADDRESS]
jwt[JWT]
aws_access_key[AWS_ACCESS_KEY]
api_key_openai[API_KEY_OPENAI]
bitcoin_address[BITCOIN_ADDRESS]
在基础集之上还附带三个区域性标识符:
实体标签区域
jp_mynumber[JP_MYNUMBER]日本
kr_rrn[KR_RRN]韩国
cn_resident_id[CN_RESIDENT_ID]中国
自定义实体遵循同样的约定。一个名为 employee_id 的自定义实体脱敏为 [EMPLOYEE_ID],除非你设置一个显式的 mask_with 替换。每条规则最多 25 个 自定义实体,每个都是一个 RE2 正则,附一个可选的 luhn 校验和。参见 PII 检测

4. 一个完整示例

一次 db.query 工具调用,从上读到下,触及两套词汇:
firewall verdict : sanitize        # secret stripped from the SQL argument
guardrail action : mask            # an email in the prompt redacted
masking tag      : [EMAIL]         # what the model actually receives
防火墙 sanitize 清理了工具参数;防护栏 mask 清理了提示词文本[EMAIL] 标签就是模型在那个地址位置上看到的东西。同一个请求,三个不同的 层,三个出自本词汇表的词。

5. 你会与判定一同看到的姿态词

这些不是判定或动作,但它们决定一个判定究竟是否被执行——所以它们出现在 同样的事件和设置视图里。
平面含义
影子模式(Shadow mode)防火墙逐策略标志。把每个执行性判定降级为 audit,原因前缀 [shadow] would …
观察模式(Observe mode)防火墙工作区设置。当没有策略解析出来时,放行调用但记录为一个覆盖缺口(Discovered tools)。
执行(Enforce)防火墙影子模式关闭 + 附加了一条策略:判定生效。
故障开放(Fail-open)防护栏高级规则(llm_judgegroundingexternal)的默认值——一次超时被观察,请求继续。可逐规则翻转为 fail-closed。
Log raw content防护栏默认关闭。关闭时,一条匹配记录一条规则触发了,但不记录匹配的子串。
关于 deny-vs-audit-vs-shadow 的深入区分,参见 执行模式

6. 每个词在哪里被定义

表面词汇主页
防火墙策略allow audit deny sanitize pending_approval cap_cost防火墙
防火墙规则匹配tool_name_globargs_match、egress、sequence防火墙规则
防护栏规则block mask flag annotate spotlight防护栏
防护栏 PII实体名 + 脱敏标签防护栏
MCP 与技能技能风险带、quarantine / block 模式防火墙 MCP防火墙技能
HTTP 错误体guardrail_blockedfirewall_blockedfirewall_approval_pending错误码
这里的每个术语也出现在更宽泛的 概念词汇表 里,它增补了身份、范围和威胁 术语。本页是那个聚焦决策的窄切片——只有判定、动作和脱敏标签。

7. 延伸阅读

为什么这次被拦下了?

把一次被拒绝的调用追溯到拦下它的确切规则和判定。

执行模式

audit、shadow、observe 和 enforce 如何关联——以及如何安全地上线。

防护栏 vs 防火墙

哪个平面拥有哪个决策,以及一个请求为什么能同时穿过两者。

危险的工具调用

denysanitize 判定为之而生、要拦截的那个威胁。