前言¶
DeepSeek Harness(DSH)支持通过 skill 扩展模型能力。skill 落在磁盘上,常见来源包括工作区里的 .dsh/skills、.agents/skills,用户目录 ~/.dsh 下的技能目录,以及 DSH 自带的一批。装多了之后,「临时不用」往往只能把目录挪走,或去改 SKILL.md 里的 frontmatter——前者容易忘掉位置,后者每次开关都要重新读一遍声明。另一个痛点是:很难一眼看出某个 skill 究竟是从哪条路径被发现的。
dsh-plugin-skill-manager(维护者 tf961656585,分类为客户端插件)在 DSH 左侧栏增加「技能」面板:按发现目录分组列出 skill,逐行开关。关闭只影响本机当前 DSH 进程,不删文件、不改 SKILL.md,也不会改变其他客户端读到的同一批文件。
这是什么¶
插件仓库:github.com/tf961656585/dsh-plugin-skill-manager。目录页:skillhub.cn 上的条目。当前 package 版本为 0.1.0,协议 MIT。
一句话:在 DSH 侧栏里把发现的每个 skill 列出来并逐个开关,关掉后它不再出现在模型可见的技能目录里,但磁盘上的 skill 文件保持不变。
核心功能¶
下面这些是 README 与 package 中已写明的行为。
- 按来源分组展示:项目(
.dsh/skills、.agents/skills)、用户(~/.dsh及共享 agent 目录)、随 DSH 提供;组标题旁可显示类似「3/8 已开启」的计数。 - 本地开关,不改文件:关闭后模型技能目录、
skill工具、/菜单都不再出现该项;面板里仍保留该行并标为已关闭,可随时再开。若SKILL.md自身声明停用,面板显示「SKILL.md 中已关闭」并禁用开关,需改文件才能开启。 - 实现方式:在每个 Agent 同作用域注册 provider,对被关掉的 skill 返回
modelInvocable/userInvocable均为 false 的条目;有消费者点名调用时返回明确说明,而非过期内容。 - 状态持久化:写入
<DSH_PROFILE_DIR>/skill-manager.json(无 profile 时依次退回$DSH_HOME、~/.dsh),内容为被关闭的 skill 绝对路径列表,原子替换;损坏时按空状态处理并记日志。 - 刷新:顶部「刷新」重新扫描目录,新放入的 skill 会自动出现。
安装与启用¶
需先安装 DeepSeek Harness。在 DSH 的插件安装界面填写仓库地址:
github:tf961656585/dsh-plugin-skill-manager
也可填写本机仓库的绝对路径。安装完成后重启 DSH,左侧栏会出现「技能」入口;客户端通过 cordis.patch.yml 注入侧栏,并依赖 @deepseek-ai/dsh-client-ui-layout 与 @deepseek-ai/dsh-client-ui-sidebar。
典型用法¶
- 重启 DSH 后,点击左侧栏「技能」图标。
- 在对应分组下找到要停用的 skill,将行右侧开关关闭;改动即时保存,无需再次重启。
- 需要恢复时,在同一位置打开开关。
- 新拷贝或新建的 skill 若未立即出现,点顶部「刷新」或稍后重新进入面板。
适用场景与注意¶
适合:本机 DSH 上 skill 较多,需要按会话或按项目临时收窄模型可见技能集,又不想动仓库里的 SKILL.md 或挪动目录的用户。
边界与限制(来自 README):
- 只影响 DSH;其他客户端若直接读同一文件,状态由它们自己决定。
- 同一 skill 在不同工作区下的绝对路径不同,会算作两条记录。
- DSH 启动后才出现的新技能目录,可能要等「刷新」或下次进入面板才列出。
- 这是本地便利开关,不是权限隔离:能改配置的人仍可把 skill 重新打开;防的是模型「想起来」去调某个已关 skill,不是防人为改回。
安全:插件在 DSH 进程权限下运行,安装前建议浏览 host.js、client.js 等源码并确认 MIT 许可证;社区目录站点与 DeepSeek / 幻方无官方从属关系,属社区生态里的独立条目。
结尾¶
dsh-plugin-skill-manager 把「停用 skill」从改文件、挪目录,收成侧栏里按路径分组的一键开关,并与 DSH 的技能发现逻辑对齐,做到文件零修改、状态本机持久化。