dsh-peak-cost:DeepSeek Harness 中的实时成本与余额显示

前言

在 DeepSeek Harness 中进行长时间对话时,容易忽略两个关键问题:当前是否处于计费高峰时段,以及本次会话已经花费了多少美元。这两个信息通常需要手动刷新页面或切换到设置页面才能查看,会打断对话流。dsh-peak-cost 在 composer 下方的 dock 区域添加一行显示,实时回答上述三个问题:是否在高峰时段、本次会话已花费金额、账户余额。

插件定位

dsh-peak-cost 是一个 DeepSeek Harness 插件,由 ogidimitrov 维护,属于联网工具分类。它通过在 composer dock 插槽中渲染一行状态信息,为当前会话提供计费窗口判断、美元花费估算与账户余额查询,无需离开当前对话界面。

核心功能

一行状态显示

插件在 composer 下方的 dock 区域(与内置的步数计数器和 token 计数器并列)显示一行状态:

● Off-peak · ≈ $0.338 · bal $7.27

这行信息包含三个部分:

  • 峰值状态:Off-peak 表示当前处于非高峰时段,插件每 30 秒根据时钟重新评估一次
  • 会话花费:≈ $0.338 是本次会话截至当前的美元花费估算,每次 settled 模型调用后更新
  • 账户余额:bal $7.27 是账户余额,每 60 秒从 Host 的账户远程接口读取一次,支持两种钱包类型累加

悬停面板

将鼠标悬停在状态行上,会打开一个主题面板,显示成本归因表:

Content            In context   First time   Re-sent
Tool results            40k         $0.021   $0.0047
Web results             18k         $0.0014  $0.0110
Assistant replies       12k         $0.0048  $0.00
Your messages          4.2k         $0.0003  $0.0028
Model thinking          6k         $0.0024  $0.00
Tool schemas           8.8k         $0.0013  $0.00
System prompt          1.4k         $0.0002  $0.00
Model output                        $0.028
Session total                                     $0.423

每行对应一种内容类型,回答两个问题:

  • First time:该内容首次进入上下文时的成本(按缓存未命中输入计费一次)
  • Re-sent:该内容在后续每次调用中被重复发送时的成本(按缓存命中输入计费)

通过这两列可以回答“本次会话中搜索数据花费了多少”这类问题:一次查询的缓存未命中成本加上后续所有缓存命中的重发成本。

成本计算逻辑

插件的成本计算由 Host 端完成,客户端只负责渲染。Host 端维护一个名为 peakCost 的会话投影,其 wire 视图携带累计花费。

每条 assistant/message 事件按自身信息计价:

  • model:从消息自身的 provider 元数据获取,支持在 deepseek-flash 和 deepseek-v4-pro 等模型间切换的会话
  • tokens:分别计价 cache-miss input、cache-hit input、cache-write、output,与 provider 报告的使用量一致
  • billing window:从消息的时间戳获取,支持跨高峰边界的会话正确计价
  • discount:非高峰时段费率是高峰时段的一半

所有调用的实际计费使用 provider 报告的数字,因此分类成本之和等于真实账单,只有分类之间的分摊是估算值(每字符折合 4 个 token)。

余额获取

余额从 Host 的 ctx.remote.account.getBalance 获取,与设置页面的账户页面调用的是同一个接口。该接口返回两种钱包类型(充值钱包和奖励/赠款钱包)的余额之和,因此面板中始终列出两种钱包。

插件通过 scoped ctx.inject(['remote.account'], …) 捕获该接口,并在根上下文仍然保留 ctx.remote.account 作为回退。余额更新频率为 60 秒,且每当窗口重新获得焦点时也会刷新一次。余额为可选:未登录账号、仅使用 API Key 的设置、读取失败或未提供账户传输的构建都不会显示余额,成本行保持完整。

缓存命中与成本节省

DeepSeek Harness 在每次模型调用时发送完整对话上下文,其中绝大部分是缓存命中。缓存命中的输入按低得多的费率计费,这解释了为什么数百万提示 tokens 的会话仅花费几分钱。

例如,在 deepseek-flash 非高峰时段的会话中:

tokens rate (off-peak) cost
cache-miss input 184,312 $0.15 / 1M $0.028
cache-hit input 21,805,952 $0.003 / 1M $0.065
output 102,878 $0.60 / 1M $0.062
total $0.155

若不使用提示缓存,22M 提示 tokens 在非高峰时段将花费约 $3.36。面板中的 First time / Re-sent 列展示了同一会话的缓存折扣。

安装与启用

该插件是一个 Harness bundle,声明了 dsh.bundle.patch 和 dsh.client 两个部分。安装 bundle 后会同时挂载 Host 投影和 Web 入口。

在 DSH 的插件页面安装 bundle:

github:ogidimitrov/dsh-peak-cost

或在 agent 会话中通过插件管理器的 install_bundle 动作安装:

install_bundle('github:ogidimitrov/dsh-peak-cost')

安装后,一行状态会立即出现在 composer dock 中。

插件需要当前 DeepSeek Harness 桌面或 Web 应用提供会话投影注册表、conversation.composer.dock 插槽和客户端语言服务,无额外 npm 依赖和构建步骤。

要移除插件,在插件页面取消安装该 bundle 即可。

典型用法

安装后,在任意会话中即可看到状态行:

● Off-peak · ≈ $0.338 · bal $7.27
  • 观察峰值状态:Off-peak 或 Peak,每 30 秒更新
  • 查看会话花费:右侧数字随每次模型调用更新
  • 查看余额:bal 右侧数字每 60 秒刷新一次,支持鼠标悬停查看钱包详情

将鼠标悬停在状态行上,查看按内容类型分类的成本归因表,了解哪些内容类型在本次会话中花费最多。

适用场景与注意

适合需要精细控制 DeepSeek 费用、希望实时了解高峰时段状态与账户余额的开发者和用户。对于长时间对话、频繁切换模型或需要监控成本的场景尤为有用。

该插件以当前 DSH 进程的权限运行,安装前应检查源码与许可证(MIT)。插件依赖当前 DSH 应用提供的会话投影注册表和 composer dock 插槽,不支持自行构建或作为独立服务运行。

结语

dsh-peak-cost 在对话界面中提供了三个核心信息的即时可见性:峰值时段状态、会话美元花费和账户余额,并通过悬停面板细化到内容类型的成本归因。它不依赖额外构建步骤,安装即用,适合需要实时监控 DeepSeek 计费细节的用户。

目录页:https://www.skillhub.cn/plugins/ogidimitrov/dsh-peak-cost
GitHub:https://github.com/ogidimitrov/dsh-peak-cost

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

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

Xiaoye