DSH 技能中心:在 Web 客户端里管理 DSH 技能

前言

DSH(DeepSeek Harness)会从固定目录加载技能(Skill),供模型在对话中按规则调用。默认路径包括 ~/.dsh/skills、Profile 里配置的 customSkillDirs,以及当前项目下的 <project>/.dsh/skills。技能以目录包 <name>/SKILL.md 或顶层扁平文件 <name>.md 存在;Host 不会在嵌套路径里发现 **/SKILL.md。

在没有图形化管理界面时,常见做法是直接改磁盘上的 SKILL.md、手动开关 frontmatter,或把 GitHub 仓库解压进技能目录。链接安装时若把整仓 ZIP 解压后的外层文件夹直接放进 ~/.dsh/skills,技能会多嵌套一层,DSH 与面板都无法发现。下面介绍第三方客户端插件 Skill Center(npm 包名 @suifengshiqu/skill-center,仓库 a766513648-lgtm/dsh-skill-center),它在 DSH Web 客户端增加一页,集中完成查看、开关、新建、按链接安装与可恢复删除。

这是什么

Skill Center 是面向 DSH Web 客户端 的第三方插件,维护者为 a766513648-lgtm,采用 MIT 许可证;它不是 DeepSeek 官方产品。插件在 Host 内挂载一个技能管理页,与后端共享同一套状态:列出 Host 能加载的技能、展示详情、搜索与筛选、开关、新建、从链接安装,以及移入回收站并可恢复。

入口与界面

两个入口打开同一页面:

  1. Settings → Skill Center:与系统设置并列,适合完整配置。
  2. Composer 输入行左侧的 Skills 按钮:在权限芯片旁,以模态框打开,便于任务中途开关技能。

Composer 按钮注册在 conversation.input.left。权限芯片(conversation.input.permission)与模型选择(conversation.input.model)为 single 插槽,插件不能插入其间;设置页的 openSection 为内部 API,Composer 按钮因此直接打开管理页而非深链到设置分区。界面跟随 Host 明/暗主题。

核心功能

列举与查看

  • 扫描 $DSH_HOME/skills(默认 ~/.dsh/skills)、Profile 的 customSkillDirs,以及当前项目的 <project>/.dsh/skills。
  • 选中一项可查看描述、路径、frontmatter 与指令正文。
  • 按名称或描述搜索,并可隐藏已关闭的技能。
  • 对 Host 会静默跳过的问题给出提示(例如缺少 description、名称非 kebab-case)。

开关技能

关闭时在技能文件 frontmatter 写入 Host 已识别的两个字段:

---
name: my-skill
description: What it is for.
disable-model-invocation: true
user-invocable: false
---

重新打开会移除这两个键,尽量保持文档其余部分不变。文件替换为原子写入;frontmatter 无法解析时,列表会显示诊断且开关不可用,避免误写。

关闭后技能仍留在磁盘,但不会出现在模型目录与 / 菜单中。

新建与写入位置

可从名称、描述、正文创建技能。写入目录由 Host 提供:GET /roots 返回 Profile 配置的 customSkillDirs 及默认 $DSH_HOME/skills;界面只展示该列表,POST /create 与 POST /install 拒绝列表外的路径。仅一个目标时界面为一句说明;多个目标时以按钮选择路径。

按链接安装

支持 GitHub 仓库、仓库内 /tree/ 路径、.zip 或单个 SKILL.md。安装前做校验:路径不得逃逸目标目录、包内须有符合 DSH 要求的 SKILL.md(名称与 description)、同名技能不覆盖;校验全部通过后才写入。不拉取指向本机的链接(localhost、127.0.0.1、.local);单次下载上限 8 MB、800 个条目;不支持私有归档与 Zip64。

从 GitHub 下载的 ZIP 解压后,应将 技能包文件夹本身 放到技能根目录顶层,而不是保留 ZIP 自带的仓库根目录一层。

删除与回收站

删除为移入回收站,非直接擦除:

  • _bundle 移至 ~/.dsh/skill-center/trash,并记录来源,面板可原样恢复;清空回收站为单独确认操作。
  • 仅作用于 DSH 全局技能根(DSH home 与 customSkillDirs);不会删除项目内 <project>/.dsh/skills 下的技能(可对项目技能开关,但不移出仓库)。
  • 仅处理 Host 能正确加载的技能;符号链接或 Windows junction 通过解析路径比对后拒绝删除。
  • 先校验再移动;跨卷 rename 失败时回退为先复制再删除,失败时保留原文件。

安装与启用

环境要求(见仓库 README):

  • 带 Web 客户端的 DeepSeek Harness(文档写明在 0.2.0-rc.2 上测试)。
  • Node.js:^22.19.0 || >=24.0.0。

从 npm 安装(将 <your-profile> 换成你的 Profile 名):

dsh plugin --profile <your-profile> add @suifengshiqu/skill-center

当前发布版本为 0.1.0。若需改源码,可在克隆仓库后执行 npm install、npm run verify,再执行 dsh plugin --profile <your-profile> add .;亦可用 npm pack 生成 tarball 后 add 该文件。本文不展开 clone 流程细节,以仓库 README 为准。

安装后重启或按你平时的 DSH 插件加载方式使客户端注入生效,即可在设置与 Composer 中看到入口。

典型用法

  1. 任务中临时关闭某个技能:在 Composer 点 Skills,找到对应行切换开关,无需离开当前对话。
  2. 新建本地技能:打开 Skill Center,填写名称、描述与正文,选择 Host 允许的写入目录(多为 ~/.dsh/skills 或你配置的 customSkillDirs),保存后重启或等待 Host 重新扫描(行为以你使用的 DSH 版本为准)。
  3. 从 GitHub 安装:在列表上方链接框粘贴仓库或 SKILL.md 地址,选择目标目录;若安装后列表为空,检查 ZIP 是否多了一层目录嵌套。
  4. 误删恢复:打开回收站视图,按来源确认后一键还原;确认不再需要后再执行清空回收站。

适用场景与注意

适合:日常在 Web 端维护 DSH 技能、需要可逆删除与链接安装校验、希望一眼看到 Host 会跳过的 frontmatter 问题。

不适合或不做的事(见 README):不管理 Claude Code、Codex、Cursor 等其他产品的技能目录;不提供 Git 仓库管理、技能市场或自动更新。

安全与权限:插件以当前 DSH 进程权限读写技能目录与回收站路径。安装前请阅读 GitHub 仓库 源码与 MIT 许可证;链接安装虽有多重校验,仍只应使用可信来源。

社区目录 SkillHub 上的条目 与 GitHub 仓库为独立维护的第三方信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,Skill Center 是其中一类客户端扩展。

结尾

Skill Center 把「磁盘上的 SKILL.md」与「对话里是否启用」收到同一页:设置里做完整管理,Composer 里做快速开关,删除进回收站可恢复,链接安装带边界校验。需要进一步了解截图、开发截图脚本或 Cordis 补丁细节时,可直接查阅仓库 README(含 简体中文)。

  • 目录页:https://www.skillhub.cn/plugins/a766513648-lgtm/dsh-skill-center
  • GitHub:https://github.com/a766513648-lgtm/dsh-skill-center
羽毛球分组比赛记分
小程序二维码

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

小夜