前言¶
在 DeepSeek Harness(DSH)桌面版裏,帶推理能力的模型通常要在每條請求前手動選 reasoning_effort。簡單問答用高檔浪費 latency 和 token,複雜任務用低檔又容易斷鏈。社區裏曾有把「自動」寫進檔位下拉的方案,但在切換模型或快照殘留時,僞檔位 auto 可能被原樣發給 API,觸發 UNSUPPORTED_REASONING_EFFORT。維護者 xclj123 的 dsh-effort-auto-toggle 把「自動」從下拉框挪到模型選擇器旁的獨立按鈕,並在手動透傳路徑上消毒非真實檔位;0.2.0 起還會向宿主查詢當前模型的真實檔位表再映射調度結果。
這是什麼¶
dsh-effort-auto-toggle 是 DSH 桌面版 Cordis 插件(MIT,當前 package 版本 0.2.2),分類屬於模型推理。項目在 GitHub 爲 xclj123/dsh-effort-auto-toggle,目錄頁見 SkillHub。它是 dsh-adaptive-effort 的 fork,核心目標是:點亮「自動」後按消息複雜度選檔;熄滅後恢復進入自動前的手動選擇,且不在檔位列表裏注入假檔位。
核心功能¶
按鈕與手動優先¶
點亮「自動」表示從下一條消息起由插件調度 reasoning_effort;熄滅則立刻回到原生手動選檔,並還原進入自動前的選擇。模型選擇器裏手選的檔位(含各 adapter 獨有名稱如 ultra)始終原樣透傳。
模型自適應檔位表(0.2.0+)¶
插件不寫死 low/high/max。每次請求通過宿主 llm 服務的 resolveModelInfo(provider, model) 讀取當前模型真實檔位表(例如 glm-5.3 爲 low/high/max,其他 adapter 可能是 low/high/highx/max/ultra 等)。調度器內部三檔語義映射爲:輕 → 最輕檔、重 → 最重檔、中 → 約 2/3 處(3 檔取第 2 檔,5 檔取第 3 檔)。
複雜度打分與回退¶
默認 mode 爲 minimax:用任意 OpenAI 兼容 chat 端點的小模型對最近一條用戶消息打分(打分時關閉思考)。無 key、超時或網絡不可用時回退零依賴啓發式(關鍵詞、長度、代碼塊);回退結果不緩存,下一條消息會重試打分模型。安裝時可選用 --mode heuristic 純啓發式運行。
工具連續性與會話隔離¶
開啓 allowToolUpgrade(默認 true)時:同一會話內若閒聊已定低檔,10 分鐘內出現重工具調用會自動升檔,減輕長鏈推理在低檔下斷鏈。連續性邏輯按會話隔離,避免跨會話泄漏(相對上游 fork 的改進點)。
顯示、安全與賬本¶
點亮時按鈕顯示 adapter 原文檔名(如 自動·low、自動·highx),消息角標同步(如 glm-5.3 · low)。對 GLM-5.3 等強制思考模型,手動選 off 會被鉗到最輕檔(clampForcedThinkingOff,默認 true),而不是等 API 報錯。每次調度決策與實際 token 用量寫入 JSONL(默認目錄 ~/.dsh/effort-auto-toggle/),可用報告腳本彙總。
前置要求¶
- DSH 桌面版(README 寫明在 2026-10 宿主上驗證;依賴
agent/requestwaterfall、session/event、llm、settings現代 API、客戶端conversation.input.right等錨點,宿主大改時需插件跟進)。 - Node.js ≥ 20(安裝腳本與測試;也可用 DSH 自帶 Node)。
打分模型可選:不配 key 時用啓發式模式安裝仍可工作,精度低於小模型打分。
安裝與啓用¶
在已取得插件源碼並進入 dsh-effort-auto-toggle 目錄後,用官方安裝腳本寫入指定 profile(腳本會改 package.json / cordis.patch.yml,改動前留 .bak-<時間戳> 備份;--dry-run 可預覽)。
先看本機有哪些 profile(不傳 --profile 時會自動列出):
node tools/install.mjs
裝進非 live 的測試 profile(推薦先試用):
node tools/install.mjs --profile "<profile 目錄>"
帶 MiniMax(或任意 OpenAI 兼容)打分端點安裝:
node tools/install.mjs --profile "<profile 目錄>" \
--mode minimax --minimax-key <你的key> \
--minimax-url https://open.bigmodel.cn/api/coding/paas/v4 \
--minimax-model glm-5.3-flash
寫入 desktop 直播 profile 需顯式 --force(腳本默認拒絕 desktop,防誤傷):
node tools/install.mjs --profile "<…>/profiles/desktop" --force
裝完後重啓 DSH。Windows / macOS / Linux 通用;profile 默認探測 ~/.dsh/profiles/。
配置¶
安裝時寫入 profile 的 cordis.patch.yml,之後可在設置卡直接修改(無需重啓):
| 字段 | 默認 | 說明 |
|---|---|---|
enabled |
true |
總開關 |
autoOn |
false |
按鈕是否點亮 |
mode |
minimax |
minimax / heuristic |
minimaxApiKey |
— | 打分端點 key |
minimaxBaseUrl |
— | OpenAI 兼容 chat 端點 |
minimaxModel |
— | 打分模型名 |
allowToolUpgrade |
true |
工具連續性升檔 |
僅 yaml 可改:scoreTimeoutMs(默認 9000ms)、clampForcedThinkingOff(默認 true)、ledgerDir(默認 ~/.dsh/effort-auto-toggle)。
典型用法¶
- 重啓 DSH 後,輸入欄模型選擇器左側出現「自動」按鈕(初始爲熄滅)。
- 點亮後,從下一條消息起自動調度;按鈕隨實際請求顯示當前檔(如
自動·low→自動·high)。 - 再次點擊熄滅,恢復進入自動前的手動檔位。
- 每條回覆下方角標顯示該請求實際使用的檔位。
查看某會話的調度與 token 彙總:
node lib/report.js <sessionId前綴>
卸載(恢復 profile 內被改文件並刪除插件文件,需重啓 DSH):
node tools/install.mjs --profile "<profile 目錄>" --remove
適用場景與注意¶
適合經常在 DSH 裏切換「輕問快答 / 重推理 / 工具長鏈」、又不想每條消息手調檔位的開發者。自動模式依賴宿主 llm 檔位表與請求 waterfall;打分模式還依賴外網或自建兼容端點。
DSH 生態是「一切皆插件」;SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。插件以當前 DSH 進程權限運行,會向 profile 打補丁並可能調用外部打分 API;安裝前請閱讀 倉庫源碼與 LICENSE,確認 --force 寫入 desktop profile 的影響。倉庫提供 npm test(21 個用例,node --test,無需 npm install)覆蓋 passthrough 消毒、手動優先、五檔模型鏈路等。
結尾¶
dsh-effort-auto-toggle 用獨立「自動」按鈕和 passthrough 消毒規避僞檔位 API 錯誤,並按模型真實檔位表做語義映射;配合可選小模型打分、啓發式回退與會話內工具升檔,在手動檔與自動調度之間可一鍵切換。詳情與更新見 SkillHub 目錄頁 與 GitHub 倉庫。