dsh-plugin-task-budget:爲 DSH 每一輪對話設人民幣花費上限

前言

在 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
  1. 點開關:立即開啓或關閉限額;開啓時軌道爲深灰,關閉爲淺灰。
  2. 點金額:就地展開輸入框,修改上限後點「保存」或回車;Esc 取消。
  3. 超限時金額變紅,本輪已被自動停止;調高上限或關閉開關後,下一條消息可照常發送。

核心功能:估算、攔截與配置

花費如何估算

插件按每輪累計的 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 按次計費、以及價目表之外的費用不計入。
  • 法定節假日未內置,仍按工作日高峯價計——只會高估,不會低估。
  • 壓縮、生成標題等內部模型調用記賬但不攔(攔截會破壞會話),極端情況下可能略超上限。
  • 若最後一個請求發出時未超限、跑完才超,會允許該請求跑完,下一步前再停。

攔截點

  1. agent/pre-step:下一步進入前,若本輪已花 ≥ 上限,直接拒絕(乾淨停止,不產生報錯)。
  2. 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。

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

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

小夜