Skip to content

Token 用量 ​

大多数智能体都会记下自己花了多少,而每一个又都把这个数字记在它自己的会话记录里、用它自己的格式、放在它自己的目录下。Token 用量就是把它们汇总到一起的那个地方:跨越每个文件夹、每个智能体,在你选定的任意时间窗口内,你的智能体究竟消耗了什么。

它回答的是那些在单次对话里回答不了的问题。哪个项目最费钱。换的那个新模型是不是真的更便宜。你的上下文有多少是从缓存里拿的、而不是按原价重算的。以及在一个普通的星期里,你到底是什么时候在写代码。

从哪里进去 ​

状态栏里的会话计数——底边上那句"N conversations"——就是入口。点它,Codeg 就会打开这份报告。没有别的东西需要配置。

全新安装时,页面会显示还没有可统计的数据,并提供统计我的会话:Codeg 得先把你的智能体会话记录读一遍,才有东西可加。此后它会随着你的使用自己保持更新。

页面顶部的会话数是特意与状态栏那个数字对齐的——把时间范围调到全部时间,两个数字就会一致,而不是留给你去猜哪一个在骗人。

它统计的是什么 ​

Codeg 不估算 token 数。它读的是每个智能体自己写下来的用量——每回合的输入、输出、缓存写入与缓存读取——直接取自那个智能体自己的会话记录,并按回合存成一行,这样画一张图就不必再把几个 GB 的历史重新解析一遍。

这个同步是增量的:只有当一次对话的记录自上次以来发生过变动时才会重新解析,其中也包括导入的会话在智能体自己的 CLI 里长大之后重新进入视野的那一刻。一次解析为空,绝不会抹掉已经记录下来的用量。

有几条推论值得知道:

  • 这些数字是智能体的数字。 Codeg 做的是加法,不是计量——所以你在这里看到的就是你的服务商看到的,前提是智能体如实上报了。
  • 什么都不记录的智能体,贡献不了任何 token。 Cursor 在任何地方都不写 token 计数,Kiro CLI 记下的每个计数都是零,因此它们的会话不会为总量、各类拆分或「消耗最高的会话」增加任何东西——给出一个信誓旦旦的零,比什么都不给更糟。但它们仍然算作会话,因为顶部那个会话数跟随的是你的工作区列表、而不是 token 表,这也正是它能与状态栏保持一致的原因。所以如果 Cursor 确实是你常用的一员,看那些「每次会话平均」时请记得:分母里包含了一些根本无法贡献数据的会话。
  • token 是数出来的,价格是估出来的。 自 0.35.2 起,页面还会告诉你这些 token 按各服务商的 API 标价算要花多少钱——这是一个估算,也明确标成估算,而且绝不是你的账单:你实际付多少取决于你的套餐。→ 按标价算要花多少钱
  • 维度是实时读的。 文件夹、智能体和删除状态都是从对话本身关联出来的,所以移动一个文件夹或删除一个会话,不用重新同步就会反映到报告里。
  • Hermes 是按会话而不是按回合上报的。 它每条消息的记录里没有输入/输出的拆分,所以只统计逐回合用量会把这些对话报成零——一个信誓旦旦的错数字。因此它的会话总量会作为单独一条写入,落在该会话最后一个回合的时刻上。对总量和各类拆分都是对的,只在时间轴上偏粗。
  • Grok 的数字在 0.26.2 之前是错的。 每个 Grok 会话都读成输出 0、缓存读取 0、缓存写入 0,因为 Codeg 读的是上下文窗口占用了多少,而不是这个会话花掉了多少——在一个抓到的会话里,显示 26,827,实际用掉 495,523。现在这四个桶来自 Grok 自己的逐回合数字,加起来等于它自己的总量。上下文圆环不受影响:占用率本来就是它一直在测的东西。那次修复本身并没有回头把你的历史扫一遍——一个 Grok 会话要等它下次有变动时才会被重新读取,而那些一直没变过的旧会话会保留原来的数字,直到全量重建——但 0.35.0 和 0.35.2 随版本带来的全量重建会把每个智能体都重读一遍,Grok 也在其中,所以只要在这两个版本中的任意一个上跑过一次同步,每个会话记录仍然可读的 Grok 会话就都换成了新数字。
  • Cline 3.0.66 及之后的版本统计输出时不含推理。 从这个版本起,推理模型的输出数字不再包含它的推理 token,因此同样的工作,读数会比以前低。
  • Codex 从 0.35.0 起不再把缓存写入算作新输入。 它的输入一栏会变小、缓存写入一栏会被填上,而总量保持不变。CodeBuddy 的总量在同一个版本里变大了,因为以工具调用结束的请求现在也被计入了。
  • Qoder 的子智能体自 0.35.2 起才被计入。 在那之前,它们花掉的根本没有被统计,所以一个 Qoder 会话重新统计之后,总量会变大。
  • 从 0.41.1 起,TRAE CLI 计入原生子智能体用量。 Codeg 读取其原生用量记录,补充在这里启动的会话,包含嵌套智能体的消耗;这不会启用终端会话导入。
  • 重新打开后保留已报告的用量。 使用官方 Claude 适配器的会话会保留每轮用量与费用,自定义智能体也适用。即使智能体没有提供 token 数,已记录的单轮耗时也会保留。

