dsh-token-gauge:DSH Web 界面上的實時 Token 儀表盤

前言

在 DeepSeek Harness(DSH)裏跑長會話時,上下文 token 會不斷累積,解碼速度也會隨後端負載波動。Web 客戶端雖然會通過 session projection 下發 tokenUsage、sessionStats 等字段,但默認界面並不把這些數字做成「一眼可讀」的儀表。若你想在對話過程中隨時看到累計用量、tok/s 和估算費用,又不想改會話邏輯或往模型側注入額外內容,就需要一個只讀的前端疊加層插件。

下面介紹社區插件 dsh-token-gauge(npm 包名 @stone100010/dsh-token-gauge),維護者爲 stone100010,在 SkillHub 目錄中歸類爲「模型推理」。它在 DSH Web GUI 上掛載三塊可拖拽的錶盤,數據全部來自客戶端已有的 projection,不訂閱新事件、不註冊工具。

這是什麼

dsh-token-gauge 是面向 DeepSeek Harness Web 配置的客戶端插件:在應用上方浮動顯示 Token 用量、解碼吞吐和估算花費,可拖動位置、調整大小,並在瀏覽器內記住佈局。

插件註冊到 @deepseek-ai/dsh-client-ui-layout 聲明的 shell.overlay 席位(全幀、點擊穿透),與內置 overlay 條目並列,不會擋住下層界面操作。實現上不增加 session 事件、工具或模型可見內容,屬於純只讀視圖,不會改變對話行爲。

開發與測試目標版本爲 DSH 0.1.5-rc.2;插件依賴 ctx.sessions、ctx.slots 以及四個 projection 鍵名,若上游重命名這些接口,需要同步更新插件。

核心功能

三塊錶盤分別表示什麼

README 用表格說明了刻度與含義,概括如下:

錶盤 刻度 含義
Token Usage(左) 0 – 300M 整段 session log 的累計 token;指針進入琥珀區通常表示「讀入上下文遠多於輸出」,會話可能已超出模型舒適區。
tok/s(中,最大) 0 – 500 解碼吞吐:優先用頁面觀測到的「每秒新增 output token」,空閒時回退到 session 記錄的平均值;讀數亂跳往往對應後端不穩定。
Total Cost(右) 0 – $12 按參考單價估算的會話花費,相對預算刻度顯示。

每塊錶盤帶有綠 / 琥珀 / 紅警示區、指針、大號數字,以及下方細項(如 In/Out 拆分、會話均值、預算等)。數值來源爲 Web 客戶端已有的 tokenUsage、contextPressure、contextBreakdown、sessionStats 等 projection。

面板交互與診斷行

安裝並硬刷新後,面板默認出現在右下角。拖標題欄移動,拖右下角縮放,標題欄控件可摺疊;位置、尺寸與摺疊狀態按瀏覽器持久化。

標題欄中的路由 + session 讀數(實現上的 A4 診斷行)會標明解析路徑(binding、scope 或 unresolved)、當前讀取的 session id 以及 output token 計數。數字對不上時,可先對照這一行確認數據來源。

費用刻度是估算值

費用錶盤標註爲估算(est.)。README 說明:例如 deepseek-v4.1-flash 若不在 DSH 已安裝模型目錄中,DSH 不會爲其計算 cost projection;插件默認 PRICES 與目錄裏 deepseek 族參考價對齊。若要以 $12 刻度做預算對照,應在 lib/client.js 頂部常量中填入網關真實的「每百萬 token」單價。

可調常量示例(摘自 README):

const SCALE_TOKENS = 300e6;   // left dial maximum
const SCALE_RATE   = 500;     // centre dial maximum
const SCALE_COST   = 12;      // right dial maximum, also the budget
const ZONES = { tokens: [0.5, 0.8], rate: [0.6, 0.84], cost: [0.5, 0.8] }; // amber, red
const PRICES = { uncachedInput: 0.14, cacheRead: 0.0028, cacheWrite: 0.14, output: 0.28 }; // USD / M

