前言¶
在 DeepSeek Harness(DSH)里跟模型多轮对话时,内置统计能看到用量,但要把 Token 换算成按官方价目表(含高峰与空闲时段)估算的人民币,往往还要自己对照文档手算。dsh-token-spend 是社区维护的客户端类插件:在聊天输入框上方 Composer 统计行里,紧挨内置「活动」「用量」,增加一块 (¥) 1.56 · 37M 形式的控件,用与内置 tokenUsage 同源的数据,按 DeepSeek 公开单价实时汇总当前会话花费。下面介绍它的能力、安装方式与可选配置。
这是什么¶
- 名称:
dsh-token-spend(npm 包名相同) - 维护者:kelaocai
- 分类:客户端(浏览器半挂载 Composer dock;Host 半注册会话投影)
- 仓库:https://github.com/kelaocai/dsh-token-spend
- 许可证:MIT(资料中 package.json 与 README 一致)
- 版本:资料记载当前 npm 版本为
0.1.1 - 环境要求:DSH 0.2.2-rc.1 或更高(依赖会话投影与 composer dock 槽位)
插件只读取当前会话已提交的 Session 事件,不联网、不上传数据;金额是按公开单价的估算,不等于平台账单。
核心功能¶
界面与交互¶
在 Composer dock 中多一个花费控件,实时显示当前会话累计 Token 与按官方规则估算的 CNY 金额。点击可展开明细,包括:
- 缓存命中 / 未命中 / 输出的 Token 与金额
- 缓存命中率
- 高峰 / 空闲时段金额
- 按模型汇总
每一轮模型调用结算后立即刷新,节奏与内置 usage 统计一致,无需刷新页面。
计价规则(默认)¶
- Token 来源:provider 上报的 usage,与内置
tokenUsage一致。 - 时段:高峰为北京时间工作日 09:00–12:00、14:00–18:00;其余时间(含周末)按空闲价;空闲价为高峰价的一半。判定所用默认时区为
Asia/Shanghai。 - 默认价目(元 / 百万 tokens,来源 README 引用的 DeepSeek 模型 & 价格):
| 模型 | 输入(缓存命中)峰/闲 | 输入(缓存未命中)峰/闲 | 输出 峰/闲 |
|---|---|---|---|
deepseek-flash |
0.04 / 0.02 | 2 / 1 | 8 / 4 |
deepseek-v4-pro |
0.30 / 0.15 | 9 / 4.5 | 27 / 13.5 |
deepseek-v4-flash、deepseek-v4-flash-vision-exp 等历史别名按 flash 价格计费。若 provider 上报了 cacheWriteTokens,默认按缓存未命中价计,可在配置中用 cacheWrite 覆盖。
实现要点(便于排障)¶
- Host 半注册
tokenCost会话投影,折叠assistant/message、assistant/attempt、model/selection等事件,按「模型 × 高峰/空闲」累计 Token;状态随会话 checkpoint 持久化。 - 浏览器半在
conversation.composer.dock注册控件,通过useProjection('tokenCost')渲染;无 Host 半时退化为只显示 Token。
安装与启用¶
安装前请自行查看仓库源码与 MIT 许可证;插件在当前 DSH 进程权限下运行,与所有 DSH 插件一样,安装即信任其读写 Session 投影与 UI 注册行为。
方式一:市场索引(推荐)¶
- 在 DSH「插件」页启用实验插件 自定义插件索引(
@deepseek-ai/dsh-experimental-plugin-market-bundle)。 - 打开「发现」页 → 添加索引源,粘贴:
https://cdn.jsdelivr.net/gh/kelaocai/dsh-token-spend@main/market/index.json
备用地址:
https://raw.githubusercontent.com/kelaocai/dsh-token-spend/main/market/index.json
- 搜索
dsh-token-spend,点击安装。
社区插件目录站点(如 skillhub.cn 上的条目)是独立索引,与 DeepSeek / 幻方无官方从属关系;上述索引 URL 以仓库 README 为准。
方式二:从 Git 仓库安装¶
dsh plugin add git+https://github.com/kelaocai/dsh-token-spend.git
dsh plugin add 仅将包纳入 profile;随后在「插件」页启用名为 dsh-token-spend 的 bundle。
方式三:npm¶
dsh plugin add dsh-token-spend
包页:https://www.npmjs.com/package/dsh-token-spend
典型用法¶
开箱即用¶
安装并启用 bundle 后,默认使用 README 内置的 DeepSeek 官方价格表,无需改配置即可在 Composer 上看到 (¥) … · …M 控件;点击即可查看明细。
覆盖价格与时段¶
需要自定义币种、高峰窗口、法定节假日或未知模型兜底价时,在 profile 的 cordis.patch.yml(路径:~/.dsh/profiles/<profile>/cordis.patch.yml)中追加 token-spend 配置块。示例(与 README 一致,可按需删减字段):
- id: token-spend
config:
currency: '¥'
timeZone: Asia/Shanghai
peakWeekdays: [1, 2, 3, 4, 5]
peakWindows:
- [9, 12]
- [14, 18]
# 官方规则里法定节假日全天按空闲价,但插件不内置节假日日历;需要时逐日补充
holidays: ['2026-10-01', '2026-10-02']
models:
deepseek-flash:
peak: { cacheMiss: 2, cacheHit: 0.04, output: 8 }
offPeak: { cacheMiss: 1, cacheHit: 0.02, output: 4 }
deepseek-v4-pro:
peak: { cacheMiss: 9, cacheHit: 0.3, output: 27 }
offPeak: { cacheMiss: 4.5, cacheHit: 0.15, output: 13.5 }
fallback:
peak: { cacheMiss: 1, cacheHit: 0.01, output: 2 }
offPeak: { cacheMiss: 0.5, cacheHit: 0.005, output: 1 }
主要字段含义:
| 字段 | 默认 | 说明 |
|---|---|---|
currency |
¥ |
金额前缀 |
timeZone |
Asia/Shanghai |
判定高峰/空闲所用时区 |
peakWeekdays |
[1,2,3,4,5] |
高峰星期(0=周日) |
peakWindows |
[[9,12],[14,18]] |
高峰小时区间,左闭右开 |
holidays |
[] |
YYYY-MM-DD,当日全天按空闲价 |
models |
内置 DeepSeek 价格 | 键为模型 id,或用 provider/model 精确覆盖 |
fallback |
null |
未知模型兜底费率;null 表示只显示 Token、不计金额 |
改价不需要迁移历史数据:投影状态只保存 Token 计数,金额在发布给客户端时计算。
适用场景与注意¶
适合谁:在 DSH Composer 里长时间调试智能体、需要当场感知「这一轮又花了多少 Token / 大概多少人民币」的开发者;尤其适合需要区分缓存命中与高峰计价的场景。
边界(README 已写明):
- 只统计当前会话的模型调用;子代理会话是独立 Session,不计入父会话。
- 联网搜索/抓取按次计费(文档写明 ¥5/1000 次)不在 Token 计费范围内。
- 未上报 usage 的模型调用无法计入(与内置
tokenUsage相同限制)。 - 法定节假日需手动配置
holidays,否则仅按「工作日 + 时段」规则计算。 - 卸载后注册随插件 fiber 释放;平时无网络请求、无遥测、不写文件、不调用模型。
结尾¶
dsh-token-spend 把本会话 Token 用量与按 DeepSeek 公开峰/闲单价估算的 CNY 花费,收进 Composer dock 一行控件,数据与内置 usage 同源,配置可完全本地覆盖。若要查找社区目录条目或阅读完整说明,可打开 skillhub.cn 插件页 与 GitHub 仓库。