← 洞见AI 科普

Agent 的钱花在重试上

泛友数字2026/10/28 12:0348 阅读
Agent 的钱花在重试上

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 美元都是示例。参数从自己的日志取,换一次模型就重算一遍。