前言¶
在 DeepSeek Harness 裏做 Agent Skills 協同時,常見的問題在於技能靠手工維護:從 Git 倉庫拉下來、放進某個目錄、改配置註冊、不再使用時又得手動摘除。技能數量漲起來之後,啓停、更新、查看內容都變成重複操作,而且停用後是否真的從模型上下文裏移除,往往並不直觀。
dsh-skills-tools 就是針對這個環節的插件。它由 hxlog 維護,定位是 DeepSeek Harness 的 Skills 管理器:從 Git 倉庫或本機目錄導入 Agent Skills,按倉庫分組管理,隨時啓用、停用、補齊和查看內容。它屬於社區目錄中「工作流」分類下的插件,與 DeepSeek / 幻方無官方從屬關係。
適合誰¶
已經在使用 DSH、希望把技能的來源、啓用狀態和更新管起來的人。如果你的技能只有一兩個、且長期不變,動手裝插件的收益不大;如果技能來自多個倉庫、需要頻繁啓停或跟隨上游更新,這個插件能減少重複操作。
核心能力¶
下面按功能逐項說明。
- 按倉庫分組:技能按來源倉庫聚合成可摺疊的倉庫卡片;有啓用技能的倉庫優先排列,倉庫內已啓用的技能優先。
- 部分導入補齊:只導入了部分技能的倉庫會顯示「可導入 N 個」,點「導入更多」即可從現有快照裏勾選剩餘技能,不需要重新克隆。
- 倉庫級開關:一鍵啓用或停用整個倉庫;部分啓用時開關顯示半選狀態。
- 展開查看內容:行右側箭頭可以展開 SKILL.md 正文、來源倉庫、提交、路徑與更新時間,也可以就地更新或移除。
- Git 導入與快照:支持 https / ssh / 內網倉庫、分支 / 標籤 / 提交與子目錄;導入的是隻讀快照,原目錄和遠端不會被修改。
- monorepo 子目錄:粘貼
/tree/<ref>/<subdir>形式的大倉庫地址即可導入子目錄技能,只拉取目標子目錄,無需下載整倉。 - 檢查更新:對比上游最新提交,確認後再切換快照;多個倉庫可以一次檢查。
- 全局摺疊:頂部一鍵全部展開 / 全部摺疊;首次打開默認摺疊,摺疊狀態記在本機,刷新後保持不變。
- 自動檢查更新:打開設置頁自動檢查一次,頁面可見時每 30 分鐘複查;發現新提交時頂部橫幅提示,可「全部更新」或逐個更新。
- 最近操作彈窗:工具欄打開獨立彈窗,按時間倒序列出啓用、停用、導入、更新與失敗記錄,可刷新、複製;重啓後仍保留最近 300 條。
README 中有一句明確說明:停用的技能不會註冊進模型,既不佔上下文,也無法被誤調用。這是該插件區別於「僅隱藏 UI 條目」的做法。
安裝與啓用¶
環境要求是 DeepSeek Harness 0.2.x(Web GUI dsh web 或 DSH Desktop),以及 Node.js ≥ 22.13。包發佈在 npm,名字是 dsh-skills-tools,當前版本 1.3.0。
需要注意的是,這是 DeepSeek Harness 插件,不是普通 npm 依賴庫。npm i dsh-skills-tools 只會下載包,運行時仍需裝進 DSH profile。
通過插件頁安裝(推薦):
- 打開 DSH Web(或 DSH Desktop)→ 側邊欄「插件」(Desktop 在「設置 → 插件」)。
- 點安裝,填入
dsh-skills-tools,確認。 - 啓用新 bundle,刷新頁面,打開「設置 → 技能」。
通過命令行安裝:
dsh plugin add dsh-skills-tools # 默認 profile
dsh plugin --profile web add dsh-skills-tools # Web
dsh plugin --profile desktop add dsh-skills-tools # Desktop
裝完後有一點容易忽略:dsh plugin add 只負責把包裝進 profile,不會自動啓用 bundle。需要到插件頁啓用一次,或確認 profile 的 dsh.profile.bundles 已包含 dsh-skills-tools。
典型用法¶
導入並管理技能的過程如下。
- 打開「設置 → 技能 → 導入技能」,粘貼 Git 地址。支持
https://、git@、file://與本機絕對路徑;內網倉庫直接使用本機 git 憑據。 - 可選填分支 / 標籤 / 提交與子目錄,點「掃描」。勾選要安裝的技能,重名項會給出可修改的建議名稱,點「安裝選中」。安裝即啓用。
- 回到列表按倉庫管理:倉庫開關批量啓停,行開關控制單個技能,「導入更多」補齊同倉庫剩餘技能,點右側箭頭查看正文。
數據放在插件數據目錄裏:
~/.dsh/dsh-skills-tools/
├── state.json 倉庫、技能、啓用狀態與檢查時間
└── repos/<倉庫>-<提交>/ 只讀快照
每次導入或更新把倉庫複製到該目錄,刪除技能只刪狀態,不影響倉庫與快照。啓用狀態決定技能是否註冊進 DSH 技能目錄;停用即從模型上下文移除。
對外提供 REST 接口,便於腳本化操作:
GET /skills-tools/api/state
POST /import/scan
POST /import/commit
POST /repos/inspect
POST /repos/import
POST /repos/toggle
POST /repos/check-updates
POST /skills/toggle
POST /skills/bulk
POST /skills/remove
POST /skills/update
POST /refresh
GET /logs
接口細節見倉庫中的 docs/API.md。
權限邊界與注意事項¶
安全方面,插件不保存令牌,Git 認證交給本機 credential helper 或 SSH key,插件只調用 git;導入與更新都寫入數據目錄,原倉庫目錄與遠端不會被修改;除填寫的倉庫地址外不發起網絡請求。
權限範圍如下:
- 文件訪問:讀寫插件數據目錄
~/.dsh/dsh-skills-tools/;導入本機目錄時只讀取該目錄。 - 網絡:僅在導入、檢查更新時訪問填寫的 Git 倉庫。
- 進程:導入 / 檢查更新時調用本機
git。 - UI 注入:設置頁「設置 → 技能」面板,依賴
@deepseek-ai/dsh-client-ui-settings與@deepseek-ai/dsh-client-locale。
已知限制:
- 只管理當前 DSH profile 的技能,切換 profile 需重新導入。
- Git 來源需要本機安裝
git;內網倉庫需要事先配置好憑據。 - 技能內容預覽最多 64 KiB,超出部分以省略號截斷。
這幾個限制在裝之前值得先對照自身環境,尤其是內網倉庫的憑據是否已經就緒。
關於安裝來源¶
該插件以當前 dsh 進程權限運行,能夠讀寫插件數據目錄、調用本機 git。安裝前建議先打開倉庫源碼和 LICENSE(MIT)確認無異味,再決定是否啓用。需要留意的是,它運行在你自己的工作進程裏,屬於第三方社區插件,不是 DSH 官方維護的組件。
小結¶
dsh-skills-tools 把技能的導入、分組、啓停、更新和查看收進了一個設置面板,替代的是手工挪目錄、改配置這一串動作。價值集中在多倉庫、多技能、需要頻繁調整的場景;技能少且穩定時,收益相對有限。
- 社區目錄頁:https://www.skillhub.cn/plugins/hxlog/dsh-skills-tools
- GitHub:https://github.com/hxlog/dsh-skills-tools