DeepSeek Harness (DSH) 的設計理念是「一切皆插件」。在使用第三方模型(如 GPT、Qwen-thinking)時,模型往往不適應 DSH 的某些內部機制,導致壓縮失敗、沙箱提權報錯或工具調用異常。dsh-model-compat-guard 是一個第三方模型兼容守衛插件,通過攔截和修復特定類型的請求,解決這些高頻兼容性問題。
核心功能¶
該插件通過 DSH 的插件機制對請求流進行干預,主要修復以下四個問題:
-
思考型模型壓縮截斷
根因是dsh-compaction-basic的默認maxTokens限制爲 8192,而思考型模型的思考 token 會計入同一輸出預算,容易燒穿限制。插件會攔截purpose === "compaction"的請求,將maxTokens提升至 32768(可配置),並將推理檔位降至模型支持的最便宜檔,避免截斷報錯。 -
沙箱提權請求失敗
在沙箱執行器掛載時,工具 schema 會全局廣告sandbox_permissions字段,而實際模式是按會話解析的。當模型在danger-full-access模式下申請提權時,因無法找到更寬的模式且 justification 必須非空,會導致 fail-closed。插件會解析ctx.sandboxPolicy,剝離必敗的提權請求(sandbox_permissions+justification),按當前模式執行。 -
工具描述缺失
bash、run_code等工具將description設爲必填,模型經常漏傳。插件攔截tools/execute流水線,在嚴格校驗前檢查 schema:若必填的description缺失,會自動合成(如bash取命令首行,run_code取首行有效代碼)。 -
Code Mode run_code 高頻報錯
模型生成的 TS 程序語法不完整(如引號未配對)或錯誤使用 bash 結果(將其當作字符串而非結構化對象)。插件檢測 Code Mode 請求(僅run_code工具時),在 system prompt 末尾追加紀律塊,規範工具返回值讀取方式。
安裝與啓用¶
安裝插件需要指定固定版本 v0.4.0。安裝後需重啓 DSH 進程使配置生效。
dsh plugin --profile web add github:782042369/dsh-model-compat-guard#v0.4.0
卸載命令:
dsh plugin --profile web remove dsh-model-compat-guard
配置與典型用法¶
插件支持在 ~/.dsh/compat-guard.json 中進行配置。默認配置已覆蓋常見場景,零配置即可使用。
配置文件示例 (~/.dsh/compat-guard.json):
{
"compactionMaxTokens": 32768,
"compactionEffort": "auto",
"compactionPurposes": ["compaction"],
"fillDescription": true,
"descriptionTools": ["bash", "run_code", "subagent", "subagent_fork", "workflow"],
"codeDiscipline": "off",
"stripEscalation": "redundant",
"unknownPolicy": "preserve",
"modelInfoTtlMs": 300000,
"modelInfoTimeoutMs": 5000,
"logFixes": true
}
配置項說明:
* compactionMaxTokens:壓縮請求的 token 上限,默認 32768。
* compactionEffort:推理檔位,"auto" 選最便宜檔,"keep" 不動。
* stripEscalation:提權剝離策略,"redundant"(默認,僅剝必敗請求)、"always"(連合法提權也剝)、"off"。
* codeDiscipline:Code Mode 紀律,"off"(推薦使用原生 ~/.dsh/AGENTS.md)、"auto"、"always"。
* fillDescription:是否自動填充缺失的工具描述,默認 true。
測試命令:
node test/smoke.mjs
適用場景與注意事項¶
該插件適用於在 DSH 中使用 GPT、Qwen-thinking 等思考型模型,或遇到 Code Mode 報錯的場景。
- 運行環境:僅支持 Node.js >= 20.0.0。
- 權限說明:插件以當前 DSH 進程權限運行,安裝前建議檢查 GitHub 源碼。
- 許可證:MIT 許可證。
總結¶
dsh-model-compat-guard 通過攔截和修復請求流,解決了第三方模型在 DSH 環境下的兼容性問題。它不需要複雜的配置即可運行,適合需要穩定使用思考型模型或 Code Mode 的開發者。