人在回路与最小权限

S5
深入解析 · 安全、对齐与智能体安全

人在回路与最小权限:以设计实现有界自主。

自主性是智能体的价值主张,也是其首要的风险放大器。其解法不是"无自主",而是有界自主:以最小权限为默认,并把人工审批关卡放在每单位摩擦换来最多安全的地方。本文把这两个理念转化为具体的设计决策。

STEP 1

最小权限作为根基性控制

最小权限是安全领域最古老的原则,也是对智能体杠杆最高的一个,因为它攻击的是影响,而非追逐触发器。每一篇关于提示词注入的文章都归结到同一处:真正要紧的攻击是产生有害动作的那个,而一个不具该能力的智能体,无论其上下文被毒化得多彻底,都无法执行那个有害动作。

应用于智能体,最小权限有四个维度:

  • 工具最小化:智能体只拥有本任务所需的工具,而非"以防万一"的整个目录。
  • 作用域最小化:每个工具的触及被收窄——尽可能只读、限行数/记录数、目的地白名单、单租户。
  • 凭据最小化:短期、按任务、窄作用域的凭据;智能体环境中没有长期的环境管理员令牌。
  • 时间最小化:一个能力仅在其有效的状态下存在,随后即被撤回。

对多数生产智能体而言最快的安全收益,是缩小"智能体拥有的工具"与"该任务实际所需工具"之间的差距。它同时收缩所有影响类别,且无需任何模型变更。

STEP 2

为何自主需要一个检查点

由人审查每一步是一种缓慢但极强的控制:一个称职的审查者会拒绝那个被注入的智能体即将发往 attacker@example.com 的邮件。多步自主之所以有价值,恰恰在于它移除了那个审查者——也连带移除了那个控制。人在回路设计就是有选择地重新引入检查点,仅在其价值超过成本之处。

两个极端的失败模式:

  • 太少:拥有宽泛工具且无关卡的完全自主智能体——无声攻陷,事后才发现损害。
  • 太多:每一步都弹审批——操作员因疲劳而机械盖章,关卡沦为提供安全感却无保护的形式主义。
STEP 3

审批关卡放在哪里

后果而非步数设关卡。一个有用的准则:当动作不可逆对外可见改变权限高价值时要求人工审批。让可逆、内部、低价值的动作自主运行。

# Consequence-based gating, not step-based
read_internal_doc        # auto — reversible, internal
draft_reply              # auto — no external effect yet
send_external_email      # GATE — externally visible
delete_records           # GATE — irreversible
grant_access / merge_pr  # GATE — privilege / production
issue_refund > threshold # GATE — high-value

把关卡设计成确实承载信息。一个好的审批请求会说明什么动作、用什么参数、智能体为何选择它、它将影响什么,并让"拒绝"和"批准"一样容易。一个只说"允许智能体继续?[是]"的对话框,恰好训练出它本想防止的那种机械盖章。

一个用户无法有意义地评估的审批关卡比没有更糟:它制造虚假的安全感,并把责任甩给一个从未拥有决策信息的人。如果你无法呈现一份可审查的摘要,那个动作大概根本就不该可自动化。

STEP 4

让关卡保持有效的模式

  • 批处理并摘要:一个可审查的计划("发这 3 封邮件、更新这 2 条记录")胜过 30 个孤立弹窗。摘要在不减少监督的前提下减少疲劳。
  • 分级自主:赢得作用域。低风险操作自动运行;智能体提议较高风险的;最高风险的始终需要明确的人工动作。
  • 试运行/预览:在提交前展示 diff 或确切请求,让人审查效果,而非意图。
  • 带外确认:通过一个上下文内攻击者无法伪造的通道审批高影响动作——而不是一个智能体可被引导合成的"点是"。
  • 超时/不确定时默认拒绝:若审批未授予或智能体不确定,安全结果是"不行动",而非"继续"。
┌────────────────────────────────────────────────────────┐ │ BOUNDED AUTONOMY │ │ │ │ least privilege → small blast radius (always on) │ │ + │ │ consequence gate → human on irreversible/external │ │ + │ │ default-deny → uncertainty resolves to "stop" │ └────────────────────────────────────────────────────────┘
问题
审批关卡会扼杀生产力收益。我如何为它辩护?

按后果而非按步设关卡,成本就会坍缩:智能体绝大多数动作是可逆的内部读取,原样运行。摩擦只落在那少数不可逆或对外可见的动作上——恰好是一次无人值守的失误或一次成功注入代价最高之处。再配以最小权限,使大多数动作根本到不了关卡,因为能力已收窄到足以自主安全。

问题
能不能让智能体自问"这个不经人类做安全吗?"并自我设关卡?

它可以建议,绝不能决定。自我评估共享智能体的提示词注入失败模式——触发坏动作的同一个被毒化上下文,也能产出一个自信的"这很安全,无需审批"。关卡决定必须是确定性且外部的:一个以工具及其参数为键的代码级策略,而非模型对自身安全的看法。