跳到主要内容

智能体权限提示存在习惯化曲线,而你的安全叙事就建立在其斜率之上

· 阅读需 11 分钟
Tian Pan
Software Engineer

每个智能体产品的安全仪表盘上都应该有一个数字,但几乎没人追踪它:随时间推移的人均批准率。发布一个“我可以发送这封邮件吗”或“我可以针对生产环境运行此查询吗”的权限提示,其曲线每次都如出一辙。第一天,用户会犹豫、阅读,有时会点击“不”。到了第二周,这已经是本小时内的第五次提示,拒绝的代价是必须由你亲自完成工作,于是点击率会收敛到 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 次批准此操作类别、请求相对于用户历史记录是否有任何异常。这种审计格式使得有意义的批准与习惯化的批准在事后清晰可见。它还为事件审查者提供了一个二进制日志所缺乏的工具:能够说“用户对此操作的批准与自动驾驶无异”,而不是“用户已批准”。

大多数团队需要达到的架构认知

更深层次的转变是停止将权限提示视为一项功能,而应将其视为具有衰减曲线的安全控制手段。在一个严肃的系统中,所有其他安全控制都有明确的失效模式和衡量方式:证书会过期,密钥会轮换,异常检测器会重新训练,IAM 策略会被审计。授权网关(Consent gate)具有相同的属性,但几乎缺乏相应的规范。它在第一天有效,随后的有效性会按可衡量的曲线衰减,如果团队愿意去观察,它会在一个可预测的时间点失效。这种定性之所以具有争议,是因为“用户已批准”听起来像是一个稳定的属性,但实际上它是一个随时间变化的变量。

一旦你接受了这种定性,设计模式也就呼之欲出了。将智能体(Agent)可以执行的每一项操作映射到爆炸半径(Blast radius)层级。为每个层级决定,什么样的评估证据才能让一次批准生效——以及当证据不再出现时,策略的回退机制是什么。监测这条曲线,设置阈值。将高爆炸半径操作类别的持平批准率视为一起事故,而不是一项功能。这样做只需投入几个百分点的工程精力;而不做的代价则是,审计员、监管机构或事后分析最终会拆解你的安全神话。

明年的趋势

智能体 AI(Agentic AI)的发展轨迹是每个会话的操作数量越来越多,而不是越来越少。成功的驱动产品将是那些随着智能体能力的增强而使权限模型变得更严密的,而不是那些仅仅在 LLM 上套一个 UAC 对话框并宣称解决了安全问题的产品。在 2026 年的工作中,两种模式已经初现端倪。首先,基于模型的分类器(如 Claude Code 中的自动模式、智能体框架中由分类器介导的批准)开始占据手动提示与完全开放的 Shell 之间的中间地带——它们用一次点击换取一项策略,并公布其漏报率(False-negative rate),这才是诚实控制的形态。其次,身份与访问管理(IAM)正围绕着单次调用、有作用域且限时的授权进行重构,而不是长效会话。其明确理由是,一个每分钟执行数千次操作的智能体打破了基于会话的授权模型所依赖的所有假设。

对于任何发布智能体产品的开发者来说,核心经验是:记录每个用户、每个操作类别、每周的批准率,并将其与错误率和评估分数放在同一个仪表盘上。如果批准率正趋于 100%,说明授权网关正在失效,依赖它的安全叙事也随之崩塌。修复方法不是优化提示词的文案。修复方法是重新设计网关,使其安全属性能够经受住用户的习惯化曲线——并且在审计日志中,诚实地对待“批准”与“点击”之间的区别。

References:Let's stay in touch and Follow me for more thoughts and updates