前言¶
做 DSH 相关开发时,模型调用本身通常不是最难看的部分,难的是调用发生后如何快速核对:哪次调用来自哪个会话、用了哪个模型、状态码是什么、各 Token 桶数量是多少、金额大概是多少、失败时错误信息在哪里。
下面介绍一个插件:@wycto/dsh-token-usage。它记录 DeepSeek Harness 中所有 LLM API 调用(模型请求),并提供单窗口全屏统计面板。本文以 npm 包 name @wycto/dsh-token-usage 指代该插件;仓库与 README 中使用 dsh-token-usage 名称。
这是什么¶
@wycto/dsh-token-usage 是一个 DSH 插件,用于把 DSH 中的模型调用记录整理成可查询的统计面板。
已核实资料中的基本信息如下:
- 维护者:
wycto - npm 包 name:
@wycto/dsh-token-usage package.jsonversion:0.1.14- license:
MIT peerDependencies:@deepseek-ai/dsh *- 源码仓库:
https://github.com/wycto/dsh-token-usage
它的定位不是重新拦截模型请求,也不替代 DSH 的调用链路,而是读取 DSH 会话日志,把已有的调用信息整理成统计、筛选、排序和导出能力。
核心功能¶
入口与全屏面板¶
安装启用后,DSH 侧边栏底部会出现蓝色渐变大按钮“Token 用量”。点击后打开全屏统计面板。
查询与筛选¶
面板支持按条件查询调用记录:
- 起止时间使用
datetime-local,可精确到秒。 - 默认不限制时间,显示全部记录。
- 筛选条件暂存在
localStorage,下次打开可恢复上次条件。 - 点击【重置】可清空全部条件。
- 提供商 / 模型下拉去重合并现有配置与历史记录。
- 支持会话 ID / 模型提供商 / 模型 / 状态 / 推理强度下拉筛选。
明细表与排序¶
明细表提供逐条调用记录。README 中说明明细表全部 15 列可点击表头排序,排序维度包括:
- 时间
- 会话 ID
- 提供商
- 模型
- 输入
- 缓存
- 命中 %
- 输出
- 推理
- 总额
- 金额
- 金额(¥)
- 强度
- 状态
- 耗时
默认按时间倒序,最新记录在前。
会话 ID 快捷筛选¶
明细表中显示会话 ID。点击任意会话 ID,即可按该会话筛选后续记录。
状态码与详情弹窗¶
状态列会展示调用状态。对于存在状态码的调用,可显示 HTTP 状态码,例如 200、400、401、429、500 等。
状态下方可打开详情弹窗,查看更完整的调用信息,包括:
- 会话 ID
- 错误信息
- 错误码
- 各 Token 桶
- 金额
- 耗时
- Turn / Step 相关信息
分组统计¶
面板支持按以下维度分组统计:
providermodelstatuseffort
分组统计项包括调用数、各 Token、命中率、金额、耗时等。
CSV 导出¶
支持按当前筛选条件导出全字段 CSV 明细,便于在本地继续处理。
金额显示¶
金额以双币显示:
- USD
- 人民币
README 说明金额基于官方人民币刊例和汇率换算,默认汇率为 7.2,可通过 settings.yaml 中的 token-usage.usdCnyRate 覆盖。
该插件支持 DeepSeek-V4 峰谷两档。金额仍属于估算,不是精确账单。
安装与启用¶
npm 包安装¶
已核实资料给出的安装命令为:
dsh plugin --profile <profile名> add @wycto/dsh-token-usage
执行该命令后,安装到指定 profile。
重启 DSH¶
安装后需要重启 DSH:
dsh --profile <profile名>
打开面板¶
重启完成后,在 DSH 侧边栏底部点击蓝色“Token 用量”按钮,即可打开全屏统计面板。
典型用法¶
按时间范围查询¶
打开面板后,可以使用起止 datetime-local 精确到秒过滤调用记录。
例如,只查看某一天内某一时段的调用。如果不想继续保留筛选条件,可以点【重置】清空全部条件,回到显示全部记录的状态。
按会话 ID 查询¶
在明细表中看到某个会话 ID 后,直接点击该会话 ID,即可按该会话筛选。
适合在排查一次完整会话中的多次模型调用时使用。
按表头排序¶
点击明细表任意列表头可切换升降序。
默认按时间倒序。也可以按模型、状态、金额、耗时等列重新排序,用来快速找出消耗较高或失败较多的记录。
本地开发体验¶
本地开发时,可以按 README 示例把插件文件接入 DSH web 构建。
先准备文件:
- 将
lib/index.js与client/index.js放入src/。 - 在
cordis.patch.yml中插入插件行。README 示例中name/id使用带 scope 的包名@wycto/dsh-token-usage。 - 执行构建命令:
pnpm dsh web --patch ./dsh-token-usage/cordis.patch.yml
配置汇率与定价¶
可以在 settings.yaml 的 token-usage 下配置汇率、定价页、自动获取间隔和手动价格覆盖。
已核实资料列出的配置项包括:
token-usage:
usdCnyRate: 7.2
pricingUrl: ''
pricingFetchIntervalHours: 24
pricing: {}
其中:
usdCnyRate:USD 与人民币之间的汇率,README 示例默认值为7.2。pricingUrl:定价页地址。pricingFetchIntervalHours:自动获取定价的间隔,单位为小时,README 示例默认值为24。pricing:手动覆盖或新增价格条目。README 示例中支持按模型配置,并支持 DeepSeek-V4 的peak峰谷时段。
修改 settings.yaml 后,按 DSH 实际加载机制重启或重新加载后生效。
数据来源与边界¶
数据来源¶
该插件只读取 DSH 会话日志,不侵入模型调用链路。
README 说明它会从 DSH 会话事件中提取每次模型调用的信息,并整理为面板中的明细、状态、Token、金额、耗时等字段。
金额是估算值¶
金额显示为估算值。插件内置常见模型单价表,未知模型使用 fallback 单价。
如果官方价格变动,README 说明插件会每天自动从官网获取最新定价;获取失败时回退内置默认值。也可以通过 settings.yaml 手动覆盖。
失败调用可能没有 Token 记录¶
失败调用,尤其是没有 assistant/message 的调用,可能不产生 Token 记录。
此时状态列反映 turn 结局,用于判断这次调用最终是完成、错误、中止等状态。
OCX 网关下的 Token 显示¶
本机为 OCX 网关时,usage 字段可能缺失。此时 Token 数可能显示为 0。
记录重建¶
插件中的记录为本地内存索引。进程重启后,会从 DSH 会话日志重新构建。
密钥展示¶
apikey 永不落明文,仅展示掩码。插件不复制密钥。
适用场景与注意¶
适合以下场景:
- 需要查看 DSH 中某次会话的模型调用明细。
- 需要按模型、提供商、状态、推理强度分组观察调用分布。
- 需要排查
400、401、429、500等状态码及错误信息。 - 需要导出 CSV 做本地二次分析。
- 需要查看 USD 与人民币双币金额估算。
使用前需要注意:
- 插件会随当前 DSH 进程权限运行。安装前应检查源码、许可证和依赖关系。
- 金额为估算值,不适合作为精确财务依据。
- 失败调用可能没有 Token 记录。
- OCX 网关下部分 Token 字段可能显示为
0。 - 插件只读取 DSH 会话日志,不改变模型调用链路。
结尾¶
@wycto/dsh-token-usage 的价值在于把 DSH 中原本分散在会话日志里的 LLM API 调用信息,整理成一个可查询、可筛选、可排序、可导出的本地统计面板。它适合用来查看模型消耗、排查调用状态,以及按会话或模型维度做本地分析。
已核实资料未包含目录页 URL,本文只给出源码仓库地址:
- GitHub:
https://github.com/wycto/dsh-token-usage