dsh-token-board:DSH Web 實時 Token 看板與使用統計

前言

在 DeepSeek Harness(DSH)裏同時跑多個會話、主 Agent 與子 Agent 並行時,輸出是否在流式進行、當前大約多少 tok/s,往往要另開懸浮窗或自己翻日誌。lionwill 維護的客戶端插件 dsh-token-board 把吞吐數據嵌進 Web 界面固定位置:側邊欄底部概況、會話列表 hover 卡片、當前會話標題欄,並可通過概況行打開完整「使用統計」面板。數據留在本機,插件無 npm 依賴、無構建步驟、無外部網絡請求。

下面介紹插件定位、界面能力、安裝方式與可選配置;安裝命令與版本要求均來自項目 README 與 package.json(當前版本 0.1.0,MIT 許可證)。

這是什麼

dsh-token-board 是面向 DSH Web profile 的客戶端插件,簡介爲「token dashboard and realtime token speed for DSH」。它在側邊欄賬號行上方提供活動概況(進行中會話數與合計 tok/s),在會話 hover 與標題欄展示分 Agent / 會話級實時吞吐,點擊概況行可進入中文「使用統計」界面(熱力圖、活動洞察、技能與模型佔比等)。統計 UI 的總體口徑參考社區項目 Zhang6177/dsh-token-usage-board 的 Usage Stats 頁,不含其調用明細、導出、過濾等額外功能。

插件目錄頁:https://www.skillhub.cn/plugins/lionwill/dsh-token-board
源碼:https://github.com/lionwill/dsh-token-board

核心功能

側邊欄底部概況行

位置在側邊欄底部、賬號行上方:三根綠/藍/黃柱狀圖(有活動時依次跳動,空閒時灰色靜止),以及概況文案「N 會話進行中,X tok/s」。側邊欄收起爲窄條時只顯示圖標,懸停彈出概況氣泡。點擊該行打開完整「使用統計」面板。

會話列表 hover 卡片

鼠標移到側邊欄某個會話上時,卡片底部顯示該會話當前進行中的主 Agent 與子 Agent 各自的實時 tok/s,前面帶純色狀態圓點(語義沿用 dsh-token-hud,本插件爲無描邊、無光暈的純色樣式)。

會話標題欄

打開某個會話後,標題欄動作區末尾(「N 個後臺任務」右側)顯示本會話整體吞吐(主 Agent + 全部子 Agent 合計);懸停展開每個 Agent 明細(暫停或 0 也計入)。標題欄吞吐僅對「當前打開中的會話」生效;沒有會話打開時該位置不顯示。

使用統計面板

從概況行進入。右上角「← 返回對話」或 Esc 返回。內容包括累計/峯值 Token、最長聊天、連續天數、Token 活動熱力圖(可選年份與配色主題,主題來自 calendar-heatmap design tokens 的 8 套方案;默認當前年全年格子,未來日期置灰不可 hover;支持每日/每週/每月/累計視圖)、活動洞察、最常用技能、模型 Token 佔比(每個模型標註提供方來源)。界面爲中文,自適應白天/黑夜。

狀態圓點顏色如下:

狀態 顏色
出字中 streaming 綠 #34d399
等待模型 running 黃 #facc15
工具調用 tool 藍 #60a5fa
重試等待 retrying 橙 #fb923c
空閒 idle 灰 #9aa0a6

Host 只讀端點

安裝後宿主提供:

  • GET /token-board/v1/stats — 實時各 Agent 吞吐(客戶端固定輪詢)
  • GET /token-board/v1/usage?from&to&timeZone — 使用統計快照(面板用)

首次打開統計面板時會在後臺建立本地索引(大歷史約 10 秒級;面板不阻塞,先顯示部分數據並自動補全)。索引文件位於 $DSH_HOME/token-board/usage-index.json,可隨時刪除以重建。Host 通過 sessionQuery 讀取會話日誌並按會話緩存摘要;進程內 30s 刷新,只增量讀取新會話與當前活躍會話;端點採用 stale-while-revalidate,打開面板先返回內存中的上次結果,索引與刷新在後臺進行。

