前言¶
在 DeepSeek Harness(DSH)里用技能,常见两种形态:单文件 .md 放在 ~/.dsh/skills,或 WorkBuddy 风格的目录加 SKILL.md。技能一多,只能靠翻文件夹才知道有哪些、开没开;更麻烦的是,当 profile 里没有激活 @deepseek-ai/dsh-skill-filesystem 时,skill 工具往往列不出这些文件型技能——文件在磁盘上,会话却调不到。
dsh-skill-center(维护者 mwk719)是 DSH 客户端插件:在侧栏增加「技能中心」入口,把可配置来源目录里的技能铺成卡片,可查看完整 SKILL.md,并用开关把技能注册进或移出模型可用的技能表。零依赖、免构建、无遥测、不采集数据。
这是什么¶
插件在 DSH Web GUI 中提供中栏技能浏览器:顶部按来源目录分页,技能以卡片分块展示;卡片上可启用/停用,通过菜单打开文件夹,点击卡片弹出详情看全文。来源目录可在界面里增删改并持久化到 ~/.dsh/skill-center.json。
分类上属于客户端插件(package.json 中 dsh.client.platform 为 web),当前版本 1.1.0,要求 DSH >=0.2.0-rc.1,许可证 MIT。
核心功能¶
侧栏与中栏浏览¶
- 侧栏注册面板(
sidebar.panellist,order: 42)。 - 每个来源目录一个页签(显示名 + 技能数),右侧标出根路径与来源标记(内置默认 / 插件配置 / 已自定义);搜索只作用于当前页签。
- 卡片为自适应网格:首字母头像、技能名、描述(最多 3 行)、菜单与启用开关;停用的技能显示「已停用」并降透明度。
启用 / 停用与会话可见性¶
对普通技能(含 SKILL.md 的目录或单文件 .md),开关会原子改写该文件 frontmatter 中的 disable-model-invocation(停用写入 true,启用则删除该行;无 frontmatter 时补最小块)。不删文件、不移动目录。
宿主在挂载及每次启用/停用、改来源目录后,会把启用中的技能通过 ctx.skills.register 注册进 DSH 技能表;停用或文件消失则移出。页头徽标 「已接入会话 X/Y」 反映当前注册结果;未接入的卡片会标原因(如技能名重复、名不合法等)。在 @deepseek-ai/dsh-skill-filesystem 未激活的 profile 里,这是让文件型技能进入会话的一条独立通路。
注意:注册表变更对新会话立即生效;已开始的会话沿用启动时快照。
详情、菜单与来源目录¶
- 点击卡片 → 弹框展示
SKILL.md全文(超 512KB 会标「已截断」),可打开所在文件夹。 - 菜单:打开文件夹(Windows
explorer.exe /select、macOSopen -R、Linux 打开目录)、复制路径、启用/停用。 - 「来源目录」编辑器可改
id / 显示名 / 路径,支持新增、删除、恢复默认;保存前校验 id(小写字母数字连字符)、绝对路径、至少一个目录。
默认扫描目录¶
| 分组 | 目录 | 技能形态 |
|---|---|---|
| dsh技能 | ~/.dsh/skills |
单文件 .md |
| workbuddy技能 | ~/.workbuddy/skills |
目录 + SKILL.md |
以上仅为默认;组名、id、路径都可在界面修改,也可用插件 config.groups 预设。
专家团 / 智能体¶
目录无 SKILL.md 但存在 .codebuddy-plugin/plugin.json 或 .claude-plugin/plugin.json 且 agents[] 非空时,按智能体(kind: agent)列出。这类条目的开关只写入 skill-center.json 的 agents 字段,不改目录内任何文件;启用时以 lead 提示词注册进技能表。
路径上含符号链接 / junction 的技能可列出、可读,但拒绝改写,开关置灰。
实现与安全边界¶
- 宿主半区仅 Node 内置模块;浏览器半区仅用加载器提供的
react,无第三方包、无构建步骤。 - API 路由(如
/api/skill-center/list、set-enabled、groups等)仅接受同源 loopback 请求;写操作路径以服务端最新扫描为准,不信任客户端传入的path。 - 零遥测、零外发;落盘除
~/.dsh/skill-center.json外均为只读扫描;写操作仅在用户点击启用/停用时发生。
安装与启用¶
在目标 profile 下执行(命令来自仓库 README):
dsh plugin --profile <profile> add github:mwk719/dsh-skill-center
也可使用完整 git URL、本地 link:<仓库路径>/dsh-skill-center,或通过插件市场 dshmarket 在 Settings → Plugins 安装。卸载:
dsh plugin --profile <profile> remove dsh-skill-center
装完后刷新页面即可;仅当改动宿主半区 lib/index.js 时才需重启 DSH 应用。
典型用法¶
- 安装插件并刷新 DSH Web 界面,在侧栏打开「技能中心」。
- 在顶部页签切换
dsh技能/workbuddy技能(或你自定义的来源),用搜索过滤当前页签。 - 点击卡片阅读完整
SKILL.md;用卡片开关决定该技能是否接入当前 profile 的运行时技能表(对照页头「已接入会话 X/Y」)。 - 技能分散在其它目录时,打开页头「来源目录」,新增一行绝对路径并保存。
- 需要在资源管理器中编辑文件时,用卡片「⋯」→「打开文件夹」。
适用场景与注意¶
适合谁:本地攒了较多 SKILL.md 或 WorkBuddy 技能/专家团目录、希望统一浏览和开关,且 profile 未依赖或未启用 filesystem skill provider 的开发者。
安装前建议:插件以当前 DSH 进程的权限读写你配置的技能目录与 ~/.dsh/skill-center.json;安装前可浏览 GitHub 源码 与 MIT 许可证,确认路径与写 frontmatter 的行为符合预期。社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系,DSH 生态本身是「一切皆插件」的扩展模型。
结尾¶
dsh-skill-center 把「看一眼 + 开关 = 会话能不能用这个技能」收进侧栏一个面板:默认扫 ~/.dsh/skills 与 ~/.workbuddy/skills,可扩展来源,运行时注册补上了 filesystem provider 未激活时的缺口,同时保持零依赖与本地隐私边界。