我做 AI 产品踩的坑:成本考虑得太晚了

My mistake building AI products: thinking about cost too late

最近在测试自己做的 AI 产品时,我发现几项功能的实际开销明显高于预期。

这是一个 AI 求职产品,里面包括岗位扫描、匹配分析、公司研究和求职材料生成。单独看每一项功能,好像都没有夸张到哪里去:无非是搜索一些信息、分析一份职位、生成一份报告。

但把一次完整的使用流程连起来以后,问题就出现了。

从发现岗位、读取职位信息,到分析匹配度、研究公司,再到生成求职材料,一个完整循环可能花掉几美元。

对于偶尔测试一次,这个数字似乎还能接受。但如果每个用户使用一次都要花几美元,用户稍微增加,成本就会快速放大。

这显然不可持续。

一个功能,不等于一次模型调用

我之前没有充分意识到,用户在页面上看到的一个按钮,背后可能是一整条付费调用链。

例如,用户点击一次“研究这家公司”,系统可能需要:

  • 搜索多个来源;
  • 读取不同网页;
  • 补充缺失信息;
  • 分别分析几个维度;
  • 最后再生成一份综合结果。

如果某一步没有完成,还可能发生 continuation 或 retry。

表面上只生成了几百字,模型却可能已经搜索、阅读和处理了大量内容。

另一类隐形成本来自重复输入。

为了分析一个岗位,不同步骤可能反复读取同一份职位描述、用户职业经历、求职偏好和前一步生成的结果。最终输出不长,但相同背景已经被发送了好几遍。

所以,AI 功能的成本不能只看最后生成了多少字,也不能只数页面上有几个按钮。

真正要看的,是整个过程中发生了多少次调用、每次读了多少内容、用了哪些工具,以及失败和重试时又发生了什么。

让我停下来的,是整体成本已经不合理

有一次测试中,两次公司研究最终都没有生成可用结果,几个执行阶段加起来记录了大约 61 万 combined tokens。

这个数字不能直接换算成准确账单,因为当时的记录没有完整区分输入、输出、缓存和搜索内容。但它至少说明了一件事:即使页面最后显示“失败”,搜索、网页读取和模型处理也可能已经发生。

不过,失败也花钱只是问题的一部分。

真正让我停下来的是,回顾整个产品以后,我发现很多能力都没有被认真计算过:

  • 一次完整使用到底要调用多少次模型;
  • 哪些步骤真的需要 AI;
  • 哪些内容被重复发送;
  • 自动任务会在什么情况下持续花钱;
  • 一次搜索、分析或生成最多应该值多少钱;
  • 当用户从 1 个增加到 100 个时,这套方案是否还成立。

我之前更多是在判断功能是否合理、结果是否有用、流程是否完整,却没有把“得到什么”和“付出什么”放在一起逐项衡量。

每一项能力其实都有一个价格。

一份完整的岗位分析、一项公司研究、一份定制简历和一条简短消息,价值不同,所需要的成本也不同。不能只是因为它们都能由 AI 完成,就默认调用越充分越好。

成本考虑得越晚,补起来越不像一个小优化

发现问题以后,我原本以为需要做的是统计一下 Token,再给模型调用加几个上限。

真正开始处理才发现,事情远不止这些。

我需要先盘点所有功能:

  • 什么操作会产生付费调用;
  • 一次会调用几次;
  • 是否使用搜索或网页读取;
  • 是否有自动重试;
  • 失败后是否仍可能产生费用;
  • 哪些背景信息在不同步骤中被重复发送。

然后还要重新设计:

  • 哪些工作交给普通程序;
  • 哪些功能应该由用户主动触发;
  • 哪些信息可以缓存和复用;
  • 每项能力允许使用多少输入、输出和搜索;
  • 所有付费调用如何统一管理;
  • 成本下降以后,结果质量是否还能保持。

最后,还要把已经存在的功能逐个迁移到新的方案中。

这项工作花了好几天,也暂停了原本的功能开发。

成本考虑得越晚,最后补的越不是一个费用统计页面,而是一轮跨产品的架构调整。

如果重来一次,我会更早做三件事

产品设计时,先为每项能力写出成本假设

不需要第一天就建设一套复杂系统,但至少应该明确:

  • 这个功能是否需要 AI;
  • 是用户主动触发还是自动运行;
  • 一次预计调用几次;
  • 是否需要搜索或读取外部内容;
  • 单次结果大概值得支付多少;
  • 失败和重试如何处理。

成本应该和用户价值、功能范围一起被讨论,而不是开发完成后的附加项。

第二个 AI 功能出现时,建立统一调用入口

如果每个功能都各自连接模型,后面很难统一限制模型、调用次数、重试和预算。

第二个 AI 功能出现时,就应该开始建立最小的统一入口和使用记录,而不是等到产品里已经有十几条调用链再逐个迁移。

出现搜索、自动任务和多步骤流程之前,设置硬边界

只要功能开始涉及:

  • 网页搜索或读取;
  • 自动或定时运行;
  • 多个模型步骤;
  • 后台任务和并发;
  • retry 或 continuation;
  • 大文件和不确定长度的外部内容;

成本就可能不再稳定增长,而是出现很大的波动。

这时必须提前定义输入、输出、工具次数和单次费用上限。

最后

这次经历让我意识到,AI 产品不能只问:

这项能力能不能实现?

还要继续问:

每运行一次要付出什么?它带来的价值是否配得上这个价格?当使用量扩大以后,这个交换还成立吗?

成本不需要在第一天就被设计成一套庞大的系统。

但从第一天开始,每一项 AI 能力都应该有一张大致的价格标签。