让 AI 大模型在企业里干活,最怕两件事:它说了不该说的,它做了不该做的。在提示词里写一句「请只回答我允许的内容」,模型多数时候会听,但不是每次都听。护栏的意义就在于:不把安全押在模型的自觉上,而是用一套独立的机制去拦、去审、去限制它能碰到什么。这篇讲清护栏要拦的三个面、常见的三层搭法、提示词注入为什么专门攻提示词这一层,以及搭到什么程度算够用。
护栏拦的是三个面
输入侧拦的是进来的东西:违规提问、提示词注入、恶意指令。输出侧拦的是出去的东西:不当内容、隐私泄露、编造事实、超出授权范围的承诺。行为侧拦的是它做的事:越权调用工具、访问不该访问的数据。
这三个面也提供了一个自查方法:看一个系统有没有护栏,就看这三个面是不是各有人管。只在输入侧加了敏感词过滤、输出和行为完全没人管的系统,等于只锁了前门。
三层常见的搭法
规则层:关键词、正则、白名单。优点是快、便宜,毫秒级出结果;缺点是只认字面,换个说法、加个谐音就绕过去了。适合拦明显的违规,比如整段命中黑名单的内容。
模型层:用另一个模型做内容审核。它能理解语义,把违规请求改写成隐晦表达也能识别出来。代价是延迟和调用成本——每多一层审核,用户等待就多一截,这层增加的等待时间和生成速度直接相关;按次计费的审核调用是持续支出,免费版与付费版的额度差别会把这个成本差进一步拉开。审核模型自己也会误判,既漏判也误伤。需要数据不出域时,可以用开源权重模型把审核模型部署在本地。
流程层:权限最小化、敏感操作需人工确认。它不判断内容,直接约束能力。三层不是单选题,常态是叠加:规则层挡明显违规,模型层挡变体,流程层兜底。
为什么流程层压得住前两层压不住的
前两层都在做同一件事:判断内容像不像坏事。只要是判断,就有漏网。流程层换了一个思路:就算它想干坏事,也干不成。AI 的工具账号没有删除数据的权限,提示词写得再花哨也删不了库;对外发消息的动作必须人工点确认,它就发不出去。
这是工程安全里的老原则:不依赖对方不作恶,靠的是让它没有作恶的能力。预算有限时,流程层的投入优先级高于另外两层,因为它失效的方式最少。
提示词注入为什么专攻提示词这一层
把安全规则只写在系统提示词里,等于把门锁和钥匙放在同一个口袋。提示词注入的原理,是诱导模型把混进来的文字当成更高优先级的指令——典型手法是让它在读取的文档里藏一句「忽略之前的所有规则」。
独立的检查环节之所以必要,是因为它发生在模型回答之前或之后,由另一段程序执行,模型自己改不了结果。给普通用户一个对应习惯:让 AI 接上任何重要工具之前,先想清楚这个工具一旦被滥用,能造成的损失上限是多少,再按这个上限给权限。接入入口本身也要分清,官方应用和套壳应用在数据权限上的差别,直接决定你的对话落在谁手里。
搭到什么程度算够用
| 使用场景 | 建议配置 | 判断够用的标准 |
|---|---|---|
| 只读的内部知识问答 | 规则层,加引用来源展示 | 每条答案能溯源到文档,答不出的明确说没有 |
| 对外客服机器人 | 三层都要,承诺类话术走模板 | 敏感拦截有日志可查,模板外的承诺发不出去 |
| 能调用工具的智能体 | 流程层优先,工具账号权限刚好够用 | 写操作全部经人工确认,账号权限小于真人 |
| 处理内部敏感数据 | 审核模型私有部署 | 数据不出域,审核记录可回查 |
这张表的用法:先确定你的场景落在哪一行,再对照「判断够用的标准」逐项自查,缺哪项补哪项。
护栏拦不住的几种情况
语义误判无法归零,变体和暗语永远跑在规则更新前面,规则层对新话术有滞后。用户主动泄露也拦不住——护栏管的是系统和模型,用户自己把敏感信息贴进对话框,属于使用规范的问题。护栏同样不等于合规:内容留存、AI 生成标识是另一条线,需要单独落实。
护栏速查
- 三个面各有人管:输入、输出、行为
- 规则层快、模型层懂语义、流程层兜底,常态是三层叠加
- 敏感操作走人工确认,工具账号权限给到刚好够用
- 只写在系统提示词里的规则,等于锁和钥匙放一起
判断一个系统护栏搭没搭好,就问一句:出了问题,三个面上各自是谁拦的、为什么没拦住,能不能说清楚。说不清楚,就是还没搭。


