前言¶
DeepSeek Harness (DSH) 採用“一切皆插件”的理念,通過配置文件管理插件的行爲。在已有的做法中,管理插件條目(如啓用/禁用)或通過 Web 界面安裝新包通常需要操作文件或重啓進程。下面介紹的 dsh-plugin-manager 提供了一個安全的、僅環回的 Web UI,用於管理當前激活的 Web 配置文件插件。
插件定位¶
- 名稱:
leonardoxr/dsh-plugin-manager - 描述:Safe loopback-only Web UI for managing DeepSeek Harness profile plugins(用於管理 DeepSeek Harness 配置文件插件的安全、僅環回 Web UI)
- 維護者:leonardoxr
- 許可證:MIT
- 分類:客戶端
核心功能¶
經過上面的步驟安裝後,該插件爲 DSH Web 界面增加了以下能力:
-
條目控制
- 啓用或禁用來自當前激活的 Web 配置文件的可變條目,包括系統自帶的條目。
- 移除其自身的顯式覆蓋配置,將條目恢復到組合配置文件的默認狀態。
-
熱掛載
- 安裝並熱掛載安全的單條目 DSH 包,無需重啓 DSH Web 進程。
-
文件保護
- 在
$DSH_HOME/profiles/web/cordis.patch.yml中,除了一個清晰標記的受管理塊外,保留其餘部分的字節不變。
- 在
-
安全邊界
- 使用插件擁有的、註冊了
authority: loopback的連接 RPC 通道。 - 當通過局域網或 Tailscale 訪問時,Web UI 僅顯示只讀訪問消息,不暴露生命週期或包操作。
- 拒絕禁用自身或 Web 傳輸/UI/實時配置重載鏈路。
- 拒絕模糊的重複 patch ID 以及配置文件樹之外的條目。
- 使用插件擁有的、註冊了
-
包安裝
- 接受帶有可選版本或 dist-tag 的 npm 註冊表包名。
- 通過 DSH 的公共子進程服務,無 shell 啓動 pnpm,並使用憑證清洗後的環境。
- 禁用包生命週期腳本並限制捕獲的輸出。
安裝¶
安裝該插件需要將預構建的發佈包添加到 Web 配置文件中。安裝完成後,DSH Web 需要重啓一次,因爲配置文件的擴展是在啓動時掃描的。
dsh plugin --profile web add https://github.com/leonardoxr/dsh-plugin-manager/releases/download/v0.2.0/leonardoxr-dsh-plugin-manager-0.2.0.tgz
安裝成功後,打開 DSH Web 界面,導航到 Settings(設置)→ Plugins(插件)→ Manage plugins(管理插件)即可使用。
使用方式¶
安裝插件後,可以通過以下方式管理:
- 啓用/禁用條目:在“管理插件”頁面中切換條目的狀態。現有的條目切換會被持久化到 Web 配置文件的 patch 中,並立即生效。
- 移除覆蓋:如果插件條目被當前管理器覆蓋,可以將其移除以恢復默認值。
- 安裝新包:支持通過源碼方式直接安裝。
dsh plugin --profile web add github:leonardoxr/dsh-plugin-manager#v0.2.0
- 刷新頁面:安裝新的瀏覽器包後,需要刷新瀏覽器頁面以加載新的瀏覽器擴展。
注意事項與安全¶
在使用該插件時,需注意以下安全與功能限制:
- 環回權限限制:
authority: loopback限制了網絡可達性,但這並不是調用者認證。本地同用戶進程、可變包管理器可執行文件、SSRF 能力的瀏覽器內容以及忽略共享 DSH 鎖的配置文件寫入器,仍處於本地信任邊界內。 - 沙箱隔離:禁用生命週期腳本並不對已安裝的插件進行沙箱隔離。插件將使用與 DSH 主進程相同的用戶權限運行。請僅安裝經過審查和信任的發佈者提供的精確版本。
- 包格式限制:插件拒絕安裝複雜或多行的包。對於此類包,應使用官方 CLI 安裝並在方便時重啓 DSH Web。
- 超時處理:如果安裝或操作超時,已管理的 patch 或條目會被保留,不會導致正在運行的條目變爲未跟蹤狀態。
- 初始狀態:由於配置文件擴展在啓動時掃描,初次安裝插件後必須重啓 DSH Web。
總結¶
dsh-plugin-manager 爲 DSH 用戶提供了一個可視化的、安全的 Web 端管理入口,簡化了插件條目的開關與熱加載流程。但在使用前,請務必理解其安全模型與信任邊界,避免引入不受信任的代碼。