前言¶
在 DeepSeek Harness(DSH)裏跑智能體,一輪對話裏可能連續觸發多次模型請求:主對話、壓縮、內部標題生成等。費用按 token 和時段累加,若不設邊界,單輪成本容易在不知不覺中抬高。社區插件 dsh-plugin-task-budget(維護者 i1537725423-dotcom)的做法是:給每一輪對話設一個人民幣上限,默認 5 元;到線後在下一個模型請求發出之前停住,並在輸入框下方狀態欄最右側顯示開關與本輪累計花費。下面介紹它的定位、計費口徑、安裝方式與使用注意。
這是什麼¶
任務預算插件給 DSH 的每一輪對話配置 CNY 花費上限(默認 5 元)。超限後不在本輪繼續向模型發新請求;開關和「已花 / 上限」顯示在 composer 狀態欄最右側(無單獨標籤、無圖標,字體顏色與同排其他條目一致)。分類歸屬社區目錄中的「模型推理」;源碼與說明見 GitHub 倉庫,許可證 MIT(© 2026 liuzhixian)。DSH 生態強調「一切皆插件」;SkillHub 插件頁 是社區目錄站點,與 DeepSeek / 幻方無官方從屬關係。
界面與操作¶
狀態欄右側大致形如:
... 這一行其他條目 ... (開關) ¥0.32/5.00
- 點開關:立即開啓或關閉限額;開啓時軌道爲深灰,關閉爲淺灰。
- 點金額:就地展開輸入框,修改上限後點「保存」或回車;Esc 取消。
- 超限時金額變紅,本輪已被自動停止;調高上限或關閉開關後,下一條消息可照常發送。
核心功能:估算、攔截與配置¶
花費如何估算¶
插件按每輪累計的 assistant/message.usage(token 數)× DeepSeek 官方價目表折算人民幣:
| 模型 | 緩存命中輸入 | 緩存未命中輸入 | 輸出 |
|---|---|---|---|
deepseek-flash |
0.04 / 0.02 | 2 / 1 | 8 / 4 |
deepseek-v4-pro |
0.30 / 0.15 | 9 / 4.5 | 27 / 13.5 |
單位:元 / 百萬 tokens;每格爲「高峯 / 空閒」。高峯指北京時間週一至週五 9:00–12:00、14:00–18:00,其餘時間(含週末)爲空閒。
需要知道的口徑與限制:
- 這是按 token 的估算,不是平臺出賬數字;DeepSeek 的 Search / Fetch 按次計費、以及價目表之外的費用不計入。
- 法定節假日未內置,仍按工作日高峯價計——只會高估,不會低估。
- 壓縮、生成標題等內部模型調用記賬但不攔(攔截會破壞會話),極端情況下可能略超上限。
- 若最後一個請求發出時未超限、跑完才超,會允許該請求跑完,下一步前再停。
攔截點¶
agent/pre-step:下一步進入前,若本輪已花 ≥ 上限,直接拒絕(乾淨停止,不產生報錯)。llm/stream:所有模型請求的必經之路再兜一層;若 pre-step 未攔住(例如壓縮觸發),此處拋出「已達本輪花費上限 ¥5.00(本輪已花 ¥5.12),已自動停止……」,請求不會發出。
配置文件與本地接口¶
cordis.patch.yml 裏該行的 config 僅爲出廠默認值;界面上改過的值寫在狀態文件裏,優先於 config。
- insert:
- id: task-budget
name: 'dsh-plugin-task-budget'
config:
enabled: true # 默認開
limitCny: 5 # 默認 5 元
rates: # 可選:覆蓋某個模型的單價(元/百萬 tokens,[高峯, 空閒])
deepseek-flash: { hit: [0.04, 0.02], miss: [2, 1], out: [8, 4] }
# stateFile / diagFile / diag 一般不用寫,默認落在 $DSH_HOME/task-budget/
enabled / limitCny 也可通過本機 HTTP 接口修改(需請求頭 x-dsh-task-budget: 1,端口替換爲當前 DSH 進程端口):
curl -s -H 'x-dsh-task-budget: 1' \
'http://127.0.0.1:<端口>/task-budget/state?session=<會話id>'
curl -s -H 'x-dsh-task-budget: 1' -H 'content-type: application/json' \
-d '{"enabled":true,"limitCny":3}' \
'http://127.0.0.1:<端口>/task-budget/config'
另有 GET /task-budget/status 可查看所有在記的會話。
數據目錄(不寫插件包內,升級 npm 包不會丟自定義狀態):
| 文件 | 說明 |
|---|---|
$DSH_HOME/task-budget/state.json |
界面改過的開關與上限;刪掉即回出廠默認 |
$DSH_HOME/task-budget/diag.log |
診斷日誌:webServer 掛載與非輪詢請求 |
插件不向外發請求、無遙測;接口只監聽本機迴環地址,且要求上述自定義請求頭。
安裝與啓用¶
任選一種方式安裝,裝完刷新頁面即可,無需重啓 App。
插件市場 / 插件頁:搜索 task budget(或 dsh-plugin-task-budget)→ 安裝 → 刷新頁面。
GitHub 直接裝(<profile> 換成你的 DSH profile):
dsh plugin --profile <profile> add github:i1537725423-dotcom/dsh-plugin-task-budget
npm(發佈後):
dsh plugin --profile <profile> add dsh-plugin-task-budget
本地開發調試可鏈到工作目錄:
dsh plugin --profile <profile> add link:$(pwd)
運行環境要求 Node.js >= 22(見 package.json engines)。
典型用法¶
日常使用時,保持默認開啓、上限 5 元即可在狀態欄觀察 ¥已花/上限。需要放寬或收緊單輪成本時,點金額就地改上限;臨時關閉限額則點開關。若要通過腳本或外部工具統一改配置,使用上一節的 curl 示例即可。
排查「控件可見但開關灰、點不動」:多爲客戶端拿不到 /task-budget/state。插件每 2 秒覈對 webServer 並補掛路由;可自檢:
curl -s -H 'x-dsh-task-budget: 1' http://127.0.0.1:<端口>/task-budget/state # 200 且有 state 即接口正常
tail -5 "$DSH_HOME/task-budget/diag.log"
適用場景與注意¶
適合在 DSH 里長時間跑 agent、工具鏈多、模型調用頻繁,又希望單輪成本可預期、可一眼看到的開發者。務必記住:估算是 token 口徑,不等於賬單;內部調用與「最後一發請求跑完才超」等邊界下,實際花費可能略高於顯示上限。
插件以當前 DSH 進程的權限運行,會讀寫 $DSH_HOME/task-budget/ 並在本機暴露 /task-budget/* 接口。安裝前建議閱讀 倉庫源碼 與 MIT 許可證,確認符合你的安全與合規要求。
結尾¶
dsh-plugin-task-budget 用「一輪一價、到線即停」把單輪對話的模型花費框在可配置的人民幣上限內,並在 composer 狀態欄右側給出開關與實時累計。目錄頁:SkillHub · dsh-plugin-task-budget;源碼與完整說明:GitHub · i1537725423-dotcom/dsh-plugin-task-budget。