前言¶
DeepSeek Harness (DSH) 採用“一切皆插件”的架構,這意味着運行時的核心能力往往由各類插件提供。在管理這些插件時,傳統做法通常需要重啓應用或手動編輯配置文件,操作不夠直觀且容易出錯。dsh-plugin-manager 旨在解決這個問題,它通過一個 Web 界面,讓你能在設置頁直接控制已安裝插件的啓停,並自動處理底層配置文件的寫入。
功能概覽¶
該插件運行時條目 ID 爲 dsh-plugin-manager,核心功能包括:
- Web 設置頁管理:在 Web 設置頁提供插件列表,支持搜索與篩選(官方/第三方)。每個插件一行開關,切換後立即生效。
- 配置持久化:啓停操作會自動寫入用戶層的
cordis.patch.yml文件,確保重啓後狀態保持。 - 熱更新支持:利用 Cordis loader 的熱更新機制,啓停操作無需重啓進程。
- 信息展示:顯示插件運行狀態(運行中/已停用/掛載失敗等)、官方徽標(
@deepseek-ai/*)與受保護標記。 - 安全防護:內置可信請求柵欄,防止跨站請求僞造與 DNS 重綁定攻擊,將配置平面限制在迴環地址。
- 核心保護:內置保護列表,禁止停用
webserver、ui-settings、ui-sidebar等核心條目,防止 UI 自鎖。
安裝與啓用¶
安裝該插件需要通過 DSH 的插件命令行工具。
dsh plugin --profile web add @wsgsety/dsh-plugin-manager
安裝完成後,需要重啓 DeepSeek Harness 的 Web profile(可通過命令行或桌面應用重啓)以使插件生效。
使用方式¶
安裝成功後,在 Web 界面的設置頁面中導航至“插件 > 插件管理”。
- 搜索與篩選:在搜索框輸入關鍵詞可快速定位插件,支持按“官方”或“第三方”標籤篩選。
- 啓停插件:點擊插件行右側的開關即可啓用或停用。開啓操作會寫入
disabled: false,關閉操作會寫入disabled: true,並自動保存到用戶 patch 層。
架構與安全¶
插件通過自定義路由與 DSH 後端交互。
路由設計¶
| 路由 | 方法 | 說明 |
|---|---|---|
/dsh-plugin-manager/entries |
GET | 獲取 loader 條目投影與 patch 停用列表 |
/dsh-plugin-manager/set-enabled |
POST | 執行啓停操作,寫入 patch 持久化 |
/dsh-plugin-manager/ping |
GET | 健康檢查 |
可信請求柵欄¶
所有接口均走官方 dsh-client-connection 同款可信請求柵欄:
* Host 驗證:必須是迴環權威地址(localhost / 127.0.0.0/8 / [::1])。
* 請求來源:拒絕 Sec-Fetch-Site: cross-site 請求。
* Origin 一致性:請求攜帶的 Origin 必須與 Host 完全一致。
* 寫接口限制:寫接口額外要求 TCP 對端可見地址爲迴環地址,將配置平面限制在本地。
保護機制¶
插件自身與 DSH 核心條目受到保護,禁止被停用。受保護列表包含但不限於:
webserver、web-runtime、modules、connection、client-runtime、locale、ui-layout、ui-sidebar、ui-settings、ui-settings-plugins(本插件所在頁面 slot 的所有者)、settings、typert*、api-remotes、dsh-plugin-manager。
注意事項¶
- Patch 層語義:
cordis.patch.yml層疊規則要求顯式寫入disabled字段。禁用插件必須寫入disabled: true,啓用插件必須寫入disabled: false。刪除該字段或寫入非布爾值會導致插件在重啓後重新停用或解析失敗。 - 請求體積限制:寫請求的 JSON body 體積受限(16 KiB),這限制了同時修改大量插件的併發操作。
- 網絡限制:插件僅支持迴環地址訪問,無法通過局域網 IP 或公網 IP 訪問管理界面。
- 依賴項:該插件依賴
@deepseek-ai/cordis作爲 peer dependency。