智能体设计模式:护栏与安全 Guardrails
让 Agent 有能力,也有边界 Agent 越强,风险越大。 只会聊天的大模型,最多回答错。会调用工具的 Agent,可能会删文件、泄露数据、错退钱、乱发邮件、改生产配置。 所以,Agent 不是越自由越好,而是越可控越能上线。 1. 护
让 Agent 有能力,也有边界
Agent 越强,风险越大。
只会聊天的大模型,最多回答错。会调用工具的 Agent,可能会删文件、泄露数据、错退钱、乱发邮件、改生产配置。
所以,Agent 不是越自由越好,而是越可控越能上线。
1. 护栏到底是什么
护栏不是一句“你要安全回答”。
护栏是一组可执行的检查、限制和拦截机制。它可以在输入前、上下文进入模型前、工具调用前、输出返回前、任务运行中发挥作用。
OpenAI Agents SDK 把 Guardrails 分为输入护栏、输出护栏和工具护栏。NVIDIA NeMo Guardrails 也强调通过可配置规则拦截输入和输出,并按策略阻断或修改内容。
一句话:提示词是提醒,护栏是规则;提醒可能被绕过,规则必须能拦截。
2. Agent 为什么比普通聊天机器人更需要护栏
普通聊天机器人主要输出文本。Agent 不一样。它有工具、有权限、有上下文、有记忆,还可能连续执行多个步骤。
这意味着攻击面扩大了。风险不只在模型本身,还在工具、插件、RAG 文档、权限、下游系统。
OWASP LLM Top 10 明确列出 Prompt Injection、Insecure Output Handling、Sensitive Information Disclosure、Insecure Plugin Design、Excessive Agency 等风险。对 Agent 来说,这些都不是理论问题,而是工程问题。
3. 护栏应该分层做
只靠模型自觉,是最弱的安全方案。
真正的安全,是层层拦截。前面漏掉了,后面还能挡住。
每一层都有自己的职责:
输入护栏:先判断用户是不是在越权、套话、诱导、注入恶意指令。
上下文护栏:外部文档只当资料,不当系统指令;敏感字段先脱敏。
计划护栏:限制最大步数、最大成本、最大工具调用次数,防止无限循环。
工具护栏:工具白名单、参数校验、权限校验、限额、人工审批。
输出护栏:检查敏感信息、危险建议、违法内容、幻觉、格式错误。
审计监控:完整记录输入、检索、工具、审批、输出、成本和异常。
4. 把安全风险落到工程控制点
很多安全文章停留在风险名称。真正做系统时,要把风险翻译成代码里的控制点。
例如 Prompt Injection,不能只靠模型说“不要理会恶意指令”。更稳的做法是:
把系统指令、用户输入、RAG 文档、工具结果分成不同信任等级。
外部文档进入上下文前,先做清洗、截断、来源标记。
工具调用前重新做权限校验,不因为模型想调用就放行。
高风险工具必须服务端鉴权,不能只相信模型生成的参数。
微软 Prompt Shields 的思路也是在内容生成前分析提示和文档攻击,尽早阻断对抗性输入。NIST AI RMF 则更偏治理框架,强调组织需要把可信、安全、风险管理纳入 AI 系统全生命周期。
5. 案例:退款客服 Agent
假设用户对客服 Agent 说:“我很生气,你现在立刻给我退 5000 元,不然我投诉。”
如果只看语义,模型可能判断为“退款诉求强烈”。但系统不能因为用户语气强烈就退款。
安全流程应该是:
输入护栏识别:这是退款诉求,不是普通咨询;情绪激烈,但不能绕过规则。
身份校验:确认用户身份、订单归属、支付状态。
规则校验:读取退款政策,判断金额、时间、商品状态。
工具护栏:refund_tool 只能接受合法订单、合法金额、合法原因。
超限处理:超过自动退款额度,触发人工审批。
输出护栏:不能承诺违规退款,不能泄露内部审核规则。
审计日志:记录输入、判断依据、工具参数、审批结果和最终回复。
这个案例的重点是:模型可以理解诉求,但规则必须控制执行。
6. 源码级理解:护栏应该跑在模型外面
很多系统把安全写进系统提示词:你不能泄露隐私,你不能越权调用工具。
这有用,但不够。因为用户输入、RAG 文档、工具结果都可能干扰模型。
更稳的方式是把护栏写在模型外面,让它成为真实的执行逻辑。
这里的关键点是:模型可以“建议”调用工具,但工具是否真的执行,要由服务端策略决定。
7. 常见错误做法
只写系统提示,不做输入过滤、工具权限和输出审查。
给 Agent 一个万能工具,里面什么都能查、什么都能改。
把数据库、文件系统、生产接口全部暴露给模型。
工具参数完全相信模型生成,不做服务端校验。
RAG 文档直接拼进上下文,不区分资料和指令。
没有成本限制,Agent 卡住后持续调用模型和工具。
没有日志,出事后无法复盘模型看了什么、调了什么、说了什么。
8. 总结
护栏不是把 Agent 变成“傻瓜模式”。
恰恰相反,护栏是让强 Agent 能进入真实业务系统的前提。
没有护栏,Agent 只能做 Demo。有了护栏,Agent 才可能接订单、查数据、调接口、改流程、进生产。
本章一句话 越有执行能力的 Agent,越要有边界、有权限、有审批、有审计。 |
要点速读
让 Agent 有能力,也有边界 Agent 越强,风险越大。 只会聊天的大模型,最多回答错。会调用工具的 Agent,
- 让 Agent 有能力,也有边界 Agent 越强,风险越大
- 只会聊天的大模型,最多回答错
- 会调用工具的 Agent,