AI Agent 护栏上线实录:从「全裸奔」到「有刹车」的四个阶段
很多团队把 Agent 直接连生产数据库就上线了,出事只是时间问题。本文给出一套可落地的护栏(Guardrails)分期方案,从只读沙箱到灰度放量,讲清每一阶段该拦什么、拦在哪一层。
见过太多团队:Demo 里 Agent 能自动发邮件、改数据库、下单退款,一激动直接连上生产环境上线。结果第三天因为一个歧义指令,Agent 批量改了 4000 条用户地址。护栏(Guardrails)不是给 Agent 加个「请谨慎操作」的提示词,而是一套分层拦截系统。 下面是验证过、能落地的四阶段方案。
为什么提示词护栏根本不够
系统提示里写「不要删除数据」,模型 95% 的时候会听。但 5% 的偏差乘上每天几千次调用,就是每天上百次越界。Prompt 是”软约束”,只对”模型愿意配合”的情况有效——而安全设计要求假设模型一定会在某个时刻不配合。
所以真正的护栏必须在模型之外,用代码和权限去兜底。
阶段一:只读沙箱(第 1 周)
一切从”什么都改不了”开始。
- 所有工具调用默认只读:查数据、读文档、调只读 API。
- 写操作先落到一个影子环境(staging 数据库、测试邮箱、沙箱支付),而不是生产。
- 记录每一次工具调用的输入输出,作为后续评估的基线。
这一周的目的不是让 Agent 干活,而是观察它想干什么。很多严重问题(越权、幻觉出不存在的数据)在这一步就暴露了。
阶段二:写操作加审批(第 2-3 周)
放开写,但每笔写操作需要人确认。
实现方式有两种:
- 人在环(Human-in-the-loop):写操作先进队列,人工点确认后执行。
- 规则白名单:金额 < 100 元、目标是自己名下资源等低风险操作自动放行,其余转人工。
关键是把审批做成结构化字段(操作类型、目标、影响范围),而不是弹一段自然语言让客服猜。审批界面上要能直接看到 diff。
阶段三:分级放量(第 4-6 周)
按风险给操作分级,逐级自动化:
| 风险级 | 示例 | 策略 |
|---|---|---|
| 低 | 查询、生成草稿 | 全自动 |
| 中 | 发通知、改自己数据 | 自动 + 事后抽检 |
| 高 | 退款、删数据、对外发布 | 强制人工 |
每一级放量前,先在影子模式下跑一周:让 Agent 决策,但只记录不执行,比对它的决策和人工决策的差异率。
阶段四:实时熔断(持续)
上线后护栏的重点转向监控与熔断:
- 速率限制:单 Agent 每分钟写操作上限。
- 异常检测:某类操作突然激增(比如 10 分钟内 50 笔退款)自动冻结。
- 预算熔断:token / API 花费超阈值即暂停,防止死循环烧钱。
- 输出过滤:检测到 PII 外泄、违规内容直接拦截。
一个常被忽略的点:护栏要有「逃生舱」
护栏拦错了(把正常操作也拦了)时,必须有一键关闭某条规则的能力,且关闭动作本身要留痕。否则护栏会变成业务阻塞点,最后被人整体绕过。
小结
护栏的本质是把”信任模型”换成”信任规则 + 权限 + 监控”。四阶段的核心逻辑是:先用只读摸清行为,再用审批兜住风险,然后分级放量,最后长期熔断。别指望提示词,把安全放在模型之外,才敢让 Agent 碰真实业务。