收窄视图 ​

报告上方是一行工具栏:

控件提供什么
时间范围7 / 30 / 90 天为分段按钮,本月、本年、全部时间和自定义收在更多里
分组方式日、周或月——在你自己选之前,每个范围预设都会建议一个天然的粒度
文件夹 · 智能体 · 模型可搜索的筛选器,默认全选;重置筛选一次清空。文件夹显示为别名 [ 名称 ],因此别名是领着真实目录名,而不是把它替换掉
⋯刷新(附上次同步时间)、全量重建和分享

智能体筛选器包含自定义智能体,并显示当前名称,管理会话也一样。你可以和内置智能体一起查找与比较它们的用量。

自定义会打开一个双月日历,锚点定在一个月前,这样第二个面板就不会全是未来日期、整片灰掉。点进一段已经选完的区间会重新开始选,而不是去拖你并不想动的那一端。

范围和分组都是按你所在时区的自然日算的,从头到尾——一天是你那边的一天,不是数据库那边的。

怎么读这份报告 ​

顶部大数是该范围内的总 token,下方有一行标价估算,旁边有两样东西:与上一个等长周期相比的变化,以及一个缓存命中环。这个环最值得学会读——它说的是你的智能体所用的上下文里有多少是从缓存拿的、而不是重新算的,并且会明说:把这些按原价重发一遍相当于多少。自 0.31.0 起它保留一位小数,这里、分享卡片以及 composer 自己的 token 浮层三处一致,不再有某一处四舍五入到整数百分比。

下面是四块数据,每块都带一个平均值作为副标题:

数据块下面那行是
会话数每次会话平均 token
对话轮次每次会话平均轮次
活跃天数你最长的连续天数
生成时长每个活跃日的平均值

然后是各个面板:

  • 用量趋势——每个时间桶一根堆叠柱,把缓存读取与新算 token 分开;每根柱的悬浮提示上带着轮次数和会话数。旁边还有该范围内最忙的那个时间桶,以及你一天中的高峰时段。
  • Token 都花在哪——同样的总量拆成四份:输入(你发出去的)、输出(模型写出来的)、缓存写入,以及缓存读取(你没有按原价付的那部分上下文)。
  • 你的编码作息——一张按你本地时间的「星期 × 小时」热力图,通常也是大家最爱截图的那一块。它会点名你的工作最密集的那个钟点。
  • 用量分布——同一个范围按文件夹、按智能体或按模型分组排名。点某一行就用它筛选整份报告——这也是你从「Claude 占了我大部分开销」走到「而且几乎全在这一个仓库里」只需两次点击的方式。
  • 消耗最高的会话——花得最多的那些具体对话,带上它们的文件夹、智能体和总量。

范围大到会被标注

如果你要的是一个病态的范围——十年连续高强度使用——报告会直说:"所选范围过大,这里的数字只覆盖其中最近的一段。" 数据是从新往旧读的,所以留下的正是这份仪表盘主要关心的近期历史。

按标价算要花多少钱 ​

自 0.35.2 起,顶部总数下方会多出一行淡色文字,写着 ≈ $… API 标价:该范围内的 token 若按各服务商的 API 基础标价购买要花多少钱,价格取自公开的 models.dev 目录。把鼠标悬停在上面,可以看到它包含什么、不包含什么。在用量分布里,按模型视图会在每个模型那一行加上同样的估算——只限前七个,而且窗口要宽到放得下才会显示。

  • 每个桶单独计价。 输入、输出、缓存写入和缓存读取,各按该模型自己的对应费率计算。目录里没有公布价格的桶算作未计价,而不会去借用另一个桶的费率。
  • 模型按原厂标价计价。 记成 provider/model 的模型,按那个提供商自己的列表计价。单纯的模型名则交给开发这个模型的公司——只要它自己列出了,就以那份列表为准,即使某个云平台或转售商卖的是另一个价——因此经由网关调用的 Claude 模型,会按 Anthropic 列出的价格计价,前提是智能体记下的是模型自己的名称。没有原厂列表时,只有当每一家售卖方价格一致,或者 Codeg 优先采用的那几家大型托管方价格一致时才会采用;否则这个模型不计价。
  • 有些 token 可能无法计价。 没有任何人公布价格的模型——本地模型、私有部署、目录不认识的 id——会被排除在外,这时那行文字会说明它覆盖了该范围的多少:≈ $12.40 API 标价 · 86% 的 token。只要还有缺失,它就绝不会声称 100%。自己没有记录模型的回合,按所属会话的模型计价;连从会话那里也判断不出模型的,才不计价。
  • 是标价,不是你的账单。 它不含长上下文和推理加价,也不反映订阅套餐收多少钱——那是另一套计费方式。用它来比较模型、智能体和项目,而不是拿来核对发票。
  • 只用美元。 金额小时会保留更多位小数,而对一次很短的会话来说,<$0.0001 是一个真实的答案。

