DSH(DeepSeek Harness)的核心理念是「一切皆插件」。在智能體開發與調試過程中,追蹤跨會話的 Token 消耗是高頻需求。dsh-usage-lite 是一個由開發者 ChrisLou-bioinfo 維護的插件,它無需構建步驟,直接在本地聚合所有會話的 Token 數據,並在設置面板新增「用量統計」頁進行可視化展示。
核心功能¶
該插件提供以下統計與展示能力:
- 彙總卡片:展示總 Tokens、輸入(未緩存)、緩存讀(含命中率)、緩存寫、輸出(含推理)。
- 時間範圍切換:支持 7 天、30 天或全部歷史數據的查看。
- 多維度排行與圖表:提供按天用量柱狀圖、按模型排行以及按工作區排行。
- 增量索引與持久化:首次全量掃描後,僅重讀新增或變更的會話,並將索引快照持久化到
~/.dsh/usage-lite/index.json,避免重複計算。
安裝與啓用¶
通過官方插件命令安裝。該插件適配 DSH 0.2.0-rc.2+(桌面端與 Web Profile 均可)。
dsh plugin add github:ChrisLou-bioinfo/dsh-usage-lite
安裝完成後,打開 Settings → 用量統計 頁面即可查看統計數據。
統計口徑與數據流¶
插件的數據來源爲本地會話日誌,具體規則如下:
- 數據源:優先讀取
ctx.sessionQuery(Live 數據),兜底使用readSession(id)讀取持久化事件。 - 過濾規則:僅統計
assistant/message事件中data.usage且data.message.source.kind === "model"的樣本,忽略流式assistant/attempt裏的過程值。 - 去重處理:跳過
inheritedEventCount之前的事件,避免 fork 或 resume 會話時重複計算父會話的 Token。 - 計算公式:
total = input + output + cacheRead + cacheWrite;reasoning單獨列出。 - 緩存命中率:
cacheRead / (cacheRead + input),若 Provider 不上報緩存則顯示 “—”。
技術維護注意¶
- 客戶端約束:客戶端 Bundle(
client.js)只能依賴平臺種子模塊(如react、dsh-client-store等),禁止引入外部依賴。 - 注入服務名:
client.js的exports.inject必須是服務名["slots"](非包名)。若配置錯誤,Web 啓動會判定 “entry did not activate” 並拒絕啓動,桌面端連續失敗會觸發恢復流程。 - 升級排查:若升級 DSH 版本後設置頁空白,請前往 Settings → Plugins → Plugin list 檢查裝載審計信息。
- 移除插件:
- 命令行:
dsh plugin remove dsh-usage-lite - 手動:刪除對應 profile 的
cordis.patch.yml中的插入條目。 - 索引清理:
~/.dsh/usage-lite/目錄可一併刪除(建議)。
- 命令行:
總結¶
dsh-usage-lite 是一個輕量級的 Token 統計工具,它通過增量索引和本地快照技術,在無需網絡請求的情況下實現了跨會話的數據聚合。對於需要精細化控制成本和監控模型調用的開發者,這是一個直接可用的工具。