AI Agent 护栏:企业要强制哪些规则

AI agent 护栏,是套在模型「外面」而不是「里面」的、强制执行的规则。它们检查输入(识别提示词注入、屏蔽 PII)、审查输出、限制 agent 能调用哪些工具,并在做不可逆动作前要求人工批准。护栏不会让 agent 更聪明——它只是圈定一个被劫持的 agent 最多能干什么。

如果说安全风险是威胁建模,那护栏就是落地层:把「我们得小心点」变成 agent 物理上就破不了的规则。对小团队来说,好消息是你不需要一支安全团队来装上那几条最关键的护栏。你只要知道护栏装在哪、以及先建哪两条。

护栏装在四个位置

护栏是一段在 agent 循环的某个特定点上运行的检查,它能拦截、改写或标记接下来会发生的事。这样的点有四个,好用的 agent 会在不止一个点上设卡。

1. 输入护栏——筛掉进入模型的东西。 在 agent 对一条消息动手之前,一段检查可以把它拒掉或清洗:识别提示词注入、屏蔽 PII,或拒绝跑题请求。在 OpenAI Agents SDK 里,输入护栏跑在用户的初始输入上,可以触发一根「绊线(tripwire)」,在任何工具被调用之前就中止整轮运行。这很重要,因为提示词注入——藏在邮件、网页或文档里的隐藏指令——被 OWASP 列为 LLM 应用的头号风险,而且在模型层至今无解。

2. 输出护栏——审查返回来的东西。 模型生成回复之后,在这段输出被使用或发出去之前,第二段检查会跑:扫描是否泄露了密钥、PII,或格式与下一步的预期不符。OpenAI Agents SDK 把输出护栏跑在 agent 的最终回复上,可以绊断同一根线。Anthropic 正是出于这种纵深防御的考虑,在模型的两侧都叠了一层识别提示词注入的分类器

3. 工具与动作护栏——圈定 agent 能做什么。 这是杠杆最高的一层。给 agent 一份工具白名单、这些工具所需的最小权限范围,以及在做任何不可逆动作前的一道强制关卡。当你把 agent 接到 Google Workspace 时,OAuth 权限范围就是那个旋钮:能只读就只读,接一个邮箱而不是整个域。Anthropic 的安全可信 agent 框架把这设成默认——在 Claude Code 里,agent 默认只有只读权限,直到人类授予更多,并在高风险决策前设检查点。

4. 监控——兜住前三层漏掉的。 记录每一轮运行、每一次工具调用、每一个决策,好让你能回看、能在行为漂移时察觉。护栏不是「装好就不管」;生产部署清单把日志和每周翻一遍运行记录,当作安全的一部分,而不是可选项。

先建回报最快的那两条

你可以花一周把输入输出分类器都接上,但对多数桌面级 agent 来说,光是两条护栏就能自己消掉大部分风险。

  • 最小权限。 给 agent 它这个任务真正需要的最窄权限——能只读就只读,接一个系统而不是全部,别留着它用不上的常驻凭证。过度授权是潜伏的风险;一次成功的提示词注入,才是把它变成真实的、未经授权动作的那根导火索。OWASP 关于 LLM 头号风险的指引,把权限限制和对敏感操作的人工介入,放在纵深防御的核心。
  • 在不可逆动作前加一道关卡。 对任何会「发送、付款、发布、删除」的动作,都保留一个人工审核环节。这是最直接能阻止被劫持的 agent 造成永久伤害的那条护栏。Issue #001 的 Gmail 分类 agent 就是这套做法的实例——它读不可信的邮件、碰真实的收件箱,但按下发送键的是人。读操作放行,写操作等一等。

只做这两条,你就堵住了那个制造大多数吓人标题的缺口。其它的都是在这之上加厚度。

护栏是「强制」的,不是「请求」的

区分真护栏和一厢情愿的那条线是:写在提示词里的一句(「发任何东西前请先问我」)是一个「请求」。模型通常会照办——直到一条注入进来的指令叫它别照办。而强制在工作流里的护栏——发送工具在人点批准之前根本就不可用——即便模型被骗了也依然成立。Anthropic 的安全 agent 框架把监督建进外层框架里(默认只读、不可逆动作前设检查点),而不是指望模型自己管住自己。

反过来的失效是「关卡太多」。如果你让 agent 每一个琐碎步骤都停下来等批准,人就会不看内容直接盖章,关卡也就没了意义——这正是那个让「每个动作都批一遍」适得其反的审批疲劳陷阱。好的护栏是又窄又强制的:只拦那几个撤不回的动作,其余可逆的活儿放它去干。

FAQ

AI agent 护栏是什么? 护栏是套在 agent 周围、强制执行的检查——分布在它的输入、输出、工具和日志四处——能拦截或改写它的行为。它包括提示词注入与 PII 筛查、对泄露数据的输出扫描、最小权限的工具范围,以及不可逆动作前的人工批准关卡。目的不是让 agent 更聪明,而是圈定一个被攻陷的 agent 能干什么。

护栏能挡住提示词注入吗? 不能完全挡住——提示词注入在模型层至今无解,没有哪个过滤器能拦下每一次尝试。可行的策略是「围堵」:假设有些注入会得手,然后确保得手的那次没有任何危险的东西能够得着。这就是为什么工具与动作层(最小权限加审批关卡)比任何单一的输入过滤器都更重要。整套怎么拼,见完整的威胁建模

输入护栏和输出护栏有什么区别? 输入护栏跑在模型动手之前——筛查用户的消息或它取回的数据里有没有注入和敏感内容。输出护栏跑在之后——在模型的回复被发出或使用前审查它。OpenAI Agents SDK 把两者都做成「绊线」,检查不过就中止运行。两者你都要:一个把坏指令挡在外面,一个不让坏输出溜出去。

加护栏需要写代码吗? 不一定。像 OpenAI Agents SDK 这样的框架给你代码级护栏,但最重要的那两条是配置、不是代码:接工具时设成只读或单一范围,以及对不可逆动作打开人工批准这一步。多数无代码平台和托管 agent 都把这两项做成了开关。

小团队该从哪开始? 从最小权限和一道审批关卡开始——这两条控制用最少的力气消掉最多的风险。每接一个工具都用它这份活儿所需的最窄范围,并在 agent 发送、付款、发布或删除前要求人点一下。等 agent 承担更多时,再补上输入输出筛查和日志,并在你把它推向生产时重新检查整套设置。


护栏,是一个真正好用的 agent 得以保持安全的方式——而这份 newsletter 的每一期,都用一个真实搭建(而非演示)来展示这套模式。免费订阅,收到下一期,也看看 Issue #001 里的 Gmail agent 怎么把这些规则用起来。