前言¶
在 DSH 插件生態裏,社區插件很多,實際使用時常見的問題不只是“找不到合適的插件”,還包括:這個插件和本地已安裝插件是否重複?聚合 bundle 是否已經提供了某個子插件?批量安裝多個倉庫是否會衝突?官方倉庫是否有尚未關閉的 Issue?本地 DSH 是否落後官方發行版?
直接手動搜索、安裝、卸載,容易依賴臨時判斷,也容易出現重複安裝、漏掉子插件、跳過預檢的情況。dsh-plugin-doctor 就是用來處理這類插件診斷與決策問題的工具。
下面介紹它適合做什麼、怎麼安裝、典型用法,以及使用時需要注意的邊界。
這是什麼¶
dsh-plugin-doctor 是 DSH 插件生態的診斷與決策工具,由 white-sand-grand 維護,許可證爲 MIT。
它面向 DSH 插件社區使用場景,提供社區插件搜索、功能重複判斷、插件關係圖、批量安裝前檢查、聚合 bundle 子插件識別、本地用量審計和官方版本同步檢查。
該插件要求 Node.js >=22.19。默認只讀,不會自行安裝、卸載或啓動 Web UI。
核心能力¶
社區插件搜索與重複判斷¶
它可以搜索社區插件,並返回匹配度、功能標籤、stars、更新時間和安裝引用。
在判斷是否重複時,它會比較插件說明文本、功能標籤和依賴,給出保留、移除或自研的建議。
社區搜索按以下順序降級:
- 即時 GitHub
- 進程內緩存
- 第三方
registry - 內置靜態快照
結果會標註數據來源。
插件關係與全景圖¶
它可以生成插件相似度關係圖,說明兩個插件之間的相似度以及重疊來源。
它也可以生成 Mermaid 插件全景關係圖,並按以下層級劃分:
coreactiveidlereview
這類圖適合用來查看已安裝插件之間的功能關係,而不是隻靠文字描述。
批量安裝前檢查¶
在批量安裝前,它會檢查:
- 包名
- 工具名
Cordis patch行peer依賴
如果無法完成檢查,plugin_install_guard 會失敗關閉。倉庫元數據無法讀取、GitHub 403/429 或未知狀態時,不會因爲“暫時查不到”而放行。
官方倉庫未關閉 Issue 檢查¶
在安裝前,它會詢問是否檢查官方倉庫的未關閉 Issue,並顯示相關鏈接與風險。
這是一個提醒性流程。Issue API 不可用隻影響提醒信息,不會繞過 plugin_install_guard 的失敗關閉規則。
聚合 bundle 子插件識別¶
它可以展開聚合 bundle 的插件形依賴,並標記 providedBy 子插件。
當某個功能已經由聚合 bundle 提供時,它會把對應子插件標記爲 providedBy,避免重複安裝,也不會建議單獨卸載該子插件。
本地用量審計¶
它會掃描本地已落盤的 session 日誌,並按 dsh.tools 統計:
- 調用量
- 會話數
- 最近使用時間
這個審計只讀取本地已落盤 session 日誌,不上傳內容。尚未結束或尚未刷盤的會話可能未被計入,結果中會明確提示。
官方版本同步檢查¶
它會對比本地 DSH 版本與官方最新發行版。
如果本地落後,它會報告官方發行版的新改動,並列出可能與本地已安裝插件重複或衝突的項目。
安裝與啓用¶
在運行 DSH 的同一環境中執行:
dsh plugin --profile web add github:white-sand-grand/dsh-plugin-doctor
安裝後,按你自己的方式啓動 DSH Web。dsh-plugin-doctor 不會替你啓動 Web,也不會改變已有 profile 的其他插件。
典型用法¶
安裝前先詢問官方 Issue¶
可以這樣提問:
我想安裝一個 Web UI 插件,先幫我查一下官方倉庫有沒有未修復的問題。
插件會先詢問是否檢查官方倉庫未關閉 Issue,再執行安裝前檢查,並顯示相關鏈接與風險。
搜索並檢查重複¶
可以這樣提問:
幫我找一個記憶插件,並檢查它是否和 web profile 裏已有插件重複。
結果會列出候選插件、匹配原因、與本地已有插件的重疊,以及保留或移除建議。
批量安裝前檢查衝突¶
可以這樣提問:
我要同時安裝以下倉庫,請先檢查它們會不會衝突:
github:owner/plugin-a
github:owner/plugin-b
github:owner/plugin-c
如果 GitHub 返回 403/429,或倉庫元數據無法讀取,結果會是 INSTALL BLOCKED。
查看已安裝插件之間的關係¶
可以這樣提問:
之前安裝的插件之間有什麼聯繫?哪些功能相似?
它會返回相似度關係,並說明重疊來源。
識別聚合 bundle 提供的功能¶
可以這樣提問:
我想安裝任務看板,需要再安裝一個 task-board 插件嗎?
如果相關功能已經由已安裝的聚合 bundle 提供,它會顯示 providedBy 來源,不建議重複安裝或單獨卸載子插件。
審計聲明瞭工具但從未使用的插件¶
可以這樣提問:
列出 web profile 中聲明瞭工具但從未使用的插件。
結果只基於本地已落盤 session 日誌,不上傳內容。尚未結束或尚未刷盤的會話可能未計入。
檢查本地 DSH 是否落後官方版本¶
可以這樣提問:
我的 DSH 落後官方多少了?升級會影響已裝的插件嗎?
它會對比本地 DSH 版本與官方最新發行版,報告新改動,以及可能重複或衝突的已安裝插件。
適用場景與注意¶
適合 DSH 智能體開發者在添加、替換、審查插件時使用,尤其是以下場景:
- 想找一個社區插件,但不確定是否已有本地插件覆蓋
- 準備批量安裝多個插件倉庫,需要先檢查衝突
- 想查看已安裝插件之間的功能重疊
- 想確認某個功能是否已經由聚合 bundle 提供
- 想知道本地 DSH 是否落後官方版本
- 想審計本地插件是否真的被使用
注意以下幾點:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證。 dsh-plugin-doctor默認只讀,不會自行安裝、卸載或啓動 Web UI。allowExecuteActions默認爲false,默認只輸出命令;明確交互確認後才允許執行add/remove。plugin_install_guard在倉庫元數據無法讀取、GitHub403/429或未知狀態時失敗關閉。- 官方 Issue 檢查是提醒性流程,不能替代安裝前守衛。
- 用量審計只讀取本地已落盤
session日誌,不上傳內容。 - 社區搜索依賴即時 GitHub、進程內緩存、第三方
registry和內置靜態快照,並會標註來源。
鏈接¶
GitHub:
https://github.com/white-sand-grand/dsh-plugin-doctor
插件線索中還有目錄頁 URL,但未見於已抓取資料,僅供查找參考:
https://www.skillhub.cn/plugins/white-sand-grand/dsh-plugin-doctor