前言¶
DeepSeek Harness(DSH)在 goal 模式下,round 驅動會持續開新輪次直到目標完成。官方文檔也寫明:round 上限「不是資源預算」——token、金額、耗時和供應商配額仍是各自獨立的策略。長時間跑任務時,模型可能在不知不覺中把一輪會話的用量推高,既沒有預警,goal 模式也會繼續自動續跑。
dsh-session-budget(維護者 laiyouxing,GitHub:laiyouxing/dsh-session-budget)就是爲 DSH 補這一層:按會話設置 token、費用和牆鍾時間三類預算,任一觸頂即停止本輪模型會話;並可選用 DeepSeek 公佈的峯谷時段,在峯值窗口內暫停任務、谷段自動恢復。下面介紹它的定位、能力與用法。
這是什麼¶
這是一款面向 DeepSeek Harness 的插件,分類上可歸爲模型推理相關的用量與成本控制。狀態落在本機 ~/.dsh 下的 JSON,無額外聯網遙測。
核心功能¶
三類獨立預算¶
每個會話可任意組合配置:
| 維度 | 計入內容 | 說明 |
|---|---|---|
tokens |
每條 assistant/message 的 uncachedInput + cacheRead + cacheWrite + output |
同一步重試會覆蓋採樣,不重複計數 |
money |
上述四桶用量 × 設置頁中的四個「每百萬」單價 | 四個單價須全部配置,否則金額不累計;有錢上限但單價全爲 0 時會提示 |
time |
自設定預算起的牆鍾分鐘數 | 與 token 無關,由插件定時器檢查 |
字段留 0 表示該維度不限制。
觸頂行爲:硬停止,而非提示¶
觸達任一上限時,插件會:
- 在
agent/pre-step返回{ kind: 'reject' },模型調用不會發生,回合以blocked結束。 - 阻塞或暫停會話的 goal(
budget-exhausted或onExceed: pause),goal 模式無法自動續跑。 - 對進行中的回合調用
agent.cancel({ kind: 'hook', reason }),界面顯示爲已中止。 - 在提高上限、
reset、或谷段開始後,由本插件造成的停止可被清除並恢復 goal;因round-limit、用戶編輯等原因被阻塞的 goal 不會由此插件恢復。
會話中途改預算¶
在會話中途設置預算時,會從該會話已有日誌回填已記錄的用量,上限針對整段會話而非僅設置之後。
DeepSeek 峯谷時段¶
默認對齊 DeepSeek 定價文檔 中的峯值定義:UTC 週一至週五 01:00–04:00、06:00–10:00(中國公休日除外);對應 Asia/Shanghai 爲工作日 09:00–12:00、14:00–18:00。默認窗口可通過 peakWindows、peakTimezone、peakWeekdays、peakSkipDates 等調整;設置頁可同步官方價表與節假日日曆(holiday-cn 等)。
峯值窗口內會話暫停並取消當前回合;谷段開始時在滿足條件時自動恢復 goal。會話級可用 /budget peak on|off|auto 覆蓋插件默認。
三個入口¶
- 輸入框上方一行摘要條(用量、峯值暫停提示、「設置上限」)。
- 聊天命令
/budget。 - 設置側欄「會話用量預算」(插件包頁、patch 行配置亦可進入同一設置頁)。
環境與依賴¶
- 帶 Web UI 的 DSH(
dsh web或 DSH Desktop)。 - Node.js 22+(倉庫測試在純 Node 上運行,無構建步驟、無額外依賴安裝)。
@deepseek-ai/schemastery由宿主以 peer 方式提供。
許可證:MIT(package.json 當前版本 1.6.0)。
安裝與啓用¶
在應用內插件管理器中添加下列 spec(須使用 profile;勿與 Desktop 混用終端 profile):
dsh plugin --profile <profile> add github:laiyouxing/dsh-session-budget
- DSH Desktop: 在應用內 Settings → Plugins 粘貼
github:laiyouxing/dsh-session-budget,不要用針對webprofile 的終端命令。 - 純
dsh web: 執行上述命令後重啓dsh web。 - 本地目錄:
dsh plugin --profile <profile> add /absolute/path/to/dsh-session-budget。
安裝後刷新頁面;輸入框上方應出現摘要條,設置中出現「會話用量預算」。
典型用法¶
摘要條¶
一行示例(README 中的示意):
[dot] 預算 3.2M / 50M · ¥1.40 / ¥5 · 42m / 3h [峯值暫停 · 12 分鐘後恢復] [設置上限]
已配置維度顯示 已用 / 上限;觸頂或峯值暫停會有對應標籤;「設置上限」可內聯編輯三項並 reset、clear。
/budget 命令¶
| 命令 | 作用 |
|---|---|
/budget 或 /budget status |
查看上限、用量、剩餘與峯谷安排 |
/budget set tokens=500k money=5 time=120 |
設置子集;token 支持 200k、1.5m 後綴,money 爲金額,time 爲分鐘 |
/budget peak on / off / auto |
本會話峯谷策略 |
/budget reset |
保留上限,用量從零重計 |
/budget off |
移除本會話預算並恢復因本插件停止的 goal |
設置頁¶
可編輯插件默認值:各類上限、單價與貨幣、觸頂動作、峯谷窗口與時區、工作日與節假日跳過、tick 間隔、數據文件等;保存寫入插件自有存儲,不重啓宿主。可按 CNY/USD 從官方價表同步四個「每百萬」單價。
適用場景與注意¶
適合在 DSH goal 模式或長會話裏需要明確「最多花多少 token、多少錢、多少時間」的場景,以及希望在 DeepSeek 峯值單價時段自動暫停、谷段續跑的場景。
安裝前建議自行查看倉庫源碼與 MIT 許可證。插件與當前 dsh 進程同權限運行,能讀寫 ~/.dsh 下狀態;設置頁同步價表與節假日時會發起網絡請求,日常計賬與攔截邏輯仍在本地完成。
結尾¶
dsh-session-budget 把 DSH 文檔裏仍獨立的「資源策略」落成可操作的會話級上限與峯谷暫停,觸頂即停 goal、拒掉後續 pre-step,避免靜默燒穿一輪任務。目錄與源碼:
- 社區目錄:https://www.skillhub.cn/plugins/laiyouxing/dsh-session-budget
- GitHub:https://github.com/laiyouxing/dsh-session-budget
DSH 生態以「一切皆插件」爲方向;SkillHub 等目錄爲社區站點,與 DeepSeek / 幻方無官方從屬關係。按需選用即可。