前言¶
用 DSH(DeepSeek Harness)跑智能體一段時間後,技能目錄往往會越積越多。技能一多,問題就很具體:哪些技能屬於哪類工作、某個場景該用哪一個、暫時不用的怎麼停掉。DSH 本身沒有提供整理手段,通常只能逐個手動編輯技能的 frontmatter。
dsh-skill-manager 補的就是這一環:按分類、標籤和集合整理技能,並在 DSH Web 裏提供一個可視化管理面板。DSH 的理念是「一切皆插件」,技能管理這件事本身也以插件形式提供。下面介紹它的功能、安裝步驟和典型用法。
這是什麼¶
一句話定位:DSH 技能分類管理器,按分類、標籤和集合整理 agent 技能。作者是 LIU20030725,MIT 許可證,當前版本 0.5.0。
它的數據是純本地的、無服務依賴:分類和標籤直接寫進技能文件本身(因此對任何能讀 frontmatter 的 agent 都兼容),集合關係存一份本地 JSON。
核心功能¶
自由分類與標籤¶
分類寫入技能 frontmatter 的 metadata.category,分類名可自由創建、隨時修改;標籤寫入 metadata.tags,逗號分隔,支持多個。寫入後的技能文件類似:
---
name: ai-video-script
description: 生成 AI 視頻腳本
metadata:
category: 視頻創作
tags: [視頻, 腳本]
---
集合文件夾¶
可以把多個技能組織成命名集合,一個技能可同時屬於多個集合。面板頂部篩選區點擊集合芯片,左側列表就只顯示該集合內的技能。
瀏覽、篩選與預覽¶
支持搜索、按分類篩選、按集合篩選。左側點擊某個技能行,會展開一張簡介卡片,包含描述、適用場景、標籤和啓用狀態。
啓用與停用¶
一鍵寫入 frontmatter 的 disable-model-invocation 字段,這是 DSH 原生識別的字段。停用後模型不再自動加載該技能,但技能仍保留在庫中,仍可手動調用。
輸入框集合挑選¶
在對話輸入框輸入 / 後繼續輸入集合名(如 /AI視頻),下拉「集合技能」分組會顯示匹配的集合文件夾,點開彈出該集合的技能列表,帶簡介、可返回、保留滾動位置。點選某個技能後,輸入框自動填入 /技能名,回車即可調用。技能多、記不清名字時,可以按文件夾逐級瀏覽挑選。
斜槓命令¶
/skillmgr 系列命令覆蓋全部功能,直接在對話輸入框使用,命令不經模型。
安裝與啓用¶
環境要求:DeepSeek Harness(dsh web)0.1.0-rc.6 及以上,Node.js 20 及以上。
先安裝插件本體:
dsh plugin --profile web add github:LIU20030725/dsh-skill-manager
若依賴解析失敗,可以在 web profile 目錄(通常是 ~/.dsh/profiles/web)手動安裝:
cd ~/.dsh/profiles/web
pnpm add github:LIU20030725/dsh-skill-manager
# 或改用完整 git URL
pnpm add git+https://github.com/LIU20030725/dsh-skill-manager.git
再掛載插件。編輯同一目錄下的 cordis.patch.yml,在頂層數組加入:
- insert:
- id: skill-manager
name: 'dsh-skill-manager'
最後重啓 dsh web。這一步不能省:客戶端面板 bundle 與宿主命令註冊均在 Web 啓動時加載,配置熱更新無法加載新插件。
經過上面的步驟,重啓後刷新頁面,設置裏會出現「技能管理」面板;對話輸入框輸入 /skillmgr help 可以確認命令已註冊。
典型用法¶
設置面板¶
面板分三塊:
- 左側是全部技能列表,頂部爲「全部 / 分類芯片 / 集合芯片」篩選區,點擊技能行展開簡介卡片;
- 右側是選中技能的編輯區,可設置分類(自由輸入或從已有分類中選)、標籤(逗號分隔)、勾選所屬集合、啓用或停用;
- 底部是集合區,可新建集合,點擊展開查看並管理集合內技能。
斜槓命令¶
/skillmgr help
/skillmgr catalog # 全部技能 + 集合(JSON)
/skillmgr get <name> # 單個技能詳情(JSON)
/skillmgr set-category <name> <分類|-> # 設置分類;- 清除
/skillmgr set-tags <name> <tag1,tag2|-> # 設置標籤;- 清除
/skillmgr set-enabled <name> <on|off> # 啓用 / 停用
/skillmgr collection list # 列出集合
/skillmgr collection create <名稱> # 新建集合
/skillmgr collection rename <舊名> <新名> # 重命名
/skillmgr collection delete <名稱> # 刪除集合
/skillmgr collection add <名稱> <skill...> # 把技能加入集合
/skillmgr collection remove <名稱> <skill...> # 從集合移除技能
/skillmgr collection clear <名稱> # 清空集合
面板能做的,命令都能做,兩者等價。
管理範圍與數據存儲¶
插件可以管理任何帶磁盤路徑、可寫的技能,即 SKILL.md 所在的文件。典型位置:
- 用戶技能(推薦):
~/.agents/skills/<name>/SKILL.md、$DSH_HOME/skills/<name>/SKILL.md - 項目技能:
<項目根>/.dsh/skills、<項目根>/.agents/skills - DSH 內置技能:位於 node_modules,只讀,面板中可見但寫入會報錯
數據分兩處存放:分類、標籤和 disable-model-invocation 寫在各技能的 SKILL.md frontmatter 裏,屬於技能文件本身;集合存於 $DSH_HOME/skill-manager/collections.json(默認 ~/.dsh/skill-manager/collections.json)。
實現方式(給開發者)¶
插件分兩半。宿主半邊是一個 cordis 插件,注入 skills 和 commands 兩個服務,負責讀寫 frontmatter、維護集合 JSON、註冊 skillmgr 命令;瀏覽器半邊按 DSH 客戶端插件 bundle 規範打包,註冊 settings.section(即「技能管理」面板),數據操作經 ctx.remote.commands.execute 調用宿主命令。
卸載¶
cd ~/.dsh/profiles/web
pnpm remove dsh-skill-manager
同時從 cordis.patch.yml 刪除對應的 insert 行,再重啓 dsh web。
注意:卸載不會刪除技能文件裏的分類和標籤(它們屬於技能本身),也不會刪除 collections.json。這些數據如果不要了,需手動刪除。
適用場景與注意事項¶
適合誰:
- 技能數量較多,需要按工作流分類、打標籤來檢索;
- 想把某個場景常用的一組技能組織成集合,在輸入框裏按文件夾挑選;
- 有些技能不想讓模型自動加載,但也不想刪掉。
幾點注意:
- 安裝後必須重啓 dsh web,熱更新不生效;
- DSH 內置技能只讀,不能打分類標籤,要管理的技能請放在用戶或項目技能目錄;
- 本插件以當前 dsh 進程的權限運行,可讀寫技能文件和本地配置。安裝前建議先查看源碼與許可證(本項目爲 MIT),確認可接受再裝;
- 卸載插件不會清理它寫入的數據,徹底清理需手動處理。
小結¶
dsh-skill-manager 把技能整理從「手動改文件」變成面板裏的幾次點擊,數據全部落在本地文件,不增加服務依賴。如果你在 DSH 裏的技能已經多到不好找,可以試一試。
- 目錄頁:https://www.skillhub.cn/plugins/LIU20030725/dsh-skill-manager
- GitHub:https://github.com/LIU20030725/dsh-skill-manager
目錄頁爲社區維護的獨立站點,與 DeepSeek、幻方無官方從屬關係。