做产品 PMaker 首页
搜索
跟随系统
颜色主题
空格的键盘
给 Agent 的权限要分级——不是「给不给」,而是「给到哪一级」只读查文档、读数据、看代码,错了能重来,放开给 Agent几乎不用拦低风险写写草稿、存临时文件,可自动放行但要留日志错了可回滚高风险写删除、覆盖、发送、付款,默认禁止,需明确授权不可逆,必须把关人工断点超出授权范围或命中高风险清单,停下来等人批准由人做最终决策影响越不可逆,越要靠人

权限分级把「要不要信它」从二选一变成四档。真正有风险的动作,干脆交给人工。

权限分级与人工断点

该在哪几步拦一下,才不至于让它把库删了。

「给 Agent 权限」不是二选一——要么全给,要么不给。真正的做法是分级:读的放开,低风险写的放行,高风险写的拦下来,边界动作交给人。anthropic-agents

你会遇到的现象:

  • 演示时它能删库,你下意识觉得「应该不会真删吧」
  • 为了让它「自动化」,把权限全开给了它
  • 没有人工断点,所有动作都在无人监管下发生

为什么要分级

因为 Agent 的一切行为都可能有错,而且错误是分布式的:目标会漂移、工具会误用、外部内容会诱骗它。一条网页里的恶意指令,就能让一个全权限 Agent 执行它根本不该执行的动作。

分级的意义在于:**让风险评估从「模型每次都要做对」转移到「系统只让它在安全范围内做对」。**读错了可以重读,删错了无法挽回——前者的容错成本远低于后者。

这和给人开权限是同一套逻辑:你不会因为信任某个实习生,就给他生产数据库的删除权限。Agent 也一样。

四级权限

**一、只读。**查文档、读数据、看代码。放开给 Agent,这类操作错了也能重来,无需干预。

**二、低风险写。**写草稿、存临时文件、改自己的草稿箱。可以自动放行,但要留日志——记录它写了什么、改了什么。

**三、高风险写。**删除、覆盖、发送、修改配置、涉及钱的操作。默认禁止,只有明确授权时才可执行。这里的「明确授权」通常是人工批准,见下一节。

**四、人工断点。**超出已授权范围、或命中高风险清单的动作,停下来等待人来确认。这是最高的一级——由人来做最终决策

四级的边界可以根据你的场景调整,但骨架不变:影响越不可逆,越要靠人。

断点设在哪

人工断点不是越多越好——每一步都问人,Agent 就失去了意义。权限失控是 LLM 应用最常见的失效方式之一,OWASP 甚至把它单列为一张风险清单。owasp-llm 判断该在哪设断点,用三个问题:

**一、这个动作可逆吗?**可逆(改草稿、存临时文件)→ 放行。不可逆(删除、发送、付款)→ 断点。

**二、出错的影响面多大?**影响单个用户的一封邮件 → 或许可自动。影响全体用户的群发、影响生产数据的批量操作 → 必须断点。

**三、它执行时信息完整吗?**Agent 往往只看到局部上下文,不知道全局约束。凡是「需要全局判断才能确认正确」的动作,都该留一道人的关卡。

一个务实的断点设计:**把断点设在「动作前」而不是「动作后」。**让 Agent 在触发高风险动作前先「提出申请」,人批准后才执行。而不是先执行了再汇报——那样断点只是记录,不是保护。

默认怎么定

给 Agent 配权限,默认值比清单更重要。两条原则:

一、最小权限。默认什么都不能做,按任务需要逐个开放,任务结束后回收。「先全给再收紧」是灾难配方——你多半没时间收紧。

**二、权限和身份绑定。**Agent 用的权限,应该和「它代谁执行」绑定。用户 A 的 Agent 不该有用户 B 的数据权限。这既是安全,也是合规。

最后,把权限当成评测的一部分:定期检查它实际调用过哪些高风险动作、有没有越权、断点拦截率是多少。权限系统好不好,不是看设计得漂亮,是看运行记录。

记住那句话:**人工断点不是流程慢,是唯一不需要信任模型的防线。**模型会出错、会漂移、会被骗——但一道人工关卡不会。

参考资料

  1. Building effective agents — Anthropic
  2. OWASP Top 10 for Large Language Model Applications