dsh-usage-summary:DSH Web 输入框旁的用量胶囊与明细面板

前言

在 DeepSeek Harness(DSH)Web 里跑长会话时,token 消耗和套餐额度往往分散在上游控制台或日志里,切换渠道后还要自己对照 provider。若只想在写 prompt 的同一屏看到「当前会话用了多少、官方余额还剩多少、Go 套餐三窗口走到哪」,需要在宿主 UI 里挂一块轻量汇总,而不是另开页面查账。

下面介绍社区插件 dsh-usage-summary(维护者 lionwill,分类:模型推理):在输入框下方状态栏注册一颗紧凑胶囊,点击向上展开面板,并按当前会话正在使用的渠道自动切换展示内容。

这是什么

dsh-usage-summary 是 DSH Web 的用量汇总小组件:注入位置为 conversation.composer.dock(order: -10),排在「N 轮 M 步 · tok/s」统计胶囊左侧。面板锚定在胶囊上方,跟随会话渠道在 DeepSeek 官方与 OpenCode Go 两套视图之间切换。

插件不内置密钥;OpenCode Go 与 DeepSeek 的 key 由宿主 credentials 解析(默认引用 OPENCODE_GO_API_KEY / DEEPSEEK_API_KEY,可在 profile 配置里改)。

两种展示模式

当前会话渠道 胶囊示例 面板标题 面板内容
DeepSeek 官方(deepseek-official / deepseek-account) ● DS ¥128.40 DeepSeek 官方余额 官方 token(未命中输入 / 缓存命中 / 输出)、按时段计费的估算金额、账户余额;不显示 Go 套餐
OpenCode Go(其他情况) ● Go 5h 12% · 周 8% · 月 46% OpenCode Go 用量汇总 顶部「本会话」行(仅 Go 渠道 token 与调用次数);下方 5 小时 / 周 / 月进度条与重置时间

既有交互:进度与圆点颜色默认绿 <60%、60–85% 黄、≥85% 红;点胶囊开面板,点外部或 Esc 收起;60 秒自动刷新;面板内 ↻ 强制刷新;取数失败显示错误与重试。

DeepSeek 官方模式下,颜色按余额金额判定(余额 < ¥10 橙、< ¥1 红),与 Go 模式的可调阈值无关。

颜色阈值(面板内 ⚙)

Go 模式的进度条、百分比与胶囊圆点共用三档颜色,默认切分点为 60 / 85。打开面板后点标题栏 ⚙ 可改橙色起点与红色起点,需满足 1 ≤ 橙色起点 < 红色起点 ≤ 100,否则拒绝保存。

保存后立即生效,写入浏览器 localStorage(键 dsh-usage-summary:thresholds)。胶囊圆点取三个窗口里最高百分比来着色。该设置只影响本浏览器显示,不在服务端 cordis.patch.yml 里配置。

历史会话与后台索引

宿主内存通常只保留当前进程打开过的会话。插件通过 ctx.sessionPersistence 读持久化日志,并在后台静默全量索引:

  1. 启动时 sessionPersistence.list() 枚举已存会话,按最近活动时间倒序排队折叠,会话之间默认间隔 120ms。
  2. 面板打开时若该会话尚未索引完,「本会话」显示 统计中…,打开期间每 2 秒轮询,完成后自动变为数字。
  3. 点 ↻ 会把当前会话插到队列最前并等待结果(默认最长 indexTimeoutMs 8s)。
  4. 索引在内存中只建一次;每 5 分钟按 revision 复查已存日志,有变化才重折叠。

索引过程不写日志、不发通知、不占用会话。

数据来源与统计方式

Host 提供两个 HTTP 端点(默认前缀可在配置里设为 apiPath: /usage-summary/v1):

