前言¶
在 DeepSeek Harness(dsh)裏跑 agent,模型調用會不斷產生 token 用量。若只關心「當前這一會兒燒多快、要不要攔」,社區裏的 dsh-plugin-price-aware 更對口。但若需要跨會話、跨重啓的對賬——「這個月一共花了多少、按模型和按日怎麼分佈、能否導出給 Excel」——就需要把每次有價目的調用落盤,並能在 dsh 裏查報表。
下面介紹維護者 121212165 在 SkillHub 分類「模型推理」下的插件 dsh-plugin-cost-ledger:監聽會話 usage 事件,按內置或自定義價目表計價,按月寫入 JSONL;通過 /ledger、/ledger-export 和 ledger_query 工具做彙總與導出。插件以當前 dsh 進程權限讀寫本地文件,安裝前請自行審閱源碼與 MIT 許可證。
這是什麼¶
dsh-plugin-cost-ledger 是 dsh 插件:把每一次有價目表的模型調用記進持久臺賬,出月度彙總、CSV 導出,並讓 agent 能回答「這個月花了多少錢」。
數據按 token 桶(uncached input、cache read、cache write、output)拆分,支持錯峯日期與多幣種分塊統計;價表裏沒有的模型事件會被丟棄而不是猜價,避免靜默錯賬。README 註明:尚未在運行中的 dsh 裏完成 live mount 驗證(單元與裝配層測試已通過)。
核心功能¶
持久臺賬¶
當 accounting 爲 own(默認)時,插件監聽 session/event 的 assistant/message usage 事件,用內置價目表(DeepSeek 官方價,含高峯/錯峯、緩存價)計價後,逐條追加到 dataDir 下按月分文件的 JSONL,例如 ledger-2026-09.jsonl。會話結束或 dsh 重啓後,賬仍保留在磁盤上。
/ledger¶
輸出本月彙總:總額、調用次數、會話數、token 總量與緩存命中率、按模型分佈(帶佔比)、按日分佈、與上月對比。多幣種逐塊渲染,不混算。若 JSONL 中有損壞行,彙總裏會提示「N 行損壞」。
/ledger-export [YYYY-MM]¶
把指定月份臺賬導出爲 CSV(BOM + CRLF,便於 Excel 直接打開),寫到 exportDir(默認與 dataDir 相同)。導出不含會話標題(host 側只有 sessionId)。
ledger_query 模型工具¶
agent 被問到花費時,可通過該工具查詢檯賬。
與 price-aware 的分工¶
price-aware 側重實時用量與攔截;本插件側重「月度賬本」——落盤、跨會話、可導出可對賬。兩插件定價邏輯從 price-aware 複製(MIT,同作者),安裝上彼此獨立。
安裝與啓用¶
README 給出三步,在 @deepseek-ai/dsh@0.1.7-alpha.1 上實測(需 pnpm 在 PATH 中;package.json 要求 Node >=22.18)。
1、裝進 profile(參數會原樣轉發給 pnpm,git 包會自動跑 prepare 構建 lib/):
dsh plugin --profile web add github:121212165/dsh-plugin-cost-ledger
2、把倉庫根目錄 cordis.patch.yml 的內容合併進 $DSH_HOME/profiles/web/cordis.patch.yml。默認文件往往是 [],應整份替換或把 insert 條目並進同一數組;不要直接追加,否則會出現兩個 YAML 文檔,啓動報錯 failed to parse overlay ... end of the stream or a document separator is expected。
3、重啓 dsh。配置層與 client 半都要重啓才生效(瀏覽器硬刷新不夠)。
自檢是否掛載:
dsh --profile web --dump-config | grep dsh-plugin-cost-ledger
應能看到該插件條目。
配置¶
| 字段 | 默認 | 說明 |
|---|---|---|
enabled |
true |
關閉後插件不掛載 |
accounting |
own |
own:從 session 事件自行記賬;assume-price-aware:假定 price-aware 已記賬,本插件只讀臺賬做報表(當前實現下該模式等價於「只報表、不記新賬」) |
dataDir |
~/.dsh/cost-ledger |
JSONL 臺賬目錄,~ 會展開 |
exportDir |
dataDir |
CSV 導出目錄 |
prices |
[] |
中轉/自定價目,形狀與 price-aware 的 prices 一致 |
holidays |
[] |
按錯峯計價的北京時間日期(YYYY-MM-DD) |
模型 id 只能低置信度匹配價目行時,記錄會帶 matchVia 字段;金額視爲估算,需覈對價目表後再信。
典型用法¶
看本月彙總¶
在 dsh 中執行 slash 命令:
/ledger
導出某月 CSV¶
省略參數時行爲以 dsh 內幫助爲準;README 示例爲指定月份:
/ledger-export 2026-09
文件寫入 exportDir,可用 Excel 打開。
JSONL 單行示例¶
每行一條計價記錄,金額單位爲 micro(1e-6 幣種單位):
{"v":1,"sessionId":"…","at":"2026-09-15T02:30:00.000Z","turn":3,"step":1,
"modelId":"deepseek-v4-pro","provider":"deepseek","pricedAs":"deepseek-v4-pro",
"buckets":{"uncachedInput":1000,"cacheRead":90000,"output":500,"cacheWrite":0},
"reasoningTokens":400,"currency":"CNY","costMicros":225000000}
適用場景與注意¶
適合:需要在 dsh 中長期保留調用成本、按月對賬、導出 CSV,或讓 agent 回答花費問題的開發者。
注意:
- 插件隨 dsh 進程運行,讀寫
dataDir/exportDir;安裝與配置前請檢查源碼與權限。 - 無價目表的模型不會入賬(debug 日誌可見),總額不會因缺價而虛高。
- 臺賬暫無 compaction/歸檔命令,文件需自行備份或清理。
- 與 price-aware 同時掛載時,若不想重複記賬,可設
accounting: assume-price-aware,但 price-aware 尚未把 ledger 寫入同一dataDir前,新賬仍依賴本插件own模式或歷史文件。 - SkillHub 目錄頁:dsh-plugin-cost-ledger 爲社區插件索引,與 DeepSeek / 幻方無官方從屬關係;DSH 生態理念是「一切皆插件」。
結尾¶
dsh-plugin-cost-ledger 把有價目的模型調用沉澱爲按月 JSONL,用 /ledger 看板、/ledger-export 導出 CSV、ledger_query 供 agent 自查,並在缺價時選擇丟棄而非猜測。若你已在 dsh 裏做 agent 開發並希望有可審計的月度成本,可按 README 三步安裝併合並 cordis.patch.yml。
- 目錄頁:https://www.skillhub.cn/plugins/121212165/dsh-plugin-cost-ledger
- 源碼與說明:https://github.com/121212165/dsh-plugin-cost-ledger