前言¶
在 DeepSeek Harness(DSH)里跑多轮对话时,token 用量会随请求累积,但界面往往不会把「这一会话大概花了多少钱」摆在显眼位置。若你同时关心官方峰谷时段(工作日高峰与低谷、周末全天低谷等),单靠记忆单价或事后对账单,很难在开发调试时快速判断成本。
下面介绍社区插件 dsh-plugin-cost-meter(维护者 doubsumi):它在 Web 客户端会话标题栏右上角显示按会话累计的实时费用徽章,并按每条请求的墙钟时间套用峰谷规则计价。插件归类为客户端,属于 DSH「一切皆插件」生态中的社区条目;目录见 SkillHub 插件页,源码与说明以 GitHub 仓库 为准。
这是什么¶
dsh-plugin-cost-meter 是面向 DeepSeek Harness 的客户端插件:在对话头部右上角挂载 live cost badge,随宿主上报的 provider usage 更新,无需轮询或定时器。计价支持峰谷分时(peak / off-peak);DeepSeek 计费习惯上仅周一至周五部分时段为高峰,周末全天按低谷处理,具体窗口可在配置或价目表中调整。
徽章展示的是当前会话估算费用,不汇总子会话或整账号;未匹配到价格的线路会显示「未配置」(unpriced),不会用虚构单价凑数。
核心功能¶
实时与会话级累计¶
宿主上报用量后徽章即更新。费用按 { provider, model } 线路分别累计;同一会话中途换模型时,各线路各自计价。同一 (turn, step) 的重复 usage 样本会替换旧值,避免重复计入。
按请求时间做峰谷判断¶
每条请求按自身的 event.time 判断所处档位,而不是用「当前时刻」。因此会话跨夜、跨高峰与低谷时,历史请求仍按当时档位计价;已折叠样本的金额会冻结写入持久化投影缓存,价目表后续变更不会改写过去会话的合计(冷启动无检查点时才会按当时价表重算日志)。
价目来源与静默同步¶
价格解析优先级(高者覆盖低者)为:
config.models/config.default(手动覆盖,最高)config.pricingUrl(旧版{ models, default }文档)- 远程 catalog(默认指向本包在 GitHub 上的
catalog/prices.json,由package.json的 repository 推导) - 包内自带的
catalog/prices.json(离线兜底)
默认每 refreshMinutes(默认 360,即 6 小时)静默拉取远程 catalog;失败则保留上一次成功数据。维护者更新仓库中的 catalog/prices.json 后,已安装实例可在不发新版插件的情况下跟进单价(Fork 会拥有自己的默认更新通道)。
模型支持 catalog 风格(cacheMiss / cacheHit 等及可选 *OffPeak)与 legacy 风格(inputPerM 等及可选 *Peak)。路由匹配支持 provider/model、provider/*、*-model 通配,并对 model id 做大小写、空格、标点不敏感归一化。
客户端挂载点¶
徽章使用 additive 插槽 conversation.session.header.utilities;README 说明 …header.corner 为已被内置插件占用的 single 插槽。DSH ≥ 0.1.5 使用 stateSchema 与 wire: { viewSchema, view } 投影契约,并依赖 @deepseek-ai/dsh-client-ui-renderer、@deepseek-ai/dsh-client-ui-session 等;package.json 中 engines.dsh 为 >=0.1.5-rc.1 <1.0.0。
安装与启用¶
推荐从 npm 安装到 web profile。包声明了 dsh.bundle,dsh plugin add 会自动激活 profile 层,一般不必手写 cordis.patch.yml 插入行。
dsh plugin --profile web add dsh-plugin-cost-meter
安装后重启 Web 服务:
dsh web
若本地开发插件,可用 link: 指向目录(路径按本机修改),修改后重启 dsh web 即可生效,无需重装:
dsh plugin --profile web add "link:E:/path/to/dsh-plugin-cost-meter"
配置要点¶
在 profile 的 cordis.patch.yml(例如 ~/.dsh/profiles/web/cordis.patch.yml)中,用与内置相同的 id: cost-meter 覆盖默认项。README 给出的示例包含显示货币、汇率、catalog 地址、刷新间隔、手动模型价与峰谷窗口等字段:
- insert:
- id: cost-meter
name: dsh-plugin-cost-meter
config:
currency: CNY
fx:
cnyPerUsd: 7.1
catalogUrl: ""
refreshMinutes: 360
pricingTimeoutMs: 4000
pricingUrl: ""
models:
deepseek-official/deepseek-flash:
inputPerM: 1.06
cacheReadPerM: 0.021
cacheWritePerM: 1.06
outputPerM: 4.26
peak:
enabled: true
multiplier: 2
timezoneOffsetMinutes: 480
days: [1, 2, 3, 4, 5]
windows: [[9, 12], [14, 18]]
说明:currency 为空则跟随 catalog 货币;catalogUrl 为 "" 时使用包默认远程 catalog;设为 "" 并配合本地路径可指向私有镜像或 file:///…。peak.enabled: false 时按单一费率计费;peak.timezoneOffsetMinutes 用于峰谷窗口的墙钟偏移。悬停徽章可查看当前档位、倍率、线路与 token 分项。
计价公式在 README 中按 uncached input、cache read/write、output 四类 token 分别乘以对应单价后除以 1_000_000 再求和,并区分峰、谷档位。
典型用法¶
- 按上文命令为 web profile 安装插件并执行
dsh web。 - 打开任意会话,在标题栏右上角观察费用徽章;随对话产生 usage,数字应随宿主上报更新。
- 若默认 catalog 不满足环境(私有模型线路、自定义汇率或峰谷窗口),在
cordis.patch.yml的cost-meter配置里填写models或调整peak/catalogUrl。 - 需要与官方标价对照时,README 建议核对 DeepSeek 官方定价页;包内 catalog 为带日期的快照。
适用场景与注意¶
适合在 DSH Web 端边调试智能体边盯会话成本、且需要工作日峰谷近似计价的开发者。费用为估算值,依赖 provider 上报的 usage 与价目表;不适合作为财务对账的唯一依据。
插件以当前 DSH 进程权限运行,安装前请自行审阅 MIT 许可 下的源码与 catalog/prices.json。社区目录 SkillHub 与 DeepSeek / 幻方无官方从属关系,本文事实以仓库 README 与 package.json 为准。
结尾¶
dsh-plugin-cost-meter 把「这一会话花了多少」放到对话头右上角,并按时分峰谷与可远程同步的价目表计价,减少边用边猜账单的压力。进一步了解可访问目录页 https://www.skillhub.cn/plugins/doubsumi/dsh-plugin-cost-meter 与 GitHub https://github.com/doubsumi/dsh-plugin-cost-meter。