dsh-skill-manager:在 Harness 側欄統一管理 SKILL 分組與開關

前言

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 中的順序操作:

  1. 從側欄打開 SKILL 管理面板。
  2. 點「新建分組」,輸入名稱後回車或點「創建」。
  3. 用每行右側「移到…」把技能歸入目標分組(已歸組的可選「未分組」)。
  4. 用行尾開關停止或恢復索引;篩選計數會立刻更新。
  5. 用搜索框或「全部 / 已啓用 / 已關閉」標籤縮小列表。
  6. 點分組標題摺疊 / 展開;拖 ⠿ 排序分組;⋯ 菜單可重命名或刪除分組。
  7. 需要一次改多項時,點「批量管理」,勾選後批量啓用 / 關閉或移動,再點「完成」。

每次切換後,模型的下一步會拿到新的技能目錄;被關閉的技能會從 <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
羽毛球分组比赛记分
小程序二维码

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

小夜