为什么你不能用单一数字来估算 AI 功能的预算
财务部门对你发布的每个功能都会问一个问题:“每个用户的成本是多少?”对于传统功能,答案是一个数字。页面渲染、数据库查询、推送通知 —— 每一个的边际成本在不同请求之间几乎没有波动。你测量一次,乘以用户数量,预测就能成立。
AI 功能打破了这种契约。问一下“这个智能体(agent)每次请求的成本是多少”,坦诚的回答不是一个数字,而是一张直方图。同一个智能体,处理上一个工单可能只花 2 美分,但在处理下一个工单时可能会烧掉 4 美元。因为用户问了一个模糊的问题,智能体循环调用了 11 次工具,而每次调用都将不断增长的对话全文重新输入模型。这两次请求的平均值 —— 2 美元 —— 既无法描述其中任何一次请求,更无法真实反映最终账单。
这就是陷阱。当你向财务提交一个单一的平均成本时,你并不是在简化混乱的现实。你是在报告一个在特定的、昂贵的方向上完全错误的数字。
单次请求成本是肥尾分布
普通功能的单次请求成本紧密围绕其平均值。如果你将其绘制出来,你会得到一个狭窄的尖峰。平均值是一个忠实的总结,因为几乎每个请求的实际成本都接近平均值。
智能体功能则不然。其成本由循环深度决定,而循环深度是非确定性的。智能体进行推理、调用工具、观察结果、再次推理 —— 每一步都会针对完整的累积上下文产生按 token 计费的模型调用。朴素的智能体循环以大约 O(N²) 的速度复合成本,因为 API 在每一轮对话中都会对整个对话历史收费。简短的交互只触及模型几次。而长交互 —— 目标不明确、检索密集型查询,或是一个反复返回噪点导致智能体不断重读的工具 —— 在结束或放弃之前可能会触及模型数百次。
画出图表,你得到的不是尖峰。而是一个带有长而沉重的右尾分布:大多数请求很便宜,但有一小部分请求极其昂贵。昂贵部分的数量虽少,但在支出中占主导地位。在多租户 LLM 产品中,从业者一致报告了相同的形态 —— 几个百分点的租户消耗了绝大部分 token。某个客户悄无声息地烧掉你大部分 token 预算并不是一个需要防范的边缘案例。除非你针对它进行监测,否则这就是默认的结果。
当分布具有重尾特征时,平均值不再是典型情况的衡量标准,而变成了对尾部的衡量。它被极少数昂贵的请求向上拉动,因此它夸大了普通用户的成本 —— 与此同时,它又完全隐藏了尾部,因为“平均 2 美元”无法给财务任何提示,告知某些请求的成本是该数字的 40 倍。这个单一数字同时在两个相反的方向上出错。
