前言¶
在 DeepSeek Harness(DSH)裏,Skill 是擴展智能體能力的主要載體。實際開發中,Skill 往往散落在下載目錄、項目倉庫和 ~/.dsh/skills 之間:有的還沒按 DSH 規範寫好 frontmatter,有的想先放進池裏備用,有的需要在系統級與項目級之間切換。純靠手改文件和記路徑,啓用、停用和批量導入都容易出錯。
下面介紹社區插件 dsh-skill-manager-ytxue(維護者 YTxue,分類:工作流)。它在 DSH Web 界面的設置側邊欄提供「Skill 管理」面板,把列表查看、啓用/停用、文件夾批量導入、規範檢查與自動修復集中在一處處理。
這是什麼¶
dsh-skill-manager-ytxue 是一個 DSH Web 插件(當前版本 0.6.0,MIT 許可證)。插件在設置側邊欄註冊 settings.section 條目(order: 900),面板標題爲「Skill 管理」。
它面向兩類目錄:
- 啓用目錄
~/.dsh/skills/:系統級 Skill,DSH 原生掃描(rank 400),導入後立即生效。 - 池目錄
~/.dsh/skill-pool/:零掛載存放,之後按需啓用。
面板同時展示項目級 Skill(<項目根>/.dsh/skills、<項目根>/.agents/skills),只讀標識,不參與規範檢查。切換 DSH 會話時,面板會按當前工作目錄自動過濾,只顯示對應項目的項目級條目。
核心功能¶
狀態總覽與標識¶
面板以雙列表展示啓用目錄與池目錄中的 Skill。每個條目旁有形態標籤:
| 標籤 | 形態 | 說明 |
|---|---|---|
| bundle | skills\<name>\SKILL.md |
目錄型,可附帶腳本、模板等資源 |
| flat | skills\<name>.md |
單文件 Markdown |
標籤後還會標註系統級或項目級來源。每行顯示 frontmatter 中的 description;名字旁的圓點表示檢查狀態——綠點爲已檢查且內容未變,紅點爲未檢查或內容已變更。
導入 Skill¶
工具欄支持從本地路徑導入,可選手動輸入或通過內置目錄瀏覽對話框選擇文件夾(從全部盤符起步,支持任意層級)。
導入邏輯會自動識別單條與批量:
- 路徑指向單個 Skill(含
SKILL.md的目錄或.md文件)→ 導入 1 個。 - 路徑指向包含多個 Skill 的大文件夾 → 逐個導入直接子級,忽略非 Skill 文件。
重名時先 dry-run 預檢,彈窗列出衝突條目,可選擇跳過重名並導入其餘、覆蓋重名或取消。目標可選複製到啓用目錄(立即生效並自動檢查修復)或複製到池目錄。導入結果逐條顯示成功、跳過或失敗標記;目錄名會自動規整爲 kebab-case。
規範檢查與自動修復¶
「一鍵檢查」採用狀態驅動策略:只處理紅點條目,綠點自動跳過。檢查依據 ~/.dsh/skill-manager-ytxue.checked.json 中 SKILL.md 內容的 sha1 指紋。
不合規項會自動修復並寫入日誌 ~/.dsh/skill-manager-ytxue.log,包括:
- 目錄名/文件名非 kebab-case → 規整重命名,同步 frontmatter
name name缺失或與目錄名不一致 → 以目錄名爲準修正description缺失 → 補充佔位描述- 布爾字段駝峯拼寫或非標準值 → 改爲 kebab 或修正/刪除
啓用與停用¶
在池目錄與啓用目錄之間移動條目,支持 bundle 目錄與 flat 單文件兩種形態。發生衝突或重複時安全報錯,不會靜默覆蓋。
項目級 Skill 展示¶
默認只顯示當前會話對應項目的項目級 Skill。客戶端訂閱 sessions 服務,切換會話即同步工作目錄;host 向上探測 .git 祖先以確定項目根(與 DSH skill-filesystem 判定一致)。若某項目從未開過會話但仍需展示,可在 $DSH_HOME/settings.yaml 中配置:
skill-manager-ytxue:
projectRoots:
- '/path/to/project1'
- '/path/to/project2'
安裝與啓用¶
包名說明:npm 上的
dsh-skill-manager(maintainer:gohana)是無關第三方包。本項目包名爲dsh-skill-manager-ytxue,安裝請以 GitHub 倉庫爲準。
方式 A:git clone + dsh plugin 命令(推薦)¶
git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
dsh plugin --profile web add /path/to/dsh-skill-manager-ytxue
隨後在 $DSH_HOME/profiles/web/cordis.patch.yml 追加掛載條目,重啓 DSH 生效。
方式 B:git clone + 手動掛載¶
git clone https://github.com/YTxue/dsh-skill-manager-ytxue.git
- 將目錄放入
$DSH_HOME/profiles/web/node_modules/dsh-skill-manager-ytxue/。 - 在
$DSH_HOME/profiles/web/cordis.patch.yml追加:
- insert:
- id: skill-manager-ytxue
name: 'dsh-skill-manager-ytxue'
- 驗證配置樹:
dsh --profile web --dump-config
輸出中應出現 skill-manager-ytxue 條目。
- 重啓 DSH,打開設置 → Skill 管理。
也可使用遠程地址安裝(不經過 npm 同名包):
dsh plugin --profile web add git+https://github.com/YTxue/dsh-skill-manager-ytxue
要求 Node.js >= 20。
典型用法¶
從本機文件夾批量導入¶
- 打開 DSH Web 界面,進入設置 → Skill 管理。
- 在導入區域點擊文件夾圖標或手動輸入路徑,指向包含多個 Skill 的目錄。
- 若出現重名預檢彈窗,按需選擇跳過、覆蓋或取消。
- 選擇目標爲啓用目錄或池目錄,確認導入。
- 點擊「一鍵檢查」,處理紅點條目的規範問題。
在池與啓用目錄間切換¶
在列表中找到目標 Skill,使用啓用/停用操作在 skill-pool 與 skills 之間移動。bundle 與 flat 條目均按整體移動。
通過 HTTP API 調用¶
插件在 loopback 提供同源 API,可供腳本或自動化集成:
| 方法 | 路徑 | 說明 |
|---|---|---|
| GET | /api/skill-manager-ytxue/state |
雙目錄狀態快照 |
| POST | /api/skill-manager-ytxue/check |
檢查未檢查項並修復 |
| POST | /api/skill-manager-ytxue/enable |
body {name} |
| POST | /api/skill-manager-ytxue/disable |
body {name} |
| GET | /api/skill-manager-ytxue/list-dir |
目錄瀏覽,?path= 缺省爲主目錄 |
| POST | /api/skill-manager-ytxue/import |
body {source, target?, conflict?, dryRun?} |
運行單元測試¶
倉庫提供 core 層測試(51 項):
node test/core-test.mjs
適用場景與注意¶
適合誰
- 需要在 DSH 中集中管理大量 Skill、頻繁在池與啓用目錄間切換的開發者。
- 從外部倉庫或本地文件夾批量導入 Skill,並希望導入前處理重名衝突。
- 希望一鍵按 DSH 規範檢查 frontmatter、目錄命名和布爾字段,減少手改成本。
注意事項
- 插件以當前 DSH 進程權限運行,會讀寫
~/.dsh/skills/、~/.dsh/skill-pool/及檢查狀態文件。安裝前應閱讀源碼並確認 MIT 許可證。 - 作者實測環境爲 Windows(PowerShell 5.1 + Node 20+);macOS / Linux 可按 README 安裝,遇問題可在 GitHub 提 Issue。
- 若曾用
dsh plugin add安裝後刪除目錄,啓動可能報cannot resolve profile bundle "dsh-skill-manager-ytxue",需運行dsh plugin --profile web remove dsh-skill-manager-ytxue或手動清理package.json中的 bundles 條目。 - 面板僅請求本機
/api/skill-manager-ytxue/*,無外部網絡請求;host 端爲零第三方依賴。
結尾¶
dsh-skill-manager-ytxue 把 Skill 的列表、導入、啓停和規範修復收進 DSH 設置側欄,用狀態驅動的檢查減少重複勞動,用重名預檢降低批量導入風險。若你正在維護較多 Skill 或需要規整不規範的 frontmatter,可以按上文步驟安裝試用。
- SkillHub 目錄頁:https://www.skillhub.cn/plugins/YTxue/dsh-skill-manager-ytxue
- GitHub 倉庫:https://github.com/YTxue/dsh-skill-manager-ytxue