DeepSeek Harness 使用统计插件

前言

DeepSeek Harness(DSH)在本地运行时,会持久化会话日志。使用一段时间后,如果想了解总体用量情况,目前没有统一的查看入口。手动翻阅日志文件并不直观,也无法快速获取累计 Token、模型分布、连续使用天数等指标。

下面介绍的 dsh-usage-stats 插件,就是在 DSH 设置里增加一个「使用统计」页面,扫描本机全部会话日志,汇总累计、峰值、连续天数、聊天时长、每日趋势和模型用量。

是什么

dsh-usage-stats 是一个为 DeepSeek Harness 提供全会话 Token 用量统计的插件。由维护者 XEsx630 开发,目前托管在 GitHub 上。它不依赖后端服务,直接在 DSH 进程内通过重放持久化日志来计算统计数据,不修改原始日志文件。

插件在 DSH 设置侧栏新增一个「使用统计」页面,展示累计 Token、峰值 Token、最长聊天时长、当前连续天数、最长连续天数五张卡片,以及 Token 活动热力图、每日 Token 趋势图和模型用量环图。

核心功能

统计口径

  • Token 计算:输入 + 缓存读取 + 缓存写入 + 输出,与 DSH 自带的 tokenUsage 投影一致。
  • 会话统计:包含子会话,跨工作区汇总;被 fork 的子会话会物理复制父会话日志,统计时用 inheritedEventCount 去掉父会话前缀,避免重复计费。
  • 模型识别:优先取每条 assistant/message 的 message.source.model;没有该字段的旧日志回退到最近的 request/header.config.model。
  • 聊天时长:同一会话内相邻事件间隔不超过 1 小时才累计,长时间挂起不会把「聊了几天」算成一次聊天。
  • 连续天数:按本地日期统计有 Token 用量的连续天数。

页面内容

  • 五张卡片:累计 Token、峰值 Token、最长聊天时长、当前连续天数、最长连续天数。
  • Token 活动热力图:近 12 个月,支持每日 / 每周 / 累计三种聚合;悬停格子显示日期、Token 数和轮消息数。
  • 每日 Token 趋势图:按模型分线(前 5 个模型 + 其他),可切换近 7 日 / 近 30 日 / 全部;悬停显示当天总量、各模型明细和十字线。
  • 模型用量环图:当前时间范围内的模型占比与 Token 数。

技术实现

数据来自 sessionQuery 对持久化日志的重放,不会改写日志。首次打开会在后台扫描全部会话(几百个会话通常十几秒到半分钟,视日志量而定),随后缓存 5 分钟,页面上的「刷新」会强制重算。

插件采用 Host + Client 分离结构:
- index.js:Host 半,负责重放会话、按日期/模型折叠、提供 /dsh-usage/api/stats 接口。
- client.js:浏览器半,注册 settings.section,绘制卡片、热力图、趋势图和环图。
- cordis.patch.yml:把 Host 插件插入 profile。
- test/fold.test.js:折叠、模型归属、fork 前缀的自检。

API 接口

GET /dsh-usage/api/stats(同源、仅本机 Host)返回 JSON:

{
  "generatedAt": 1792416000000,
  "sessions": 76,
  "failed": 0,
  "longestChatMs": 63000000,
  "totals": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "total": 0 },
  "days": [{ "date": "2026-10-19", "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "turns": 0, "total": 0 }],
  "models": [{ "model": "deepseek-v4.1-flash", "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "total": 0 }],
  "modelDays": [{ "date": "2026-10-19", "models": [{ "model": "deepseek-v4.1-flash", "total": 0 }] }]
}

?refresh=1 跳过 5 分钟缓存。

安装与启用

从 GitHub 安装:

dsh plugin --profile desktop add github:XEsx630/dsh-usage-stats

本地开发时,也可以在「插件 / Plugins」页面选择「Add plugin」,填入本目录的绝对路径并启用 dsh-usage-stats。两种方式都依赖 profile 里声明的 bundle;HMR 会热加载,如果设置侧栏没有出现「使用统计」,刷新页面(Ctrl+R)或重启 DSH。

卸载

在插件页面卸载,或从 profile 的 package.json 中删除 dsh-usage-stats 依赖与 bundle 条目,再删掉 node_modules/dsh-usage-stats。

适用场景与注意

适合需要监控 DeepSeek Harness 本地使用情况、统计 Token 用量、分析模型分布和连续使用习惯的用户。插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。

小结

dsh-usage-stats 通过在 DSH 设置中新增一个使用统计页面,将原本分散的会话日志转化为直观的统计图表,帮助用户快速了解总体用量和模型分布。如果你在本地频繁使用 DSH,这个插件可以提供一份清晰的使用报告。

插件目录页
GitHub 仓库

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

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

小夜