很多 AI SaaS 的毛利表坏在第一列:只填了月收入和模型账单,没有把 token 类型、重试、缓存命中、后台任务、滥用和固定成本分开。这样算出来的毛利看起来很高,等 p99 用户、爬虫或批量导入任务出现,账单才会露出真实形状。

这篇只讨论产品自己的 unit economics。relay、proxy、gateway 都不是商业模式本身;它们最多改变 API 调用成本、可用性、错误透明度和账单导出质量。

AI SaaS 毛利到底算什么?

最小公式先写清楚:

单用户毛利 = 单用户收入
  - 模型/API 成本
  - 支付与退款成本
  - 存储、向量库、队列和日志分摊
  - 失败重试、超时和人工回补成本
  - 滥用、免费额度和促销额度损耗

毛利率 = 单用户毛利 / 单用户收入

如果你要和传统 SaaS 对齐,支付费、客服和基础设施归类可能会有差异。早期独立开发者不用纠结会计科目,先保证同一张表每个月口径一致。

更重要的是不要只看平均用户。AI 产品的成本常见长尾来自三类人:上传超长文档的人、反复重试的人、把免费额度脚本化调用的人。价格表要能覆盖 p90 用户,风控要拦住 p99 异常用户。

一次请求要拆成哪些成本项?

LLM 请求不是一个总 token 数。Anthropic 的 pricing 和 prompt caching 文档把输入、输出、cache write、cache read 分开计价;这正好也是 SaaS 成本表该采用的口径。

成本项记录字段为什么单独算
普通输入 tokeninput_tokens用户问题、检索片段、未缓存上下文都在这里
输出 tokenoutput_tokens通常比输入更贵,也是长回答烧钱来源
缓存写入cache_creation_input_tokens第一次写入会产生额外成本,不能误当免费
缓存读取cache_read_input_tokens命中后成本下降,但只对重复前缀有效
工具与系统开销tool_name, tool_tokensfunction/tool schema、系统提示词会进入输入成本
重试与失败retry_count, error_code429、5xx、超时会让同一用户成本翻倍
离线任务job_type, batch_idBatch 成本和同步请求不同,SLA 也不同
通道倍率provider, channel_multiplier官方直连、云平台、relay/proxy 都要落成一个倍率

只要日志里缺这几列,毛利优化就会变成猜谜。你可能以为用户在消耗模型,实际是某个失败重试循环在烧钱。

能不能用一个示例算清楚?

下面是一个假设的文档摘要 SaaS 单用户月账。模型价格使用 Anthropic pricing page 在 2026-05-22 可见的 Claude Sonnet 4.6 示例口径:普通输入 3 美元/MTok、输出 15 美元/MTok、5 分钟 cache write 为 1.25 倍输入价、cache hit 为 0.1 倍输入价;Batch API 在该页列为输入和输出 50% 折扣。你的产品必须回到官方页面和自己的账单后台重算。

项目假设计算单用户月成本
月收入Pro 套餐 29 美元收入29.00 美元
支付费示例占位 3%,以上线账户为准29 × 3%0.87 美元
同步普通输入80 次 × 1,000 tokens80k × 3 / 1M0.24 美元
同步输出80 次 × 500 tokens40k × 15 / 1M0.60 美元
缓存写入10 次 × 8,000 tokens80k × 3.75 / 1M0.30 美元
缓存读取70 次 × 8,000 tokens560k × 0.30 / 1M0.17 美元
离线 Batch20 个后台任务30k input × 1.5 / 1M + 6k output × 7.5 / 1M0.09 美元
存储与日志分摊向量库、队列、监控、邮件内部分摊1.20 美元
重试/滥用缓冲模型成本约 10%约算0.14 美元
合计成本不含客服与税成本合计3.61 美元
单用户毛利29 - 3.6125.39 / 2987.6%

这个结果不是行业均值,只是计算口径。只要用户行为变成 20 次长文档、10 次 Agent 工具链、输出 token 放大 5 倍,毛利会立刻变形。

上线前至少再做三档压力测试:p50 普通用户、p90 重度用户、p99 异常用户。套餐只按 p50 定价,等于把亏损用户交给运气。

token metering 应该怎么落库?

不要等账单来了再倒推。每一次模型调用都应该写一条成本事件,至少包含这些字段:

字段示例用途
user_id / workspace_idu_123, ws_9单用户和团队分摊
featuredoc_summary, chat, agent_run找到烧钱功能
modelclaude-sonnet-4-6不同模型单价不同
input_tokens / output_tokens1000, 500成本基础
cache_read_input_tokens8000计算缓存命中收益
cache_creation_input_tokens8000识别写入成本
is_batchtrue/false区分离线任务和同步体验
retry_count0, 1, 2找出网络、限速和模板问题
provider_status200, 429, 529判断失败成本来源
charged_units1 summary, 3 credits对外计费单位

成本看板不要只给总账单。至少每周看四张表:用户成本排行、功能成本排行、模型成本排行、失败重试排行。只要某一张表突然集中到一个用户或一个功能,就先加配额和告警,再谈降模型。

