dsh-skill-manager:给 DSH 技能库加一层智能归类与使用建议

前言

DSH 的理念是「一切皆插件」,Skill 也是一样。麻烦从数量上来:项目根目录、用户根目录、.agents 目录里都可能放 SKILL.md,十几个的时候用 /name 直接呼出就够了,二三十个之后问题就换了样子。

首先是不知道自己有什么。同名 Skill 在不同根目录里叠着,哪个生效、哪个被遮蔽,从界面上看不出来。其次是不知道该用哪个,每个 SKILL.md 里都写着规则,但没人记得「做迭代规划用哪个」「设计 API 用哪个」。再就是名字对不上用途,analysis-funnel 和 analysis-retention 差在哪,只能两个都打开读一遍。最后是不敢清理,关掉某个 Skill 意味着真的去改文件。

下面介绍的 dsh-skill-manager 就是处理这一类问题的。它是 ZBCs-StudioCr-CN 维护的客户端插件,目前 GitHub 2 stars,做法是把「找 Skill、认 Skill、管 Skill」变成侧边栏里的几行卡片和开关,而不是让你继续翻目录。

一句话定位与安装来源

插件在社区目录中的条目是「DeepSeek Harness 可视化侧边栏 Skill 智能管理器」,定位是把 Skill 文件管理器升级成 Skill 导航器:按交付阶段给 Skill 归类,并给每个 Skill 生成一行使用建议。

当前版本是 v0.3.0。要安装的话,官方给出的命令是 PowerShell:

dsh plugin --profile desktop add link:D:\path\to\dsh-skill-manager

或者先 npm pack 打包再装:

npm pack
dsh plugin --profile desktop add .\dsh-skill-manager-0.3.0.tgz

装完重启一次 DeepSeek Harness 桌面端,插件是在启动时加载的,然后刷新界面,侧边栏就会出现「技能管理」。

智能分类:按交付阶段归类,不按字面找词

这是 v0.3.0 相比之前最主要的变化之一。点一次「AI 智能归类」,模型会读取每个 Skill 的名称、描述和正文摘录,判断它处在哪一步交付流程,然后归档进一套固定阶段表:

需求分析 · 商业论证 · 方案设计 · 原型美工 · 开发实现 ·
测试验收 · 上线部署 · 运营增长 · 成本优化 · 协作管理 · 其他

几点实现细节值得留意:

1、这套阶段表是封闭的,模型只能从里面挑,不会产出 decision、application 这类同义词碎片;

2、技能库大了会分批发送,每次 12 个,避免一次塞太多导致模型返回空结果;

3、模型不可用时回退到一张阶段关键词表,比如 funnel / conversion 归到运营增长、token / compression 归到成本优化,仍然按阶段走,不是普通的词聚类;

4、手动创建的分类不会被覆盖。模型生成的分类带 auto 标记,重跑时只替换这批。

分类的意义在于提供了第二个维度的筛法:你不是按字母或路径找,而是按「现在在做什么阶段」来找。

智能使用建议:每个 Skill 一行说明

打开面板时,会在每个 Skill 原有描述下面追加一行由模型生成的建议,用来说明它做什么、什么场景下用。原有描述不会被改写。

/analysis-funnel
Evaluates 19 acquisition channels by scale, conversion and ROI…    ← 原有描述,保持不变
AI 建议  拆解渠道漏斗、定位流失环节(适用:复盘转化情况) · 分类:运营增长   [重新生成]

机制上有几个约束:

1、每个 Skill 都会自动生成,同时有一个全局的「显示 AI 建议」开关可以关掉;

2、建议写入独立的侧文件 $DSH_HOME/skill-manager/suggestions.json,不写入 SKILL.md,并且会跟文件内容做哈希对比,内容变了旧建议自动失效;

3、支持整库「一键生成 / 重新生成全部 AI 建议」,也支持单行重新生成;

4、输出语言可以选中文或英文。

分类回答的是「它在流程的哪一步」,建议回答的是「它干什么、什么时候用」。两者合起来才解决前面说的三四个问题。

其余管理能力

除了上面两项,插件还覆盖了日常维护动作:

