AI Gateway User Insights 会标记支出异常——但不会阻止异常

Cloudflare AI Gateway User Insights 可以检测异常的会话成本,但警报无法确定意图、归因每个请求,也无法遏制相关活动。

分享这篇文章

Cloudflare 的 AI Gateway User Insights 可以标记某个人或代理的一次异常高成本会话。它不会判断该活动是否具有恶意、识别根本原因,也不会阻止另一个请求。

只有当一次会话同时越过两个成本阈值时,警报才会触发:其成本高于该用户滚动 30 天会话成本的 p95 的两倍,并且高于组织的会话成本 p99。直白地说,这次会话对该身份而言必须不寻常,而且在整个组织范围内也异常昂贵。操作员仍然需要核实该身份代表谁、检查周边请求、判断活动是否合法,并选择遏制措施。

这种分离正是这次发布的有用之处。User Insights 是一个分诊视图,而不是自主的事件响应系统。

两个阈值会过滤不同类型的噪声

Cloudflare 在 2026 年 8 月 5 日宣布 User Insights 正式可用,并表示每位 AI Gateway 客户都可以免费使用。配套的 Cloudflare Access 集成可以将已验证的身份附加到网关请求上,目前已进入公开测试阶段。

异常规则针对的是会话,而不是单个请求。对每位用户,Cloudflare 会计算前 30 天会话成本的第 95 百分位数,即 p95。p95 为 USD 12,大致意味着该用户被观察到的 95% 会话成本不超过 USD 12。因此,相对阈值就是高于 USD 24 的任何成本。由于基线会向前滚动,正常工作方式的持久变化也可能改变这个阈值。

仅通过个人测试还不够。同一会话的成本还必须高于组织的 p99,也就是只有成本最高的 1% 会话才会超过的水平。Cloudflare 的当前 User Insights 文档表示,两项比较都必须通过。

与个人 30 天 p95 的比较与组织 p99 的比较User Insights 结果操作员知道什么
小于或等于 2 倍小于或等于未标记两道成本门槛都未通过。这对非成本风险不代表任何结论。
大于 2 倍小于或等于未标记对该身份而言不寻常,但低于组织范围的高成本下限。
小于或等于 2 倍高于未标记在整个组织范围内很昂贵,但对该身份近期的历史而言很常见。
大于 2 倍高于已标记该会话越过了两道成本门槛。意图和原因仍然未知。

假设一个组织的 p99 是 USD 180,再看三个虚构会话。某用户的 p95 是 USD 12,其 USD 40 的会话超过了个人基线的两倍,但仍低于 USD 180,因此不会被标记。某用户的 p95 是 USD 150,其 USD 220 的会话在整个组织范围内很昂贵,但没有超过该用户基线的两倍。某个代理的 p95 是 USD 30,其 USD 220 的会话越过了两道门槛,因此会被标记。

这些例子用于解释规则,不是 Cloudflare 的测量结果,也不是推荐预算。阈值经过调校以减少嘈杂的警报,这也意味着它可能漏掉有意义的低成本滥用、被滚动基线吸收的逐步增长,或对重度用户而言属于正常情况的昂贵会话。

身份覆盖率决定警报能告诉你多少

仪表板可以显示活跃用户、请求、令牌、中位支出、高活跃度集中情况、待审查用户以及身份覆盖率。用户视图还会增加支出、请求和令牌总量、缓存请求和出错请求、近似会话数、主要模型和提供商、最后出现时间、活跃天数,以及每位用户的身份覆盖率。

只有当请求带有有用的身份元数据时,这些字段才会具体对应到某个人或代理。没有身份时,Cloudflare 会将用量归入一个匿名标识符,无法区分不同个人。

这里有两条实质上不同的身份路径:

  • 受 Access 保护的自定义域名可以添加 cf.user_id,其值是来自有效 Cloudflare Access JSON Web Token 的已验证主体。Cloudflare 的 Access 文档说明,服务令牌请求不会获得这个字段,因为它们不代表某位 Access 个人用户。
  • 客户端可以通过自定义元数据附加自己的用户或代理标识符。这可以改善归因,但该值由应用程序定义并提供,而不是由 Cloudflare Access 定义。只有在发送系统能够防止伪造或遗漏的范围内,才应将它视为可信。

与 42% 身份覆盖率关联的警报,不是针对 100% 流量的结论。缺失的 58% 可能隐藏其他活动,或把多个调用方混在匿名分组中。在得出结论前,先记录覆盖率。

独立的 Shogoworks 分析将实际变化描述为:把分析对象从 API 密钥转向个人。它还指出了治理后果:与身份关联的用量可能揭示员工工作的模式。因此,目的限制和访问控制属于可观测性设计的一部分,而不是日后再补的文书工作。

User Insights 警报能证明什么,以及不能证明什么

如果仪表板和底层日志完整,一条警报支持一个范围狭窄的陈述:AI Gateway 将一次会话归因于某个身份,估算了它的成本,并发现该成本高于当前的两个阈值。

它本身不能证明以下任何一点:

  • 凭据被盗;
  • 代理进入了重试循环;
  • 用户违反了政策;
  • 敏感数据到达了模型提供商;
  • Cloudflare 阻止了该会话或后续请求;
  • 提供商账单会与网关估算完全一致;或
  • 所选身份拥有该会话中的每一个请求。

Cloudflare 对这一边界的表述格外直接:User Insights 不会判断意图,也不会阻止任何人。公司关于单独的支出上限功能的文档还将成本跟踪标为尽力而为的估算,并告诉客户以提供商仪表板为准来获取精确账单。

因此,警报应该开启调查,而不是结束调查。它的成本形态可以区分少量很长的请求和数千个短失败请求;模型或提供商的变化也可能解释支出上升,而无需有任何请求量增加。身份覆盖率随后决定这些观察结果属于已验证的个人、应用提供的元数据,还是匿名分组。

Cloudflare 的 AI Gateway 日志文档称,存储的日志可能包含提示词、模型响应、提供商、时间戳、状态、令牌使用量、成本、时长和用户代理。这些证据可以澄清事件,但也可能暴露敏感内容;在许多异常情况下,元数据已经足以解释问题,无需打开提示词或补全内容。

遏制仍然是另一个产品界面。支出上限可以在达到预算后返回 HTTP 429,而网关范围的速率限制可以限制请求量。支出上限最终会一致,但并发流量可能让支出短暂超出上限;网关范围的速率限制则可能中断正常调用方。User Insights 让昂贵的偏离更容易被发现,但不会决定哪一种后果是合理的。

资料来源

  1. Cloudflare AI Gateway User Insights documentation
  2. Cloudflare launch analysis of identity-aware AI Gateway
  3. Cloudflare Access integration documentation for AI Gateway
  4. Cloudflare AI Gateway logging documentation
  5. Cloudflare AI Gateway spend-limits documentation
  6. Cloudflare AI Gateway rate-limiting documentation
  7. Independent Shogoworks analysis of User Insights