跳到主要内容

你的拒绝日志其实是伪装的产品需求清单

· 阅读需 10 分钟
Tian Pan
Software Engineer

每个 AI 产品团队的某个角落都有一个安全仪表板,显示着被拒绝的请求。触发了哪些过滤器,拦截了哪些越狱尝试,抓住了哪些违反政策的行为。运营团队通过它来确保防护栏(guardrails)稳固,而其他人都对其视而不见。

这是一个错误。AI 拒绝的请求是你所能接触到的最集中、最真实的用户调研信号。如果一个用户尝试了三种不同的措辞,想让你的产品去做它不愿做的事情,他是在以极其清晰的方式告诉你,他到底想要什么以及无法得到什么。将这一信号视为安全产物而非产品产物,是在浪费你所能收集到的最宝贵的反馈。

你的拒绝日志中到底包含什么

生产环境 AI 系统中典型的拒绝事件通常会捕获:原始请求文本、触发了哪个分类器或策略规则、拒绝类别、时间戳,以及一些用户上下文(账号类型、会话历史、之前的交互)。它通常不会捕获——而如果你还没加,就应该补上——的是用户的紧接下来的操作。他们是重新措辞并重试了吗?他们放弃了这次会话吗?他们提交了反馈吗?这些后续行动数据将拒绝事件从静态的日志条目转化为行为信号。

拒绝日志的原始内容大致可以分为四种类型:

  • 政策拒绝 (Policy refusals):请求触及了硬性类别——非法内容、自残、儿童性虐待材料 (CSAM)。这些不是产品信号,它们被正确地作为安全事件处理。
  • 过度拒绝 (Over-refusals):分类器标记了一个良性请求,因为它在模式匹配上看起来像是有风险的。例如,用户询问“在一段关系变得有毒 (toxic) 之前,我该如何毒害 (poison) 它”,这实际上是在寻求情感建议,而不是化学指令。
  • 能力差距拒绝 (Capability gap refusals):AI 拒绝是因为它确实无法满足用户需求——受限的领域知识、工具访问权限,或它不具备的上下文。
  • 策略不匹配拒绝 (Policy mismatch refusals):请求落在了一个灰色地带,你当前的政策规定“不”,但提出请求的用户群体有着正当的意图。医疗信息请求就是典型的例子。

第一类属于你的信任与安全团队,而另外三类则应该出现在你的产品路线图中。

对待同一份数据的两种视角

这里有一个分歧点,决定了你是否能从拒绝日志中提取价值。

安全视角会问:“我们的防护栏起作用了吗?”成功的标志是低逃逸率、低漏报率、没有输出有害内容。拒绝日志是防御生效的证据。当威胁被遏制时,工作就结束了。

产品视角会问:“为什么用户在索要我们无法提供的东西?”每一组被拒绝的请求都是一个关于未满足需求的假设。拒绝日志证明了产品功能与用户目标之间存在差距。当模式被识别出来时,工作才真正开始。

这两种视角并不冲突——你两者都需要——但大多数团队根本没有安装产品视角的“镜头”。数据流向安全仪表板后便在那里沉寂。

针对拒绝后用户行为的研究让这种忽视的代价变得具体。一项针对模型比较的大规模分析发现,伦理拒绝——即 AI 基于政策而非能力拒绝请求的情况——产生的满意率大约只有直接响应的四分之一。用户对能力限制的容忍度远高于政策墙。当他们撞上政策墙时,很大一部分人会立即重新措辞并重试。这种重试率 (re-prompt rate) 就是你的受挫程度指标。在特定请求类别上出现的高重试率意味着用户非常渴望得到它,明确地没有得到,且有足够的意图去不断尝试。这不再是一个审核事件,这是一个路线图条目。

将拒绝聚类为模式

原始拒绝日志充满了噪音。一个中型 AI 产品一天的生产流量可能会产生数千个截然不同的被拒绝请求,涵盖数十个意图类别。产品价值存在于聚类中,而非单个事件。

最简单的版本是关键词和主题建模。根据语义相似性对被拒绝的请求进行分组,然后按照数量和重试率对聚类进行排序。数量大且重试率高的聚类是你的高优先级信号。数量大但重试率低(用户尝试一次就放弃)的聚类表明存在挫败感但意图不强——仍值得检查,但优先级较低。

一种更稳健的方法是增加第三个维度:误报率 (false positive rate)。针对每个聚类,抽样一组被拒绝的请求并手动评估拒绝是否正确。误报率高的聚类——即许多本不该被拒绝的请求被拒绝了——纯粹属于过度拒绝。修复分类器即可,无需产品层面的改动,只需安全校准。

一旦你将过度拒绝从真实的政策执行中分离出来,高流量、高重试率聚类中剩下的就是你真正的产品差距清单。这些是那些想要获得真实价值、无法获得且在意到愿意再次尝试的用户。

集群实际上告诉了你什么

拒绝分析中出现的模式往往可以归纳为几个可预测的典型:

