前言¶
在 DSH 這類插件化框架裏,智能體可以在會話中執行復雜流程。如果只保留結果,不保留“怎麼做”,下次遇到類似任務時仍可能重複試錯。dsh-skill-manage 針對這個問題,爲 agent 提供 skill_manage 工具,用於創建、修補、禁用、刪除技能,並在刪除和修改時加入保護。
這是什麼¶
dsh-skill-manage 是 fuxin123z 維護的 DSH (DeepSeek Harness) 插件,許可證爲 MIT。它把程序性記憶落到可維護的技能文件上,讓 agent 能通過 skill_manage 工具管理自己的技能。
倉庫地址:
https://github.com/fuxin123z/dsh-skill-manage
核心功能¶
skill_manage 工具¶
插件提供 skill_manage 工具,支持以下動作:
createpatcheditdeletedisableenablepinunpinwrite_fileremove_filelist
作用域¶
支持兩種 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.json 的 dsh.profile.bundles,再重啓 dsh web。
插件無需配置。日誌中出現:
[dsh-skill-manage] ready
表示插件已加載。
典型用法¶
安裝後,agent 可以調用 skill_manage 工具對技能文件進行操作:
- 用
create新建技能 - 用
patch/edit修改技能 - 用
write_file/remove_file維護輔助文件 - 用
disable/enable切換技能狀態 - 用
pin/unpin決定是否允許刪除 - 用
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