Codex 的核心消耗来自模型调用。更准确地说,是模型每次处理任务时消耗的 token。这里的 token 不只包括你输入的那句话,还包括 Codex 为了完成任务带上的项目规则、会话历史、相关代码文件、工具描述和执行结果。
所以很多人遇到"才用两天就限额",真正原因不一定是消息发得多,而是每一条消息背后的上下文太重。
图 1:Codex 限额和上下文关系
问题背景:为什么 Codex 才用两天就提示限额
第一次用 Codex 时,很多开发者会有一个误解:
我已经注册了 OpenAI 账号,是不是 Codex 就可以随便用了?
实际不是。
Codex 的入口可以安装,比如 CLI、IDE 扩展、桌面端等。但当你让它读代码、分析项目、生成修改方案、解释报错、运行命令时,背后依然要调用模型能力。
真正产生消耗的是模型处理内容时用掉的 token。
token 可以简单理解为模型世界里的"计价单位"。输入内容会消耗 token,模型输出也会消耗 token。更关键的是,Codex 不只会发送你刚输入的一句话,它还可能带上这些内容:
- 当前会话历史
- 项目说明文件,例如
AGENTS.md - 任务相关代码文件
- 命令执行结果
- MCP server 等工具描述
- 前面分析过但仍然留在上下文里的内容
一条"帮我改一下按钮颜色"和一条"读完整个项目并重构登录模块",在界面上看都是一条消息,但后者可能会触发目录扫描、多文件读取、依赖分析、方案生成和代码修改,实际消耗差别很大。
图 2:Codex 的消耗链路
结论先放在这里:
Codex 真正烧掉的不是消息条数,而是每次请求里携带的上下文。
两套计费逻辑:账号登录和 API Key 登录
使用 Codex 时,比较容易混淆的是登录方式。
Codex 常见有两套计费逻辑:一种是使用 OpenAI 账号登录,另一种是使用 OpenAI Platform 的 API Key。二者的账单互不相通,排查消耗时要先确认自己用的是哪种登录方式。
如果你是个人开发者,日常坐在电脑前用 Codex 改代码、查问题、写测试,使用 OpenAI 账号登录即可。
如果你要把 Codex 放进脚本、流水线、自动任务里跑,再考虑 API Key。
这里要注意三个点:
- OpenAI 账号登录的用量和 API Key 的用量是两套体系
- 账号下的用量和 API 账单是两套入口,排查时要先确认自己走的是哪套登录方式
- 看到限额或扣费异常,第一步不要急着解决,先确认当前 Codex 使用的是账号登录还是 API Key 登录
图 3:账号登录和 API Key 登录的账单差异
为什么限额消耗很快:上下文比消息条数更关键
很多人看到限额提示时,会觉得不合理:
我今天也没问几条,为什么额度没了?
原因通常是每条消息太重。
下面这两种请求,在消耗上完全不是一个量级:
- “解释一下这个函数”:读取一个函数或一个文件片段,上下文较小
- “读完整个项目,帮我重构登录模块”:扫目录、读多个文件、分析调用链、生成方案、修改代码,上下文很大
Codex 的一次复杂任务,可能包含这些步骤:
- 读取目录结构
- 读取多个源码文件
- 理解项目规则
- 分析依赖关系
- 生成修改方案
- 执行命令并读取输出
- 根据报错继续修复
- 输出最终说明
这些内容都会增加输入或输出 token。
图 4:常见上下文消耗来源
所以排查限额问题时,不要只问"我发了多少条消息",应该问这几个问题:
- 有没有让 Codex 读大文件?
- 有没有让 Codex 处理整个项目?
- 有没有一个会话持续聊很久?
- 有没有把无关规则和工具一直挂在上下文里?
- 有没有每个任务都用重模型?
如果答案是有,那么"几十条消息就触顶"并不奇怪。
如何控制请求上下文大小
核心不是少用,而是减少无关上下文。
需求范围写清楚
不要这样写:
帮我优化一下这个项目。
更推荐这样写:
只检查登录模块的输入校验,先看
auth相关文件,给出修改方案,不要直接改。
范围越明确,Codex 越少乱翻文件。
如果你已经知道相关文件,最好直接给出路径。例如:
app/src/main/java/.../LoginViewModel.ktfeature/auth/articles/codex-pricing/codex-pricing-csdn.md
这类明确路径能显著减少无关扫描。
给AGENTS.md瘦身
AGENTS.md是项目规则文件,能帮助 Codex 按你的要求工作。
但它不是越长越好。
如果根目录写了几百行规则,Codex 每轮任务都要背着这些内容跑,输入上下文自然会变大。
更合理的方式是分层:
- 根目录只放通用规则
- Android 模块放 Android 相关规则
- 后端目录放后端相关规则
- 文章目录放写作规则
规则按目录分层,比把所有规则堆在根目录更可控。
MCP server 按需开启
MCP server 会把工具能力接入 Codex,但工具描述本身也可能进入上下文。
如果一个任务根本用不到某些工具,就没必要全部常驻。
推荐原则很简单:
用到再开,用完就关。
比如写文章时不一定需要数据库 MCP,调 Android 页面时也不一定需要所有文档检索工具。
常规任务使用轻量模型
不是所有任务都需要重模型。
这些任务可以考虑使用更轻的模型:
- 看目录结构
- 改简单文案
- 补一个小测试
- 修改局部函数
- 解释一段简单代码
复杂架构分析、大型重构、疑难 bug,再使用重模型。
换任务时开新会话
一个会话聊太久,会让旧上下文不断参与后续请求。
如果上午在排查登录问题,下午开始写文章或改另一个模块,建议开启新会话。
在 Codex CLI 中,可以使用/new开新对话,避免旧上下文拖累新任务。
实用命令:用/status和/model建立用量感知
排查 Codex 用量问题,建议先建立自己的"用量感知"。
启动 Codex:
codex在 Codex 会话中查看当前状态:
/status重点关注:
- 当前模型
- 当前会话配置
- 上下文情况
- 用量相关提示
在 Codex 会话中切换模型:
/model如果你知道自己要使用的模型,也可以在启动时指定:
codex--model<model-name>查看版本:
codex--version建议做一个简单测试:
- 新开一个项目目录
- 启动 Codex
- 让它只查看目录结构
- 输入
/status - 再让它读一个大文件
- 再输入
/status
对比两次状态,你就能直观看到不同任务对上下文和用量的影响。
图 5:Codex 用量检查流程
常见问题排查
为什么账号有付费,还是提示限额
付费不等于无限用。即使是有额度上限的账号,如果任务经常包含大项目、长会话、多文件分析,也可能很快触发限额。
优先检查:
- 是否长会话未清理
- 是否任务范围过大
- 是否所有任务都用重模型
- 是否
AGENTS.md或 MCP 工具描述过多
API Key 登录后,为什么账号用量没有变化
这是两套体系。
API Key 走 OpenAI Platform 的账单,账号走账号用量。二者不会互相影响。
为什么同样是几条消息,有时消耗差很多
因为消息复杂度不同。
简单问答可能只消耗少量上下文,大型代码库分析会带上更多文件、规则、命令输出和历史信息。
图片、表格、长文会不会影响 Codex 消耗
如果你让 Codex 读取这些内容,它们都会增加上下文。
尤其是长文档、长代码文件、长会话历史,都会让单次请求变重。
总结
Codex 的消耗问题,本质不是选哪一档,而是先理解它怎么消耗。
记住这几条:
- Codex 工具入口不是消耗核心,模型处理能力才是
- 账号和 API Key 是两套体系
- 消耗看上下文,不只看消息条数
- 控制上下文,比任何事后处理都重要
- 用
/status和/model建立自己的用量感知
最后一句话:
Codex 消耗大,很多时候不是模型的原因,而是你每次让它背了太多无关上下文。
参考资料
- OpenAI Codex CLI:https://developers.openai.com/codex/cli