用途:在 LLM 执行过程中实时追踪 API 成本累积,并在流式中止时保留部分成本,适合把 token 计数接入执行管线、为执行界面构建成本展示组件,以及设置预算阈值自动停止。
主要能力:基于 token 计算成本,区分 inputTokens、outputTokens,并可选跟踪 cacheReadTokens(提示缓存命中)与 cacheWriteTokens(缓存未命中);提供 CostAccrualTracker 增量累积模式,在每次 API 响应(流式或完整)后调用 recordUsage,随时用 getCurrentCost 读取当前成本,结束时用 finalize 生成包含输入/输出 token 数、总成本、完成原因(completed/aborted/failed)与时间戳的 CostReport;提供 Abort-Aware 模式,强调中止前先 finalize('aborted') 再抛错,避免丢失部分执行的成本数据;提供 BudgetGuard 阈值守卫,按 maxCostUsd 与 warnAtPercentage 返回 ok/warn/exceed,并在超出时触发 onExceed 自动停止。
使用方式:在流式循环中每收到一个 chunk 就调用 tracker.recordUsage(chunk.usage),并持续输出 tracker.getCurrentCost();中止、失败或完成时调用 finalize。UI 侧建议每 1-2 秒轮询一次执行接口,而非每 100ms 轮询,或用执行流的事件驱动更新。
适用场景:实时成本显示、执行中止时的部分成本捕获、预算超支自动停止、DAG 多节点执行的分层成本汇总。
限制:不用于执行前成本估算(应使用定价计算器)、不用于账单系统设计、不处理价格层级或折扣、不做历史成本分析仪表盘。需单独跟踪 cache_read_input_tokens 与 cache_creation_input_tokens,否则因缓存读写价差(读约便宜九成、写有额外成本)导致计算不准;每个请求单独建 tracker 无法跨节点聚合,需按节点 tracker 向上汇总。资料未提供具体价格数值,仅指向 /references/claude-api-pricing.md。