前言¶
在 DeepSeek Harness(下称 DSH)里跑智能体,接的厂商往往不止一家:官方 API、huoshan、hebox、tokenrhythm 等。持久化会话日志里其实一直带着 Token 记账和 provider/model 来源,但默认没有一个视图能直接回答「这段时间各家各用了多少、缓存命中率多少、按单价折算大概多少钱」。
已有的 dsh-usage-stats 插件按工作区聚合用量,厂商维度是缺的。下面介绍的 dsh-usage-vendor-stats 补的就是这一块:以厂商为第一维度做用量统计。
这是什么¶
dsh-usage-vendor-stats 是 DSH 的社区用量统计插件,由 kirigayakazima 维护,MIT 许可证,当前版本 0.2.0。它按「厂商(订阅 / 官方 API)× KPI」聚合 API 使用量,提供 GitHub 风格日历热力图、趋势折线图与日 / 月 / 小时统计看板。
数据不需要额外采集:插件激活时自动回填全部历史会话,之后监听会话事件做增量折叠,插件卸载 / 重启后数据不丢。
核心功能¶
厂商维度与 KPI 卡片¶
- 自动发现所有使用过的厂商(如
huoshan、hebox、deepseek-official、tokenrhythm、opencode),可手动标记「订阅 / 官方 API」类型并设置别名,持久化到$DSH_HOME/storages的 KV 单元 - KPI 卡片:总 Token(输入 / 缓存命中 / 输出 / 推理分项)、缓存命中率、模型调用次数、回合数、会话数、厂商数量,附多色 Token 构成比例条
热力图、趋势与看板¶
- 53 周热力图:GitHub 绿色风格,颜色深浅按当日模型调用次数;点击厂商 chip 筛选,悬停查看按厂商 / Token 明细
- 趋势折线图:Token / 调用双轴,默认按日,选「今天」时按小时聚合
- 每日明细:近 30 天逐日 Token / 缓存 / 输出 / 推理 / 命中率 / 回合
- 每月汇总:全部历史按月聚合
表格、钻取与导出¶
- 厂商 KPI 表:按总 Token 排序,含命中率、模型数、类型标签;点击行展开该厂商逐模型消耗
- 时间预设:今天 / 7 天 / 14 天 / 30 天 / 90 天 / 全部
- 费用估算:按厂商设置每百万 token 单价,表格显示折算后的预估费用列
- CSV 导出:每日 / 每月 / 厂商表格均可导出
健康度与性能卡片¶
平均 TTFT(首字延迟)、生成速度(t/s)、峰值 Context、请求错误率、模型 / 工具总耗时,聚合自 DSH 的 sessionStats 投影。
数据口径¶
- 数据全部来自 DSH 持久化会话日志:
assistant/message事件携带usage(Token 记账)与message.source.{provider,model}(厂商 / 模型来源) - Token 统计口径与 DSH 一致:
inputTokens为未命中输入,cacheReadTokens为缓存命中输入,outputTokens为输出,reasoningTokens为推理,cacheWriteTokens为缓存写入 - 缓存命中率 = 命中 /(命中 + 未命中输入)× 100%
安装与启用¶
这是标准的 DSH 社区插件包(声明 dsh.bundle manifest + web client 半),从 GitHub 直接安装:
dsh plugin --profile web add "github:kirigayakazima/dsh-usage-vendor-stats"
安装后刷新页面即可,无需手动改配置、无需重启。
本地开发需要手动注册时,先创建符号链接,再改 patch 配置:
1、把插件目录放在任意位置,在 $DSH_HOME/profiles/node_modules/ 下创建指向它的符号链接(Windows 用 junction):
New-Item -ItemType Junction -Path "$env:DSH_HOME\profiles\node_modules\dsh-usage-vendor-stats" -Target "<本目录绝对路径>"
2、在 $DSH_HOME/profiles/web/cordis.patch.yml 添加 insert 条目:
- insert:
- id: usage-vendor-stats
name: dsh-usage-vendor-stats
用户 patch 层会被热重载,保存后刷新页面生效。
典型用法¶
1、打开侧边栏底部的「设置」找到「API 用量统计」页,或点击侧边栏底部的「用量统计」入口打开全屏面板。
2、热力图颜色 = 当日调用次数;点击厂商 chip 或表格行可筛选 / 钻取。
3、在「厂商管理」里给每个厂商设置别名与类型(订阅 / 官方 API),可选设置每百万 token 单价用于费用估算。
经过上面的步骤,看板会按所选时间范围展示厂商 KPI 表、逐日 / 逐月明细,点击厂商行还能继续钻取到逐模型消耗。
接口与架构¶
Host 半(lib/index.js)扫描持久化会话日志聚合用量,通过 webServer 服务注册两条数据路由:
GET /api/usage-vendor-stats:统计快照(厂商 / 模型 / 日 / 月 / 小时 / 汇总)POST /api/usage-vendor-stats/vendor:设置厂商别名、类型与单价
Client 半(lib/client.js)是浏览器 bundle,注册设置页(settings.section 槽位)、侧边栏底部入口(sidebar.footer.action)与全屏面板(shell.overlay)。
插件无第三方运行时依赖:Host 半仅用 Cordis 服务,Client 半仅用模块表提供的 React。日常修改 lib/client.js 刷新页面生效;Host 半改动需重启 DSH。
适用场景与注意¶
适合同时接多家厂商、想分摊和核对各家用量与成本、关注缓存命中率和响应性能的 DSH 用户。使用前注意:
- 插件以当前 dsh 进程的权限运行,安装前建议先阅读源码确认行为,再决定是否启用;许可证为 MIT。
- 数据读自持久化会话日志,历史会话在插件激活时自动回填,无需手动导入。
- 预估费用列是按你填写的每百万 token 单价折算的估值。
小结¶
一句话回顾:dsh-usage-vendor-stats 把散落在 DSH 会话日志里的用量数据,按厂商维度聚合成可筛选、可导出、可估算费用的看板,安装即用、无需改配置。
目录页:https://www.skillhub.cn/plugins/kirigayakazima/dsh-usage-vendor-stats
源码仓库:https://github.com/kirigayakazima/dsh-usage-vendor-stats
需要说明的是,skillhub 社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。