会话账单插件:DSH 底栏花费监控

前言

在使用 DeepSeek Harness(DSH)进行多轮对话时,如果会话较长,很难直观判断当前已花费多少。平台后台通常只提供总量统计,无法查看每轮的计价明细,也不支持按时段(高峰/空闲)分别核算。

下面介绍的是 dsh-billing-capsule 插件:它在 DSH Web GUI 输入框底栏新增一个「账单」胶囊,实时显示当前会话按 DeepSeek 官方价目表折算的人民币花费;点开后可查看四类 token 分桶与逐轮明细,无需再去平台后台对账。

插件定位

  • 名称:dsh-billing-capsule
  • 维护者:CKLYZZQ(Ricardo)
  • 分类:客户端
  • 许可:MIT
  • 仓库:https://github.com/CKLYZZQ/DSH-plugin-Billing-Capsule

它仅提供 UI 展示,不读写任何凭据,也不上传任何数据。

核心功能

1. 底栏胶囊

在 DSH Web GUI 的输入框底栏(conversation.composer.dock)原有「会话统计 / token 用量 / 上下文」三个项目旁,新增第 4 个项目「账单」。胶囊显示会话累计花费,保留两位小数;不足 1 分显示 <¥0.01;若整会话历史未全部加载,会在金额前加 ≈ 前缀,表示该值为估算量级。

如果价目表中没有当前模型,胶囊显示 --,绝不编造数字。

2. 逐轮明细弹层

点击胶囊可展开弹层,查看:

  • 四类 token 分桶:未缓存输入、缓存读取、缓存写入、输出;每桶显示 token 数、该时段单价与小计;
  • 计价模型、单价来源与数据时间;
  • 高峰/空闲时段判定说明;
  • 逐轮明细:轮次、token、计价模型、时段、该轮花费,最新一轮在最上面。

3. 计价规则

插件按 DeepSeek 官方价目表计价,单位为「元 / 百万 tokens」,分为「高峰」与「空闲」两档,空闲为高峰半价。

高峰时段为北京时间(Asia/Shanghai)周一至周五 9:00–12:00 与 14:00–18:00,其余时段及周末按空闲计价。缓存写入未在官方表中列出,该桶按 0 计价。

中国法定节假日未内置;如需精确,可在 cordis.patch.yml 的 holidays 列表中添加日期(YYYY-MM-DD),这些日期会按空闲计价。

4. 精度与估算

插件根据会话状态返回「精确」或「估算」:

  • 已加载轮次带唯一模型路由,且其 token 合计等于整会话投影:精确,逐轮分别计价。
  • 会话历史未全部加载(分页/压缩)或轮次缺少路由:显示 ≈,按整会话总量与最近使用的模型估算,不会因分页而少算总额。
  • 切到非对话视图导致取不到逐轮数据:只按整会话总量估算。
  • 模型不在价目表内:该轮/该会话不计金额,弹层提示「单价未知」并列出 token。

会话总量始终取自 Harness 的整会话 tokenUsage 投影,逐轮数据只用于分摊。

安装与启用

插件支持从 npm 或源码安装。

从 npm 安装(推荐)

Web 端:

dsh plugin --profile web add dsh-billing-capsule

Desktop 端:

dsh plugin --profile desktop add dsh-billing-capsule

从源码安装

dsh plugin --profile web add github:CKLYZZQ/DSH-plugin-Billing-Capsule

在界面里安装

在 DSH 的 Plugins 页面点击「安装」,输入包名 dsh-billing-capsule,或让 agent 用 plugin_manager 的 install_bundle,将 target 设为包名、仓库地址或 tarball 绝对路径。

安装后刷新页面,胶囊会出现在底栏「会话统计 / token 用量 / 上下文」右侧。

卸载:在 Plugins 页取消选择,或用 plugin_manager 的 remove_bundle。

典型用法

  1. 安装插件后,打开任意 DSH 会话。
  2. 在输入框底栏右侧,会看到「账单」胶囊,显示当前会话花费。
  3. 点击胶囊展开弹层,查看四类 token 分桶、计价模型、高峰/空闲判定与逐轮明细。

配置项(cordis.patch.yml 的 config)

