AI 助手(Agent,能自己一步步干活、会调用工具的 AI 程序)的账单,要按「办成一件事」算,不能按「调了一次」算。真成本=单次成本×(1+重试率)÷成功率。三个数对不上,钱就漏在没人看的地方。
先看一个熟悉的场景。你打车去机场,路上堵死了,人还没到,计价器一直在跳。
重试就是这段堵车。每一圈都真实计费,账单上却不会写「这十二块是绕出来的」。AI 也一样:一次没办成,它重来一遍,前面那遍的钱不退。
所以按「调了几次」看账,永远看不出问题。按「办成了几件事」看账,堵车的钱立刻现形。
先说计价单位。模型按 token 计费,可以理解成它眼里的「字」。它把文字切成自己的小段来数,中文大约一个字到一个词。
单价按「每百万 token 多少钱」报。所以先要拿到两个数:一次调用用掉多少 token,成功那次的平均花费是多少。
三个数凑成一个式子,一行就够。
每次办成的成本 = 单次成本 ×(1+重试率)÷ 成功率
重试率是「多买了几遍」,算法是重试次数除以办成的事数。成功率是「买中了几次」,算法是办成的事数除以提交的事数。
两个数都在放大成本,而且是乘上去的,不是加上去的。这就是重试一多,账单跳得比预期狠的原因。
举个算例,数字是示例,不对应任何一家的报价。单次成本 10 美分,重试率 20%,成功率 85%,那么 10×1.2÷0.85=14.1 美分。
看到 10 美分,实际每办成一件事要付 14 美分。多出来的 4 美分就是堵车费。
只把重试率从 20% 压到 5%,成功率不动,摊到 12.4 美分。只把成功率从 85% 提到 95%,重试率不动,摊到 12.6 美分。两头一起动,11.1 美分。
单价照牌价取就行:输入 2 美元、输出 10 美元每百万 token(Anthropic 价目卡,生效日 2026-10-22)。按这个价,10 美分的单次成本是几万 token 的量级。
取价要连日期一起记。换档、调价、换分词器之后,三个月前的账还能对回去。
成功率上还有一个坑。一件要过六道工序的事,每道 97% 靠得住,六道全过的概率只有 83%。
这是 0.97 自乘六次算出来的。也就是说,六件里有近一件是白干的,前面付的钱一分不退。
步数越多,这个折损越明显。这是老板最容易漏看的一项,因为它不在任何一张报价单上。
看账单不用翻代码。打开服务商的用量页面和月度账单,找三个数就够。
| 看什么 | 在哪看 | 它说明什么 |
|---|---|---|
| 调用次数 | 用量页、月度账单总额 | 生意变好了,还是同一件事在反复调 |
| 失败重试 | 日志里「这是第几次尝试」那一列 | 除以办成的事数,就是重试率 |
| 缓存命中 | 用量页的缓存一栏 | 命中率低,等于每次都在付全价 |
第一个是调用次数。它最显眼,也最容易误读。这个数变大有两种可能:生意变好了,或者同一件事在反复调。分不清这两种,别急着砍预算。
第二个是失败重试。同一件事在一天里被调了两三次,多半是重试。用它除以办成的事数,就是重试率。超过两成,说明流程有毛病,不是模型太贵。
第三个是缓存命中。产品说明、话术、规则这类固定不变的内容,尽量放在每次对话的最前面。
服务商允许这部分只收原价的十分之一(缓存定价说明)。所以命中率越高,同一段文字付的钱越少。
命中率低,意味着每次都在为同一段文字付全价。三个数分开看,才知道该换模型、该改流程,还是该改产品。只看总额,这三件事永远糊在一起。
降重试有三招,顺序别换,因为第一招决定后两招安不安全。
一、幂等(同一个请求交两次,只生效一次)。像银行转账填流水号:网络卡住,你重点一次「确认」,钱不会被扣两回。
做法是给每个请求配一个编号,编号由业务内容算出来。写库时撞号就丢掉,不重复执行。
没有这一步,重试就是在赌会不会多退一次款。怎么知道生效了:同一个请求连发三次,库里只有一条记录。
二、早停。给每件事定两个上限:最多几步、最多花多少钱。到线就停,转人工,不再重试。
上限还是用那个式子倒推。假设每件办成的事你只肯花 12 美分,成功率按 85% 算,单次就不能超过 12×0.85÷1.05,约 9.7 美分。
怎么知道生效了:喂一个肯定办不成的任务,日志里应该出现「到线中止」,而不是第七次调用。
三、固定格式输出。要求它按你给的模板填空,字段名和字段数都定死。格式不对的,在生成那一刻就被挡住,不用等跑完再退回重来。
这一招只治格式错。格式对了、内容填错,重试没有用,只是把同一个错买第二遍。这类要记成缺陷,让人改流程。
怎么知道生效了:格式错的次数趋近于零,内容错的次数不变。不变的那部分才是要人看的。
还有一笔钱花得最冤:有些错重试一百次也不会好。限流、超时属于「等一会儿再来」,权限不够、参数缺字段属于「再来也没用」。
后一类每重试一次就白付一次钱。服务商的错误说明里,限流这类建议等一会儿重试。
但撞到消费上限的那种限流,不会告诉你多久后再试,重试到天亮也是失败(错误码文档)。
这一类要单列,别混进重试率里,否则你会得出「重试很有效」的错觉。
月末还要对一次账。拿账单总额除以办成的事数,和算出来的数比。差超过 2%,说明有调用没记到某件事名下,异步任务和后台批处理最常见。
先把这批补齐,再谈优化。
月度预算也由这个式子反推,别直接拍一个 token 总数。日办成 1000 件,每件 12.5 美分,按 30 天,留 20% 波动,一个月 4,500 美元(示例数字)。

落地顺序建议这样。先给日志补两个字段:每件事的编号,这是第几次尝试。没有这两个数,重试率算不出来。
然后上幂等,它决定所有重试安不安全。接着开缓存,改动最小、见效最快。
早停和固定格式放最后。前者要业务定线,后者要抽检质量,两件都得有人拍板。
最后回到预算表。第一行别写「每月 token 预算」,写「每件办成的事不超过 12 美分」。
下面挂四个数:一件事调几次、每次多少 token、重试率、成功率。四个数都从日志来,不从报价单上来。
只看月总额,你永远分不清是单价变了、重试多了,还是成功率掉了。这三件事的对策完全相反:换模型、改流程、改产品。
文中 10 美分、20%、85%、六道工序、4,500 美元都是示例。参数从自己的日志取,换一次模型就重算一遍。




