智能体权限提示存在习惯化曲线,而你的安全叙事就建立在其斜率之上
每个智能体产品的安全仪表盘上都应该有一个数字,但几乎没人追踪它:随时间推移的人均批准率。发布一个“我可以发送这封邮件吗”或“我可以针对生产环境运行此查询吗”的权限提示,其曲线每次都如出一辙。第一天,用户会犹豫、阅读,有时会点击“不”。到了第二周,这已经是本小时内的第五次提示,拒绝的代价是必须由你亲自完成工作,于是点击率会收敛到 95% 以上。团队的安全叙事仍然声称用户批准了每一项操作。但在任何实质性的认知层面上,用户并没有。
这不是一个可以通过更好的文案来修复的 UX 问题。这是使 Cookie 横幅、浏览器 SSL 警告和 Windows UAC 对话框失效的同一种习惯化现象,只是应用在了一个运行速度比以往快几个数量级的底座上。许可门槛是一种具有半衰期的安全控制。如果在发布时不衡量它的衰减速度,你发布的只是一个用户到第二周就会习惯性忽略的复选框 —— 以及一个依赖于不再具有任何意义的点击的合规叙事。
你几乎肯定已经拥有的数据
实证证据比设计直觉更难被忽视。Anthropic 发表称 Claude Code 用户批准了 93% 的权限提示,并明确指出了后果:批准疲劳,即人们不再密切关注他们正在批准的内容。关于 Cookie 横幅的研究则更加触目惊心 —— 约 85% 的访问者在几秒钟内就会点击“全部接受”,而普通互联网用户每年平均会接触到大约 1,020 个 Cookie 横幅。2013 年伯克利和 Google 进行的“Alice in Warningland”研究也衡量了浏览器安全警告中的类似情况:Chrome 中的 SSL 警告在大规模应用中拥有 70.2% 的点击率,尽管这些警告是刻意设计的、带有摩擦力且视觉效果非常强烈。
这种现象发生的原因在安全 UX 文献中已得到充分解释。习惯化会对重复刺激产生自动反应。第一次提示会占用认知资源;第一百次提示则加载的是肌肉记忆。用户对提示内容视而不见,因为关注每个实例的成本超过了感知到的收益。这是缺陷系统设计下的理性行为,而非用户过失。
智能体系统因为两个原因使这条曲线变得更陡峭。首先是量级:一个编程智能体或邮件助手在每个会话中可以产生数十个审批时刻,而浏览器每月才产生几次。其次是“拒绝”的成本不对称:拒绝权限通常意味着你必须亲自完成智能体的工作,而这恰恰是你为了避免工作才购买智能体的原因。用户被置入了一个最优策略是批准的博弈中,而且这个博弈每周要进行数百次。
第二周后的“用 户已批准”究竟意味着什么
大多数安全叙事将单次点击简化为“知情同意”这一短语,但批准的认知内容是一个连续变量。一个有用的框架是:询问除了点击这一事实之外,还有什么证据表明用户确实评估了这一特定操作。对于第一次提示,证据可能是提示停留时间超过阈值,或者用户切换了内联预览,或者用户取消并重新发起了请求。对于针对常规操作类别的当天第一百个提示,这些证据都不存在。审计日志显示“用户已批准”,但审计日志其实应该显示“在过去 14 天内,用户对 X 类操作的点击率为 100%”。
这在操作层面非常重要,因为监管机构、事件审查或内部红队最终会提出那个仪表盘一直在回避的问题。隐私和安全指南正趋向于此:关于智能体 AI 的行业评论一致指出,持续的审批请求会产生与关闭 Cookie 横幅无异的许可疲劳,且由此产生的点击可能无法满足监管机构在 GDPR 等制度下对透明度和知情同意的预期。一个负载核心是 100% 批准提示的安全叙事,是经不起调查质询的。
真正需要衡量的五个维度
出路不是移除许可门槛。而是将其设计为具有可衡量降级曲线的安全控制,并在其衰减时对其进行重塑。这里有五个具体的行动,大致按照大多数团队应该实施的顺序排列。
1. 按用户和操作类别计算的许可疲劳指标。 将批准率作为时间序列进行追踪,同时按用户和智能体请求权限的内容进行切片。设定一个阈值 —— 比如在给定的操作类别上,滑动两周窗口内的批准率为 95% —— 此时该指标被标记为“许可门槛已衰减”。这相当于许可控制的 SLO。如果指标超过阈值,在重新设计该门槛之前,该操作类别的安全叙事就是失效的。当你被审计员问及人机交互控制是否有效时,这也是你应该展示的指标;“我们衡量曲线”是一个比“我们有一个提示”更有公信力的答案。
2. 将摩擦力映射到爆炸半径的分层提示设计。 常规、可逆的操作(起草日历邀请、查询只读数据集、打开文件)根本不应该打断用户,或者只需要被动通知。不可逆或高爆炸半径的操作(发送邮件、运行 DELETE、部署、支付、转账、调用收费的外部 API)应该需要显式的、带有摩擦力的同意 —— 理想情况下采用不同的形式,如二次确认或输入一段文字。这一原则借鉴了关于智能体 AI 的“设计安全”(security-by-design)文献,该文献将爆炸半径视为权限分配的正确单元:对可逆操作设置最小的门槛,对无法撤销的操作设置最响亮的门槛。
3. “展示变更点”的预览功能。 询问“我可以发送这封邮件吗”的许可提示只给了用户 1 位元(bit)的信息 —— 是或否 —— 来进行评估。而一个展示了渲染后的邮件、收件人列表、与上一版草稿的差异、链接的附件名称以及副作用(“这还将通知 #revenue 频道”)的提示,则给了用户一些他们真正能在几百毫秒内评估的东西。用户现在是在对行为变更进行推理,而不是在批准一句话。这也是打破习惯化的功能:内联预览在不同实例之间具有足够的差异性,使用户无法进入自动驾驶模式。
4. 曲线持平时自动挂起。 当一个操作类别的批准率在阈值窗口内达到 100% 时,许可门槛就不再是一项控制措施。有两种合理的应对方式,都比假装它仍然有效要好。第一种是自动移除门槛,并将该操作重新归类为范围内策略自动允许的操作 —— 至少这样团队对操作的限制因素是诚实的(是策略在限制,而不是提示)。第二种是升级摩擦力:强制执行重新确认的节奏,或者要求经理或同行审批,理由是用户的个人判断已不再是相关的信号。最糟糕的反应是保持门槛不变、不做触动,并继续在安全叙事中声称它是一项控制措施。Anthropic 为 Claude Code 提供的自动模式本质上是产品层面的第一种做法:模型驱动的分类器取代用户成为常规情况下的门槛,并明确承认之前的方法产生了批准疲劳。他们还公布了该分类器 17% 的假阴性率,这才是正确的信息披露形式 —— 指明残余风险,而不是将其隐藏在点击之后。
5. 基于证据而非事件的按操作审计。 将审计日志中显示“用户已批准”的条目替换为记录用户评估该操作证据的条目:提示停留时间、预览是否已渲染、批准前是否编辑过任何字段、用户是否连续 N 次批准此操作类别、请求相对于用户历史记录是否有任何异常。这种审计格式使得有意义的批准与习惯化的批准在事后清晰可见。它还为事件审查者提供了一个二进制日志所缺乏的工具:能够说“用户对此操作的批准与自动驾驶无异”,而不是“用户已批准”。
