前言¶
在 DeepSeek Harness(DSH)裏做多模型、多工作區開發時,官方界面往往只能看到當前會話或粗粒度的活動信息。若你想按 provider/model、按天、按工作區(cwd)彙總歷史用量,又希望數字與計費語義一致、且不依賴額外上報通道,就需要從 Harness 自己落盤的 session 日誌裏重算一遍。dsh-usage-replay 走的就是這條路:只統計 Token,不做費用估算,也不發起網絡請求。
這是什麼¶
dsh-usage-replay 由社區維護者 Eclipse-NotFound 發佈,分類屬於模型推理相關插件。它回放 $DSH_HOME/sessions(默認 ~/.dsh/sessions)下已持久化的 session 日誌,把 provider 上報的 usage 按模型、按日、按工作區聚合,並在 UI 與本地只讀 HTTP 接口中展示。數字全部來自 Harness 既有日誌,不在旁路記賬;卸載插件不會丟歷史,安裝前已有的會話同樣計入。
核心功能¶
用量面板 Tab¶
在右側邊欄註冊「用量 / Usage」Tab,依賴可選同伴插件 dsh-better-sidebar ≥ 0.28。未安裝 better-sidebar 時,該 Tab 不會註冊,但 Composer 塢區的分模型入口仍可用。
面板包含三塊:
- Models — 按 provider/model 列出 sessions、requests、uncached input、output、cache read、cache write、total。
- By day — 最近 30 天;可在堆疊柱狀圖與分模型平滑曲線間切換,懸停顯示日期、當日合計與各模型明細。曲線視圖按單日最大單模型用量縮放縱軸;可對長尾數據開啓 Log-scale。柱狀圖按真實 Token 佔比堆疊。
- Workspaces — 按 session 的
cwd排序用量,並展示各工作區內的模型構成。
Composer 塢區分模型芯片¶
在原生 activity/usage 芯片旁增加中性標籤「分模型 / Per-model」。點擊可打開當前會話的 per-model 表格(model、requests、input、output、cache read、cache write、total)。塢區一行不重複展示合計。
本地只讀 HTTP 路由¶
通過 Host 的 Connection 服務(與 0.2.1 起其他插件路由相同的 loopback/trusted-host 准入)暴露:
GET /usage-replay/api/summaryGET /usage-replay/api/session?sessionId=…
返回內容僅爲分模型 Token 數字,無額外敏感字段。插件不向模型注入 prompt、tool 或 schema。
可選:會話範圍內的變更文件¶
原生 changed-files 卡片基於 git 工作樹快照,多會話共享工作區時可能列出本會話未改動的文件。在插件配置中開啓 sessionScopedEdits: true 後,卡片僅保留本會話 file tools 實際觸達的文件(跟蹤 fs/write-intent / fs/edit-intent,與錄製器同源事件)。Subagent 的文件工具編輯計入父會話對應 turn。僅通過 shell 改動的文件在此模式下不會被歸因。默認關閉,因會改變其他插件可觀察行爲。
- id: usage-replay
config:
sessionScopedEdits: true
統計方式與隱私¶
回放邏輯概要如下:
- 掃描
session[.vN].jsonl[.zstd],逐幀解碼 multi-frame Zstandard 容器(容忍尾部損壞)。 - 將
assistant/message的 usage 事件歸併到最近一次request/header信封對應的 provider/model。 - 針對完整 session 日誌(非可見/壓縮窗口),被 prune 或 compact 的 turn 仍計入。
- 按文件
size + mtime緩存解析結果,未變更文件不重複讀取。 - Retry/attempt 在 provider 上報 usage 處計數,語義與官方 token meter 的計費形態一致。
隱私方面:僅讀本地 session 日誌;無網絡請求、無遙測、無上傳。
安裝與啓用¶
需要 DeepSeek Harness 0.2.1+(使用 0.2.1 Connection 服務)。package.json 中 engines.dsh 爲 >=0.2.1-rc.1 <0.3.0;當前包版本 0.2.0,許可證 MIT。
社區市場或 npm 安裝:
dsh plugin --profile <profile> add dsh-usage-replay
或指定本倉庫:
dsh plugin --profile <profile> add https://github.com/Eclipse-NotFound/dsh-usage-replay
桌面應用由應用內 Plugins 頁管理 profile:用包路徑/spec 安裝,而非上述 CLI。新增 host 側能力需重啓應用;僅 client 更新可在硬刷新後生效。
典型用法¶
- 安裝插件;若需要右側「用量」Tab,再安裝 dsh-better-sidebar ≥ 0.28。
- 日常使用 Harness 後,打開側邊欄「用量 / Usage」查看跨會話模型、按日曲線或工作區排名。
- 在當前會話 Composer 塢區點擊「分模型 / Per-model」查看本會話分模型明細。
- 若需在腳本或本地工具中讀取聚合結果,向 Host 請求上述兩個 GET 路由(須滿足 Host 的 trusted 連接策略)。
開發自檢(無構建步驟,Node 22.19+ / 24):
node test/offline-check.mjs
適用場景與注意¶
適合需要跨會話、分模型、分工作區覈對 Token、且只要 Token 不要價目表的場景。與「實時側路上報」類方案不同:這裏的一切數字都可追溯到本地 jsonl/zstd 日誌,卸載插件後日志仍在,重裝可繼續回放。
安裝前請自行審閱 GitHub 源碼 與 MIT 許可證。插件以當前 DSH 進程權限運行,能讀取 ~/.dsh/sessions 下日誌;多用戶或共享機器上應確認目錄權限是否符合預期。DSH 生態強調「一切皆插件」;SkillHub 目錄頁 爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-usage-replay 把 Harness 已落盤的 session 日誌重放爲可瀏覽、可查詢的 per-model 用量視圖,並明確限定爲 Tokens only。目錄與文檔:
- 社區目錄:https://www.skillhub.cn/plugins/Eclipse-NotFound/dsh-usage-replay
- GitHub:https://github.com/Eclipse-NotFound/dsh-usage-replay