前言¶
DeepSeek Harness (DSH) 在 0.1.7+ 版本中引入了聲明式的 cordis.patch.yml 機制,並移除了舊的目錄掃描模式。在框架升級過程中,現有的 Agent 預設聲明極易因包名重命名、配置鍵變更或語法遷移而失效,導致 UI 上僅顯示「加載失敗」,且無法定位具體原因。
dsh-preset-doctor 是一個 DeepSeek Harness 插件,旨在自動檢測並修復這些失效的預設聲明。它通過零 LLM 介入的確定性代碼,處理從舊格式遷移、包名替換到原子化修復的全過程。
核心功能¶
該插件提供以下自動化能力:
- 自動掃描:檢測失效的 Agent 預設聲明。
- 自動遷移:將舊格式的目錄結構自動轉換爲聲明式 patch。
- 自動替換:根據遷移表自動替換已重命名的包名。
- 配置鍵拆分:自動將
persona配置中的text鍵拆分爲prefix和suffix。 - 路徑改寫:將本地路徑(
.//../)自動改寫爲file://URL。 - 安全寫入:修復前自動備份(
.bak)與原子寫入,支持冪等操作。 - 鏈式收斂:支持鏈式收斂處理版本漂移,確保不同時代的預設能統一適配當前版本。
安裝與啓用¶
通過 npm 全局安裝插件,然後添加到 DSH 中。
npm install -g dsh-preset-doctor
dsh plugin add dsh-preset-doctor
安裝完成後,插件會在 DSH 進程啓動約 1 秒後自動掃描 $DSH_HOME/cordis.patch.yml、profiles/<name>/cordis.patch.yml 及遺留的 .agent-presets/ 目錄。
使用方法¶
修復生效需要重啓 DSH 進程(預設註冊表僅在啓動時加載)。在會話中可執行以下命令:
/preset-doctor:掃描並自動執行機械修復。/preset-doctor scan:僅掃描並報告,不執行寫盤操作。
技術細節與限制¶
- 零 LLM 介入:完全基於
@deepseek-ai/schemastery和yaml庫進行靜態分析和修復。 - 僅語法修復:插件保證修復後的預設語法合法、可加載,但不保證修復後的行爲與舊版本完全等價。
- 安裝行爲:插件安裝過程本身不安裝依賴、不修改
package.json、不重啓進程。 - 環境依賴:宿主版本需滿足
engines.dsh要求(>=0.1.1-rc.1),並依賴@deepseek-ai/cordis(>=4.0.1 <5)。
資源¶
- GitHub: https://github.com/drscrewdriver/dsh-preset-doctor
- 目錄頁: https://www.skillhub.cn/plugins/drscrewdriver/dsh-preset-doctor