Introducing the DeepSeek Harness Plugin: dsh-usage-lite

DSH(DeepSeek Harness)的核心理念是「一切皆插件」。在智能体开发与调试过程中,追踪跨会话的 Token 消耗是高频需求。dsh-usage-lite 是一个由开发者 ChrisLou-bioinfo 维护的插件,它无需构建步骤,直接在本地聚合所有会话的 Token 数据,并在设置面板新增「用量统计」页进行可视化展示。

核心功能

该插件提供以下统计与展示能力:

  • 汇总卡片:展示总 Tokens、输入(未缓存)、缓存读(含命中率)、缓存写、输出(含推理)。
  • 时间范围切换:支持 7 天、30 天或全部历史数据的查看。
  • 多维度排行与图表:提供按天用量柱状图、按模型排行以及按工作区排行。
  • 增量索引与持久化:首次全量扫描后,仅重读新增或变更的会话,并将索引快照持久化到 ~/.dsh/usage-lite/index.json,避免重复计算。

安装与启用

通过官方插件命令安装。该插件适配 DSH 0.2.0-rc.2+(桌面端与 Web Profile 均可)。

dsh plugin add github:ChrisLou-bioinfo/dsh-usage-lite

安装完成后,打开 Settings → 用量统计 页面即可查看统计数据。

统计口径与数据流

插件的数据来源为本地会话日志,具体规则如下:

  • 数据源:优先读取 ctx.sessionQuery(Live 数据),兜底使用 readSession(id) 读取持久化事件。
  • 过滤规则:仅统计 assistant/message 事件中 data.usage 且 data.message.source.kind === "model" 的样本,忽略流式 assistant/attempt 里的过程值。
  • 去重处理:跳过 inheritedEventCount 之前的事件,避免 fork 或 resume 会话时重复计算父会话的 Token。
  • 计算公式:total = input + output + cacheRead + cacheWrite;reasoning 单独列出。
  • 缓存命中率:cacheRead / (cacheRead + input),若 Provider 不上报缓存则显示 “—”。

技术维护注意

  • 客户端约束:客户端 Bundle(client.js)只能依赖平台种子模块(如 react、dsh-client-store 等),禁止引入外部依赖。
  • 注入服务名:client.js 的 exports.inject 必须是服务名 ["slots"](非包名)。若配置错误,Web 启动会判定 “entry did not activate” 并拒绝启动,桌面端连续失败会触发恢复流程。
  • 升级排查:若升级 DSH 版本后设置页空白,请前往 Settings → Plugins → Plugin list 检查装载审计信息。
  • 移除插件:
    • 命令行:dsh plugin remove dsh-usage-lite
    • 手动:删除对应 profile 的 cordis.patch.yml 中的插入条目。
    • 索引清理:~/.dsh/usage-lite/ 目录可一并删除(建议)。

总结

dsh-usage-lite 是一个轻量级的 Token 统计工具,它通过增量索引和本地快照技术,在无需网络请求的情况下实现了跨会话的数据聚合。对于需要精细化控制成本和监控模型调用的开发者,这是一个直接可用的工具。

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

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

Xiaoye