前言¶
在 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