用 DeepSeek-Harness-billing-plugin 在會話頭部查看餘額和剩餘任務

前言

DeepSeek API 從 2026 年 8 月 17 日起按北京時間峯谷計價:高峯是每天 9:00–12:00、14:00–18:00,其餘爲空閒時段,空閒價是高峯價的一半。智能體在 DeepSeek Harness 裏連續跑任務時,賬戶還剩多少錢、按當前模型大概還能開幾次會話,往往要自己去控制檯查餘額,再對照官方價目和歷史用量心算。

DeepSeek Harness(dsh)的架構口號是「一切皆插件」。社區目錄裏有一款會話與消息插件,把官方 GET /user/balance 的真實餘額,以及按模型折算的剩餘任務估算,直接掛到 Web 會話頭部。本文按插件目錄頁、GitHub 倉庫 README / 源碼,以及 DeepSeek 官方餘額接口與價目頁覈對後整理:它做什麼、怎麼裝、估算怎麼算、邊界在哪。

這是什麼

DeepSeek-Harness-billing-plugin 是 WilliamLIiii 維護的開源插件,許可證 MIT,主要語言 TypeScript。GitHub 倉庫主題帶 dsh-plugin。目錄頁把它歸在「會話與消息」,當前星標 9。根目錄 package.json 裏的工作區版本是 0.1.0-rc.5

它解決的問題很具體:在 DeepSeek Harness 的 Web 會話頭部顯示賬戶餘額,並按當前模型估算大概還能跑多少個任務。餘額來自 DeepSeek 官方接口 GET /user/balance 的真實數字;「還能跑多少任務」是估算,不是計費承諾。這一點目錄頁和倉庫 README 寫的是同一句話。

倉庫是 pnpm workspace,拆成兩個包:

