dsh-token-usage:统计本机 DSH 会话的历史 Token 消耗

前言

DeepSeek Harness (DSH) 采用插件化架构,支持通过插件扩展功能。在本地开发或使用过程中,统计全局 Token 消耗是一个常见需求。dsh-token-usage 插件旨在解决这个问题,它通过扫描本地会话日志,汇总本机全部 DSH 会话的历史 Token 总消耗,并提供多维度的统计视图,解决了单一会话统计无法反映全局成本的问题。

核心功能

该插件具备以下核心能力:

  • 跨会话汇总:支持跨会话、跨工作区、跨 DSH home 汇总数据。
  • 正确去重:基于 message.id 进行全局去重,避免因会话副本(如 v0/v3、resume/fork)导致的数据虚高。
  • 多维分组:支持按天、模型、Provider、项目或会话进行分组统计。
  • 日期范围:支持自定义日期范围,或选择全部/今天/近7天/近30天等快捷选项。
  • 接入方额度:支持按接入方(Provider)统计额度,配置启用开关、额度值及刷新日。
  • 多种输出:提供 HTTP API 和命令行报表两种方式获取数据。

安装与启用

插件采用本地安装方式。推荐安装到 Desktop profile:

dsh plugin --profile desktop add /Users/d/Personal_Project/dsh-token-usage

安装后需重启 DSH Desktop 以使配置生效。

使用方法

1. 设置页配置

重启后进入 设置 → Token 统计。在此页面可以配置总量卡片、统计范围、分组方式以及接入方额度统计。

2. HTTP API

插件提供了本地回环 API,可用于二次开发或脚本调用。常用接口如下:

# 获取汇总数据(按天分组)
GET /dsh-token-usage/summary?range=all&groupBy=day

# 获取接入方额度信息
GET /dsh-token-usage/quota

支持的 range 参数包括 all、today、7d、30d、month、cycle;groupBy 参数支持 day、model、provider、project、session。

3. 命令行报表

无需 DSH 进程,可直接运行 Node.js 脚本生成报表:

# 生成近30天报表
node scripts/report.mjs --range 30d
# 按指定维度分组
node scripts/report.mjs --group day,model,project

技术细节与注意事项

  • 统计口径:仅统计 assistant/message 中的 usage 字段,忽略 assistant/chunk 的重复上报。默认不计 compaction/summary。
  • 性能:插件通过缓存机制加速扫描,全量扫描约需 1.4s。
  • 依赖:Host 端仅依赖 Node.js 内置模块,不引入 @deepseek-ai/*;Client 端仅使用 React。

总的来说,dsh-token-usage 是一个轻量级、专注统计的 DSH 插件,适合需要精确掌握本地 Token 消耗的开发者。插件遵循 MIT 许可证,源码托管在 GitHub。更多详情请访问 插件目录。

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

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

小夜