前言¶
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(getBalance、getEstimate) |
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 次會話。 在線會話和已持久化會話按會話 id 去重後各摺疊一次,避免同一會話被算兩遍。
- 每個模型累計三個計費 token 桶:緩存命中輸入、未命中輸入(未緩存輸入 + 緩存寫入)、輸出(含推理)。源碼從
assistant/message事件的usage裏取cacheReadTokens、inputTokens + cacheWriteTokens、outputTokens。 - 用該模型的歷史平均每會話消耗,乘當前峯/谷時段單價,得到平均每任務費用。
還能跑多少 = 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_available 和 balance_infos(currency 爲 CNY 或 USD,以及 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