插件裝了沒反應、技能看不見、改了配置沒生效,這些問題在 DeepSeek Harness(DSH)開發中很常見。現有的一些診斷手段要麼不夠具體,要麼試圖直接修復配置,容易引入副作用。
dsh-doctor 專注於只讀診斷。它不修改文件、不改 profile、不動 Loader 樹裏的任何行,而是直接回答“爲什麼”——哪個插件行沒運行、哪個技能提供方整體失敗、patch 裏有沒有重複 id、HMR 是否配置正確。
插件介紹¶
名稱:dsh-doctor
作者:louisyeaaah
分類:工作流
許可證:MIT
這是一個只讀診斷插件,用於排查 DSH 運行時的加載與可見性問題。它通過讀取宿主內部結構(ctx.loader、ctx.skills、ctx.hmr 等)採集事實,輸出問題清單和每條的下一步操作建議,並提供默認脫敏的 Markdown 卡片,方便直接貼進 issue。
核心能力¶
插件主要覆蓋四個維度的體檢:
-
插件行狀態
檢測哪些插件行未運行、哪些被 disabled,解決“裝了插件但工具沒出現”的問題。 -
技能提供方
逐個調用提供方的list()方法,抓取並展示拋錯的原文。技能註冊表遇到失敗時會跳過該提供方並標記觀察不完整,導致模型側完全看不到診斷信息。dsh-doctor 把這條錯誤原文攤開。 -
patch 層衝突
檢測重複的 entry id、同一包多行、聲明瞭但未安裝的 bundle,解決“裝了但沒生效”或行爲詭異的問題。 -
HMR 配置
檢測 HMR 的 watch 源碼配置和node_modules是否被跳過,解決“改了代碼沒反應”的問題。
插件會輸出一份問題清單,並在每條結論後附帶下一步動作。
安裝與啓用¶
安裝命令如下:
dsh plugin --profile <profile> add github:louisyeaaah/dsh-doctor
安裝後,可以通過以下方式使用:
dsh_doctor() # 體檢:插件行 / 技能提供方 / patch / HMR
dsh_doctor({ card: true }) # 輸出可貼進 issue 的 markdown 卡片(默認脫敏)
/dsh-doctor card # 人也可以直接敲
注意事項與限制¶
使用前需瞭解以下幾點:
- 只讀保證:不寫任何文件、不改 profile、不動 Loader 樹裏的任何行。唯一的副作用是在頁面/引擎裏調用各 provider 的
list()(註冊表本來也會調)。 - 依賴宿主結構:依賴 DSH 內部結構(
ctx.loader/ctx.skills/ctx.hmr/profileContext)。DSH 升級後可能失效。 - 範圍有限:只回答加載與可見性層面的問題,查不出“插件行爲不對”的深層邏輯。
- 性能影響:技能提供方的
list()會被真的調用一次。極慢的 provider 會讓體檢變慢。 - 生態現狀:本倉庫沒有發佈到 npm(名字也被佔了),不做投稿。安裝走 GitHub 路徑或
scripts/install.sh。
價值定位¶
生態裏已有幾個同名項目,覆蓋了修復、回滾、環境診斷等更全面的功能。如果你需要的是“壞了能救回來”,建議選擇那些項目。
本倉庫僅做一件事:只讀地把“爲什麼”講清楚,並輸出一張默認脫敏、可以直接貼進 issue 的英文卡片。