1. 三种姿态一览
| 姿态 | 流量会发生什么 | 机制 | 何时使用 |
|---|---|---|---|
| 观察 | 所有流量被允许;没有策略的调用被记录为覆盖缺口 | 工作区级别观察模式开启;防护栏规则使用 flag 动作;防火墙 default_verdict 为 audit | 基线发现——在编写单条规则之前了解你的智能体实际做什么 |
| 影子 | 流量被允许;策略进行评估,假设拦截被记录为 [shadow] would … | 防火墙策略上的每个策略 shadow_mode 标志开启 | 安全的预生产验证——在策略接触流量之前确认它触发正确 |
| 执行 | 真实判定生效——deny 拦截、sanitize 脱敏、pending_approval 挂起 | 影子模式关闭;防护栏动作设为 block / mask;防火墙判定生效 | 在你已在影子中验证策略之后的生产执行 |
角色要求。 任何工作区成员都可以读取策略、设置和已发现工具
视图;防火墙 Events 和 Runs 信息流需要 Developer 角色。
更改设置、策略动作或
shadow_mode 也需要 Developer 或更高级别。2. 观察姿态——先衡量,后制定规则
观察姿态不是一个单一开关。它是三个独立机制的组合,共同产生 “允许一切,记录一切”:防火墙观察模式(工作区设置)
当工具调用解析到完全没有策略——没有密钥附加也没有工作区 默认值——时,防火墙的工作区级别观察模式决定发生什么:- 观察模式开启: 调用被允许,并作为覆盖缺口记录。 Discovered Tools 视图从这些缺口事件中填充,精确显示你的 智能体在没有任何规则覆盖它们的情况下运行的工具。
- 观察模式关闭: 调用被静默允许——与从未启用该功能的 工作区字节相同。
防火墙 audit 判定(每个策略默认值)
当策略确实解析但没有规则匹配工具调用时,策略的
default_verdict 适用。default_verdict 的默认值为 audit
——允许调用并记录以供审查。没有规则且没有配置变更的新策略
不拦截任何东西,也不静默允许任何东西:它审计它看到的一切。
audit 也是一个正常的规则判定。匹配并产生 audit 的规则让
调用通过并记录它——防火墙的防护栏审计模式类比。
防护栏 flag 动作(每条规则动作)
在防护栏侧,flag 动作是观察等价物:规则触发,匹配被记录在
Matches 信息流中,请求继续不变。不拦截。不脱敏。当你想衡量
一条规则——看它触发多频繁、触发什么——在承诺 block 或 mask
之前使用 flag。
这三者共同产生观察姿态:观察模式捕获未覆盖的工具调用;
audit
判定覆盖策略下但尚未在特定规则下的工具调用;flag 动作覆盖
你尚未准备好执行的防护栏检查。
3. 影子姿态——执行之前先验证
影子模式是防火墙策略上的每个策略标志(shadow_mode: true)。
当它开启时:
- 策略完全像在生产中那样评估每一次工具调用——规则被匹配, 判定被计算,参数谓词被测试。
- 每个执行性判定(
deny、sanitize、pending_approval)在 到达工具之前被降级为audit。 - 记录的原因前缀为
[shadow] would …,因此你可以在事件信息流 中精确看到什么会被拦截、净化或挂起。
防护栏在策略级别没有
shadow_mode 等价物——在切换到 block 或
mask 之前,使用每条规则的 flag 动作来观察单个防护栏检查。4. 执行姿态——真实判定,真实后果
在执行姿态中,没有任何东西被降级:- 防火墙
deny→ 智能体看到工具错误(MCP)或 HTTP 400firewall_blocked(inbound 执行面)。错误命名工具和原因。 标记为 skip-retry。 - 防火墙
sanitize→ 匹配的子串从工具参数中脱敏,净化后的 调用被转发。 - 防火墙
pending_approval→ 调用被挂起;智能体收到 HTTP 400firewall_approval_pending和要轮询的审批 id。 - 防护栏
block→ HTTP 400guardrail_blocked,命名触发的防护栏 和规则。不消耗配额。 - 防护栏
mask→ 匹配被脱敏(例如jane@acme.com→[EMAIL]), 请求带净化后的文本继续。
shadow_mode,并将防护栏
规则动作从 flag 更改为适当的 block 或 mask。
5. 推荐的推出流程
观察——发现你的智能体做什么
开启工作区观察模式(
PUT /api/workspace/firewall/settings,firewall_observe_mode: true)。让
防火墙没有策略(或一个 default_verdict 为 audit 的策略)。对你
想衡量的任何防护栏规则添加 flag 动作。观察 Discovered Tools 视图,随着你的智能体发出的每一次工具调用
填充进来,标记为 covered 或 gap。将此作为编写第一批策略规则
的输入——你在为真实流量编写规则,而不是假设流量。让这运行直到 Discovered Tools 视图稳定,你有足够的数据来编写
有意图的规则。影子——执行之前先验证
编写一个带
shadow_mode: true 的防火墙策略。将其附加到你想
治理的密钥(或将其设为工作区默认)。对于防护栏,此阶段将规则
动作保持为 flag。策略现在评估每一次真实工具调用并记录它会做什么。打开 Events
和 Runs 视图,按 [shadow] 前缀过滤。确认:- 它在你预期的工具和参数模式上触发。
- 它不在你想允许的任何东西上触发(误报)。
6. 自治级别——一次设置所有这些
逐条规则调优策略是精确的路径。自治级别是快速的那条—— 一个单一控制,原子性地在一个事务中设置你工作区的防火墙和 防护栏姿态,支持一键撤销:| 级别 | 产生的姿态 |
|---|---|
permissive | 观察姿态:无执行策略,无防护栏,工作区观察模式开启——你看到一切,没有任何东西被拦截。映射到上面的观察步骤。 |
balanced | 默认判定 audit,但破坏性 shell 被拒绝;PII Shield 以仅审计模式运行(flag PII);观察模式关闭。了解你的流量形态后推荐的起始姿态。 |
tight | 完全执行:默认拒绝,破坏性 shell 和 SSRF 出站被拒绝;PII Shield + Secrets Blocker 防护栏被执行(筛查请求中的 PII 和密钥);观察模式关闭。 |
POST /api/workspace/firewall/autonomy(Developer+)应用。
Simulate 端点(GET /api/workspace/firewall/simulate?level=)
在你应用之前预览级别变更会做什么。
自治级别是上述相同机制上的便利层——它们设置
default_verdict、
观察模式、防火墙规则和防护栏规则动作。它们不切换 shadow_mode;
那仍然是一个手动的每个策略控制。你总可以在应用级别后覆盖单个设置。7. 机制图——哪个设置做什么
此表是权威参考。这四个术语是不同的——不要混淆它们:| 术语 | 类型 | 它控制什么 |
|---|---|---|
| 观察模式 | 工作区设置 | 工具调用解析到无策略时的行为。开启 → 记录为缺口(Discovered Tools)。关闭 → 静默允许。 |
audit 判定 | 策略/规则判定 | 在策略下匹配(或回退到默认)的工具调用的行为。允许 + 记录。默认的 default_verdict。 |
flag 动作 | 防护栏规则动作 | 防护栏检查允许流量并记录匹配。防护栏的观察而不执行动作。 |
shadow_mode | 每个防火墙策略标志 | 将所有执行性判定(deny/sanitize/pending_approval)降级为 audit,并在原因前加 [shadow] would … 前缀。 |
安全智能体基线
零信任智能体安全的推荐起始姿态和五分钟设置。
智能体防火墙
策略、规则、判定、影子模式和 MCP 网关的完整参考。
