dsh-token-ledger:DeepSeek Harness Token 消耗监控

前言

DeepSeek Harness 的投影缓存主要用于展示,数据可能滞后或覆盖不全。对于需要精确核算成本或监控使用量的场景,直接读取会话日志是更可靠的选择。dsh-token-ledger 正是基于这个需求开发,它不依赖投影缓存,而是直接解析本地会话日志,提供基于本地日期的每日 Token 消耗统计。

是什么

这是一个由 doremifaso12345 维护的插件,用于监控 DeepSeek Harness 的每日 token 消耗。它提供设置页卡片、输入框徽标、聊天命令和模型工具四个入口,帮助用户直观地了解 Token 使用情况。

核心功能

仪表盘与数据视图

仪表盘展示四个互不重叠的用量桶,全部基于 Provider 真实上报值:
* 未缓存输入:未命中前缀缓存的输入。
* 缓存读取:命中缓存的输入。
* 缓存写入:写入缓存的输入。
* 输出:补全输出(已含 reasoning,不重复计)。

除此之外,还提供以下指标:
* 合计:四者之和。
* 缓存命中率:计算公式为 缓存读取 / (未缓存输入 + 缓存读取 + 缓存写入)。
* 累计 Token 数:全部历史四桶之和。
* 峰值 Token 数:单日最高值。
* 最长聊天时长:定义为“连续活动时长”,即相邻事件间隔不超过 30 分钟的累积时间,而非首尾时间差。
* 活动热力图:GitHub 贡献图样式,展示 52 周 × 7 天的消耗情况。
* 工具排行:按调用次数和成功率排序。

交互入口

  • 设置页卡片:设置 → Token 账本。支持选择 7/14/30/90/180/365 天窗口,支持一键导出 CSV(带 BOM)。
  • 输入框徽标:显示今日合计(如 1.23M)与近 7 天累计,每 60 秒刷新,悬停显示明细。
  • 聊天命令:通过 /tokens 命令快速查看报表。
  • 模型工具:token_usage 工具,允许 Agent 直接查询用量数据。

安装

插件无需构建,直接通过命令安装。请确保使用正确的 Profile 名称(默认为 web)。

dsh plugin --profile web add github:doremifaso12345/dsh-token-ledger

安装后请重启 dsh web。

典型用法

聊天命令

在聊天框中使用以下命令:
* /tokens:查看近 7 天的日报表与总览。
* /tokens 30:查看近 30 天的数据。
* /tokens today:只看今日数据。
* /tokens csv [days]:导出 CSV 到 harness home。
* /tokens help:查看帮助。

模型工具

调用 token_usage 工具,传入 days 和 includeSessions 参数。

环境与依赖

运行环境

  • Node.js:必须满足 ^22.15.0 || >=23.8.0。此版本范围包含了 Node 内置 zlib.zstdDecompressSync API,用于解压多帧 zstd 会话日志。如果版本过低(如 23.0–23.7),插件会直接报错,避免显示错误的 0 数据。
  • DeepSeek Harness:目标版本 0.1.5-rc.2。
  • 数据源:<DSH_HOME>/sessions/<workspace>/<session>/session.v3.jsonl.zstd。插件会自动处理多帧 zstd 容器,并复刻官方投影的语义(如重试场景下的折叠计费)。

配置

在 cordis.patch.yml 中可调整:

- insert:
    - id: dsh-token-ledger
      name: 'dsh-token-ledger'
      config:
        enabled: true       # 总开关
        cacheTtlMs: 5000    # 结果缓存时间(毫秒)
        root: null          # 显式指定 harness home

注意事项

  • 零第三方依赖:插件仅使用 Node 内置模块,不依赖 @deepseek-ai/* 包,这意味着宿主版本升级时,只要不破坏契约依赖,插件仍能正常工作。
  • 数据完整性:如果 sessions 目录不存在或日志解压失败,仪表盘会显示空数据,不会静默报错。
  • 契约依赖:安装前请确保宿主已挂载 commands、tools、webServer 等服务,否则部分入口将不可用。

总结

dsh-token-ledger 提供了一套完整的 Token 消耗监控方案,从数据源(会话日志)到展示形式(仪表盘、热力图、导出)都经过了针对性设计。它解决了投影缓存可能缺失或不准确的问题,适合需要精细化管理和成本核算的开发者使用。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