昊梵体育网

我被一条“77万输入、648输出”的账单打醒后,才懂:最贵的是乱

今天是我用 Codex 的第五天,我被一条“648 output / 778,506 input / 3.5K cach

今天是我用 Codex 的第五天,我被一条“648 output / 778,506 input / 3.5K cached / 3.9 美元”的账单直接打醒了。

那一刻我突然明白,真正昂贵的不是 AI 说了多少,而是我开始用海量上下文,去掩盖自己没有把问题说清楚这件事。

很多人第一次看到这种账单,第一反应都会盯着输出看。模型明明只吐了 648 个 token,钱怎么会一下跳到 3.9 美元?

可这组数字最扎人的地方,根本不在后面的 648,而在前面的 778,506。

这不是一张“模型太贵”的账单,这更像一张“提问方式体检报告”。

真正吞钱的,从来不是答案,而是你没收口的问题

一条请求通常至少有三块成本:普通输入 token、命中缓存的输入 token,以及模型新生成的输出 token。

这次我只拿到 648 个输出,却付出了 778,506 个输入,缓存命中还只有 3.5K。翻成人话就是一句话:

我不是在为答案买单,我是在为自己的模糊、犹豫和不收口买单。

以前我总以为,把更多上下文贴进去,等于更认真;把更多文件、日志、schema、历史对话一起喂进去,等于更容易得到好结果。

现在我反而越来越确定,很多高成本请求,本质上不是 AI 难用,而是人把“定义问题”这一步偷懒了,然后把偷懒的代价,转嫁给了 token。

聊天越聊越贵,不是因为模型记性太好,而是你一直在重复搬运旧上下文

我之前一直想不通,明明前面都聊过了,为什么后面还会继续花钱。

后来我才真正想明白,多轮调用里,很多客户端会把此前的消息继续塞回下一轮请求体,让模型保持上下文连续。所以你以为是在“接着聊”,实际上系统常常是在“把旧内容重新带进场”。

这里最容易被误解的一点是:

旧消息重新出现,不等于一定按全价重算;真正决定价格的,是它有没有命中缓存。

如果前缀稳定,这部分会走 cached input 的低价;如果前缀不稳定,它就会重新回到普通 input 里继续吞钱。

也就是说,真正该追问的不是“为什么历史又出现了”,而是“为什么这次历史没被便宜复用”。

我这次只命中 3.5K,已经很诚实地说明了一件事:

我以为自己在复用上下文,实际上我一直在反复重建上下文。

最容易被低估的成本,不是模型单价,而是前缀不稳定

Prompt Caching 真正要求的不是“差不多一样”,而是 exact prefix match。

system prompt 变了、tools 顺序变了、schema 变了、前面插了时间戳、动态变量、额外空格,甚至不是在末尾追加消息,而是回头改写前面的老消息,都会让原本可能命中的缓存突然失效。

所以我后来越看这张账单,越觉得它像是在提醒我:

AI 时代真正值钱的能力,不只是会提问,而是会把前缀稳定下来,会把任务拆开,会知道哪些材料必须进场,哪些材料根本不该出现。

说得再直接一点,很多人嘴上在研究模型价格,实际真正浪费钱的地方,是他们根本没有学会管理上下文。

token 不是按字数算的,很多人其实是在为“无效复杂度”买单

看到这条账单之前,我对 token 的直觉也不够准。

我会本能去看字符数、字节数、文件大小,好像文本越短就一定越便宜。可模型看的不是“你觉得短不短”,而是分词器切出来的片段。

这也是为什么很多 JSON、日志、工具定义、结构化 schema,肉眼看着不长,实际却非常吃 token。因为在模型眼里,它们会被切成大量碎片: 花括号、引号、冒号、逗号、key、value、缩进、换行,全都要算钱。

所以真正该省的,不是删掉两句人话,而是别再把那些根本不该一起进场的长历史、长日志、长 schema,当成一种“认真工作”的姿态。

很多时候,你不是在给 AI 更多帮助,你只是在给 AI 更多噪音。

这张账单让我真正学会的,是先止损,再提问

如果把接下来 14 天当成一次止损观察期,我现在只盯几件事:

第一,单次 input 如果远高于 output,而且不是高一点,而是几十倍、上百倍,那就先别急着继续追问。

第二,cached_tokens 占比如果很低,说明稳定前缀根本没建立起来。

第三,输出明明很短,前面却塞了大量日志、代码、schema、工具定义和历史对话,这往往不是复杂,而是失控。

第四,一个本来能拆成几步的小任务,被我硬打包成“你先把所有东西看完再一次性解决”,这通常是最贵的问法。

第五,单次高成本已经出现了,我却还不收紧上下文、不重置线程、不精简参数,那这就不是偶发,而是在培养坏习惯。

所以我现在给自己定了 6 条止损规则:

先给上下文设硬上限。把任务拆开。能稳定的前缀尽量稳定。别把“全贴进去”误当成认真。常规任务不默认开高推理。一旦出现异常账单,先停下来检查请求设计,而不是继续加料。

我最后真正被教育到的,不是计费规则,而是 AI 时代的新分水岭

这几天我的 token 累计已经到了 21 亿。看到这条 3.9 美元明细之前,我其实还没有真正把这件事当回事。

可当778,506 input / 648 output / 3.5K cached这组数字摆在眼前时,我一下子想通了:

不是工具忽然坏了,也不是平台故意坑你。

只是我们终于得承认,如果不主动管理上下文,不主动约束请求,不主动识别异常请求,再强的 AI,也会被我们自己喂成一个昂贵的黑箱。

所以现在我越来越相信,AI 时代最先拉开差距的,未必是谁知道更多提示词技巧,而是谁能更快把任务收口,谁能更清楚地定义结果,谁能更冷静地删掉那些根本不该进场的上下文。

说到底,贵的不是 AI。

贵的是一个人明明没有想清楚问题,却想靠超长上下文把自己糊弄过去。

你最近一次最离谱的 AI 账单,真正贵在了哪里?是模型输出太多,还是你后来才发现,最吞钱的其实是那些原本就不该一起带进去的上下文?