前言¶
DeepSeek Harness (DSH) 採用插件化架構,支持通過插件擴展功能。在本地開發或使用過程中,統計全局 Token 消耗是一個常見需求。dsh-token-usage 插件旨在解決這個問題,它通過掃描本地會話日誌,彙總本機全部 DSH 會話的歷史 Token 總消耗,並提供多維度的統計視圖,解決了單一會話統計無法反映全局成本的問題。
核心功能¶
該插件具備以下核心能力:
- 跨會話彙總:支持跨會話、跨工作區、跨 DSH home 彙總數據。
- 正確去重:基於
message.id進行全局去重,避免因會話副本(如 v0/v3、resume/fork)導致的數據虛高。 - 多維分組:支持按天、模型、Provider、項目或會話進行分組統計。
- 日期範圍:支持自定義日期範圍,或選擇全部/今天/近7天/近30天等快捷選項。
- 接入方額度:支持按接入方(Provider)統計額度,配置啓用開關、額度值及刷新日。
- 多種輸出:提供 HTTP API 和命令行報表兩種方式獲取數據。
安裝與啓用¶
插件採用本地安裝方式。推薦安裝到 Desktop profile:
dsh plugin --profile desktop add /Users/d/Personal_Project/dsh-token-usage
安裝後需重啓 DSH Desktop 以使配置生效。
使用方法¶
1. 設置頁配置¶
重啓後進入 設置 → Token 統計。在此頁面可以配置總量卡片、統計範圍、分組方式以及接入方額度統計。
2. HTTP API¶
插件提供了本地迴環 API,可用於二次開發或腳本調用。常用接口如下:
# 獲取彙總數據(按天分組)
GET /dsh-token-usage/summary?range=all&groupBy=day
# 獲取接入方額度信息
GET /dsh-token-usage/quota
支持的 range 參數包括 all、today、7d、30d、month、cycle;groupBy 參數支持 day、model、provider、project、session。
3. 命令行報表¶
無需 DSH 進程,可直接運行 Node.js 腳本生成報表:
# 生成近30天報表
node scripts/report.mjs --range 30d
# 按指定維度分組
node scripts/report.mjs --group day,model,project
技術細節與注意事項¶
- 統計口徑:僅統計
assistant/message中的usage字段,忽略assistant/chunk的重複上報。默認不計 compaction/summary。 - 性能:插件通過緩存機制加速掃描,全量掃描約需 1.4s。
- 依賴:Host 端僅依賴 Node.js 內置模塊,不引入
@deepseek-ai/*;Client 端僅使用 React。
總的來說,dsh-token-usage 是一個輕量級、專注統計的 DSH 插件,適合需要精確掌握本地 Token 消耗的開發者。插件遵循 MIT 許可證,源碼託管在 GitHub。更多詳情請訪問 插件目錄。