前言¶
在 DeepSeek Harness(DSH)裏用 Composer 跑長對話時,token 用量可以在「Token 用量」裏看到,但「這一輪對話大概花了多少錢」「錢包還剩多少」「緩存命中省了多少」往往要切到平臺用量頁或自己心算。高峯與空閒時段單價不同,聯網搜索從 2026-11-01 起按次計費,自動壓縮摘要也會單獨產生 LLM 成本——這些分散在事件流裏,缺少一個和輸入框同屏、可展開的賬本。
下面介紹社區插件 花費與餘額(倉庫 TSE2006/dsh-spend-meter),維護者爲 TSE2006,目錄分類爲 admin-security。它在輸入框下方常駐一條藥丸(本對話花費 + 平臺餘額),點開是全量賬本面板:分項花費、緩存節省、按模型與逐輪成本、搜索計費、預算與近 14 天趨勢,樣式對齊 DSH 自帶的 StatsPills 與 stat-dialog,設計令牌來自運行時的 --dsw-* / --dsh-* 變量。
這是什麼¶
插件包名固定爲 @local/spend-meter(本地 bundle,無需發佈到 npm),當前版本 1.2.0(MIT)。Host 半註冊會話投影 spendMeter,只讀 DSH 會話事件流計花費;Client 半渲染藥丸與彈層,並通過與「設置 → 賬戶」相同的 Remote 路徑每 15 秒刷新余額。花費統計不額外請求平臺賬單,分子分項全部來自 usage 與 tool 事件;餘額依賴已登錄的 DeepSeek 平臺賬號,僅用 API Key 未登錄時餘額位顯示 —,花費不受影響。
界面與能力¶
常駐藥丸¶
輸入框下方顯示類似 ¥3.89 本對話 · 餘額 ¥19.07 的裸文字按鈕(與 3 輪 228 步 · 232 tok/s 同款風格)。餘額低於 ¥5 變黃、低於 ¥1 變紅;高峯時段 ¥ 圖標變黃,空閒時段保持灰色。
賬本面板¶
點擊藥丸打開彈層,主要內容包括:
| 區域 | 說明 |
|---|---|
| 時段 | 是否高峯,距下一個半價/高峯時段還有多久 |
| 花費 | 輸入未命中/命中緩存、輸出、聯網搜索、自動壓縮摘要:各自金額、token 數與折算單價(元/百萬 tok) |
| 緩存 | 命中緩存省下的錢,以及「若無緩存本應花費」 |
| 餘額 | 充值 + 贈送餘額,以及「還能聊約 N 輪」;配置了預算時按錢包、今日預算、本月預算三者中最先見底者估算 |
| 預算 | 今日/本月已花與上限(需在 profile 配置 budget);達 80% 變黃,超支變紅;輸入框上方金額同步變色 |
| 近期 | 最近 14 天柱狀條(今天高亮)與「本週」合計(北京時間週一起算) |
| 價目 | 在線更新成功時顯示更新日期,失敗時顯示原因 |
| 細分 | 搜索按 web_search / web_fetch 拆次數與金額;壓縮摘要按寫摘要的模型拆 |
| 模型 / 逐輪 | 多模型會話按模型彙總;最近 8 輪成本,可展開更早輪次 |
| 導出 | 底部「複製 Markdown / 複製 CSV」整本賬到剪貼板 |
| 鏈接 | 跳轉 DeepSeek 平臺「查看用量 / 去充值」 |
預算用盡時,藥丸右側會出現超支提示條,點 × 關閉;同一天或同一月只提示一次。
數據與計費口徑¶
花費來自 Host 對事件流的摺疊,重啓或切換會話不丟本會話統計:
assistant/message、assistant/attempt的usage按(turn, step)歸戶;重試先扣舊樣本再計新值,不重複計費。compaction/summary的 usage 單列「自動壓縮摘要」。tool/call中web_search/web_fetch按次計價(默認 ¥0.005/次,北京時間 2026-11-01 00:00 起收費;此前記爲免費)。- 高峯/空閒按每條事件時間戳判斷:北京時間週一至週五 9:00–12:00、14:00–18:00 爲高峯,其餘半價;可在
config.holidays指定法定節假日全天按空閒價。
餘額由 Client 調用 ctx.remote.account.getBalance(...),每 15 秒刷新,窗口重新可見或打開賬本時立即刷新。
預算與跨會話日統計寫入臺賬文件:默認 %USERPROFILE%\.dsh\spend-meter-ledger.json(設 DSH_PROFILE_DIR 時在該目錄下;也可用環境變量 SPEND_METER_LEDGER 指定路徑),保留約 70 天。未配置 budget 時彈層不顯示預算小節;「近期」柱狀條在臺賬全爲 0(剛安裝)時不顯示。
失敗且 usage 爲 0 的請求(如 401)不計費;與 README 說明的實際賬單行爲一致。
價目與在線更新¶
內置默認價目(元/百萬 tokens,格式爲高峯/空閒)示例:
| 模型 | 緩存命中 | 緩存未命中 | 輸出 |
|---|---|---|---|
| deepseek-flash(含 v4-flash 別名) | ¥0.04 / ¥0.02 | ¥2 / ¥1 | ¥8 / ¥4 |
| deepseek-v4-pro | ¥0.30 / ¥0.15 | ¥9 / ¥4.5 | ¥27 / ¥13.5 |
查表順序:精確模型名 → 去掉日期/版本後綴 → 按模型族近似(彈層會註明)。未匹配模型計入 unpriced,不參與金額合計。
Host 半每天拉取倉庫根目錄 pricing.json 合併(先試 jsDelivr CDN,再試 raw.githubusercontent.com;可設 SPEND_METER_PRICING_URL 自建鏡像)。本地緩存 %USERPROFILE%\.dsh\spend-meter-pricing.json,24 小時內不重複請求。優先級:config.models > 在線/緩存表 > 內置表。關閉在線更新:config.autoPricing: false。
安裝與啓用¶
需要 DSH 0.2.1-rc.5 及以上桌面端(插件以 bundle 形式註冊到 profile)。安裝步驟來自倉庫 README,不是 dsh plugin add github:... 一類命令。
- 將整個插件目錄放到任意位置,例如 Windows 下
%USERPROFILE%\.dsh\plugins\spend-meter。 - 在 DSH 中讓 Agent 執行
plugin_manager的install_bundle,target填該目錄的絕對路徑;插件管理器中顯示爲「花費與餘額」。 - 輸入框下方出現
¥0.00 本對話 · 餘額 ¥0.00即表示 Client 半掛載成功。
插件以當前 DSH 進程權限運行;安裝前應自行查看 GitHub 源碼 與 MIT 許可證,確認 bundle 內容與組織策略一致。
配置示例¶
在 profile 的 cordis.patch.yml(例如 %USERPROFILE%\.dsh\profiles\<profile>\)裏爲 spend-meter 條目增加 config(插件不聲明 Config schema,字段按 README 兜底):
- id: spend-meter
config:
holidays: ['2026-10-01', '2026-10-02']
searchPerCall: 0.005
turnHistory: 120
currency: CNY
budget:
daily: 20
monthly: 200
warnRatio: 0.8
autoPricing: true
models:
deepseek-flash:
peak: { cacheHit: 0.04, cacheMiss: 2, output: 8 }
offPeak: { cacheHit: 0.02, cacheMiss: 1, output: 4 }
第三方渠道若不分峯谷,可在 models 下用平價寫法(單組 cacheHit / cacheMiss / output 全天生效)。改源碼後按 README 將 client.ui.js 複製爲 client.js,客戶端 HMR 約 3–4 秒生效。
適用場景與限制¶
適合需要在 Composer 同屏覈對本會話花費、緩存節省、搜索與壓縮摘要成本,並順帶看平臺餘額與可選日/月預算的開發者。跨會話累計仍以平臺用量頁爲準(彈層有入口)。
README 列出的限制 worth 留意:價目以內置表爲底、在線更新爲補;預算與「本月」從插件開始記賬日起算,安裝前的歷史不在臺賬中;「還能聊 N 輪」爲本會話平均輪成本外推,長會話偏差會變大;只統計本會話事件,不替代官方賬單對賬。
客戶端半在異常時不向 Cordis 拋錯,避免拖垮整個應用;藥丸可降級爲 —,彈層底部有「插件異常」診斷塊。
結尾¶
花費與餘額把 DSH 事件流裏的 usage 與工具調用折成人民幣分項,並把餘額、預算、近期趨勢收到輸入框旁,和 Harness 自帶統計 UI 同一套視覺語言。社區目錄頁:skillhub.cn/plugins/TSE2006/dsh-spend-meter;源碼與完整配置說明:github.com/TSE2006/dsh-spend-meter。