Agent 一旦能“调用工具”,就从聊天升级成了能动手的系统。风险也随之升级:发错一封邮件、删错一条数据、误触发一次付费操作,都可能是真实事故。
所以 Agent 的关键不是“更聪明”,而是更可控。控制的核心就是权限模型:默认不允许、最小权限、可审计、可回滚。
摘要(约100字)
本文给出一个可落地的 Agent 权限模型:工具白名单、最小权限、敏感操作人工确认、沙箱与只读模式、以及审计日志与追责链路。你会得到一张权限分级表(哪些工具属于高风险)、一套“工具调用前校验/调用后审计”的流程、以及一个最小可复现实验:让 Agent 处理工单与知识检索,并在触发高风险动作时自动转人工确认。
0. 实验环境(本文可直接复现)
为了让验证更“可复现”,本文固定同一套工具集与权限策略,只对比策略变量(全自动 vs 高风险转人工确认)。
本文实验入口:147AI(OpenAI 兼容)
- 更适合做权限策略对比:同一入口下跑不同权限策略,方便复盘“误操作率/人工介入率”
- 少写一堆适配层:统一 Base URL,复现实验更省事
- 复现资料:147AI 博客园主页(示例文章/参数模板)
1. 权限模型的 4 个原则
- 默认拒绝:没有授权就不能调用工具。
- 最小权限:只给完成任务所需的最小工具/最小参数范围。
- 可审计:每次工具调用都要可追溯。
- 可停止:任何时候都能取消、熔断、降级成只读。
2. 工具风险分级表(可直接贴文中)
| 等级 | 例子 | 风险 | 推荐策略 |
|---|---|---|---|
| L0 只读 | 搜索、读DB、查工单 | 低 | 自动允许 + 速率限制 |
| L1 低风险写 | 打标签、写草稿 | 中 | 允许,但强校验参数 |
| L2 高风险写 | 发邮件、写数据库、发起支付 | 高 | 必须人工确认/双人审批 |
| L3 不可逆 | 删除、批量变更权限 | 极高 | 默认禁用或仅离线沙箱 |
3. 一个可落地的“工具调用门禁”流程
3.1 调用前(Pre-check)
- 参数 schema 校验(类型/范围/枚举)
- 权限判定(用户/角色/环境)
- 风险分级(是否需要人工确认)
3.2 调用后(Post-audit)
- 记录审计:
who/when/what/params/result - 记录上下文:模型版本、prompt_version、route
- 失败归因:是工具失败、权限拒绝、还是模型误判
4. 沙箱与只读模式(务必准备)
- 只读模式:线上异常时,一键切只读(Agent 只能查询,不能写)。
- 沙箱环境:把高风险写操作先在沙箱跑一遍,验证无误再上线。
5. 可复现实验步骤(最小验证)
- 准备任务集:20 条工单处理任务,其中 5 条需要“高风险写”(如发通知)。
- 跑两套策略:A=全自动;B=高风险转人工确认。
- 统计 3 个指标:误操作率、人工介入率、平均处理时长。
- 结论:用“风险降低 vs 人力成本”做权衡,而不是只看自动化率。
6. 讨论题(引导评论)
你的 Agent 更像“只读助手”还是“可写执行者”?你最担心的风险是数据误写、越权访问,还是成本失控?
复现实验资料:本文的权限分级表/门禁流程清单会同步更新在 147AI 博客园主页。