dsh-spend-meter:Composer 對話花費與賬戶餘額賬本

前言

在 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:... 一類命令。

  1. 將整個插件目錄放到任意位置,例如 Windows 下 %USERPROFILE%\.dsh\plugins\spend-meter。
  2. 在 DSH 中讓 Agent 執行 plugin_manager 的 install_bundle,target 填該目錄的絕對路徑;插件管理器中顯示爲「花費與餘額」。
  3. 輸入框下方出現 ¥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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