dsh-plugin-account-balance:在 Composer 输入区查看余额、会话消耗与本轮估算

前言

在 DeepSeek Harness(DSH)里长时间对话或跑多轮 Composer 时,账户余额和本会话花了多少钱往往要切到「设置 → 账号与余额」才能看清。Host 也没有按「本轮」出账单,想粗估当前这一轮占了多少成本,只能自己心算或翻日志。

下面介绍的 dsh-plugin-account-balance(维护者 mantou2nd)是 DSH 社区目录上的客户端类插件:在会话输入框下方的 Composer dock 里加一条 余额 · 会话消耗 · 本轮估算,点一下可展开明细,并跳到查询用量或充值。它依赖 DSH 的 remote.account 服务,只对 DeepSeek 账号模式生效。

这是什么

插件全名 dsh-plugin-account-balance(npm 包名同),当前版本 1.0.0,许可证 MIT。一句话定位:给 DSH 会话 Composer dock 增加账户余额、本会话累计消耗、以及本轮 token 分摊估算,并以可点击的 pill 形式展示。

Host 半侧(lib/index.js)无额外行为;实际逻辑在浏览器 bundle(lib/client.js),通过 conversation.composer.dock 注册 UI 条目。

核心功能

先做整体认知,再分项说明各指标怎么来的。

余额

调用 ctx.remote.account.getBalance,与「设置 → 账号与余额」使用同一 Host 接口;展示金额为充值余额 + 赠金余额合计。当余额低于 5 元(或等价最小货币单位,代码里 LOW_BALANCE_CENTS = 500)时,「余额」一段会使用 DSH 的 --dsw-alias-state-error-primary 变红提示。

会话消耗

按「当前余额相对打开本会话时的减少量」统计本会话累计消耗。基线按 sessionId 写入 localStorage,切换会话或刷新窗口不会串会话、也不会无故清零;充值会把基线抬高,避免出现负数显示。

本轮估算

Host 没有逐轮账单。插件用公式:本轮 token ÷ 全会话 token × 会话消耗 做分摊估算。分母采用全日志的 tokenUsage 投影,翻页或压缩日志不会让比例明显跑偏。该项适合看量级,不适合精确对账(cache 命中、输入输出单价不同会被均摊抹平)。

交互与降级

  • 点击 pill:真 <button> + portal 打开明细面板;Escape、点面板外或再点一次可关闭;面板内可刷新,并提供与设置页同源的「查询用量 / 去充值」链接。
  • 未登录、接口失败或没有钱包时,整条统计行隐藏,不留空占位。

安装与启用

社区目录页:mantou2nd/dsh-plugin-account-balance。源码与说明:GitHub 仓库。

方式一:插件页

  1. 下载 dsh-plugin-account-balance-1.0.0.tgz(或按 README 使用本地目录)。
  2. 打开 DSH → 侧栏 插件 → 添加插件,选择该包或目录。
  3. 安装后点 立即启用,并刷新一次窗口。

方式二:命令行

在项目目录执行安装脚本(会把包复制进 profile 的 node_modules,并写入 dsh.profile.bundles):

node install.mjs                   # 装到 ~/.dsh/profiles/desktop
node install.mjs --profile web     # 装到指定 profile
node install.mjs --uninstall       # 卸载

脚本会清理早期手工写在 cordis.patch.yml 里的重复入口。README 明确:两种方式不要叠加——包已在 dsh.profile.bundles 后,不要再往 cordis.patch.yml 手动加 ui-account-balance 行。

配置

改行为后需再执行 node install.mjs 并刷新窗口(profile 可热加载,浏览器 bundle 不会自行热更)。也可在插件页关闭再打开该项以重新挂载。

想改什么 改哪里
变红阈值 lib/client.js 的 LOW_BALANCE_CENTS(500 = ¥5)
刷新频率 lib/client.js 的 REFRESH_MS(默认 60000)
文案 lib/client.js 里的 t("中文", "English")
上报的客户端版本 lib/client.js 的 CLIENT_VERSION

典型用法

安装并启用、刷新窗口后,在任意会话的 Composer 输入框下方即可看到统计行;无需额外配置即可使用默认刷新间隔与阈值。

  1. 看当前钱包合计与是否低余额(变红)。
  2. 在同一会话内多轮对话,观察「会话」随余额差变化;切换 sessionId 会各自维护基线。
  3. 每轮生成结束后看「本轮」估算,结合 token 占比理解成本量级。
  4. 点击 pill 打开面板,需要时点刷新或跳转查询用量 / 充值。

本地开发可跑单测(README 写明 11 项:注册、渲染、面板、金额格式化、低余额、未登录降级等):

node test/client.test.mjs

适用场景与注意

适合谁:日常在 DSH 桌面或 Web profile 用 DeepSeek 账号、希望在写 prompt 时一眼看到余额和本会话花费的开发者。

兼容性:在 DSH 0.2.1-rc.2(桌面版)上验证。若 DSH 大版本变化导致「设置 → 账号与余额」不可用,需按 README 调整 CLIENT_VERSION 后再试。

已知限制(来自 README):

  • 「会话」是余额差,不是账单:其它并行会话、后台任务、子智能体消耗也会反映在当前会话条目中。
  • 「本轮」为 token 占比分摊,不适合对账。
  • 打开旧会话时,基线从打开时刻起算,历史消耗不追溯。

安全与信任:插件以当前 DSH 进程权限运行,会调用账号与余额相关远程接口。安装前请阅读 仓库源码 与 MIT 许可证,确认符合你的环境策略。DSH 社区插件目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-plugin-account-balance 把 Host 已有的余额接口和会话 token 投影接到 Composer dock,用一行 pill 解决「写对话时不知道还剩多少钱、本会话花了多少、这一轮大概占多少」的问题。需要明细或充值时,点一下即可,失败或未登录则整条不出现,不打扰界面。

  • 目录页:https://www.skillhub.cn/plugins/mantou2nd/dsh-plugin-account-balance
  • GitHub:https://github.com/mantou2nd/dsh-plugin-account-balance
羽毛球分组比赛记分
小程序二维码

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

Xiaoye