前言¶
在 DeepSeek Harness(DSH)裏維護技能時,常見問題往往不是報錯,而是靜默失效:技能沒加載、被同名覆蓋、frontmatter 裏的 description 超過可見上限被截斷、正文引用的文件不存在——表面上只是「模型不用這個技能」。排查需要對照 dsh 的加載規則、運行時 fiber 階段和模型實際讀到的簡介原文,手工做很費時間。
dsh-skill-doctor(npm 包名同名,維護者 shuxidemosheng)面向上述場景:在 dsh 內掃描技能與插件配置,輸出可讀報告和可執行的改法,並提供斜槓命令、面板與獨立 CLI,分類上屬於工作流類插件。它不替代技能市場,也不做安全掃描,只回答「在 dsh 裏能不能正常工作、模型到底看到了什麼」。
這是什麼¶
一句話:dsh 的技能與插件體檢——告訴模型看到了什麼、插件是否真正跑起來、下一步該改哪裏。
- 維護者:shuxidemosheng
- 許可證:MIT(README 與 npm 元數據)
- 運行要求:Node.js ≥ 24,dsh ≥ 0.2.0-rc.2
- 社區目錄:SkillHub 插件頁
- 源碼與文檔:GitHub - shuxidemosheng/dsh-skill-doctor
核心功能¶
技能側¶
- 模型可見內容原樣展示:簡介超長時,不只提示「太長」,而是貼出截斷後模型能讀到的原文,便於覈對觸發詞是否還在可見段內。
- 結論 → 證據 → 處方:報告先給能不能用,再列摘要表、模型看到的簡介、被切掉的部分與影響大小,每條問題附帶修復檔位(可自動修 / 一條命令 / 需人工改)。
- 改寫工單:對 description 被截斷的技能,可生成帶字數預算與觸發詞骨架的工單;用戶確認後通過工具參數寫入(
setDescription或fix: true),不自動代寫文案。 - 複診對比:默認保存上次體檢結果,再次運行可對比「修好了哪些、新出現哪些」。
- 按根因聚合:同類問題(例如同一前綴的一批技能)合併展示,減少重複改模板。
- 動態使用統計:面板「使用統計」按技能被讀入上下文的次數排行(存本機 localStorage),輔助發現「模型從來不用」的技能。
插件側¶
- 磁盤 + 運行時:讀 profile 的
package.json與各插件cordis.patch.yml,檢查重複安裝、條目互搶、啓用與包是否一致、是否改動技能鏈路等(規則 ID 如 PL001–PL006 等,見 README)。 - fiber 探測:在桌面 profile 下嘗試讀
pluginInventory的 fiber 階段;failed的插件會被點名;探測不到時明確寫「沒查到」,不等同於沒問題。 - 會診:技能報告出現「0 個技能」等情況時,與插件層 patch(誰改了哪個條目、哪個鍵)交叉對照。
客戶端與命令¶
- 輸入框上方活動面板:展示本次會話中模型讀入了哪些技能、調用了哪些工具;點開可看最近約 20 條調用流。
- 六條斜槓命令(菜單中文,輸入框爲 ASCII token,本地執行、不經過模型):
/doctor、/scope <目錄>、/rewrite <技能名>、/followup、/why <技能名>、/clash。 - 四個工具(供模型或會話內自然語言觸發):
skill_doctor、skill_lint、skill_explain、plugin_doctor。
命令行¶
包內提供 dsh-skill-lint(lib/cli.js),README 說明可在 CI 中運行,支持 --json 與退出碼,且不依賴 dsh 運行時。
報告中的簡介長度閾值(如 500 字)隨 dsh 版本校準;版本不一致時,報告會提示閾值可能已過期。
安裝與啓用¶
安裝命令以 README 爲準:
dsh plugin --profile <你的profile> add dsh-skill-doctor
默認安裝最新版;鎖定版本可在名稱後加 @,例如 @0.13.2(README 示例版本)。
裝完後需要完全退出並重開 dsh,客戶端注入的代碼僅在啓動時加載。裝好後可直接在會話裏說「幫我體檢一下技能」,或使用斜槓命令,無需單獨記工具名。
典型用法¶
斜槓命令(最快)¶
輸入框輸入 /,選擇中文菜單項(對應上表的 token),補上路徑或技能名後回車,結果以純文本出現在會話流中。例如全體檢:
/doctor
只查某目錄:
/scope D://skills
完整處方報告仍可在會話中說「體檢技能」,由模型調用 skill_doctor,與斜槓路徑共用同一套掃描邏輯。
自然語言場景(README 示例)¶
懷疑某個技能沒生效:
解釋一下 nature-citation 爲什麼可能沒被模型用上
懷疑插件未啓動或衝突:
查一下 desktop profile 的插件有沒有衝突
查看當前會話模型在做什麼:看輸入框上方面板,或展開活動列表。
工具參數示例¶
單技能體檢:
{ "name": "nature-citation" }
省略 name 爲全體檢。只查指定目錄用 roots;追加目錄查同名遮蔽用 extraRoots(語義不同,見 README)。
插件體檢:
{ "profile": "desktop" }
按規則 ID 排查(CI / 技術口徑):
{ "rules": ["SD003", "SD004"], "format": "json" }
適用場景與注意¶
適合誰:在 DSH 裏維護較多技能或插件、需要確認「模型能否選中技能」「插件是否 failed」「patch 是否改壞技能目錄」的開發者。
做不到什麼(README「它做不到什麼」章節):不做技能分發與安全審計;不能替 dsh 修改核心加載策略;headless 下插件運行時 fiber 一節會降級;面板只能看到當前窗口內最近的調用,更早記錄不在浮層裏。
權限與安全:插件以當前 dsh 進程權限讀取 profile、技能目錄與配置;安裝前請自行查看 倉庫源碼 與 MIT 許可證。SkillHub 等爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。
DSH 生態強調「一切皆插件」;dsh-skill-doctor 是其中專門做診斷與工作流入口的一類工具,GitHub 上可見 star 數量會隨社區變化,以頁面爲準。
結尾¶
技能與插件的問題在 dsh 裏往往安靜失敗;dsh-skill-doctor 把可見簡介、截斷觸發詞、插件 fiber 狀態與 patch 衝突收成報告和斜槓入口,並支持複診與 CI lint。需要安裝說明與規則細節時,以 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/shuxidemosheng/dsh-skill-doctor
- GitHub:https://github.com/shuxidemosheng/dsh-skill-doctor