AWS Bedrock Guardrails

AWS Bedrock Guardrails 是 Bedrock 内置的内容安全护栏,在模型推理的输入和输出双向过滤 —— 拦敏感话题、自动脱敏 PII、检测 prompt injection、阻断有害输出。TT API 把 Guardrails 作为可选能力开放给企业账户。本文讲清楚 Guardrails 拦什么、怎么拦、合规场景怎么配。


一、Guardrails 是什么

双向过滤管道

Guardrails 不是简单的"输出审核"。它在调用链上同时挂两个钩子:

你的请求 → [输入侧 Guardrails] → 模型推理 → [输出侧 Guardrails] → 返回给你

输入侧拦下有问题的 prompt(比如越狱指令、敏感话题),输出侧再拦下模型产生的不合规内容。两层独立,互不依赖。

它具体拦什么

Guardrails 内置 5 类规则,可以单独启用或组合:

类别 说明 典型场景
话题过滤 自定义话题黑名单(如政治、医疗诊断、投资建议) C 端应用避开高风险领域
敏感词过滤 自定义词表 + AWS 内置脏话 / 仇恨言论库 品牌安全
PII 检测与脱敏 自动识别身份证、信用卡、SSN、电话、邮箱等 合规出/入数据
Prompt Injection 防护 检测试图绕过 system prompt 的注入模式 Agent / 工具调用场景必备
基础内容安全 仇恨、暴力、性内容、自残诱导的多维度评分 通用 SaaS、教育产品

它输出什么

每次请求经过 Guardrails 都会返回结构化判定结果:通过 / 拦截 / 重写(如 PII 脱敏)+ 命中的规则 ID + 置信度。所有判定都进调用日志,方便事后审计。


二、我们如何把 Guardrails 接进来

默认不启用,按需开

Guardrails 是可选能力。默认情况下,你的调用直接走 Bedrock 模型,不经任何过滤——延迟最低、行为最纯净。

启用后,在控制台 → API Key → Guardrails 配置:

  1. 选模板 —— 我们提供「C 端应用」「企业内部」「教育合规」「金融合规」4 个预设
  2. 微调规则 —— 在预设基础上加自定义话题黑名单 / 词表 / PII 类别
  3. 绑定 Key —— 每个 API Key 单独绑定一份 Guardrails 配置,互不影响

性能开销

启用 Guardrails 后,每次调用增加:

总额外延迟通常 < 200ms。对 chat 场景几乎无感,对延迟极致敏感的场景(如 < 500ms 的 voice agent)需要权衡。

调用方式

Guardrails 启用后对你的代码完全透明——还是同一个 OpenAI 协议入口,请求体不需要改。判定结果通过 response header(X-Guardrails-Action)和 response body 的扩展字段返回,便于你的应用做后续处理。


三、典型合规场景

场景 1:C 端 chatbot 避开高风险话题

教育、心理咨询、健康类产品最容易踩"医疗建议""投资建议"的红线。启用话题过滤 + 内容安全,可以在用户问出"我该吃什么药"时让模型回到通用建议,而不是给出具体诊断。

场景 2:用户输入含 PII,模型不该见

用户上传文档让模型摘要,文档里包含身份证号、手机号、邮箱。开启 PII 脱敏后:

这条对 GDPR / 个保法合规场景刚需。

场景 3:Agent 框架防 prompt injection

Agent 调用工具时,工具返回的内容会重新拼入 prompt。如果工具读了一封含恶意指令的邮件,恶意指令可能"接管" Agent。Guardrails 的 prompt injection 检测能识别这类模式,阻断越权调用。

场景 4:审计要求"每次调用都有判定记录"

金融、医疗等强监管行业,合规上需要证明"每次 AI 输出都过了内容审核"。Guardrails 把每次判定(命中 / 未命中 / 重写)写进调用日志,配合控制台「调用日志」页能完成审计取证。


常见疑问

启用 Guardrails 会让我的费用增加吗?

  Guardrails 按调用次数和处理字符数计费,和模型调用费分开。具体费率挂钩 AWS 官方价格表。一般场景下,Guardrails 费用占总账单的 5-15%。控制台「账单」页可以拆分查看。


预设模板能改成完全自定义吗?

  可以。控制台 → API Key → Guardrails → 高级模式,可以完全自己定义话题列表、词表、PII 类别和阈值。强烈建议从预设起步,先跑一周看命中分布,再针对性调整。


拦截了我应该怎么知道?

  两种方式:(1)response header X-Guardrails-Action 标记 blocked / rewritten;(2)控制台「调用日志」里这条调用的状态会显示「Guardrails 拦截」并列出命中规则。


Guardrails 会"误伤"正常调用吗?

  会,特别是话题过滤阈值调得过严时。我们建议先用预设跑一周,看「调用日志」里被拦下的请求是不是真的应该被拦。调整后通常误伤率 < 1%