WeHub internal · lightweight gate

Codex Direct 与缓存 Token

输入团队约定的临时网站密码。这个前端密码只提供轻量摩擦,不等同于真正访问控制。

WeHub Token Monitor · Codex direct lesson

Codex Direct 与缓存 Token

这个页面解释为什么 direct Codex 会话会在 gross token 曲线上形成几亿级台阶,以及我们应该如何解读和使用这些数字。返回 统计逻辑说明Token Monitor

Generated: 2026-07-18T09:00:36+08:00
Latest sample: 2026-07-18T09:00:34+08:00

2026-07-18 · gross total
0.80亿

79,900,023 tokens

2026-07-18 · cached input
0.72亿

71,949,683 tokens

2026-07-18 · non-cached approx
0.08亿

7,950,340 tokens

一句话教训

长线程不要无限 fork / resume 继续跑;监控也不能把 fork 复制的历史再算一遍。 Codex child rollout 可能把 parent 的全部或尾部 token history 写进自己的 JSONL。那是 provenance replay,不是新的 provider 使用量。

新版 collector 先用 direct parent 与 fork cutoff 做 exact suffix-prefix 匹配,再累计 child 真正新增的正向 delta。只有后续真实模型调用再次处理大上下文时产生的 cached input,才会继续计入 gross。

rollout 在这里是什么意思

这里的 rollout 不是业务发布,而是 Codex Desktop 本地的一次会话日志文件,例如:

~/.codex/sessions/YYYY/MM/DD/rollout-...uuid.jsonl

collector 只读其中的 token metadata:event_msg / token_count / total_token_usage。它不读取 prompt、response 或工具输出正文。

total_token_usage 是累计电表读数。统计单位是相邻可靠状态之间的增量,而不是把多个 rollout 的最终电表读数相加。

现在半小时图如何计数

  1. Token monitor 每 :00 / :30 采样一次。
  2. root rollout 从零累计;跨日 rollout 从当天零点 baseline 开始。
  3. child rollout 若复制 parent history,exact replay 部分作为 inherited baseline 跳过。
  4. parent fork 后继续产生的 delta、每个 child 分支自己的 delta,分别只计一次。

因此图上的新增量代表监控可证明的日内 token delta。实际调用若在半小时内集中产生大量 cached input,仍会形成真实台阶;JSONL hydration/replay 本身不会再制造假台阶。

缓存 token 的含义

cached_input_tokensinput_tokens 的子集:请求携带的输入上下文中,有多少 token 的前缀命中了 provider prompt cache。它不是本地新增缓存文件,也不是在 total 之外额外再加一遍。

一个大上下文如果被连续请求复用,每次都会贡献 cached input metadata。因此 cached input 可以在短时间内累计到几亿,但 non-cached / effective token 会小很多。

最新 Codex direct 归因

这里的 non-cached 是 max(total - cache_read, 0) 的本地近似,不是 ChatGPT Profile 公式或供应商账单折算。

操作建议