费率是在运行 Codeg 的那台机器上读取的:先用缓存不满一天的副本,没有就重新下载目录,再不行就用更早缓存的副本,最后用 Codeg 内置的快照——自 0.35.2 起,这份快照也带上了缓存价格,因此离线时估算同样能为缓存 token 计价。那次下载只是对公开价目表的一次普通请求,不含任何关于你用量的信息。分享卡片上不带任何价格。

分享出去 ​

分享会把你眼前这个视图渲染成一张海报卡片——我的 AI 编程战绩——包含时间范围、总量、你的高频模型与项目,以及一个由数据本身选出的称号:夜猫子、早起鸟、周末战士、缓存大师、马拉松选手、多面手、心无旁骛、深潜者、稳健建造者。

卡片会跟随你当前的主题,而不是自己钉死一套配色,所以从浅灰主题导出的卡片不会突然变成紫色。保存图片写出一张 PNG,复制图片把它放到剪贴板。

这张卡片是你眼前那个范围和那组筛选的快照——所以如果你想晒的是某一个项目而不是全部,先筛选,再分享。

刷新与重建 ​

⋯ 菜单里的两项,区别很重要:

  • 刷新——增量的那一次。它只重读记录发生过变动的那些对话,过程中显示进度计数,结束时报告统计了多少。这一项本来就会自己跑,你很少需要按它。
  • 全量重建——不论看起来是否过期,都把每一份会话记录从头重新解析。这是留给「在 Codeg 之外长大的会话」的逃生舱——你继续在智能体自己的 CLI 里干活,而 Codeg 没有理由再去看它一眼。它不会先清空:每次对话的数据行是各自在一个事务里替换的,因此仪表盘不会出现短暂的空窗;而某份此刻恰好读不到的会话记录,会保留它已有的数字,而不是被抹掉再标记成已统计。

同一时刻只会有一次同步在跑。第二次不会排在第一次后面,而是直接告诉你已经有一次在跑了——把同样的文件解析两遍没有任何好处。

计数方式一变,你的历史就会重建

存下来的数据行带着「用哪一版口径算出来的」这个标记。当某个版本改变了 token 的计算方式——比如 0.23.3 修正了 Claude 的同一次 API 调用被重复计数、Codex 的工具调用轮次被漏掉、Claude 子智能体的消耗未被计入,后来 0.35.0(Codex 的缓存写入)和 0.35.2(Qoder 的子智能体)又各改了一次——下一次同步就会整体重建,而不是去相信那些只反映会话记录是否变动过的标记。否则这份仪表盘就会无限期地混着旧的错数字和新的对数字。一次重建会重读每一个智能体,而不只是口径变了的那一个——CodeBuddy 那些以工具调用结束的请求,也正是这样在 0.35.0 进入你的历史的。

须知 ​

  • 每个回合按它自己的时间戳归档。 一次跨过午夜的会话会逐回合分到两天里,而不是整体算在你开始的那一天。(Hermes 是例外,因为它那条会话级的记录只有一个时刻可落。)
  • 你的用量留在本地。 这些数据就放在 Codeg 自己的数据库里、和你的对话在一起,全部由你磁盘上已有的文件算出,有关它们的任何内容都不会被发到外面去。这个页面唯一可能发出的请求,是去取估算背后那份公开价目表,而且只在没有不满一天的缓存副本时才会发出。→ 隐私与安全
  • 状态栏是唯一的入口。 侧边栏里没有它的条目——你本来就在看的那个计数,就是那个按钮。
  • 一个任务就是一次会话的花费。 每一条跑起来的待办都是一次完整的智能体会话,有自己的会话记录,所以同时跑四条,在这里就是四次会话的量。
  • 上下文占用是另一个数字。 输入框旁边那个圆环追踪的是当前这次对话此刻用掉了多少上下文窗口;本页说的是所有工作的累计花费。→ 对话
  • 单个对话的总量在它的会话详情对话框里——从对话头部的 ⋮ 菜单打开它。从 0.37.0 起,右侧面板的会话详情标签页不再显示这些数字。→ 右侧面板
  • Claude Code 对提示词的猜测不在这里。 适配器为 0.92.0 或更高版本时,Claude Code 会在大多数回合之后多发一次请求,用来建议你的下一条提示词。它计入你在服务商那里的用量,但从不进入本页所读取的对话记录。自 0.41.3 起,Codex 也会在完成的回合之后多发一次模型调用来猜测——自动化、聊天频道、codeg-cli 和单次运行中不会;自 0.42.2(codex-acp 2.6.0)起,计划模式下也不会。

后续步骤 ​

  • 工作区——本页所从属的那条状态栏。
  • 对话——composer 旁边那个属于每次对话自己的上下文圆环。
  • 对话聚合——你在智能体自己 CLI 里跑过的会话,最初是怎么进到这里来的。
  • 认证与模型——按模型那份拆分里点到的那些模型。
  • 隐私与安全——哪些东西留在你自己的机器上,包括这份仪表盘。

基于 Apache-2.0 许可证发布。