npm 名 運行位置 作用
packages/llm-billing @deepseek-ai/dsh-llm-billing 主機端 拉餘額、跨會話按模型摺疊 token、峯谷計價表;對外暴露 billing Remote(getBalancegetEstimate
packages/ui-billing @deepseek-ai/dsh-client-ui-billing 瀏覽器端 掛載 billing Remote,向會話頭部工具區貢獻徽標

包名帶 @deepseek-ai 前綴,倉庫維護者是 WilliamLIiii。DeepSeek Harness 官方倉庫在 deepseek-ai/deepseek-harness;插件目錄站點是社區收錄頁,與 DeepSeek / 幻方沒有官方從屬關係,不要把它當成官方應用商店。

核心功能

會話頭部徽標

瀏覽器包向 conversation.session.header.utilities 貢獻一個條目,在右上角渲染標籤框。觸發器兩行:

  • 剩餘額度:剩餘額度:¥X
  • 按當前模型預計還能跑多少任務

點擊後展開詳情:剩餘金額、手動刷新按鈕,以及每個模型一行的剩餘任務。沒有消耗記錄的模型顯示「暫無消耗記錄」,不會編造數字;按歷史消耗折算不足 1 個任務時,文案是「按消耗能跑不足 1 個任務,該充錢了」。

倉庫 README 和 UI 文案還約定了這些行爲:

  • 首個請求在途時不渲染任何東西。
  • 刷新失敗時保留上一次有效值,舊數字不會先消失。
  • 未配置 API key、憑據被拒絕或傳輸出錯時,顯示弱化的「額度不可用」,提示裏帶 Remote 返回的錯誤信息。
  • 徽標是賬戶級數字。插槽雖然掛在會話標題欄,顯示值不隨當前會話切換。
  • 隻手動刷新。掛載時拉一次,之後要點「刷新」;長會話過程中不會自動跟隨餘額變化。

分模型剩餘任務估算

主機包把「餘額 + 每個已配置模型的一條估算」做成 getEstimate()。算法在 README 和 packages/llm-billing/src/billing.ts 裏寫得很清楚:

  1. 1 個任務 = 1 次會話。 在線會話和已持久化會話按會話 id 去重後各摺疊一次,避免同一會話被算兩遍。
  2. 每個模型累計三個計費 token 桶:緩存命中輸入未命中輸入(未緩存輸入 + 緩存寫入)、輸出(含推理)。源碼從 assistant/message 事件的 usage 裏取 cacheReadTokensinputTokens + cacheWriteTokensoutputTokens
  3. 用該模型的歷史平均每會話消耗,乘當前峯/谷時段單價,得到平均每任務費用。
  4. 還能跑多少 = floor(人民幣餘額 ÷ 平均每任務費用)

沒有歷史用量、沒有費率行、或餘額不是人民幣時,該模型不給出估算。一個會話裏切換過多個模型時,會分別計入它實際調用過的每個模型;平均是「每次調用會話」,不是「每次聲明任務」。

默認展示行是 deepseek-v4-flash(DeepSeek-V4-Flash)和 deepseek-v4-pro(DeepSeek-V4-Pro)。只讀投影,不改 prompt、消息、schema、流或工具結果。

峯谷費率表

源碼常量 DEFAULT_MODEL_PRICING 寫明按 2026-08-17 實行的官方 V4 費率,單位是元 / 百萬 token。和 DeepSeek 模型與價格 對得上:

模型 時段 緩存命中輸入 緩存未命中輸入 輸出
deepseek-v4-flash 高峯 0.10 3.0 9.0
deepseek-v4-flash 空閒 0.05 1.5 4.5
deepseek-v4-pro 高峯 0.30 9.0 27.0
deepseek-v4-pro 空閒 0.15 4.5 13.5

高峯窗口默認是北京時間 09:00–12:00、14:00–18:00,其餘爲低谷。源碼用 Asia/Shanghai 對應的 UTC+8 小時判斷,不考慮夏令時。

餘額傳輸走 {baseURL}/user/balance,默認 baseURL 是環境變量 $DEEPSEEK_BASE_URL,再退回 https://api.deepseek.com。請求頭是 Authorization: Bearer <API key>。這和 DeepSeek 查詢餘額 一致:響應含 is_availablebalance_infoscurrencyCNYUSD,以及 total_balance / granted_balance / topped_up_balance)。估算只讀人民幣餘額行;純美元賬戶可以顯示餘額,但不換算任務數。

安裝與啓用

目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端運行:

dsh plugin add github:WilliamLIiii/DeepSeek-Harness-billing-plugin

需要可復現安裝時,按目錄頁說明固定 commit 哈希:

dsh plugin add github:WilliamLIiii/DeepSeek-Harness-billing-plugin#<commit>

<commit> 換成倉庫裏實際的提交哈希。插件以當前 dsh 進程的權限運行,安裝時可能執行代碼。安裝前檢查源代碼倉庫和許可證。

GitHub README 寫的是另一條更細的路徑:先把兩個包裝進 web profile。倉庫原文是:

dsh plugin --profile web add @deepseek-ai/dsh-llm-billing @deepseek-ai/dsh-client-ui-billing

README 同時說明:這兩個包在本倉庫 packages/ 裏,需要先發布到 npm(@deepseek-ai 或自己的 scope),dsh plugin add 才能從 registry 解析。也就是說,目錄頁的 GitHub 安裝命令是收錄頁對外寫法;倉庫自己把可運行形態定義成兩個 Cordis 插件。DeepSeek Harness 官方文檔也寫過:從 GitHub 安裝拿到的是源碼而不是構建產物,TypeScript 包通常要允許 prepare 構建,並在 profile 的 pnpm-workspace.yaml 裏爲包名打開 allowBuilds。以你實際用的安裝路徑爲準,不要混用未發佈的 npm 名和未構建的 git 源碼。

接進組合時,README 要求編輯 ~/.dsh/profiles/web/cordis.patch.yml

- insert:
    - id: llm-billing
      name: '@deepseek-ai/dsh-llm-billing'
    - id: ui-billing
      name: '@deepseek-ai/dsh-client-ui-billing'

然後配置 DeepSeek API key,二選一:在網頁「模型」頁填入(會把 DEEPSEEK_API_KEY 寫入 ~/.dsh/.credentials.yaml),或導出環境變量:

export DEEPSEEK_API_KEY=sk-...

最後重啓 Web UI:

dsh web

瀏覽器包子包聲明 platform: web,這套界面掛在 Web 會話頭部,不是終端 TUI。

典型用法

裝好並配上自己的 DeepSeek API key 之後,打開 Web 會話即可看到頭部徽標。不需要向模型下指令,插件不註冊面向模型的工具。

可選配置都有默認值。主機端字段如下(摘自倉庫 README):

字段 默認 含義
apiKeyEnv DEEPSEEK_API_KEY 每次調用時解析的憑據引用(環境變量)名
baseURL $DEEPSEEK_BASE_URL,其次 https://api.deepseek.com 端點基礎地址,會追加 /user/balance
models V4 Flash + V4 Pro 展示用的模型行,按展示順序
billing.peakHours 09:00–12:00、14:00–18:00(北京) 高峯時段窗口
billing.models 官方 V4 費率 每個模型的峯/谷單價行

只覆蓋某個模型、又不想丟掉其餘默認行時,提供一個非空的 billing.models 列表;空或省略則回退到源碼裏的官方默認費率。

主機端最小配置示例(子包 README):

- id: llm-billing
  name: '@deepseek-ai/dsh-llm-billing'
  config:
    # apiKeyEnv: DEEPSEEK_API_KEY   # default
    # baseURL: https://api.deepseek.com

點開徽標後的操作就是看餘額、看分模型估算、點「刷新」。UI 自帶的說明文案也寫了口徑:只預估 DeepSeek 相關模型;1 個任務 = 1 次會話;按全部歷史會話平均每模型的 token 消耗,再按當前峯谷單價折算。

適用場景與注意事項

比較適合這些情況:

  • 日常用 DeepSeek 官方 API 跑 DeepSeek Harness Web UI,希望抬頭就能看到人民幣餘額。
  • 8 月 17 日峯谷價生效後,想按當前時段粗估「V4 Flash / V4 Pro 大概還能開幾次會話」。
  • 需要分模型看歷史消耗是否已經足夠支撐估算,而不是隻看一個總數。

使用前要注意倉庫寫明的限制:

  • 估算不是賬單。 實際扣費以 DeepSeek 服務商爲準;產品價格也可能再變,官方價目頁是權威來源。
  • 僅人民幣估算。 非人民幣餘額不換算任務數;多幣種換算在倉庫裏標爲暫緩。
  • 按需全量摺疊。 每次估算都會重新摺疊可達會話的用量,成本隨會話數量和日誌體積增長,不是增量賬本。
  • 點快照。 不會在長會話裏自動刷新。
  • 要有自己的 API key。 餘額從 DeepSeek API 讀取,每個用戶用自己的 key。key 只應交給你信任的插件,去請求你配置的 baseURL

插件以當前 dsh 進程權限運行。安裝前閱讀倉庫源碼和 MIT 許可證;需要可復現環境時固定 commit,避免後續推送靜默改變安裝內容。

小結

DeepSeek-Harness-billing-plugin 把官方餘額接口和按會話平均用量的剩餘任務估算,做成 Web 會話頭部的一枚徽章。餘額是真的,任務數是估算,費率對齊 8 月 17 日的 V4 峯谷價。目錄頁與 GitHub 如下:

  • 目錄頁:https://deepseek-harness-plugin.com/zh-CN/plugins/deepseek-harness-billing-plugin/
  • GitHub:https://github.com/WilliamLIiii/DeepSeek-Harness-billing-plugin
羽毛球分组比赛记分
小程序二维码

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

小夜