前言¶
DeepSeek Harness(DSH)的技能可能來自內置包、~/.dsh/skills、項目目錄、preset 等多處。目錄一長,每次請求都會帶上技能相關的上下文;其中不少技能只是偶爾用到,卻長期佔着索引位。Harness 本身不會替你在 GUI 裏做「分組整理」和「按需關閉索引」——關閉不等於刪文件,但又要讓模型的技能目錄、skill 工具、/技能名 手勢和輸入框 / 菜單同步不再展示該項。
下面介紹社區插件 @kev1nlol/dsh-skill-manager(維護者 kev1nlol,MIT 許可,當前 package 版本 1.8.2):在 Web GUI 左欄增加 SKILL 管理 面板,對已安裝技能做分組、排序,並逐個或批量啓用 / 關閉;開關通過遮蔽 provider 生效,不改動任何 SKILL.md。插件爲第三方作品,與 DeepSeek 官方無隸屬關係;可通過 SkillHub 目錄頁 或 GitHub 倉庫 獲取。
這是什麼¶
一句話:給 DSH 增加側欄 SKILL 管理入口,用本地 JSON 記錄分組與禁用名單,在活動 Agent 作用域內註冊遮蔽,從而控制技能是否仍被索引與展示。
分類上屬於客戶端插件(dsh.client.platform: web),側欄圖標 order 爲 15。面板與 skill_manager 智能體工具共用同一套宿主邏輯;另提供本機迴環 HTTP 接口,便於腳本讀寫狀態。
核心功能¶
側欄與面板¶
左欄出現「SKILL 管理」圖標,點開即主面板。界面支持中英文,插件元數據已本地化。
分組(僅整理,不參與發現)¶
- 新建、重命名、刪除分組;刪除分組只去掉標籤,組內技能回到「未分組」。
- 分組標題可摺疊 / 展開;拖組頭左側
⠿手柄調整順序(近面板邊緣自動滾動),⋯菜單提供上移 / 下移 / 置頂 / 置底作爲兜底,順序持久化。 - 技能歸組用行內「移到…」或批量「移到分組 / 移出分組」;技能行本身不支持拖拽歸組(與分組排序不同)。
分組名與歸屬寫在 Harness 配置目錄下的 skill-manager.json,不參與技能的發現、索引與加載。
搜索、篩選與摺疊¶
搜索框按名稱、描述、來源過濾;頂部「全部 / 已啓用 / 已關閉」爲帶計數的篩選標籤,篩選時分組標題顯示「可見/總數」。工具欄提供「全部摺疊 / 全部展開」,摺疊狀態記在瀏覽器本地。
啓用 / 關閉(影響索引)¶
行尾開關或批量「啓用 / 關閉」決定該技能是否仍被索引。關閉時,插件在每個活動 Agent 自己的作用域裏註冊名爲 skill-manager 的遮蔽 provider,對該技能名返回 invocation: { modelInvocable: false, userInvocable: false }。消費方包括:dsh-tool-skill 的模型目錄(變化時追加替換目錄)、skill 工具、/技能名 手勢、輸入框 / 技能菜單(skills/list,會話有活動 Agent 時)。重新打開即撤掉遮蔽,不編輯、不移動、不刪除技能文件。
切換後會 invalidate() 註冊表緩存,下一步 agent/pre-step 即可讓模型看到更新後的 <available_skills>。
批量管理¶
點「批量管理」後工具欄整行變爲批量操作條:全選 / 反選 / 清空(僅作用於當前可見技能)、啓用 / 關閉、移到分組 / 移出分組,完成後點「完成」。無懸浮層。Esc 可逐層退出:菜單 → 重命名 → 搜索 → 批量模式。
數據與 HTTP / 工具¶
狀態文件默認路徑:~/.dsh/skill-manager.json(即 $DSH_HOME/skill-manager.json),結構含 version、groups、assignments、disabled、meta(關閉期間仍能在面板顯示摘要)。
同源迴環路由:
| 路由 | 方法 | 作用 |
|---|---|---|
/skill-manager/api/state |
GET | 技能、分組、計數、發現狀態 |
/skill-manager/api/action |
POST | 單次變更,返回同樣狀態 |
POST 需 content-type: application/json,支持 enable、disable、create_group、rename_group、delete_group、assign、reorder_groups、batch 等 action;詳情見倉庫 README。
模型側可用 skill_manager 工具,action 包括 list、enable、disable、batch 及分組相關操作。
環境要求¶
- DeepSeek Harness
>= 0.2.1-rc.5(見engines.dsh)。 - Node
^22.19.0 || >=24.0.0(跟隨 Harness 自帶版本)。 - 維護者在 Windows + Web GUI(
http://127.0.0.1:<port>)上驗證;從file://加載的外殼可能解析不到/skill-manager/...路由。
安裝與啓用¶
推薦通過 Harness Plugins 頁面,或讓智能體用 plugin_manager 安裝 bundle:
- npm:
@kev1nlol/dsh-skill-manager(發佈後可用),或 - Git:
git+https://github.com/kev1nlol/dsh-skill-manager.git
安裝完成後刷新一次頁面,側欄會出現圖標。
本地 checkout 可交給管理器鏈接目錄:
plugin_manager install_bundle → D:\path\to\dsh-skill-manager
(將路徑換成你本機 checkout 的絕對路徑。)改動源碼後若 shell 未自動加載新模塊代次,重新執行一次安裝即可。
也可在 profile 中手動寫入:
- name: '@kev1nlol/dsh-skill-manager'
安裝前請自行閱讀倉庫源碼與 MIT 許可證;插件以當前 DSH 進程權限運行,狀態寫入本機 JSON,並註冊 HTTP 路由與 Agent 作用域 provider。
典型用法¶
經過上面的安裝與刷新,可按 README 中的順序操作:
- 從側欄打開 SKILL 管理面板。
- 點「新建分組」,輸入名稱後回車或點「創建」。
- 用每行右側「移到…」把技能歸入目標分組(已歸組的可選「未分組」)。
- 用行尾開關停止或恢復索引;篩選計數會立刻更新。
- 用搜索框或「全部 / 已啓用 / 已關閉」標籤縮小列表。
- 點分組標題摺疊 / 展開;拖
⠿排序分組;⋯菜單可重命名或刪除分組。 - 需要一次改多項時,點「批量管理」,勾選後批量啓用 / 關閉或移動,再點「完成」。
每次切換後,模型的下一步會拿到新的技能目錄;被關閉的技能會從 <available_skills> 和該會話的 / 菜單裏消失。
腳本示例(需 Harness HTTP 服務已起且同源或迴環可達):
{ "action": "disable", "name": "office-pptx" }
{ "action": "batch", "op": "assign", "names": ["office-docx"], "group_id": "g-9a588124" }
POST 到 /skill-manager/api/action 即可;group 與 group_id 均可接受分組名或 id,空串表示移回未分組。
適用場景與注意¶
適合誰:長期在 Web GUI 裏用 Harness、技能來源多、希望減少默認上下文噪音,又需要偶爾再打開某項的開發者。
務必知曉:
- 面板不能刪除技能;要從磁盤移除請回到來源(如
~/.dsh/skills/<name>/或安裝它的 bundle)。 - 冷會話:沒有活動 Agent 時,
/菜單可能走 preset 作用域,按 Agent 的遮蔽不生效;發一條消息激活 Agent 後,下一次取數才按開關過濾。 - 某 provider 發現不完整時,面板會提示,並展示最近一次可用結果。
結尾¶
dsh-skill-manager 把「看全已裝技能、按自己習慣分組、按需關掉索引」收進側欄一套界面,並與 skill_manager 工具、迴環 API 對齊;分組只是本地標籤,開關纔是真的影響模型目錄與 / 菜單。需要安裝說明與 action 字段完整列表時,以倉庫 README 爲準。
- 目錄頁:https://www.skillhub.cn/plugins/kev1nlol/dsh-skill-manager
- GitHub:https://github.com/kev1nlol/dsh-skill-manager