前言¶
DeepSeek Harness (DSH) 允許通過編輯 cordis.patch.yml 文件來管理插件。但在實際開發中,頻繁地修改配置文件或重啓服務來測試插件開關並不高效。dsh-plugin-ui-toggle 插件提供了一種直接在 Web UI 中操作插件開關的方案,避免了手動編輯配置和重啓帶來的中斷。
插件介紹¶
這是一個由 Biobuilder-ai 維護的客戶端插件。它的核心功能是在 DSH 的 Web 界面中開啓或關閉任何已組合的插件條目。通過在配置文件中寫入禁用標記,它實現了開關的即時生效和持久化存儲。
核心功能¶
- Web UI 開關:通過設置菜單提供可視化的插件開關。
- 即時生效:切換開關後立即改變運行時狀態,無需重啓服務。
- 持久化存儲:將開關狀態寫入
cordis.patch.yml,重啓後依然有效。 - 零依賴:不依賴額外的運行時組件。
安裝與啓用¶
- 使用官方安裝命令添加插件:
dsh plugin --profile web add github:Biobuilder-ai/dsh-plugin-ui-toggle
- 安裝完成後,重啓
dsh web服務使插件生效。
典型用法¶
通過 Web UI 操作¶
進入 Web 界面的 Settings → Plugins → Plugin switches。列表中的每一項對應 Loader 樹中的一個條目。點擊開關即可啓用或禁用該條目。
通過 API 操作¶
插件提供了同源 API 接口:
- 列出條目:GET /ui-toggle/entries
- 設置狀態:POST /ui-toggle/set,請求體爲 { id, enabled }
工作原理¶
插件在 cordis.patch.yml 文件末尾維護了一個受管理的代碼塊(managed block)。當你在 UI 中切換開關時,插件會在這個塊中寫入或刪除 - id: <entry id> 和 disabled: true|false 行。
# >>> dsh-plugin-ui-toggle:begin — managed block, edited from the web UI
- id: "web-ui-git-graph"
disabled: true
# <<< dsh-plugin-ui-toggle:end
DSH 的 HMR 服務會監聽文件變化並重新應用補丁,從而實現狀態更新。
適用場景與注意¶
- 適用場景:適合需要頻繁測試插件組合、動態調整功能模塊的開發者。
- 核心限制:某些核心插件(如
dsh-plugin-ui-toggle自身、主機服務等)無法被關閉,UI 會標記爲 Required 並拒絕寫入。 - 依賴關係:關閉一個依賴項會導致該依賴項消失(從 Loader 樹中移除)。
- 配置文件位置:受管理的代碼塊固定在
cordis.patch.yml的末尾,不要手動刪除整個塊,否則會清除所有通過 UI 設置的覆蓋。
總結¶
dsh-plugin-ui-toggle 通過讀寫 cordis.patch.yml 中的特定塊,解決了插件狀態持久化和動態調整的問題,爲 DSH 開發者提供了一個低侵入、無額外依賴的調試手段。