VibeCafé
· AI 创作指南· 通用

AI Agent 护栏怎么做:别只写提示词,要卡住这五个运行时边界

AI Agent 上生产后,提示词不能代替权限、审批和预算控制。本文按请求经过系统的顺序,拆解输入校验、工具收窄、人工审批、循环上限与输出校验,并给出一个适合小团队直接执行的上线检查表。让错误在造成真实副作用或持续消耗预算之前停下来。

先把护栏和提示词分开

AI Agent 护栏解决的是“系统允许什么发生”,提示词解决的是“希望模型怎么做”。两者都需要,但不能互相替代。你可以在 system prompt 里写十遍“不要删除文件”,只要删除工具仍带着高权限直接暴露给模型,提示注入或一次误判就可能越过这句建议。Vercel 的生产护栏指南把边界分成输入校验、工具权限收窄、人工审批、步骤与花费上限、输出校验五类,关键在于它们都由运行时代码执行。

这也是 Agent 调用和普通问答最大的工程差异。普通模型答错通常只影响一段文本,Agent 答错可能继续调用工具、写文件、发消息或消耗下一轮模型预算。想理解为什么循环会放大成本,可以先看Agent 调用为什么更烧 Token;护栏的目标不是让每轮更聪明,而是让一次错误停在可接受的半径内。

第一层:不可信内容进入时就标记

用户输入、网页正文、邮件、仓库 issue 和工具返回值都可能携带指令。输入校验至少要限制结构、长度、协议和允许的字段,并把外部内容明确当作数据。它不能证明内容“安全”,但能挡住畸形参数、超长上下文和明显越权请求。更重要的是,后续每个工具都要知道这些字段来自哪里,不能把网页里的句子升级成系统指令。

第二层:只注册这次任务真正需要的工具

工具权限收窄比关键词拦截更可靠:没有注册的工具,模型就无法调用。读文档的任务不需要部署权限,整理报表的任务不需要删除接口。即使必须访问同一个服务,也应给只读、写入和管理操作不同凭据。不要给一个“万能 API 工具”再期待模型每次自觉选对动作;权限边界应该在模型决策之前成立。

第三层:把人的注意力留给不可逆动作

审批不是每一步都弹窗。查询、草稿和可回滚修改可以自动执行;付款、删除、公开发布、外部消息和生产配置变更才需要明确批准。审批记录要由服务端生成并绑定具体工具名、参数摘要和有效期,不能相信客户端回传一句“用户已同意”。否则攻击者只要重放一段消息历史,就能伪造批准。

第四层:循环开始前就设停止条件

AI SDK 的循环控制文档说明,Agent 会在模型结束、工具缺少执行函数、工具需要审批或停止条件命中时暂停;默认 20 步是一道防止失控调用与成本扩张的安全边界。实际项目还应同时限制总时长、模型调用次数和预算,并在下一次调用发生前检查,而不是超支后才报警。

长任务不等于无限任务。可以把研究、实现、验证拆成独立阶段,每阶段有自己的输入和上限;上下文过长时参考长会话上下文管理,先压缩已确认事实,再进入下一段,而不是让 Agent 带着全部历史继续滚动。

第五层:输出离开系统前再检查一次

最后一层关注的是数据能否离开边界。结构化输出要过 schema,代码变更要跑差异检查,外发文本要过滤秘密与个人信息,下载链接要验证域名。工具执行成功不代表最终响应可以公开:Agent 可能合法读取了内部资料,却在总结里把它带给错误的人。

上线前用一个简单问题检查五层:恶意内容进来会怎样、模型能拿到哪些工具、哪个动作必须等人、循环最多走多远、结果出去前谁复核。任何一题只能回答“提示词里写了”,都说明 AI Agent 护栏还没有落到真正的控制点。