Guardrail 不变量不可信模型不能批准自己的高风险动作;策略必须在最接近资源的可信执行点再次强制执行,观察或提示不能替代阻断。

Guardrail 是执行点,不是万能安全层

它保护数据边界、动作边界和状态边界:输入检查恶意或越权内容,输出检查泄露与格式,Tool 检查能力和参数,状态迁移检查业务不变量。内容安全、访问控制、数据最小化、速率/预算和业务规则是不同策略域,不能用一个“安全评分”吞并。

把策略分为确定性规则、分类模型和人工裁决:明确禁止、身份权限和金额阈值优先确定性;语义风险可由模型辅助但设置不确定处理;责任不可自动化的动作转人工。

按数据和动作流布置决策点

用户/外部输入

校验身份、租户、大小、数据类别和已知攻击信号;不要因输入被“净化”就赋予更高信任。

模型输出

结构化解析、敏感数据检测、引用/事实要求和面向用户的内容策略。输出 Guardrail 可与生成并行以降低延迟,但若必须避免任何敏感片段流出,就要在释放 Token 前缓冲或增量阻断。

Tool 执行前

这是副作用前最后门槛:重新授权主体、资源、动作和环境,校验审批、参数、幂等和风险。OpenAI Agents SDK 的 Tool Guardrail 也区分输入/输出并支持拒绝或重写,但实际安全仍取决于执行器是否强制采用结果。

Tool 返回后

防止间接 Prompt Injection、机密字段和超大载荷进入 Context;保留原始受保护 Artifact 与净化摘要之间的关联,便于审计。

状态提交前

即使 Tool 成功,状态提交仍要验证后置条件、当前版本和策略。策略撤销后,晚到结果不得自动推进。

串行与并行 Guardrail 的取舍

便宜、确定、阻断性的认证、Schema、租户和权限先执行;语义分类可并行;昂贵事实核验只在需要时触发。并行 Guardrail 可能在被拒绝前已消耗模型 Token,甚至产生流式片段,因此不适合严格数据外泄边界。

Policy Decision Point(PDP)给出决策,Policy Enforcement Point(PEP)在资源边界执行
Context主体、资源、动作、环境
PDP规则/模型/人工产生决策
PEP阻断、变换、审批或放行
Evidence版本、理由、结果与关联 ID

策略结果要可组合

统一返回 allow、deny、transform、require_approval 或 degrade,并携带稳定 reasonCode、policyVersion、obligations、有效期和审计关联。transform 要保留修改前后摘要,allow 也应说明基于哪个身份/资源版本。

type PolicyDecision = {
  effect: 'allow' | 'deny' | 'transform' | 'require_approval' | 'degrade'
  reasonCode: string
  policyVersion: string
  obligations?: string[]
  expiresAt?: string
}

策略引擎作 PDP,API Gateway、Tool Executor 和状态仓储是 PEP。只调用策略 API 但忽略 obligations,等于没有执行策略。

Guardrail 自身失败时的策略

高风险写入、机密数据和权限校验默认 Fail-closed;低风险只读能力可在缓存策略和短有效期内降级。不能全局统一:策略服务故障时全部放行会扩大事故,全部阻断又可能让紧急恢复不可用。

缓存键包含策略、主体、资源、动作和环境版本;撤权事件主动失效。异常返回独立于“拒绝”,否则无法判断用户无权还是控制面故障。提供 Break-glass 时必须短期、最小范围、双人授权和事后复核。

证明策略覆盖而不是只证明函数存在

把敏感资源 × 动作 × 主体 × 环境映射到决策点和执行点,检查是否存在绕过路径。测试允许/拒绝边界、混淆身份、参数编码、Tool 返回注入、策略超时、缓存过期、版本回滚和晚到结果。Shadow 模式只能测影响,不能在高风险策略正式启用前替代 Enforcement。

最小上线证据
证据回答的问题
策略单元/属性测试边界组合是否有遗漏
端到端绕过测试所有真实入口是否经过 PEP
决策日志当时由哪个版本、何种上下文放行
误拦截与漏拦截指标安全和可用性代价是否可接受
为什么输出 Guardrail 通过也不能授权 Tool?
内容检查和能力授权是不同策略域;Tool 必须基于真实主体、资源、动作和环境在执行边界重新授权。
策略服务不可用时应该一律 Fail-closed 吗?
不是。按资产和动作风险预先分级;高风险默认关闭,低风险可用短期缓存或受限降级,并记录控制面故障。

资料与事实边界

以下以官方文档、标准、论文和原始工程资料为主。厂商 API、价格、限额与模型能力会变化,落地时仍需按目标版本做能力探测和回归。

  1. OpenAI Agents SDK:Guardrails — 输入、输出与 Tool Guardrail、并行/阻断行为的当前 SDK 事实
  2. Open Policy Agent:Documentation — Policy Decision 与 Enforcement 分离及策略即代码的参考
  3. NIST SP 800-162:ABAC — 主体、对象、动作和环境属性授权模型