前言¶
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。更多详情请访问 插件目录。