前言¶
DeepSeek Harness(DSH)在本地運行時,會持久化會話日誌。使用一段時間後,如果想了解總體用量情況,目前沒有統一的查看入口。手動翻閱日誌文件並不直觀,也無法快速獲取累計 Token、模型分佈、連續使用天數等指標。
下面介紹的 dsh-usage-stats 插件,就是在 DSH 設置裏增加一個「使用統計」頁面,掃描本機全部會話日誌,彙總累計、峯值、連續天數、聊天時長、每日趨勢和模型用量。
是什麼¶
dsh-usage-stats 是一個爲 DeepSeek Harness 提供全會話 Token 用量統計的插件。由維護者 XEsx630 開發,目前託管在 GitHub 上。它不依賴後端服務,直接在 DSH 進程內通過重放持久化日誌來計算統計數據,不修改原始日誌文件。
插件在 DSH 設置側欄新增一個「使用統計」頁面,展示累計 Token、峯值 Token、最長聊天時長、當前連續天數、最長連續天數五張卡片,以及 Token 活動熱力圖、每日 Token 趨勢圖和模型用量環圖。
核心功能¶
統計口徑¶
- Token 計算:
輸入 + 緩存讀取 + 緩存寫入 + 輸出,與 DSH 自帶的tokenUsage投影一致。 - 會話統計:包含子會話,跨工作區彙總;被 fork 的子會話會物理複製父會話日誌,統計時用
inheritedEventCount去掉父會話前綴,避免重複計費。 - 模型識別:優先取每條
assistant/message的message.source.model;沒有該字段的舊日誌回退到最近的request/header.config.model。 - 聊天時長:同一會話內相鄰事件間隔不超過 1 小時才累計,長時間掛起不會把「聊了幾天」算成一次聊天。
- 連續天數:按本地日期統計有 Token 用量的連續天數。
頁面內容¶
- 五張卡片:累計 Token、峯值 Token、最長聊天時長、當前連續天數、最長連續天數。
- Token 活動熱力圖:近 12 個月,支持每日 / 每週 / 累計三種聚合;懸停格子顯示日期、Token 數和輪消息數。
- 每日 Token 趨勢圖:按模型分線(前 5 個模型 + 其他),可切換近 7 日 / 近 30 日 / 全部;懸停顯示當天總量、各模型明細和十字線。
- 模型用量環圖:當前時間範圍內的模型佔比與 Token 數。
技術實現¶
數據來自 sessionQuery 對持久化日誌的重放,不會改寫日誌。首次打開會在後臺掃描全部會話(幾百個會話通常十幾秒到半分鐘,視日誌量而定),隨後緩存 5 分鐘,頁面上的「刷新」會強制重算。
插件採用 Host + Client 分離結構:
- index.js:Host 半,負責重放會話、按日期/模型摺疊、提供 /dsh-usage/api/stats 接口。
- client.js:瀏覽器半,註冊 settings.section,繪製卡片、熱力圖、趨勢圖和環圖。
- cordis.patch.yml:把 Host 插件插入 profile。
- test/fold.test.js:摺疊、模型歸屬、fork 前綴的自檢。
API 接口¶
GET /dsh-usage/api/stats(同源、僅本機 Host)返回 JSON:
{
"generatedAt": 1792416000000,
"sessions": 76,
"failed": 0,
"longestChatMs": 63000000,
"totals": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "total": 0 },
"days": [{ "date": "2026-10-19", "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "turns": 0, "total": 0 }],
"models": [{ "model": "deepseek-v4.1-flash", "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0, "total": 0 }],
"modelDays": [{ "date": "2026-10-19", "models": [{ "model": "deepseek-v4.1-flash", "total": 0 }] }]
}
?refresh=1 跳過 5 分鐘緩存。
安裝與啓用¶
從 GitHub 安裝:
dsh plugin --profile desktop add github:XEsx630/dsh-usage-stats
本地開發時,也可以在「插件 / Plugins」頁面選擇「Add plugin」,填入本目錄的絕對路徑並啓用 dsh-usage-stats。兩種方式都依賴 profile 裏聲明的 bundle;HMR 會熱加載,如果設置側欄沒有出現「使用統計」,刷新頁面(Ctrl+R)或重啓 DSH。
卸載¶
在插件頁面卸載,或從 profile 的 package.json 中刪除 dsh-usage-stats 依賴與 bundle 條目,再刪掉 node_modules/dsh-usage-stats。
適用場景與注意¶
適合需要監控 DeepSeek Harness 本地使用情況、統計 Token 用量、分析模型分佈和連續使用習慣的用戶。插件以當前 DSH 進程權限運行,安裝前應檢查源碼與許可證。
小結¶
dsh-usage-stats 通過在 DSH 設置中新增一個使用統計頁面,將原本分散的會話日誌轉化爲直觀的統計圖表,幫助用戶快速瞭解總體用量和模型分佈。如果你在本地頻繁使用 DSH,這個插件可以提供一份清晰的使用報告。