延迟预算博弈:如何告诉产品经理“实时性”是有能力代价的
一位产品经理走进规划会议,提出了一个只有一行的需求:“响应时间低于两秒,就像 ChatGPT 那样。”讨论中的智能体 (agent) 需要调用六次工具,检索两个索引,运行一个带有思考预算 (thinking budget) 的推理模型,并由第二个评审模型验证其输出。目前端到端的 p50 延迟是 9 秒。工程团队有三个选择:答应下来并悄悄地把智能体削弱成更糟糕的东西;拒绝并眼睁睁看着产品经理去寻找那些在演示视频中吹得天花乱坠的供应商;或者做一件入职培训中没人教的事 —— 开启一场结构化谈判,将每一秒的延迟都转化为智能体放弃的一项能力。
大多数团队会选择第一种。智能体上线后延迟确实到了 2 秒,但准确率下降了 12 个百分点,发布会仍被视为成功,因为达到了标题上的延迟指标。三个月后,团队开始与质量退化作斗争,却没人能将其归因于某项改动,因为退化本身就是那次发布。延迟目标从未被定价,它仅仅是从一份将速度视为免费午餐的产品规格说明书中继承而来的。
这篇文章是关于如 何为延迟定价。必须进行的对话不是“我们做不到”,而是一场结构化的预算谈判。在这里,延迟、准确率和能力被摆在桌面上,产品负责人从中三选二。不进行这场谈判的团队,交付的将是别人做出的权衡。
为什么“把它变快”在架构上毫无意义
为什么“快一点”会让对话陷入僵局?因为智能体系统中的延迟不是一个单一的拨盘。它是架构决策的总和,单个决策的成本是可知的,但总成本只有在最后才会显现。一次 LLM 调用可能需要 800ms;一个带有反射循环的编排器-执行器流程则需要 10–30 秒。当你要求工程团队将延迟减半时,你不是在要求他们优化 —— 你是在要求他们移除组件,而这些组件都是有名有姓的。
每个组件换取的是特定的能力:
- 一次工具调用换取的是在模型未知的系统中进行接地 (grounding)。
- 一次检索过程换取的是对上下文窗口放不下的事实的访问权。
- 一个推理模型在多步问题上换取的是不同的准确率曲线。
- 一次验证环节换取的是针对特定错误类别的防护 —— 幻觉引用、错误单位、伪造的 API。
- 第二个模型对第一个模型的评估,换取的是在对抗性输入下的鲁棒性。
当产品部门在不重新定义能力集的情况下要求智能体提速三倍时,他们实际上是在默许工程团队选择删除其中哪些项,并默默承担后果。工程团队不应该做这个决定。产品拥有能力定义权 ;工程拥有实现架构的所有权。将两者混为一谈,你得到的就是一个又快又错的智能体。
在对话开始前建立转换表
让这场谈判变得可行的是一张基于你实际技术栈生成的“延迟-能力转换表”。不是通用的厂商跑分,而是你的追踪记录 (traces)、你的工具、你的模型、你的网络路径。
它看起来像这样:
- 一次工具调用:600–900ms(取决于工具 —— 你的 CRM 查询比内存缓存慢)
- 一次检索过程:热索引下 200–400ms,冷索引下 1.5s
- 一次低负载推理:1.2s,并增加约 300 个隐藏 token
- 一次高负载推理:4–8s,在给出答案前可能消耗 80% 的可用输出 token
- 一次验证模型调用:600–1200ms
- 在同一查询中将推理模型更换为快速模型:延迟减少 3s,但在评测集上准确率下降 8 到 15 个点
- 一次上下文压缩步骤:400ms,平均为下游节省 1100 个 token
从生产环境的追踪数据中生成这些数据,而不是厂商的营销页面。将表格保存在产品经理能看到的文档中。每季度更新一次,因为随着模型、基础设施和工具延迟的变化,转换率也在变。表格的意义不在于精确,而在于让权衡在双方都能认可的单位中变得可协商。
当你第一次把这张表放在产品经理面前时,对话的形式就变了。“把它变快”变成了“好吧,我愿意放弃其中的哪一项”。这才是你想要进行的对话。