修改後需按你的部署方式重新加載 Web 客戶端 bundle(通常重啓 dsh web 並硬刷新頁面)。

環境與要求

  • 需以 web profile 運行 DSH,例如 dsh web 或 npx @deepseek-ai/dsh web。
  • 包 engines 要求 Node >= 22(見 package.json)。
  • 通過 profile 插件管理器安裝時,需系統 PATH 上可用 pnpm。

安裝與啓用

推薦:profile 插件管理器

在已配置好 dsh 與 pnpm 的 shell 中執行:

dsh plugin --profile web add @stone100010/dsh-token-gauge

這是 README 給出的官方安裝命令,會對 web profile 做 link 與註冊。

pnpm 或 dsh 不在 PATH 時

README 提供倉庫內的 setup.sh:自行定位 dsh 並完成與上述等價的 link 與註冊。典型步驟爲進入克隆後的目錄後執行 ./setup.sh install、./setup.sh verify,必要時用 ./restart-and-verify.sh 重啓並確認插件已加載。若僅從 npm 安裝,tarball 內也包含 setup.sh,但 restart-and-verify.sh 以克隆倉庫爲準。

無論哪種方式,打開服務端打印的帶 token URL 後,硬刷新一次(Ctrl+Shift+R),客戶端 bundle 在頁面加載時注入。

典型用法

  1. 啓動 DSH Web:dsh web 或 npx @deepseek-ai/dsh web。
  2. 按上一節安裝 @stone100010/dsh-token-gauge,重啓 web 進程(若文檔或腳本要求)。
  3. 瀏覽器打開 Web UI,硬刷新,確認右下角出現錶盤面板。
  4. 開始或切換 session,觀察左盤累計 token、中盤 tok/s、右盤估算費用;需要排查數據時看標題欄 diagnostic 行的 route 與 session id。
  5. 若使用非目錄默認定價的模型或自建網關,編輯 lib/client.js 中 PRICES(及必要時 SCALE_*、ZONES),再重啓並刷新。

卸載示例:

dsh plugin --profile web remove @stone100010/dsh-token-gauge

或在克隆目錄執行 ./setup.sh uninstall。之後需重啓 dsh web。

適用場景與注意

適合誰: 經常在 DSH Web 裏調試長上下文、對比不同後端解碼穩定性,或需要在本地對照 token 預算的開發者。分類上屬於「模型推理」相關的可觀測性增強,而非改模型或改 prompt 的工具鏈。

權限與安全: 插件隨當前 DSH 進程與用戶 profile 加載,具備與該 Web 會話相同的客戶端訪問面(讀取已有 projection)。安裝前應閱讀 GitHub 倉庫 源碼與 MIT 許可證,確認符合你的合規要求;SkillHub 爲社區目錄站點,與 DeepSeek / 幻方無官方從屬關係。

版本: npm 當前資料中的版本爲 0.1.1;GitHub 倉庫顯示約 1 star。勿假設與尚未在 README 中聲明的 DSH 版本完全兼容。

開發側: 主客戶端邏輯在 hand-authored 的 lib/client.js(ModuleLoader bundle,無構建步驟)。倉庫內 node test/harness.mjs 提供 61 項檢查,覆蓋註冊、projection 訂閱、拖拽與持久化等行爲。

結尾

dsh-token-gauge 把 DSH Web 已有的 token 與 session 統計投影成三塊可拖拽錶盤,只讀、不碰會話協議,適合在開發調試時快速感知上下文壓力、解碼速度與估算成本。目錄與源碼:

  • SkillHub 目錄頁:https://www.skillhub.cn/plugins/stone100010/dsh-token-gauge
  • GitHub:https://github.com/stone100010/dsh-token-gauge
羽毛球分组比赛记分
小程序二维码

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

小夜