AI 编码成本追踪到底该测什么

AI 编码成本追踪器能回答一个有用的问题:这台机器上记录下来的 Agent 活动,按 API 价目估算值多少钱。没有账单数据,它回答不了另一个问题:用户实际付了多少钱

当前覆盖:Agent Island 2.1.2 支持 Claude Code、Codex、Antigravity、Grok 和 Cursor —— 五家都有实时会话状态与轮到你了提醒,macOS 与 Windows 同步

这个区别从采集环节就开始了。值得信任的追踪器需要一份测量合同,写明它读哪些记录、保留哪些 token 分类、套用哪张价目表,以及哪些事件它定不了价

Agent Island 用量面板:服务商用量与本地计算的活动
已验证的 Agent Island 用量界面。服务商窗口和本地算出的 API 价值回答的是不同问题,因此保持分开

1. 从各服务商自己的源记录出发

Claude Code 与 Codex 写的本地记录并不一样。Claude 的助手消息里可能带输入、输出、缓存创建和缓存读取几个字段;Codex 的 rollout 记录可能把模型上下文与后续的 token 事件分开,而且缓存输入可能已经含在输入总量里

成本追踪器应该先把两家归一成一个很小的事件模型,然后才开始算:

服务商
时间戳
模型
输入 token
输出 token
缓存创建 token
缓存读取 token

这条边界能阻止界面组件去猜某个原始字段是什么意思,也让各服务商特有的解析规则可以改动,而不会悄悄改掉最终数字的定义

2. 给缓存活动定价,但别数两遍

缓存 token 可能在本地活动里占大头,但它的费率和普通输入输出不同。Claude 把缓存创建和缓存读取分开记;对 Codex 来说,要先把缓存输入从总输入里减掉,再套用普通输入费率

非缓存输入 = max(总输入 - 缓存输入, 0)

API 价值估算 =
  非缓存输入 × 输入单价
  + 输出 × 输出单价
  + 缓存创建 × 缓存写入单价
  + 缓存读取 × 缓存读取单价

先按总输入定价、再把缓存输入加一遍,会得到一个看起来很精确的多算结果。单独一个通用的 token 乘数是不够的

3. 把重放保护算进记账里

本地会话文件会被扫描不止一次。App 会重启,监听器会重连,文件会被追加,归档的会话也可能被重新发现。同一个 token 事件不能仅仅因为扫描器又看到了它,就变成新的活动

稳定的服务商事件标识应该在聚合之前先去重。当某种格式没有可靠标识时,追踪器应该把兜底方案和它的不确定性写出来,而不是只靠文件偏移量造出一种确定感

4. 给模型价目表标上日期

API 价目会变,新的模型标识出现的时间也早于本地软件学会给它定价。追踪器应该内置一份带日期的费率快照,并把未知模型显示为未定价。随手按相近的模型家族费率去猜,会让历史对比永远没法审计

Agent Island 把结果标为 API 价值。它是在内置费率下的一次反事实计算,不是订阅花费、消耗额度、省下的钱或者账单总额的证据

5. 把账单挡在本地估算之外

实际花费取决于收据、服务商的计费导出、订阅内含用量、企业合同、代金券和服务商侧的调整。本地的编码会话记录里,没有这套完整的记账上下文

因此一块有用的成本界面会把四个答案分开:服务商额度、本地 token 体量、API 价值估算、实际账单。把它们合成一个「成本」数字,恰恰抹掉了开发者做判断所需要的上下文

成本追踪器评估清单

  1. 写明每家服务商用到的确切本地记录
  2. 输入、输出、缓存创建与缓存读取分开保留
  3. 聚合之前先对重放事件去重
  4. 价目表标日期,未定价的模型要标出来
  5. 结果标成估算,永远不写成账单
  6. 采集留在本地,分享是明确动作

当前已验证范围

这里描述的用量台账与 API 价值行为,在 Agent Island v1.7.1 的 macOS 上已验证。Agent Island 也提供 Windows 版本,但在没有当前界面验证之前,本页不声称那边有完全相同的成本追踪界面

可以用 这条公式和一个算过的 token 成本例子,对照各服务商的 Claude Code 用量追踪Codex 用量追踪,或者读更深入的 API 价值计算笔记

← 全部文章