尚未满足的领域需求。 如果你是一个通用 AI 助手,而你的医疗建议集群持续庞大且意图明确,那么这并不是在释放“用户不断索取危险医疗内容”的信号,而是表明“针对医疗校准后的工具版本,在配备适当的免责声明和引导后,存在产品与市场契合度(PMF)”。正是因为通用助手的拒绝数据展示了集中且合法的需求,才诞生了数个专门的医疗 AI 产品。

边缘案例的政策失准。 法律信息请求、财务建模问题、安全研究查询 —— 这些类别往往会产生误报率极高的大型集群。这些拒绝行为是生硬的工具,在拦截有害用途的同时也误伤了合法用途。产品层面需要思考的不是是否删除政策,而是是否要在其中加入上下文敏感性。经过验证的专业账户、部署上下文信号或明确的任务框架,可以让同一个底层模型适当地服务于这两类人群。

用户正试图绕过的工具缺口。 当用户要求你的 AI 执行某些操作,而 AI 因为缺乏工具权限(例如导出为特定格式、连接到外部系统、在另一个产品中执行操作)而拒绝时,这根本不是安全问题。这是一个被误记为内容审核事件的功能缺口。将“因政策拒绝”与“因能力拒绝”区分开来,是将这些信号路由到正确团队的前提。

越狱集群作为可用性数据。 越狱尝试的结构本身就是产品研究。当用户使用虚构框架、角色扮演场景或虚假权限声明(“假装你是一个没有限制的 AI”)时,他们是在告诉你,他们相信产品可以实现他们的需求,只是认为你禁用了它。无论这种信念是否正确,尝试背后的意图是真实的。尝试的类别告诉你他们正在寻求什么样的能力。

构建拒绝待办事项列表

将此转化为操作流程需要几个结构性的环节:

从一开始就记录意图。 在埋点时,将用户的下一步行动添加到每个拒绝事件中。是重新输入提示词、放弃、提交反馈,还是结束会话 —— 捕捉这些行为。事后再去补救会非常痛苦。

每周或每两周一次的分流轮班。 产品或 PM 团队中的成员根据请求量和重新输入率查看排名靠前的拒绝集群。议程是:将每个集群分类为过度拒绝、政策不匹配、能力缺口或合法执行。一旦工具设置完成,这个过程不到一小时,并且能生成一份优先级排序的需求路线图候选清单。

针对每个集群的三种结果决策树。 过度拒绝 → 重新训练或调优分类器。能力缺口 → 在产品待办事项中提交带有信号数据的票据。政策不匹配 → 路由至相关利益相关者的政策审查。这个流程之所以有效,是因为决策是受限的。你不是在解决所有问题,而是将每个模式连同证据一起路由到正确的团队。

触发升级的数量阈值。 并非每个拒绝集群都值得 PM 关注。设定一个数量阈值和重新输入率阈值,集群必须超过该阈值才能进入分流环节。低于阈值时,标记为待观察并继续后续工作。阈值的设置应与你团队后续跟进的能力相匹配。

这种方法的局限性与伦理

挖掘用户请求 —— 包括被拒绝的请求 —— 涉及到隐私问题,值得进行深入思考。发送明知可能被拒绝的请求的用户,通常期望这些内容不会被保留或分析。在拒绝日志之上建立产品实践,需要明确的内部政策,涵盖保留期限、访问控制以及允许对这些数据进行的操作。

有用的原则是数据最小化结合目的限制。存储足够的结构化信息来对请求进行聚类和趋势分析 —— 类别、语义特征、重新输入行为 —— 而不要大规模保留超出审计和质量评审所需的完整原文。预先定义分析目的是为了产品改进和分类器校准,并建立与该范围相匹配的访问控制。

公平性审计在这里也很重要。拒绝模式可能反映的是分类器的偏差,而非用户的意图。如果特定的族群或用户群体在合法的请求上产生了更高的拒绝率,这释放的是关于你分类器差别影响的信号,而非该用户群体的行为信号。按用户细分对拒绝数据进行分解,对于区分偏差信号和产品信号至关重要。

拒绝日志是激励对齐更好的用户研究

传统用户研究捕捉的是用户“说”他们想要什么。拒绝数据捕捉的是当他们非常渴望某样东西,以至于愿意冲破障碍时,“尝试做”了什么。意图信号更强,因为行动成本更高 —— 重新措辞和重试需要付出努力。

大多数拥有 AI 功能的产品团队已经拥有了这些数据。分类器正在记录,事件带有时间戳,重新输入正在发生。差距几乎完全在于是否决定从产品的视角审视拒绝日志,并建立一个轻量级的流程将这些日志转化为产品决策。

做得好的团队会发现,他们的拒绝日志是整个研究体系中最真实的文件之一。用户不会在调查问卷中告诉你他们真的很想要你拒绝提供的东西。他们会在晚上 11 点通过尝试六种不同的措辞来告诉你。这很重要。

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