dsh-skill-manage:給 DSH 智能體增加技能創建與管理能力

前言

在 DSH 這類插件化框架裏,智能體可以在會話中執行復雜流程。如果只保留結果,不保留“怎麼做”,下次遇到類似任務時仍可能重複試錯。dsh-skill-manage 針對這個問題,爲 agent 提供 skill_manage 工具,用於創建、修補、禁用、刪除技能,並在刪除和修改時加入保護。

這是什麼

dsh-skill-managefuxin123z 維護的 DSH (DeepSeek Harness) 插件,許可證爲 MIT。它把程序性記憶落到可維護的技能文件上,讓 agent 能通過 skill_manage 工具管理自己的技能。

倉庫地址:

https://github.com/fuxin123z/dsh-skill-manage

核心功能

skill_manage 工具

插件提供 skill_manage 工具,支持以下動作:

  • create
  • patch
  • edit
  • delete
  • disable
  • enable
  • pin
  • unpin
  • write_file
  • remove_file
  • list

作用域

支持兩種 scope:

  • scope: 'user':寫入 ~/.dsh/skills,面向所有工作區
  • scope: 'project':寫入 <projectRoot>/.dsh/skills,面向當前工作區

技能佈局

支持兩種 on-disk 佈局:

  • 目錄技能:<root>/<name>/SKILL.md
  • 單文件技能:<root>/<name>.md

禁用與啓用

disable / enable 通過切換 SKILL.md frontmatter 中的 disable-model-invocation 實現。

固定與取消固定

pin / unpin 通過切換 frontmatter 中的 pinned 標誌實現。pinned: true 會阻止刪除。

刪除保護

skill_manage 的刪除操作受以下限制:

  • 僅限帶 created_by: agent 標記的技能可刪除
  • pinned: true 阻止刪除
  • 技能根路徑限制
  • 拒絕 symlinked skill directories
  • patch / edit 不可隱式重命名

校驗與寫入

插件對技能內容做校驗:

  • 名稱正則和長度校驗
  • frontmatter 必須有 name + description
  • description ≤1024 字符
  • SKILL.md ≤100k 字符
  • 輔助文件 ≤1 MiB
  • 輔助路徑限制在 references/ templates/ scripts/ assets/

寫入方面:

  • 使用 temp + rename 原子寫入
  • 支持 CRLF-safe frontmatter 解析
  • 基於 skill-filesystem 的 hot-reload watcher

安裝與啓用

推薦安裝

執行下面命令,把插件添加到 web profile:

dsh plugin --profile web add dsh-skill-manage

手動安裝

在 DSH profile dir 執行:

npm install dsh-skill-manage

這一步添加插件依賴。然後將 dsh-skill-manage 加入 package.jsondsh.profile.bundles,再重啓 dsh web

插件無需配置。日誌中出現:

[dsh-skill-manage] ready

表示插件已加載。

典型用法

安裝後,agent 可以調用 skill_manage 工具對技能文件進行操作:

  1. create 新建技能
  2. patch / edit 修改技能
  3. write_file / remove_file 維護輔助文件
  4. disable / enable 切換技能狀態
  5. pin / unpin 決定是否允許刪除
  6. list 查看技能

如果只想暫時停用某項技能,可以先用 disable;如果某項技能需要避免被刪除,可以用 pin

開發與測試

開發或調試時,可以運行:

node test.mjs

這一步運行 guard-level smoke tests。再運行:

node loadtest.mjs

這一步運行 host-shape contract 和 real round-trip 測試。

限制

當前 v0 有以下限制:

  • 嵌套分類目錄 <root>/<category>/<name>/SKILL.md 不被列出或操作
  • frontmatter 不支持 YAML flow collections,例如 tags: [a, b] 保持爲原始字符串
  • project scope 假設每個會話只有一個根,即 session cwd 的 git root

適用場景與注意

適合需要讓 DSH 智能體把流程沉澱爲技能文件,並對技能創建、修改、刪除做約束的開發者。

注意:

  • 插件以當前 dsh 進程權限運行,會讀取和寫入 ~/.dsh/skills<projectRoot>/.dsh/skills 下的技能文件。
  • 安裝前應檢查源碼、依賴與 MIT 許可證。

鏈接

  • GitHub:https://github.com/fuxin123z/dsh-skill-manage
羽毛球分组比赛记分
小程序二维码

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

小夜