dsh-skill-manager:給 DSH 技能做分類管理的插件

前言

用 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 可以確認命令已註冊。

典型用法

設置面板

面板分三塊:

  1. 左側是全部技能列表,頂部爲「全部 / 分類芯片 / 集合芯片」篩選區,點擊技能行展開簡介卡片;
  2. 右側是選中技能的編輯區,可設置分類(自由輸入或從已有分類中選)、標籤(逗號分隔)、勾選所屬集合、啓用或停用;
  3. 底部是集合區,可新建集合,點擊展開查看並管理集合內技能。

斜槓命令

/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 插件,注入 skillscommands 兩個服務,負責讀寫 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。這些數據如果不要了,需手動刪除。

適用場景與注意事項

適合誰:

  • 技能數量較多,需要按工作流分類、打標籤來檢索;
  • 想把某個場景常用的一組技能組織成集合,在輸入框裏按文件夾挑選;
  • 有些技能不想讓模型自動加載,但也不想刪掉。

幾點注意:

  1. 安裝後必須重啓 dsh web,熱更新不生效;
  2. DSH 內置技能只讀,不能打分類標籤,要管理的技能請放在用戶或項目技能目錄;
  3. 本插件以當前 dsh 進程的權限運行,可讀寫技能文件和本地配置。安裝前建議先查看源碼與許可證(本項目爲 MIT),確認可接受再裝;
  4. 卸載插件不會清理它寫入的數據,徹底清理需手動處理。

小結

dsh-skill-manager 把技能整理從「手動改文件」變成面板裏的幾次點擊,數據全部落在本地文件,不增加服務依賴。如果你在 DSH 裏的技能已經多到不好找,可以試一試。

目錄頁爲社區維護的獨立站點,與 DeepSeek、幻方無官方從屬關係。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