WorkBuddy 积分使用明细统计(积分统计)
纯本地、零网络解析(余额查询除外),从 WorkBuddy 本机会话记录中提取服务端实测的真实 credit 消耗,而不是靠 token 估算。
数据来源
~/.codebuddy/projects/**/*.jsonl— 项目会话记录~/.codebuddy/traces/**/*.jsonl— trace 记录(按 id 自动去重,不会重复计数)
每条模型调用记录里带 providerData.rawUsage.credit,即该次调用实际扣除的积分;同时含 prompt_tokens / completion_tokens / prompt_cache_hit_tokens / model / 工具名 / 会话 id / 时间戳。
首次使用
把本技能 scripts/wb_credits.py 复制到稳定路径后调用(脚本只用 Python 标准库,无第三方依赖):
mkdir -p ~/.workbuddy/scripts
cp <技能目录>/scripts/wb_credits.py ~/.workbuddy/scripts/wb_credits.py
快速使用
python3 ~/.workbuddy/scripts/wb_credits.py # 全量:明细 + 看板
python3 ~/.workbuddy/scripts/wb_credits.py --days 7 # 最近 7 天
python3 ~/.workbuddy/scripts/wb_credits.py --since 2026-10-01 --until 2026-10-21
python3 ~/.workbuddy/scripts/wb_credits.py --out ~/Desktop/report
python3 ~/.workbuddy/scripts/wb_credits.py --no-balance # 纯离线,跳过余额查询
python3 ~/.workbuddy/scripts/wb_credits.py --json # 汇总 JSON 打到 stdout
参数:
| 参数 | 说明 |
|---|---|
--days N |
仅统计最近 N 天 |
--since / --until |
日期区间 YYYY-MM-DD |
--out DIR |
输出目录,默认 /workspace/wb-credits/out |
--no-xlsx |
不生成 XLSX(缺少 openpyxl 时自动跳过) |
--no-balance |
跳过余额查询,纯离线 |
--json |
额外输出 JSON 汇总 |
输出物
credits_detail_<时间戳>.csv— 每次调用一行:时间 / 模型 / 档位 / 工具 / 会话 / 积分 / token / 缓存命中 / 来源文件credits_report_<时间戳>.xlsx— 5 个表:调用明细、按日、按模型、按工具、按会话credits_dashboard_<时间戳>.html— 看板:KPI 卡(总消耗 / 总 token / 缓存命中率 / 余额 / 日均 / 预计可用)、每日消耗柱状图、模型与工具横向条形榜、单次最贵 Top10、按日与按会话汇总、明细表
余额与净消耗
余额读取复用本机已有凭据,按顺序尝试:
~/.workbuddy/checkin-cred.json(签到助手的网页授权凭据)- 签到助手脚本
auto_checkin.py --check --no-notify --no-travel(自行处理登录态)
取不到时自动降级为纯离线统计,明细照常生成,看板上余额卡显示「未授权」并给出授权提示。完成签到助手的一次性授权后,余额与预计可用天数会自动出现。
判定口径说明
- 积分归属:一次模型调用的 credit 归属于该次调用所触发的工具/动作,因此「按工具」榜反映的是「为了执行该工具花了多少积分」,而非工具本身收费。
- 净消耗:指统计区间内本地实测消耗之和,不含签到收入等入账;与官方账本可能存在细微口径差异(如客户端侧未落盘的请求)。
安全边界
- 只读解析本机文件,不修改、不删除任何会话记录
- 余额接口仅调用官方
/v2/billing/meter/checkin-activity-status,不向第三方发送任何数据 - 任何输出都不回显凭据明文