前言¶
DeepSeek Harness(DSH)的技能会出现在两个地方:模型会话里的 available_skills 列表,以及输入框 / 唤出的技能菜单。默认每条技能只有 kebab-case 名称和英文描述,人在长列表里逐条辨认成本偏高。有人用别的插件标出来源或做启停管理,本插件解决的是另一件事——在描述前加一段 4–7 字的中文标题,英文原描述完整保留,不改动面向模型的触发信息。
下面介绍维护者 Siloet-phy 开源的 dsh-skill-labels(GitHub:Siloet-phy/dsh-skill-labels,当前包版本 0.2.0,MIT 许可证)。社区目录页:https://www.skillhub.cn/plugins/Siloet-phy/dsh-skill-labels。
这是什么¶
dsh-skill-labels 是 DSH 插件:在技能注册表返回的每条 description 前插入可自定义的前缀标签,默认排版为 【标题】原描述。例如 html-ppt 可从纯英文描述变为 【写PPT】HTML PPT Studio — …。
标签按技能名匹配,与技能来自官方内置、工作区、用户目录还是 GitHub 无关;表外技能保持原样。插件零第三方依赖,安装后默认即可用。
核心功能¶
两个出口同时生效¶
模型侧技能目录与 / 菜单读取同一份注册表数据。插件在 SkillRegistry 的 snapshot() / list() 上包装,仅在交付前改写 description;技能名、invocation、路径与 get() 加载路径不变。README 标明在 DeepSeek Harness 0.2.0-rc.2 实测通过,仅使用 ctx.skills、ctx.tools(可选)与 ctx.logger。
四级标签表与热更新¶
标签按优先级从低到高覆盖:
- 内置
DEFAULT_LABELS(约 12 条常用默认) - 包内
labels.json - 用户文件
~/.dsh/skill-labels.json(升级插件不覆盖) cordis.patch.yml里行配置config.labels
文件按修改时间懒加载,保存后生效,无需重启 DSH(直接挂载源码调试时改动可立即生效,见安装节)。
排版与格式¶
行配置支持:
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
format |
string | 【{label}】{description} |
须含 {description} |
labels |
object | {} |
名称到标题映射,优先级最高 |
labelsFile |
string | false | ~/.dsh/skill-labels.json |
false 表示不读用户文件 |
标签不限于中文,可为 emoji、英文短名或编号,例如 🎨 画图、excel、① 常用。
skill_labels 工具¶
装完并重启 DSH 后,模型工具列表会出现 skill_labels:
action: "list"— 列出各技能现有标签、来源(builtin/package/user/config)及未标注清单(只读)action: "set"— 将{ 技能名: 标签 }合并写入用户标签表,原子写入;已有条目不动;非法 JSON 时拒绝覆盖
可在会话中用自然语言让模型补全未标注技能,例如要求 4–7 字短标题。手写时编辑 ~/.dsh/skill-labels.json 即可:
{
"my-own-skill": "我的技能",
"html-ppt": "做幻灯片"
}
Windows 用户表路径为 C:\Users\<用户名>\.dsh\skill-labels.json。
与同类插件的差异(README 归纳)¶
截至文档撰写时,技能菜单方向另有标来源、做管理面板的插件;本插件专注「一眼看懂用途」,并支持自定义标签表、模型侧目录同步展示,以及 AI 维护用户标签表。卸载时可还原被包装的注册表方法。
安装与启用¶
需先在 profile 中安装,再由 profile 的 cordis.patch.yml 启用。三种方式只应保留一种,否则可能挂载两次。
从 GitHub 安装(Web profile,推荐):
dsh plugin --profile web add github:Siloet-phy/dsh-skill-labels
桌面版将 web 换为 desktop:
dsh plugin --profile desktop add github:Siloet-phy/dsh-skill-labels
本地目录(开发调试):
dsh plugin --profile web add file:/绝对路径/dsh-skill-labels
不安装、直接挂载(改源码立即生效):在 cordis.patch.yml 末尾追加 insert,name 指向本地 index.js 的绝对 URL(Windows 用 file:///C:/…)。安装完成后需重启对应 profile 的 DSH;直接挂载方式文档说明无需重启。
可选行配置示例:
- insert:
- id: skill-labels
name: 'dsh-skill-labels'
config:
format: '【{label}】{description}'
labels:
html-ppt: 写PPT
labelsFile: 'D:/my-labels.json'
注意:同一 id 的 config 在 patch 层是整块替换,覆盖时要写完整配置。
典型用法¶
1. 安装后看菜单
按 / 打开技能菜单,已出现在标签表中的技能会在描述前显示中文标题,例如 office-xlsx → 【写Excel】Read, create, and modify Excel workbooks …。
2. 给新装的 GitHub 技能加标签
从菜单或 skill_labels 的 list 拿到技能名(如 dig、pdf),写入用户表:
{
"dig": "挖简历亮点",
"pdf": "读PDF"
}
3. 让 AI 批量补标签
重启 DSH 后,在会话中说明希望列出未标注技能并写入 4–7 字中文标题;模型依次调用 list 与 set,结果写入 labelsFile 指向的文件。
4. 自定义排版
在 profile 配置里调整 format,仍须保留 {description},以便模型继续看到完整英文触发描述。
适用场景与注意¶
适合长期在 DSH 里维护较多技能、希望在人和模型两侧目录都能快速扫读用途的开发者。内置默认表面向 DSH 生态通用技能;个人技能与第三方技能集的标签应放在用户表,文档不建议把私有标签提 PR 进内置表。
运行与安全:
- 插件以当前 DSH 进程权限运行;
skill_labels的set只写标签表文件(默认~/.dsh/skill-labels.json),合并写入、表损坏时不覆盖。 - 安装前应自行查看仓库源码与 MIT 许可证;README 另有「安全与隐私」「已知限制」章节,升级与卸载说明见仓库文档。
- Node 引擎要求 >=20(见
package.json)。
结尾¶
dsh-skill-labels 在不动英文描述的前提下,为技能目录加上可热更新的中文短标题,并可通过 skill_labels 让模型帮你维护用户标签表。目录与源码: