很多人第一次接 GPT-5.3 Codex,看到价格页只有几个单价数字,一到月底账单却和预估差出一大截——因为 Codex 这类编程模型的花费不在单价上,而在「一轮任务实际烧掉多少 token」。这篇不背单价,只讲怎么查当前价格、怎么按你的调用方式估一次成本、以及账单偏了先查哪几项。
很多人第一次接 GPT-5.3 Codex,看到价格页只有几个单价数字,心里大概一算就觉得能接受。结果月底账单出来,跟预估差出一大截。问题不在单价上——Codex 这类编程模型的花费,主要取决于「一轮任务实际烧掉多少 token」。同一道题,上下文带多少、工具调几次、重试几遍,最后的总价能差好几倍。
这篇不背单价。单价随时会调,背下来也没用。我们只讲三件事:当前价格该去哪查、怎么按你的调用方式估一次成本、账单偏了先查哪几项。看完你手里应该有一张能自己更新的估算表,而不是一个记在备忘录里的死数字。
价格别背,先去这几页对当时的数字
做预算前的第一个动作,永远是打开站内官方价目页看当天口径。模型的单价会随官方调价、档位调整变动,任何写死的数字都可能过期。与其记住一个数,不如记住「去哪看」这个动作——每次做预算前花两分钟对一遍,比背十遍都稳。
| 看的表 | 它是什么 | 什么时候用它 |
|---|---|---|
| 官方按量价 | 官方直接定价的基准口径 | 算最原始的每 token 成本时 |
| 订阅档位价 | 包月/包量的额度方案 | 评估长期稳定用量能不能更省时 |
| 中转站折算价 | 在官方基准上乘倍率后的价 | 接入第三方通道时对账用 |
- 官方按量价:基准,一切比价都回到它这里对齐
- 订阅档位价:包月额度,适合长期稳定、贴近上限的用量
- 中转站折算价:第三方通道在基准上乘倍率,单位口径可能不一样
- 比价前先对齐单位:按 token、按次、按额度点,单位不同数字没法横向看
Codex 这类编程模型,钱到底花在哪几块
一轮编程任务通常不是一次请求就结束。读文件是一次调用,改代码是一次,跑命令验证是一次,失败了重试又是一次。每一步都带着上下文,上下文越长,单次越贵。所以你付的不是「一个问题一次响应」的钱,是这一整轮任务里所有调用的总和。
而且输入和输出是分开计价的。编程任务里,输入侧——贴进去的代码、历史对话、工具返回的结果——往往远大于输出侧。只盯输出单价的人,几乎一定会低估。真正的大头在你每次塞进去的上下文长度上。
- 多轮调用
- 一次任务里的读文件、改代码、跑命令、重试,每次都是一次带上下文的调用
- 输入侧
- 你贴进去的代码、对话历史、工具返回,通常比输出大得多
- 输出侧
- 模型最终写出的那部分内容,单价通常更高但体积小
- 缓存命中
- 走另一套计价口径,会影响预估,具体生效方式站内已有专文
按「一次任务」估,而不是按「一次调用」估
- 跑一个典型任务在真实的编辑器里做一件你日常会做的事,别挑最简单的,也别挑最复杂的,取中间那种
- 捞出三个数字从用量日志里找这次任务的输入 token、输出 token、请求次数。这三个数是你的成本基数
- 换算到月基数乘以你一天大概跑多少个这样的任务,再乘工作日数,得到月度用量。这一步比纠结单价准得多
- 定期重测换模型、换上下文策略、换客户端之后,基数会变。别一直用上个月的数字
这里的关键是「典型任务」的定义。如果你日常既有改一行的活,也有整模块重构的活,那就分别测两个基数,估的时候按比例加权。用一个平均数的坏处是,当重构任务占比升高时,你的预估会突然失准,而你找不到原因。
给团队做预算:三档估法一起写
给团队做预算最忌讳只写一个数。一个人的用量波动已经不小,几个人共用一个 key,波动会被放大。稳妥的做法是三档一起写进方案,让看预算的人知道最坏情况在哪。
| 档位 | 怎么算 | 适用阶段 |
|---|---|---|
| 保守档 | 按测得的最贵一次任务估 | 刚接入、使用习惯还没成型 |
| 日常档 | 按一周实际用量的中位数乘工作日 | 已经稳定使用的团队 |
| 上限档 | 给重试、长上下文、多人共用 key 各留余量 | 需要提前定闸值、明确超支后果 |
- 保守档用来确认最坏情况能不能承受
- 日常档用来做常规审批和月度对照
- 上限档要配套一句:超出之后是停还是继续
- 不管哪档,都要写清楚成本归属到哪个团队或项目
账单和预估对不上,按这个顺序排查
账单出来跟预估差很多的时候,人的第一反应是「是不是涨价了」。多数情况下不是。按下面这个顺序查,能少走很多弯路。
- 先对单位你算的是不是官方按量口径,实际结算是不是走了订阅或中转倍率。单位没对齐,后面全白查
- 再拆用量把账单里的输入、输出、缓存写、缓存读四项分开,看是哪一项超出预期。多数异常集中在输入侧
- 查漏掉的调用自动化脚本、定时任务、多人共用的 key、客户端后台重试,这些都在花钱,但常常不在你的估算里
- 最后才怀疑单价前面三步都排除了,再去对比官方价目页的口径变化
这个顺序反过来的话,你容易在「单价是不是涨了」上耗掉半天,而真正的原因往往是你这边的调用量口径变了——比如某个脚本从每天跑一次变成了每小时跑一次,没人注意到。
包月订阅和按量 API,什么时候该换过来
这两种方式不是谁绝对更划算,而是看你的用量形状。判断标准很简单:你的用量是不是长期稳定、且贴近订阅额度上限。如果是,订阅档位通常更省;如果波动大、经常停摆,按量更合适。
| 你的情况 | 倾向哪种 | 理由 |
|---|---|---|
| 用量稳定、长期偏高、贴近上限 | 订阅档位 | 摊薄后单价低,但超限要降速或等重置 |
| 用量波动大、经常停摆 | 按量 API | 不用担额度到期作废,用多少算多少 |
| 需要在服务端批量跑任务 | 按量 API | 灵活,方便按任务拆分核算 |
| 两种混用 | 分开归属 | 否则团队内部算不出谁花了多少 |
混用的时候成本归属一定要分清。同一个 key 既跑交互式任务又跑批处理,月底你根本分不清是哪边超的。站内已有免费额度与付费额度分摊的专门文章,这里只强调归属这件事要在接入时就设计好,不要等对不上账再补。
能落地的几个降本动作
降本不等于省单价,更多是省「每轮任务携带的上下文体积」和「调用次数」。下面几个动作不涉及缓存原理,都是改习惯就能做的。
- 拆任务:把一次大重构拆成几次小改动,减少每轮要携带的上下文
- 控制输入:只把相关文件贴进上下文,不要把整个仓库塞进去
- 按任务选模型:改一行代码和做一次架构级重构,没必要用同一个档位
- 批量任务挪到便宜通道或时段,但先算清等待时间值不值
这些动作里,效果最直接的是控制输入。很多人习惯把一整个目录贴进去求个安心,结果每轮都在为那些用不上的文件付钱。养成「只带相关文件」的习惯,长期下来省的不是小数目。至于具体能省多少,跟你的项目结构关系很大,到 /tools/token-counter 用你自己的样本量一下最准。
每月一次的成本核对清单
把上面这些固化成一个月度动作,比每次出问题再临时查要省心。清单不长,半小时能做完,但能让你在下个月账单出来之前就知道会不会超。
- 对照官方价目页,确认当月单价口径有没有变,到 /official-api 核对
- 把当月账单的输入、输出、缓存四项和上月对比,异常项单独找原因
- 重测一次典型任务的成本基数,更新你的估算表
- 把超支的调用来源写下来,下个月要么限流要么换方案
这份清单不适用于完全没有用量波动的场景——如果你的调用量几个月都一样,重测基数那步可以频率放低。但只要团队里有人在用、或者有自动化脚本在跑,就建议按这个节奏走。
下一步先去站内价目页对一遍当天口径,再用你自己的典型任务量一个成本基数,两张纸放一起就是你自己的估算表。中转接入的话,顺手到中转站可信度检测那边看下通道的实际计价口径对不对得上。→常见问题
GPT-5.3 Codex 的 API 价格是固定的吗?
不固定。官方会调价、会调整档位,中转站还会在此基础上乘自己的倍率。所以不要记数字,做预算前先去站内官方价目页看当天口径,尤其注意你实际走的是官方直连、云托管还是中转,三者价钱不一样。
为什么我按单价算出来的钱和账单差很多?
最常见的原因是按「一次调用」估而实际是「一轮任务多次调用」,输入侧 tokens 被严重低估;其次是单位没对齐,比如你按官方按量算,实际走的是订阅或中转倍率;再就是漏算了脚本、重试和多人共用的 key。
订阅和按量 API,我该选哪个?
看用量稳不稳。每天都要跑、量长期贴近订阅额度上限的,订阅通常更划算;用量波动大、需要服务端批量跑、或者不想被额度限制卡住进度的,按量更省心。两边混用时要先把成本归属规则定清楚。
降本最先该动哪一步?
先动输入侧。编程任务的成本大头往往是上下文,减少每次携带的文件量、把大任务拆小,效果通常比换模型更直接。换模型、上缓存这些动作要等输入侧控制住之后再评估,否则省下来的会被浪费掉。
多久重测一次成本基数比较合适?
建议每月一次,和账单核对放在同一个流程里。如果中途换了客户端、改了调用方式、或者团队人数有变化,就额外重测一次。一直沿用旧基数做预算,偏差会越滚越大。