安裝與啓用

要求:DeepSeek Harness Web profile(在 0.2.2-alpha.2 上開發並驗證)、Node.js ^22.19.0 || >=24.0.0。

方式一:從打包文件安裝(推薦分發給他人)

# 把 dsh-token-board-0.1.0.tgz 拷到目標機器後:
dsh plugin --profile web add /絕對路徑/dsh-token-board-0.1.0.tgz
# 重啓 dsh web(若 profile 已啓用 HMR 會自動掛載,否則重啓後生效),刷新頁面

方式二:從目錄安裝(開發/本地鏈接)

dsh plugin --profile web add link:/絕對路徑/dsh-token-board

方式三:Web 界面 — 設置 → Plugins 頁面安裝本目錄或 tgz。

安裝後側邊欄底部賬號行上方應出現概況行。卸載:

dsh plugin --profile web remove dsh-token-board

典型用法

  1. 安裝並刷新 Web 界面,確認側邊欄底部出現概況行與柱狀動畫(無活動時柱狀圖爲灰色靜止)。
  2. 在側邊欄會話列表中將鼠標懸停於某會話,查看卡片底部的分 Agent 實時 tok/s 與狀態圓點。
  3. 打開一個會話,在標題欄「N 個後臺任務」右側查看會話總吞吐;懸停查看各 Agent 明細。
  4. 點擊底部「N 會話進行中,X tok/s」概況行,進入使用統計面板;首次無緩存時可能先見部分數據,後臺索引完成後自動補全。需要重建索引時可刪除 $DSH_HOME/token-board/usage-index.json。

數據來源與可選配置

Host 監聽各會話的 session/event 與(新版宿主)逐 chunk 廣播 agent/assistant-stream,用滾動窗口按字符數估算輸出速度(中文約 1 tok/字,英文約 4 字符/tok),並在 assistant/message 攜帶 provider usage 時校正爲精確值。子 Agent 通過會話頭部的 parentSession / origin / delegationDepth 歸屬父會話;標題欄與 hover 卡片按「自身 + 全部後代」聚合。實時速度側爲純內存、零持久化、不寫會話日誌。

可選配置寫在 cordis.patch.yml。README 註明:客戶端固定輪詢 /token-board/v1/stats;若修改 apiPath 須同時改 lib/client.js,否則三處實時界面都取不到數。

- id: token-board
  config:
    apiPath: /token-board/v1   # 只讀端點前綴(固定,客戶端硬編碼同值)
    windowMs: 5000             # 速度滾動窗口
    charsPerToken: 4           # 非 CJK 每 token 字符數
    cjkTokensPerChar: 1        # 每個 CJK 字符的 token 數
    idleTtlMs: 180000          # 空閒 Agent 的保留時長

適用場景與注意

適合長期在 DSH Web 上跑多會話、需要一眼看到 tok/s 與本地使用統計的開發者。插件以當前 DSH 進程權限運行,安裝前應閱讀源碼與 MIT 許可證,確認會話日誌索引路徑與行爲可接受。

已知限制(來自 README):

  • 速度爲流式字符估算值(約 10% 級誤差),provider 上報 usage 後會校正。
  • Host 重啓後累計值清零;空閒超過 idleTtlMs 的 Agent 會從明細中消失。

DSH 生態採用「一切皆插件」思路;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。本插件在 GitHub 上星標數爲 0(以目錄頁信息爲準),不代表功能完整性,僅以文檔與源碼爲準。

結尾

dsh-token-board 把實時 Token 吞吐和使用統計收進 Web 界面固定入口,避免再用額外懸浮窗羅列全會話。需要安裝包或源碼時,見 SkillHub 插件頁 與 GitHub 倉庫。

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

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

小夜