本地日志与平台账单:两个开源 skill 实测你的 AI token 成本

1 阅读5分钟

本地日志与平台账单:两个开源 skill 实测你的 AI token 成本

封面图:算清你的 AI 用量与成本——本地日志与平台账单两条实测路线

先说结论:AI 用量度量不存在「一个工具全覆盖」。同一笔消耗可能记在两个地方、粒度还不一样——本地客户端把每次会话的明细写在你机器上,IDE 平台把账单记在自家服务端,API 厂商(如 DeepSeek)只给你按天的粗汇总。因此选路的分界不是「客户端 vs 平台」,而是数据在哪、细到什么程度

一、数据源分层

代表存储可解析粒度
本地 session 日志Copilot、Codex、Claude Code、OpenCodeJSONL(~/.claude/projects/*~/.codex/sessions/** 等)/ SQLite(OpenCode 的 opencode.dbper-turn、per-session、per-model、per-agent
平台服务端记账Qoder、CodeBuddy、TRAE、CloudCode平台后端,本地无 token 记录平台给多细就有多细(CodeBuddy 可到 per-request,DeepSeek 只有按天)
自配 API(BYOK)OpenCode / Claude Code + 自有 Key明细只在本地,扣费在 API 厂商本地细、平台粗

BYOK(Bring Your Own Key,自带 API Key)是最容易被漏掉的一层:你不是客户端厂商的付费用户,它的账单页没有你的数据;API 厂商控制台只有按 key 的日汇总。要按 agent / 会话归账,只有本机日志这一条路。

二、路线一:本地日志解析(ai-token-usage

核心是把各家字段归一化成 input_tokens / output_tokens 后再聚合:Copilot 的 promptTokens/completionTokens、Codex 的 input_tokens/output_tokens/reasoning_output_tokens、Claude Code 的 message.usage.* 都映射到同一套字段;Codex 记的是累计值,需按相邻快照取正 delta 去重;Claude Code 的 subagent 日志在 subagents/agent-*.jsonl,默认计入、可排除。

聚合维度是 daily / per-session / per-model / per-agent 四个 bucket,另有当前会话的上下文窗口占用分析。

实测 8 月数据:

ai-token-usage 报告摘要:8 月范围,总 1.4B token / 14,700 turns / 204 sessions / 估约 ¥813.16

口径提醒:摘要里的成本是按标准 token 单价折算的估算值,不是真实支出——免费额度同样按官方标准价计入合计。例如 deepseek-v4-flash 在 OpenCode 上免费,这部分 token 仍按 DeepSeek 官方定价计入了 ¥813.16。所以它应读作「按标准价折算的用量成本」,会高于实际被扣金额。

按 agent 拆 token:claudecode 58% / opencode 42% / 其他 0%

成本估算的实现要点(也是它的误差来源):

  • 单价来自内置离线价表 references/pricing.json,无运行时网络调用;
  • 成本按真实 input / output / cache-read 三分量分别计价,不是混合单价——缓存读(如 $0.014/M)与输出(如 $1.32–4.4/M)差两个数量级,混合计价会严重失真;
  • 缓存读按 cache 费率计,价表存的是标准 list 价,所以结果是估算而非发票
  • 免费额度按标准价计入:deepseek-v4-flash 在 OpenCode 上免费,但这部分 token 仍按 DeepSeek 官方定价计入合计(想看「只算付费」的口径可加 --exclude-free),因此估算值高于实际被扣金额;
  • 未收录模型回落到 auto 费率而不是按 0 计,避免静默低估。

硬限制:Qoder / CodeBuddy / TRAE / CloudCode 不写可解析的本地 token 日志,这条路线对它们恒为 0,报告里会输出可用性说明而不是编造数字。

三、路线二:平台账单归一化(ai-usage-report

把各平台账单统一成 date / model / cost / free / prompt / platform 的记录(同平台多账号用 account 隔离),再出带图报告与跨平台总览。三条数据入口:官方导出文件、用量 REST 接口直取、真实浏览器抓取(保登录态拦截后端 JSON)。

各平台折算费用(RMB) 占比:CodeBuddy 117.1 (59.7%)、DeepSeek 45.4 (23.1%)、Qoder 31.3 (16.0%)、TRAE 2.3 (1.2%)

两道护栏值得单独提,都是踩过坑才加的:

  1. 出报告前校验:抓取漏掉请求区间内超 50% 的天数就中止(曾修掉 Qoder 抓取静默丢数据);
  2. 落库前过滤:部分平台用量 API 无视请求日期范围、只返回最近一段(TRAE 曾请求 8/1–8/29 却返回 9/2–9/3),窗口外记录直接丢弃并告警——否则会污染错误月份,把缺口假填满。

四、单位陷阱:积分 ≠ 人民币

归一化后 Qoder / DeepSeek 的 cost 是人民币,TRAE / CodeBuddy 是积分。跨平台合计前必须按 configs/units.json 里可改的套餐折算率(TRAE≈89 元/4000 积分、CodeBuddy≈99 元/4000 积分)折算成 RMB。折算合计是参考估算(促销、赠送积分会偏移),严格比价仍应以请求数、活跃天数、模型构成为主。

五、把度量成本压到可忽略

两个 skill 装进 agent 后可以直接用自然语言驱动,抓数、校验、出报告、存归档全自动。实测一次完整审计:4 次请求、3 分钟、3.80 积分 ≈ 0.094 元。

真实账单截图:在 CodeBuddyIDE 中让 AI 代跑两个 skill 的积分消耗记录

而它量出来的真实扣费:

8 月各平台每日费用趋势:日费波动大,单日峰值 ¥26.8,多数日子低于 ¥10

一个附带发现:显式选择 hy3-x 的那次会话,账单里同时出现了 deepseek-v4-pro——IDE 会把部分子步骤改派到别的模型。模型层的实际支出与你在 UI 上的选择并不严格一致,这也是必须落到账单层校验、而不能只信客户端侧统计的原因。

六、复现清单

  • 逐个工具确认:本地有无可解析日志、账单在平台何处、平台粒度到哪一层;
  • 本地有日志的走 ai-token-usage,服务端记账的走 ai-usage-report,粗账平台两块拼;
  • 跨平台比较前统一折算单位,折算值仅作参考;
  • 每月固定跑一次并归档,观察 Top 模型占比与日费趋势。

仓库开源,安装与完整参数见手册:ai-token-usageai-usage-report。如果你在别的客户端上补过解析器,欢迎提 PR。