AI 编码成本追踪器能回答一个有用的问题:这台机器上记录下来的 Agent 活动,按 API 价目估算值多少钱。没有账单数据,它回答不了另一个问题:用户实际付了多少钱
当前覆盖:Agent Island 2.1.2 支持 Claude Code、Codex、Antigravity、Grok 和 Cursor —— 五家都有实时会话状态与轮到你了提醒,macOS 与 Windows 同步
这个区别从采集环节就开始了。值得信任的追踪器需要一份测量合同,写明它读哪些记录、保留哪些 token 分类、套用哪张价目表,以及哪些事件它定不了价
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 价值估算、实际账单。把它们合成一个「成本」数字,恰恰抹掉了开发者做判断所需要的上下文
成本追踪器评估清单
- 写明每家服务商用到的确切本地记录
- 输入、输出、缓存创建与缓存读取分开保留
- 聚合之前先对重放事件去重
- 价目表标日期,未定价的模型要标出来
- 结果标成估算,永远不写成账单
- 采集留在本地,分享是明确动作
当前已验证范围
这里描述的用量台账与 API 价值行为,在 Agent Island v1.7.1 的 macOS 上已验证。Agent Island 也提供 Windows 版本,但在没有当前界面验证之前,本页不声称那边有完全相同的成本追踪界面
可以用 这条公式和一个算过的 token 成本例子,对照各服务商的 Claude Code 用量追踪 与 Codex 用量追踪,或者读更深入的 API 价值计算笔记
← 全部文章