前言¶
在 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 仓库。
方式一:插件页¶
- 下载
dsh-plugin-account-balance-1.0.0.tgz(或按 README 使用本地目录)。 - 打开 DSH → 侧栏 插件 → 添加插件,选择该包或目录。
- 安装后点 立即启用,并刷新一次窗口。
方式二:命令行¶
在项目目录执行安装脚本(会把包复制进 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 输入框下方即可看到统计行;无需额外配置即可使用默认刷新间隔与阈值。
- 看当前钱包合计与是否低余额(变红)。
- 在同一会话内多轮对话,观察「会话」随余额差变化;切换
sessionId会各自维护基线。 - 每轮生成结束后看「本轮」估算,结合 token 占比理解成本量级。
- 点击 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