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
羽毛球分组比赛记分
小程序二维码

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

小夜