前言¶
DeepSeek Harness 的核心設計理念是「一切皆插件」。隨着社區在 GitHub dsh-plugin topic 下發布的插件增多,手動管理這些插件的發現、安裝和更新變得繁瑣。dsh-plug-manager 是一個由 Casually 維護的插件管理器,它提供了一個集中的 Web 界面來瀏覽、搜索和安裝這些插件,同時通過命令行工具和本地 API 提供了額外的控制能力。
功能概覽¶
該插件主要包含以下功能:
-
Web UI 插件市場
- 發現與查看:支持搜索帶
dsh-plugin標籤的 GitHub 倉庫。在詳情頁可以查看 Star 數、Topics、許可證以及 README。README 經過安全渲染,剝離了潛在危險的 HTML 標籤和腳本。 - 操作:支持一鍵安裝、更新和移除插件。操作由宿主進程直接執行,輸出實時顯示。
- 已安裝管理:列出各 profile 的 bundle 棧和依賴,支持按名稱或來源搜索。
- 發現與查看:支持搜索帶
-
安裝源智能解析
- 自動識別:自動識別插件是 npm 包還是 GitHub 源碼。
- npm 優先:如果 GitHub 倉庫的同名包已發佈到 npm,會優先使用 npm 包(預構建產物)。
- 源碼處理:未發佈到 npm 時,會從 GitHub 下載 tarball。源碼依賴會在解壓目錄內執行
npm install,防止路徑解析錯誤。 - 兼容性:檢測到 pnpm 7 在新版 Node 上的兼容性錯誤時,會自動切換到 npm 完成安裝。
-
代理支持
- 支持配置 GitHub 代理,支持 HTTP、HTTPS、SOCKS5 等協議。
- 代理來源優先級爲:持久設置 > 插件配置 (
config.proxy) > 環境變量 (DSH_PLUG_MANAGER_PROXY,HTTPS_PROXY)。
-
Agent 工具
- 提供模型側命令:
plug_install、plug_remove、plug_update。 - 權限控制:UI 操作無需審批,但 Agent 工具在執行前會根據沙箱策略徵詢用戶審批。
- 提供模型側命令:
-
本地 JSON API
- 提供一系列迴環接口,用於查詢狀態、提交任務(安裝/更新/移除)、重啓服務等。
安裝與啓用¶
安裝該插件需要宿主環境已安裝 pnpm。如果使用代理功能,還需要 curl。
安裝命令:
dsh plugin --profile web add -w dsh-plug-manager
安裝完成後,需重啓 DSH 服務以加載新的 bundle 層。重啓後,在設置 → 插件 → 插件市場 標籤頁即可使用。
典型用法¶
通過 Web UI 安裝:
1. 打開 Web UI,進入「插件市場」。
2. 搜索目標插件或瀏覽倉庫列表。
3. 點擊卡片查看詳情,確認無誤後點擊「申請安裝」。
通過 Agent 工具:
模型調用工具時會自動徵詢用戶。
# 安裝插件(模型側調用示例)
plug_install npm:example-plugin
# 移除插件
plug_remove example-plugin
# 更新插件
plug_update example-plugin
直接命令行安裝:
dsh plugin --profile web add -w dsh-plug-manager
dsh plugin --profile web add -w github:Casually/deepseek-harness-plugs-manage
dsh plugin --profile web remove dsh-plug-manager
注意事項¶
- 重啓要求:無論是安裝、更新還是移除插件,都必須重啓 DSH 服務才能使變更生效。
- 權限模型:
- Web UI 的操作由用戶直接發起,等同於用戶敲擊命令,無需額外審批。
- Agent 工具(
plug_*)屬於沙箱操作,執行前會徵詢用戶審批。
- 源碼執行:通過 git 源安裝插件時,可能會執行包的
prepare腳本,請確保信任該插件源碼。 - 依賴環境:依賴宿主環境安裝
pnpm和curl。 - 徹底移除:移除插件會清理本地文件、依賴和源碼緩存。
附錄¶
- GitHub 倉庫:https://github.com/Casually/deepseek-harness-plugs-manage
- 社區目錄:https://www.skillhub.cn/plugins/Casually/deepseek-harness-plugs-manage