prompt caching 什么时候能救毛利?

缓存适合重复前缀,不适合每次都变化的短请求。Anthropic 文档里,prompt caching 可以覆盖 tools、system、messages 的完整前缀,并把 token 分成 cache creation、cache read、普通 input 三类。

适合缓存的内容:

  • 长系统提示词、输出格式和安全规则。
  • 稳定的 tool schema。
  • 同一个 workspace 反复使用的文档前缀。
  • 多轮 Agent 工作流里的固定上下文。

不适合缓存的内容:

  • 用户每次随手输入的短问题。
  • 每次召回都不同的 RAG 片段。
  • 还在频繁改的 prompt 模板。
  • 命中率无法按 workspace 稳定复现的内容。

定价上要保守,按无缓存成本能活来设计套餐,再把稳定命中率视为额外毛利。把缓存收益写进价格承诺,会让一次 prompt 改版变成一次毛利事故。

Batch jobs 应该放进同一张毛利表吗?

要放进同一张表,但不能和同步请求混在同一行。Batch 更像后台生产任务:便宜、慢、可重跑,也更依赖队列、状态机和失败回补。

适合进 Batch 的任务:

任务用户是否等待成本处理
夜间摘要不等待低优先级队列,单独预算
批量分类不等待按 job 计成本,失败行单独重跑
历史数据重算不等待放低峰期,设置日预算
聊天回复正在等待不进 Batch,走同步或短异步
付款后首屏生成正在等待不进 Batch,避免体验断裂

产品上要给用户一个人能理解的状态:已接收、排队中、处理中、完成、部分失败、失败。后台再保留供应商原始状态和 batch id。

用户 tiers 怎么约束毛利?

AI SaaS 不适合真正的无限量。更稳的结构是每一档都有成本上限,超出后升级、降速或购买用量包。

套餐层级成本护栏适合放的模型策略
Free邮箱验证、低月额度、日限速、禁止批量导入小模型、短输出、无 Batch 优先级
Starter月请求数或任务数上限、超额提示主力模型 + 输出长度限制
Pro更高额度、workspace 级预算、可购买用量包主力模型 + 缓存 + 少量高阶模型
Teamseat + 用量池、预算告警、管理员报表模型路由、Batch 优先级、审计日志
Enterprise合同额度、单独限额、人工支持可谈私有折扣和 SLA

定价时不要把内部 token 直接丢给普通用户。开发者工具可以显示 token,业务用户更容易理解「文档页数」「摘要次数」「项目额度」「团队用量池」。内部照样按 token 算,外部用用户懂的单位卖。

滥用和重试为什么是毛利问题?

免费额度、失败重试和爬虫调用不是安全团队的边角料,它们会直接打穿 COGS。尤其是 Agent 类产品,一次用户点击可能触发检索、工具调用、模型调用和回写,多重试两次就不是小数。

基础护栏要早于增长投放:

  1. 每用户、每 workspace、每 IP 维度的日预算。
  2. 免费用户限制并发、长文档和高价模型。
  3. 失败重试使用指数退避,并设置最大重试次数。
  4. 高成本动作前给用户确认,例如全库重算或超长文档分析。
  5. 输出 token 设置上限,允许用户手动继续,而不是默认生成到最大值。
  6. 异常用量触发软停机:暂停高成本功能,保留登录和账单页。

这些规则会牺牲一点转化,但能换来可预测毛利。早期产品最怕的不是用户少,而是少数异常用户把每月现金流吃掉。

relay/proxy 什么时候只是 ops 变量?

如果你做的是终端 AI SaaS,用户买的是结果,不是 token。relay/proxy 只是后端通道变量,应该写进成本表,而不是写进价值主张。

可以这样建模:

实际 API 成本 = 官方模型价 × 通道倍率
  + 通道导致的失败重试成本
  + 账单差异和人工比对成本

评估一个通道只看四件事:错误码是否透明、token 明细能否导出、是否支持你需要的缓存/批处理/流式能力、故障时能不能快速切回。它如果只是便宜,但让你看不到每个用户的真实用量,长期会伤害毛利模型。

换通道不会修复错误定价。9 套餐没有额度、免费用户能跑高价模型、Batch 没有日预算,这些问题不会因为 endpoint 变化而消失。

价格护栏怎么写进上线清单?

上线前给自己一张红线表:

护栏触发线动作
单用户月模型成本超过套餐收入的 30%限速、提示升级或购买用量包
workspace 月成本超过团队预算 80%管理员邮件和站内提醒
失败重试率单功能一周超过 5%暂停自动重试,排查错误码
cache hit rate连续两周低于预期取消缓存收益假设,重算套餐
Batch backlog快到承诺完成时间提高付费任务优先级
免费额度消耗单日异常集中加验证码、邮箱验证或人工审核

真正可运营的 AI SaaS 毛利模型,不是一次 Excel 测算,而是产品里的配额、日志、告警和价格页一起工作,把每个 token 归到用户、功能和任务,再决定要涨价、降模型、开缓存、上 Batch,还是调整套餐限制。

相关阅读