dsh-composer-balance:在 Composer 停靠栏显示账户余额与会话花费

前言

在 DeepSeek Harness(DSH)里跑长对话或 Agent 任务时,token 用量会不断累积,账户余额也会随调用扣减。若只能去控制台或单独查 API,Composer 里缺少即时反馈,很难判断「这一轮对话已经花了多少」以及「余额是否接近告警线」。社区插件 dsh-composer-balance(维护者 weiw0923,分类:客户端)在 Composer 停靠栏增加一行极简 chip:一行显示余额占比与当前会话估算花费,视觉与宿主自带的 context 计量条对齐;点击可展开小卡片查看明细、刷新与本地设置。下文介绍其能力、安装方式与配置要点。

这是什么

dsh-composer-balance 是面向 DeepSeek Harness Web 客户端的独立实现(MIT,npm 包名 dsh-composer-balance,当前资料中版本 0.2.1)。它占用宿主公开的 conversation.composer.dock 插槽,在 Composer 底部渲染一枚 balance chip,例如:

◔ 42%   ¥ 14.55 │ 0.003

左侧为余额相关指示(含阈值着色),中间为账户余额,竖线后为当前会话花费估算。插件不与其他 balance 类 chip 叠用为佳——README 说明若已安装同类插件,应禁用其中一个,否则各 entry 会各自渲染一枚 chip。

核心功能

账户余额

余额通过宿主侧读取 DeepSeek 的 /user/balance(配置中的 baseUrl 后追加该路径),在 refreshIntervalMs 内缓存;浏览器端不持有 API Key。只读路由与 Web 应用其余部分处于同一安全边界内。

当前会话花费

插件注册会话投影 composerBalanceCost:对每个 provider usage 样本按该轮时间戳生效的资费计价(工作日 09–12、14–18 CST 高峰双倍),再汇总为会话总额。跨高峰与平峰的会话会分段计价,而不是按 chip 渲染时刻的单一费率估算。README 称对真实会话的离线回放与账户日账单可对齐到百分之几以内。

卡片内还会区分两种来源(示例文案):

余额变动  ¥2.83 · 按轮计价 ¥6.49
输入 106.3M · 输出 344.7K · 命中 99.8% · 按轮计价
  • 按轮计价:主显示数字,按各轮 token 与峰谷规则汇总,接近 provider 对该会话 token 的计费逻辑。
  • 余额变动:自 chip 开始监视以来账户余额的累计下降,反映「账户实际少了多少」,但同一 Key 上的其他活动也会计入。

展示值不会回退:取两者与本会话已显示最高值的最大值。

交互与外观

点击 chip 打开约 264px 宽卡片(与宿主 context card 同尺寸),展示余额、充值/赠送拆分、当前会话、输入/输出/缓存命中、最后更新时间,以及刷新与设置入口。样式使用宿主 CSS 变量(如 --dsw-specific-menu、--dsw-elevation-prominent、--dsw-radius-lg),12px/20px 间距节奏;Esc 或点击外部关闭。

告警阈值(warning / critical)仅改变 ¥ 图标颜色;自动刷新间隔保存在 localStorage。entry 的 order: 1,渲染在 Composer dock 末尾,通常排在宿主 token/context 计量条之后。

安装与启用

插件以 DSH Web profile 安装。资料中的官方命令如下(npm 发布后可用包名;本地开发可用目录路径):

dsh plugin --profile web add dsh-composer-balance   # once published
# or from a checkout / local directory:
dsh plugin --profile web add /path/to/dsh-composer-balance

安装后需重启 Harness(systemd 部署示例:sudo systemctl restart dsh-web),并刷新浏览器页面。

注意:插件在 DSH 进程权限下运行;安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证。engines.dsh 要求 >=0.2.0-rc.1;peer 依赖含 @deepseek-ai/cordis 等,与当前宿主版本需匹配。

配置

在 profile 的 cordis.patch.yml 中覆盖插件 id: dsh-composer-balance 的 config:

- id: dsh-composer-balance
  config:
    apiKeyRef: DEEPSEEK_API_KEY       # credential reference holding the key
    baseUrl: https://api.deepseek.com # /user/balance is appended
    refreshIntervalMs: 120000         # how long one reading stays fresh
    warningThreshold: 10              # chip turns amber at or below this
    dangerThreshold: 5                # chip turns red at or below this
    defaultPrice: { cacheHit: 0.2, cacheMiss: 2, output: 8 }  # ¥ / 1M tokens
    modelPrices:                      # per-model overrides
      deepseek-flash: { cacheHit: 0.02, cacheMiss: 1, output: 2 }

defaultPrice 与 modelPrices 自带占位数字,需按 provider 现行价目表替换,会话估算才有参考意义;token 统计仍会显示,缺价时金额区域会灰显。

适用场景与注意

适合长期在 DSH Web Composer 中开发、调试 Agent 或模型调用、并希望不离开对话界面即可监视余额与会话成本的开发者。DSH 生态强调「一切皆插件」;SkillHub 目录页 为社区收录站点,与 DeepSeek / 幻方无官方从属关系。

若同时运行多个 balance chip,请只保留一个。资费配置未更新时,chip 上的会话金额仅为估算;余额以 /user/balance 为准。

结尾

dsh-composer-balance 用一行 chip 和一张卡片,把账户余额、峰谷-aware 的会话计价与宿主原生 UI 绑在一起,并支持本地阈值与刷新间隔。进一步了解可查看 目录页 与 GitHub:weiw0923/dsh-composer-balance。

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

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

Xiaoye