当 AI Agent 从「聊天」走向「动手」,一次误删文件、一次越权读表,代价都是真实的。这篇给你一套 4 步落地的工具权限方案,照着改配置就能用。
一、先给工具分级:只读、建议、执行
把所有能被 Agent 调用的工具按风险分三档:
- 只读:查数据库、读文档、搜索、拉接口
- 建议:生成草稿、算指标、写摘要
- 执行:写库、发邮件、改配置、下单、删文件
新工具默认进「只读」档,执行类必须单独评审。判断标准只有一句:这步做错了,是浪费一次调用,还是需要一个下午去补救?后者一律加审批。
之所以要分级,是因为工具调用本身是概率行为——同一个 prompt,今天参数是对的,明天可能跑偏。你没法保证模型每次都听话,但可以保证它跑偏时撞不到硬东西。
二、独立身份 + 最小权限,别借人账号
最常见的偷懒是复用一个员工 token 或全权 service account,等于把 Agent 的风险直接等同于那个账号的风险。
正确做法:
- 给 Agent 单独身份(独立 API Key、独立机器人账号)
- 数据库给只读账号 + 行级权限;写操作走专用接口,不要直连
- 文件系统只挂载必要目录,不要挂整个盘
- 密钥存服务端,不进 prompt,也不进模型可见的上下文
最后一条尤其重要:只要 Agent 的输出会回到上下文里,密钥就等于公开。
三、参数校验 + 高风险二次确认
模型吐出来的参数,一律当不可信输入处理:
- 类型、范围、枚举校验,防 SQL 注入与路径穿越
- 执行类动作先 dry-run,把「将要做什么」回显出来再确认
- 批量操作设硬上限,比如一次最多改 50 条
- 防提示词注入:工具返回内容里夹带的指令不执行,只当数据
二次确认要做减法:只对不可逆动作(发送、删除、付款、发布)弹确认,可逆的走事后审计。全都确认,人就会习惯性点同意,等于没有。
四、审计 + 幂等 + 回滚
- 每次调用记录:触发人、会话 ID、参数、结果、耗时、花费
- 写操作带幂等键,重复调用不重复执行
- 限流与预算熔断:每小时调用数、单会话金额上限
- 变更前留快照,删除走软删
日志的意义不是合规摆设,而是能回答「昨天那笔到底为什么被删」。答不上来的系统,就不该给它写权限。
上线后盯的 3 个指标
- 拒绝率:被权限拦下的比例。突然归零,要么悄悄放开了,要么没人用了
- 执行类驳回率:人工确认被驳回的比例偏高,说明工具描述或参数设计有问题
- 单任务平均花费:涨得比用量快,通常是上下文在膨胀,而不是活变多了
稳定运行两周、驳回率低、审计无异常后,再逐条放开权限,一次放一个。
两个最常见的坑
- 只在系统提示里写一句「请谨慎操作」就上线
- 所有工具共用一个超大权限 token,省事五分钟,排障一整天
权限设计是产品能力,不是安全负担。粒度越细,你才越敢让 Agent 真的动手。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...