能力 具体做法
启用 / 禁用 通过 registry 覆盖策略实现,源文件不动,可即时恢复,卸载时还原
默认加载 合并三个作用域:全局、本项目(按项目根目录匹配)、按 preset(例如 standard)
分类管理 新建 / 改名 / 删除,可配关键词,多对多归属,卡片可折叠
导入 剪贴板粘贴整个 SKILL.md、目录选择(走宿主原生选择器)、ZIP 解包(宿主端解包,拒绝路径穿越)
编辑 SKILL.md 面板里创建 / 编辑 / 删除,校验 kebab-case,不覆盖已有内容,保留未托管的 frontmatter 键
遮蔽报告 标出被更高优先级根目录遮蔽的 Skill
侧边栏入口 注册 main 面板加一条 sidebar.panellist,不在设置页里埋着

配置项

配置写在插件的 config 里。README 给出的示例:

- id: dsh-skill-manager
  name: dsh-skill-manager
  config:
    provider: deepseek-account
    model: deepseek-flash
    customSkillDirs: ['D:/shared-skills']
    log: false

各字段的默认值和含义:

字段 默认值 含义
provider / model deepseek-account / deepseek-flash 生成建议和分类所用的模型
includeDefaultRoots true 扫描项目根目录与用户根目录
customSkillDirs [] 额外根目录,优先级排在 300 档
bundledSkillDir $DSH_BUNDLED_SKILL_DIR 只读根目录,优先级排在 600 档
dshHome / agentsHome $DSH_HOME / $DSH_AGENTS_HOME 根目录解析基准
log true 追加写入 $DSH_HOME/skill-manager/skill-manager.log

工作原理

插件分成两部分,这是「客户端」分类的由来。

宿主端(lib/)负责控制面:通过 rank 0 的覆盖 provider 实现启用/禁用;用 systemPrompt.section 做默认加载;通过 connection.fetch.register 在官方 /api 通道下注册端点;偏好写在 $DSH_HOME/skill-manager/preferences.json,建议写在 suggestions.json。

浏览器端(client/src/client/)负责界面:注册 main 面板和 sidebar.panellist 条目,打包成 window.__ModuleLoader__.load({ id, factory }) 形式的模块,只依赖 react。

AI 调用走宿主的 ctx.llm,提示词只要求 JSON 输出,失败重试一次,之后回退到阶段关键词表。

怎么验证它确实生效

README 里给了两条命令:

npm test

覆盖 29 项检查,包括宿主端、端点、打包产物和 UI 渲染。

node scripts/verify-v4.mjs http://127.0.0.1:58809

用一个隔离实例配合真实模型跑一遍完整链路。

作者在 DSH 0.2.2-rc.1 桌面端上的实测结论是:隔离实例 10/10 通过,建议不碰原始文件,重新生成正常,阶段分类确实来自模型,27 个 Skill 全部完成归类;UI 侧在 jsdom 中挂载真实构建产物验证了自动生成、全局开关写入偏好、搜索过滤和作用域默认加载;禁用某个 Skill 之后 /registry 报告 provider: skill-manager、modelInvocable: false,说明覆盖在真实 registry 中生效。

已知限制

1、「按 preset」作用域依赖会话元数据里的 agentPreset,没有的话只有全局和项目两个作用域生效;

2、建议是逐个 Skill 串行生成的,20 个以上首次打开要 1 到 2 分钟,不合适就用全局开关关掉;

3、少数边缘 Skill 会落在「其他」里,可以在编辑对话框手动勾选分类;

4、只管理 dsh-skill-filesystem 会读取的那些 DSH Skill 根目录;

5、删除不可撤销,没有回收站,操作时有确认提示。

适用场景与注意事项

适合已经攒了十几个以上 Skill、并且分属多个项目和团队共享目录的人。如果目前只有两三个小 Skill,直接 /name 就够了,装它的收益不大。建议来源主要靠 Skill 库越积越杂、找不准用哪个的人。

使用前建议做三件事:先读一遍 README.md 和 MIT 许可证文本;确认你打算装的版本和当前 DSH 版本兼容(package.json 里写的是 dsh >=0.2.1,README 中的实测环境是 0.2.2-rc.1);插件以当前 DSH 进程的权限运行,能读写你配置的 Skill 根目录,安装前确认这些目录的内容可以接受插件访问。

结语

dsh-skill-manager 没有引入新的 Skill 能力,它做的是搜索和导航层:按交付阶段归类,再加一行使用建议。当 Skill 数量从一打涨到几十之后,这层可视化管理比继续在目录里翻要有用得多。

  • 目录页:https://www.skillhub.cn/plugins/ZBCs-StudioCr-CN/dsh-skill-manager
  • GitHub:https://github.com/ZBCs-StudioCr-CN/dsh-skill-manager

社区目录是独立站点,与 DeepSeek 官方没有从属关系。

羽毛球分组比赛记分
小程序二维码

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

小夜