Claude Code 和 Codex 都会在本机留下结构化记录,但字段、事件粒度和目录布局不同。可靠的周报不应先从 UI 开始,而应先定义哪些记录真的代表使用。
从有使用语义的记录开始
只读取明确携带 usage 的事件,并保留供应商、会话、事件时间和原始 token 字段。不要从消息长度估算 token,也不要把每条中间状态都当成新用量。
保留两个 Token 总数
一个总数描述模型处理的 token 量,另一个用于费率估计。缓存输入在不同供应商和费率表中的计算方式不同,原始字段应保留,避免未来口径变化时只能重扫全部历史。
按日历日对齐自然周
先把事件时间转换到用户选择的时区,再落到日期和周。文件修改时间不能替代事件时间,否则归档会把旧工作搬到今天。周起始日也应明确,而不是由系统区域设置悄悄决定。
分享必须是明确动作
本地生成不等于自动上传。导出报告卡或复制摘要应由用户主动触发,并只包含聚合数字,不包含 prompt、代码或 transcript 内容。
缓存解析工作,不建立服务器数据
本地游标可以记录已处理到哪个文件偏移,从而增量更新。缓存损坏时应能从原始记录重建;产品不需要为了这张周报建立远程账号或上传原始会话。
台账不能证明什么
Token 多不等于产出高,API value 估计也不等于订阅账单或节省金额。关于成本口径,可阅读API value 到底代表什么。
重放、归档和部分写入
增量更新必须处理三类现实情况:同一 usage 快照被重复写入、会话从活跃目录移动到归档目录、文件最后一行尚未写完。稳定会话标识用于跨目录去重,事件游标用于避免重复累计,未完成行则留到下一轮读取。
让报告可以复核
每张周报都应能回答统计时区、周起始日、覆盖的工具、最后更新时间和估计口径。图表可以只显示聚合值,但本地应保留从日期汇总回供应商与会话的路径,便于发现异常峰值,而不必上传原始 transcript。