键 默认值 含义
priceSourceUrl 官方中文价格页 Host 半抓取并解析的地址
refreshHours 12 重新抓取官方价格页的间隔;0 表示不定时抓取
requestTimeoutMs 8000 单次抓取超时时间
loopbackOnly true 只回应回环来源的 prices.json 请求
holidays [] 按空闲计价的日期(YYYY-MM-DD,北京时间)
models {} 手动单价覆盖,优先级最高

手动覆盖示例:

        models:
          deepseek-chat:
            cacheHitInput: { peak: 0.2, idle: 0.2 }
            cacheMissInput: { peak: 2, idle: 2 }
            output: { peak: 3, idle: 3 }

价格来源

插件的价格数据来自三个层级:

  1. 客户端内置基线:来自官方价格页,当前为 2026-10-11 抓取。
  2. Host 半自动抓取:插件激活时以及每 refreshHours 小时,Host 半抓取官方价格页并解析,经同源路由 GET /dsh-billing/prices.json 提供给客户端;客户端每 6 小时拉取一次,拿到就覆盖基线。
  3. cordis.patch.yml 中的手动覆盖:优先级最高。

抓取或解析失败不会影响使用;弹层会显示当前用的是哪一来源。官方改版导致解析失败时,需要按「更新价格」章节处理。

权限与外部服务

  • 唯一的对外网络请求:Host 半抓取 https://api-docs.deepseek.com/zh-cn/quick_start/pricing/(官方价格页),默认每 12 小时一次,可用 refreshHours 调整或关闭。
  • 提供的本地接口:GET /dsh-billing/prices.json(价格表)与 POST /dsh-billing/refresh(立即重抓),注册在 Harness 自身的 Web 服务上,默认只回应 127.0.0.1 / ::1,只读价格数据,不返回会话内容。
  • 不读取凭据:不访问 API key、账号 token、cookie 或任何凭据存储。
  • 无遥测、不上传:没有任何回传代码;会话数据只在本机浏览器内读取与计算。
  • 客户端只读:只读 Harness 已有的 tokenUsage、modelSelection 投影与当前对话的逐轮用量,不写入任何会话事件。

依赖与兼容

  • 零 dependencies、零 peerDependencies、零 install script:不 import 任何 @deepseek-ai/*,不会触发 peer 版本拒绝或产生待批准的构建脚本。
  • dsh.client.inject 只声明激活顺序:目标 profile 需组合 ui-conversation(座位与底栏)与 ui-chat(逐轮数据)。缺 ui-chat 时降级为整会话总量估算;缺 dsh-token-meter 时不显示(拿不到会话总量)。
  • Host 半的 webServer 是可选依赖;没有它时只用内置基线。
  • 已在 DSH 0.2.0-rc.2 与 0.2.1-rc.2 / profile desktop 上验证。

更新价格

官方改价后:

  1. 等自动刷新:Host 半会在 refreshHours 内重新抓取;也可用 POST /dsh-billing/refresh 立即触发。
  2. 更新内置基线(仅官网改版导致解析失败时需要):改 client.js 的 BASELINE,并运行 node tests/fetch-fixture.cjs 刷新 tests/fixture-pricing.html,按新页面改 tests/pricing.test.js 里的期望值。
  3. 改别名:官方改了模型名时,在 client.js 的 ALIASES 里加旧名到新名的映射,或在 config.models 里直接给该 id 定价。

适用场景与注意

适合需要实时掌握会话花费量级、希望按模型与时段分别核算 token 用量的 DSH 用户。

安装前建议检查源码与许可证。插件以当前 DSH 进程权限运行,所有计算均在本地完成,不涉及外部服务或数据上传。

总结

dsh-billing-capsule 是一个轻量级、零依赖的客户端插件,在 DSH 底栏提供实时会话花费监控与逐轮明细。它基于官方价目表计价,支持高峰/空闲双档,通过胶囊与弹层两种视图呈现,帮助你在开发与调试时更直观地评估成本。

插件目录页:https://www.skillhub.cn/plugins/CKLYZZQ/DSH-plugin-Billing-Capsule
GitHub 仓库:https://github.com/CKLYZZQ/DSH-plugin-Billing-Capsule

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

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

小夜