DeepSeek Harness 的官方插件頁面是隻讀的:它列出模塊名,但不解釋它們是做什麼的。想關掉一個插件,需要手改 cordis.patch.yml。技能那邊更糟:裝了 57 個技能,其中 14 個模型根本看不到。這個插件在同一個頁面添加了一個“插件管家”標籤頁,補上這些事。
插件管理¶
1. 插件說明¶
界面展示插件的中文名與說明。說明按優先級獲取:dshhub.summary、package.json 的 description、README.md 首段(自動剝離 Markdown 標記)。實測覆蓋率中,description 覆蓋了絕大多數插件。
2. 來源徽章¶
界面根據 pnpm-lock.yaml 判定來源:
* 官方:包名在 @deepseek-ai/ 命名空間下。
* 社區:lockfile 中爲普通 semver 版本號。
* GitHub 直裝:lockfile specifier 爲 github:owner/repo#tag。
* 本地鏈接:specifier 爲 file: 或 link:。
3. 熱生效開關¶
提供一鍵停用/啓用功能,通過 Cordis 的 Entry.update({ disabled }) 更新通道實現。停用時 loader 會 await _dispose(fiber) 註銷工具與路由;啓用時重新 init() 裝配。此操作熱生效,無需重啓。狀態保存在 ~/.dsh/plugin-manager.json,重啓後自動重放。
4. 安全卸載¶
卸載流程包含快照、移除與校驗:
1. 先快照 entry 的 options。
2. 執行 loader.remove()。
3. 校驗確實移除;若仍在,按快照 loader.create() 恢復原狀。
官方 @deepseek-ai/* 組件禁止卸載(會破壞啓動),界面會置灰相關按鈕。
5. 噪聲過濾¶
列表會自動過濾非插件庫(沒有 dsh.bundle 的普通依賴)和框架內部條目(如 cordis:include、node:* 等)。
技能管理¶
插件管家頁支持在“插件”與“技能”分段切換。
1. 唯一可用觸發方式¶
界面展示技能的 invocation 策略:
* 模型自動加載 + / 命令:模型會自己調用,也可用 /name 手動喚起。
* 僅模型自動加載:模型可見,/name 不可用。
* 僅 / 命令:模型看不到它,只能用 /name 手動喚起。
* 均不可用:已停用。
2. 兩個真開關¶
提供兩個獨立開關:模型自動加載與 / 命令可用。插件註冊一個 rank 0 的影子 provider,將策略置爲 false。消費點(模型目錄、加載守衛、命令目錄)均按策略過濾,實現真正的熱生效。
3. 清理線索¶
界面會標記不生效的技能:
* 目錄內有不生效的 SKILL.md:加載器只認 <技能名>/SKILL.md,嵌套目錄一律忽略。
* 混入非技能文件:如根目錄出現 package.json。
4. 來源與升級¶
根據路徑反解歸屬:
* 路徑含 node_modules/<pkg>/:顯示爲“插件提供 · 升級對象 <pkg> v<version>”。
* 路徑在 ~/.agents/skills/ 或 ~/.dsh/skills/ 下:顯示爲“用戶安裝”。
* 注意:插件不提供自動升級按鈕,因爲技能本身不具備 git 倉庫或安裝元數據。
安裝與啓用¶
dsh plugin --profile web add "github:Amouren7/dsh-plugin-desk#v0.2.1"
安裝完成後重啓 dsh web,打開 設置 → 插件 → 插件管家。
頁面採用懶加載,瀏覽器可能緩存舊前端。若看不到新標籤頁,按 Ctrl+Shift+R 強制刷新。
兼容性與依賴¶
系統要求¶
- DSH:
>=0.1.5-rc.1 - Node:
>=20 - Profile:
web
服務依賴¶
技能功能需要部署提供 skills 與 agentPresets 服務,以及可解析的 @deepseek-ai/dsh-scope。缺任一項時,技能開關會拒絕生效。
權限與數據¶
讀取權限¶
- profile 的
node_modules(僅讀取package.json/README.md)。 pnpm-lock.yaml。- 運行中的 loader 條目。
- 技能註冊表。
寫入權限¶
~/.dsh/plugin-manager.json(插件停用/卸載記憶)。~/.dsh/plugin-desk-skills.json(技能開關覆蓋)。
注意:技能開關不修改任何 SKILL.md 文件,通過影子 provider 覆蓋策略。刪除狀態文件即可復原默認策略。
卸載¶
dsh plugin --profile web remove dsh-plugin-desk
卸載後,上述兩個狀態文件會保留。若不再需要,可自行刪除。
License¶
MIT