dsh-game-hud:DSH 游戏风格悬浮 HUD 插件

前言

DSH 生态强调「一切皆插件」,插件可以补足主流程中常见的界面与状态展示需求。对于使用 DSH web profile 的开发者来说,账户余额、会话上下文剩余、峰谷单价、自动压缩状态等信息如果不集中展示,往往需要切换到不同页面或日志里查看。

dsh-game-hud 是一个 DeepSeek Harness 插件,把这些状态做成一个游戏风格悬浮 HUD。它把余额显示为血条,把上下文剩余显示为蓝条,并展示峰谷定价、切换倒计时、低余额告警、自动压缩与携带记忆的新会话入口。

下面介绍它的定位、功能、安装方式、配置方式和注意事项。

插件定位

dsh-game-hud 可以理解为 DSH Web 端的状态面板插件。它适合希望在一个固定位置快速查看 DeepSeek 账户余额、当前会话上下文、峰谷定价和压缩状态的开发者。

仓库地址:

https://github.com/guoliyuan97-png/dsh-game-hud

许可证为 MIT。已核实资料中 package.json 声明 Node.js 引擎要求为:

"engines": {
  "node": ">=18"
}

核心功能

余额血条

血条用于实时显示 DeepSeek 账户余额。插件调用官方 user/balance 接口,满格金额默认为 ¥20,并且可配置。

余额展示不是客户端直接频繁请求官方接口。已核实机制是:客户端每 3 秒轮询宿主,宿主缓存 30 秒后重查官方余额接口。

上下文蓝条

蓝条用于显示当前会话上下文剩余。它基于与官方 UI 同源的 contextPressure 投影,随对话增长而从满格减少。

上下文剩余每 3 秒重新测量。

低余额告警

当余额低于阈值时,悬浮窗四周会闪烁红光。默认阈值为 10%,告警开关可配置。

该告警只针对余额血条,不针对上下文蓝条。

折叠迷你视图

折叠后,HUD 会显示紧凑的血条和蓝条,方便在不需要完整面板时查看余额与上下文。

峰谷定价

插件按官方北京时间峰谷规则展示当前单价和切换倒计时。

已核实的峰谷时段为:

09:00–12:00
14:00–18:00

这两个时段为高峰,谷时半价。插件会显示当前单价,并展示距下次切换的倒计时。倒计时每秒本地跳动。

自动压缩与携带记忆

当上下文剩余低于 5% 时,插件自动触发:

/compact

压缩满 2 轮后,会出现「开启新对话(携带记忆)」按钮。如果不点击该按钮,插件会继续自动压缩。

点击「开启新对话(携带记忆)」后,流程为:

1、用当前模型生成记忆摘要。
2、新建会话。
3、向新会话注入记忆。
4、新会话上下文重新累计。

注入方式是通过 POST /hud/seed,以 user/message append 方式静默注入记忆,不触发 agent 回复,也不回答旧问题。

安装与启用

使用 dsh 命令安装

在 DSH 环境执行:

dsh plugin --profile web add github:guoliyuan97-png/dsh-game-hud#v1.2.0

安装后重启 DSH。

已核实资料中安装命令引用的是 v1.2.0,而仓库 package.json 中版本显示为 1.3.1。如果你按 tag 或包版本安装,请在安装前核对仓库当前可用版本。

写入 web profile 安装

也可以在 DSH 的 web profile 中直接声明依赖。

在 web profile 的 package.json 中设置:

{
  "dependencies": {
    "dsh-game-hud": "github:guoliyuan97-png/dsh-game-hud#v1.2.0"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-game-hud"]
    }
  }
}

也可以理解为在 dsh.profile.bundles 中加入:

"dsh-game-hud"

然后执行:

pnpm install

安装完成后重启 DSH。

本地开发安装

如果本地仓库在 ./packages/dsh-game-hud,可以在 package.json 中使用 file: 引用:

{
  "dependencies": {
    "dsh-game-hud": "file:./packages/dsh-game-hud"
  },
  "dsh": {
    "profile": {
      "bundles": ["dsh-game-hud"]
    }
  }
}

配置与典型用法

配置入口

可以通过 DSH 设置中的插件入口编辑配置:

DSH 设置 → 插件 → dsh-game-hud

也可以在 profile 的 cordis.patch.yml 中覆盖配置项。

已核实的可配置项包括:

maxBalance
lowAlert
lowThreshold
priceTable

含义如下:

maxBalance    血条满格金额,默认 20
lowAlert      低余额红光告警开关,默认 true
lowThreshold  低余额告警阈值,默认 10
priceTable    按模型覆盖峰谷单价

cordis.patch.yml 示例

示例中配置了 maxBalancelowAlertlowThreshold,以及 deepseek-v4-flash 的峰谷单价:

- insert:
    - id: game-hud
      name: 'dsh-game-hud'
      config:
        maxBalance: 50
        lowAlert: true
        lowThreshold: 10
        priceTable:
          deepseek-v4-flash:
            peak: { input: 3.0, output: 9.0, cacheHit: 0.1 }
            valley: { input: 1.5, output: 4.5, cacheHit: 0.05 }

API Key 解析

插件的 API Key 通过宿主 credentials 服务解析。

默认环境名为:

DEEPSEEK_API_KEY

同时,它会读取 llm-deepseek 配置中的 apiKeyEnv

宿主路由

宿主注册了三个 HTTP 路由:

GET /hud/state?sessionId=<id>
POST /hud/digest
POST /hud/seed

用途如下:

1、GET /hud/state?sessionId=<id> 用于查询实时状态。
2、POST /hud/digest 用于生成记忆摘要。
3、POST /hud/seed 用于向新会话注入记忆。

其中 POST /hud/seeduser/message append 方式静默注入记忆,不触发 agent 回复,也不回答旧问题。

客户端打包方式

已核实资料中说明,客户端以 window.__ModuleLoader__.load() 手写格式打包,无需构建器。

适用场景与注意

这个插件适合以下场景:

1、使用 DSH web profile,希望在会话界面旁边查看 DeepSeek 账户余额。
2、需要关注当前会话上下文剩余,避免长对话后才发现上下文不足。
3、需要查看 DeepSeek 峰谷定价和切换倒计时。
4、希望在上下文不足时自动触发压缩,并在必要时携带记忆开启新会话。

使用前注意:

1、插件以当前 dsh 进程权限运行。安装前应检查源码、依赖与许可证。
2、许可证为 MIT。
3、安装后需要重启 DSH。
4、余额展示依赖官方 user/balance 接口,客户端每 3 秒轮询宿主,宿主缓存 30 秒后重查。
5、峰谷定价展示依据已核实的官方峰谷时段与半价规则,具体计费仍以 DeepSeek 官方规则为准。
6、已核实资料中安装命令使用 v1.2.0,仓库 package.json 显示版本为 1.3.1。安装前建议核对实际可用版本。

结尾

dsh-game-hud 把 DeepSeek 账户余额、会话上下文、峰谷定价、自动压缩和携带记忆的新会话入口集中到一个 HUD 面板里。对于使用 DSH web profile 的开发者来说,它的价值主要在于减少状态切换成本,让余额、上下文和价格变化在会话旁边直接可见。

仓库地址:

https://github.com/guoliyuan97-png/dsh-game-hud
羽毛球分组比赛记分
小程序二维码

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

小夜