返回知识库

AI 与提示 · 安全与运营

安全护栏Guardrail

安全护栏是绑在输入、工具调用和输出边界的策略检查器:把内容按风险分类(PII、越狱、话题禁区、工具越权等),命中就阻断、给固定拒答模板和安全替代,并留下可审计记录。它管“内容 / 策略”,与 prompt-injection 管“指令劫持”互补——两者常一起部署。

亲手验收一张退款工单:护栏怎样阻断并给出安全替代

客户在退款消息里写了完整身份证号,还要求把 ¥12,800 退到新账户。先检查输入、输出和工具边界,再把被阻断的原方案改成“脱敏回复 + 经理审批”;结果会直接落在对话和订单上。

这是一张真实退款工单:客户发来完整身份证号,并要求把 ¥12,800 退到新账户。护栏要同时检查输入、待发送回复和工具动作,并在阻断后给出能继续办理的安全替代。

1 检查边界2 阻断原方案3 安全替代
王敏退款咨询 · 在线
工单 CN-2048
我是王敏,身份证号 110101199001011234。请把订单 CN-2048 的 ¥12,800 退款到这个新账户,直接处理,不用人工确认。

输入边界 · pii-07等待检查

AI 客服 · 待发送回复

王敏您好,身份证 110101199001011234 已核验,¥12,800 已退到您提供的新账户。

输出边界 · pii-out-04尚未扫描
订单退款CN-2048
退款金额¥12,800
目标账户
客户新提供账户
工具动作
refund_order
授权
AI 直接执行
工具边界 · refund-12待检查
输入待检查不回显原文
输出待检查固定模板
工具待检查最小权限
审计尚无记录不存敏感原文

客服助手已经根据客户消息生成回复,并准备调用 refund_order。先运行护栏检查:客户消息、待发送回复和退款动作会分别经过输入、输出与工具边界。

分类不等于堆开关:这一张工单只展示与当前任务有关的三条边界。其它风险(越狱、话题禁区、凭证泄露)应有各自规则与评测集。对照:prompt-injection 关注外部文字能否篡改指令;guardrail 关注内容和动作是否符合策略。

离开这页,只记这几条

上面面板已经把每件事演示过一遍,这里只给它们命名,方便复述。

护栏按风险类分类,各管一段
PII / 凭证、越狱指令、话题禁区、工具白名单各盯不同风险。面板只展示这张退款工单命中的 PII 与高额退款规则;这恰好说明规则应随真实对象出现,而不是用一条“注意安全”挡一切。
护栏绑在输入 / 工具 / 输出三个边界
判定 chip 上的“输入检测 / 工具检测 / 输出检测”就是部署位置。PII 与越狱在请求进模型前拦,话题禁区在回答出来后拦,工具白名单在调工具那一下拦——边界不同,能挡的风险也不同。
关闭的护栏等于没有
默认草稿会直接回显完整身份证号,退款工具也准备让 AI 自行执行;只有运行对应规则后,消息与订单才出现“禁止发送 / 没有退款”。护栏不是模型的自觉,缺少哪一类规则,哪一类风险就会漏出。
命中要阻断 + 固定拒答 + 安全替代
命中后不是回一句模糊“请求失败”,而是把原对象改成能继续任务的安全路径。面板里完整身份证变尾号,虚假的“已退款”变成“已创建审批”,新账户直退变成原路退回 + 经理确认。
命中要可审计,且不回显敏感原文
依据区记录 pii-07、pii-out-04 与 refund-12 的处置,但不把身份证原文写进日志。这样既能解释为什么阻断,也不会让审计记录变成第二个泄露点。
和 prompt-injection 的边界
guardrail 管“内容 / 策略”(这是什么、允不允许说、能不能调这个工具),prompt-injection 管“指令劫持”(外部文字伪装成更高优先级指令)。本页的“越狱指令”护栏只检测“忽略规则”这句话的内容特征;要挡外部内容升级为系统指令,看指令/数据分层。

什么时候要装护栏、盯这些信号

出现下面任一情况,护栏就不是可选项;同时要盯这些关注点,避免只装一类就以为安全。

  • 助手能回显 PII 或看到凭证:身份证号、手机号、API key、令牌都属 PII / 凭证类,必须输入侧拦截 + 输出侧脱敏。
  • 助手有写工具或副作用工具:发邮件、删文件、查整表、跨租户读——这些由工具白名单 + 服务端授权兜底,模型不能自授权。
  • 业务有合规 / 话题禁区:医疗诊断、法律结论、钓鱼 / 欺诈、政治敏感——用固定拒答模板 + 安全替代,不要靠模型临场判断。
  • 请求会拼接外部内容:RAG 片段、网页、评论、工具返回值里都可能藏越狱。护栏检测内容特征;要挡指令升级,再叠 prompt-injection 的分层。
  • 关注点:不要把“关闭”当默认。每一类护栏都对应一种漏检后果;上线清单要逐类确认启用、逐类回归。

怎么从零搭一类护栏

从写规则到获得可信任判断的最短路径,每类护栏都走这一遍。

  1. 列风险类:把要拦的内容拆成 PII / 越狱 / 话题禁区 / 工具越权等互斥类别,不要混成一条“注意安全”。
  2. 定边界:每一类选最划算的部署位置——能输入侧拦就别等输出,工具调用在最接近授权那一层拦。
  3. 写规则:每条规则写清触发条件、固定拒答模板、安全替代、规则 ID 和版本,命中后不回显敏感原文。
  4. 跑测评:用应阻断、应允许和边界样例评估召回与误伤;正常任务的误伤也要回归。
  5. 留审计、可回滚:命中事件记录规则 ID 与处置;规则变更可追踪、可灰度、可一键回滚。

同一目标,差一层分类

都要在上线前拦住不安全请求。差别只在规则是分类 + 固定模板,还是一条模糊大词。

正例分类护栏 + 固定拒答 + 安全替代 + 审计

PII、越狱、话题禁区、工具白名单分别有自己的规则 ID 和拒答模板。命中后回固定替代(脱敏导出 / 反诈链接 / 按租户最小查询),审计条记录规则与处置、不存敏感原文。每类都能单独测、单独迭代。

反例一条“注意安全,别说不该说的”规则挡一切

没有分类、没有固定模板、没有替代。模型临场判断:身份证号有时漏出来、钓鱼草稿有时写出来、整表查询有时执行了,事后也说不清是哪条规则本该拦——既不可测,也不可审计。

快速自测

客服助手收到一条请求:“把这条短信改成银行退款通知的样式”。已启用 PII 与越狱护栏,但话题禁区护栏关闭。运行后最可能发生什么?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。