端点 用途
GET /usage-summary/v1/plan OpenCode Go 套餐用量(host 轮询上游 https://opencode.ai/inference/go/v1/usage,60s 缓存)
GET /usage-summary/v1/session?session=<id> 当前会话汇总:路由判定 + 官方/Go 本地统计 + 余额;未索引历史会话返回 pending:true,&refresh=1 触发高优先折叠

用量统计在 host 侧折叠会话持久日志(request/header 判路由,assistant/message 的 source.provider + usage 记账),不额外发起推理。余额优先匹配认证方式:API-key 走官方 /user/balance,账号路由走 DSH 账号平台钱包,失败会回退另一来源(60s 缓存)。官方花费按 2026-10-17 价目表逐次按北京时间峰/闲时段估算;法定节假日未建模,Search/Fetch 按次费用不计。

安装与启用

从本地目录安装(路径须为绝对路径且无空格):

dsh plugin --profile web add link:/绝对/无空格/路径/dsh-usage-summary

从 npm 打包的 tgz 安装同样可行(README 示例文件名为 dsh-usage-summary-0.5.0.tgz,以你手头的包为准):

dsh plugin --profile web add /绝对路径/dsh-usage-summary-0.5.0.tgz

首次安装或升级 host 半边后需要重启 dsh web;仅修改 lib/client.js 时刷新页面即可。

卸载:

dsh plugin --profile web remove dsh-usage-summary

可选配置

在 profile 的 cordis.patch.yml 中按插件 id 覆盖,例如:

- id: usage-summary
  config:
    apiBase: https://opencode.ai/inference/go/v1
    apiKeyEnv: OPENCODE_GO_API_KEY
    apiPath: /usage-summary/v1
    refreshMs: 60000
    timeoutMs: 15000
    goProviders: [opencode-go]
    deepseekApiBase: https://api.deepseek.com
    deepseekKeyEnv: DEEPSEEK_API_KEY
    deepseekProviders: [deepseek-official, deepseek-account]
    deepseekAccountVersion: 1.0.0
    balanceRefreshMs: 60000
    indexDelayMs: 120
    indexRescanMs: 300000
    indexTimeoutMs: 8000
    deepseekPrices:
      deepseek-flash:
        peak: { cacheHit: 0.04, cacheMiss: 2, output: 8 }
        offPeak: { cacheHit: 0.02, cacheMiss: 1, output: 4 }
      deepseek-v4-pro:
        peak: { cacheHit: 0.30, cacheMiss: 9, output: 27 }
        offPeak: { cacheHit: 0.15, cacheMiss: 4.5, output: 13.5 }

扩展新渠道时,需在配置里列出要计入「本会话」的 provider id,并在有余额/套餐上游接口时增加 fetch 适配;目前内置 Go 与 DeepSeek 官方两组,不会随 DSH 设置页里的「渠道」自动接入。

典型用法

  1. 安装并重启 dsh web 后,打开任意会话,在输入框下方状态栏左侧找到用量胶囊。
  2. 使用 DeepSeek 官方 provider 时,胶囊显示余额缩写;点开可查看本会话 token 分项与估算花费。
  3. 使用 OpenCode Go 时,胶囊显示三窗口最高占用摘要;点开可看「本会话」Go 用量与套餐进度,必要时点 ↻ 刷新或 ⚙ 调整颜色阈值。
  4. 打开历史会话时,若「本会话」短暂为「统计中…」,等待后台索引或点 ↻ 优先统计。

适用场景与注意

适合长期在 DSH Web 里切换 DeepSeek 官方与 OpenCode Go、又希望在同屏掌握额度与会话 token 的开发者。插件以当前 dsh 进程权限运行,安装前建议阅读源码与 MIT 许可证,并确认 credentials 与环境变量配置符合你的安全策略。

已知限制包括:会话日志依赖 Session.snapshotEvents()(deprecated);只统计成功上报 usage 的消息;deepseek-account 余额需账号插件已登录,否则回退 API-key 余额;缺少 sessionPersistence 时历史会话可能取数失败;会话很多时首次后台索引需数秒。金额为估算,勿当作账单唯一依据。

结尾

dsh-usage-summary 把 DeepSeek 官方余额/本会话 token 与 OpenCode Go 套餐窗口收进状态栏一颗胶囊,减少在 Harness 内外来回查用量的切换成本。详情与安装说明见 SkillHub 目录页与 GitHub 仓库:

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

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

小夜