dsh-plugin-skill-manager:在 DeepSeek Harness Web 设置里统一管理 Skills

前言

DeepSeek Harness(DSH)通过用户级 skill 根目录加载 SKILL.md 与相关资源;技能一多,来源、同名优先级、是否参与模型调用往往只能靠翻目录和改 frontmatter 来维护。社区插件 dsh-plugin-skill-manager(维护者 majinggui,npm 包 @majinggui/dsh-plugin-skill-manager)在 Web 客户端的 Settings 里增加 Skills 页:扫描可配置的 skill 根、列出目录与启用状态、内联编辑 SKILL.md,并支持从本地文档或 GitHub 仓库链接安装。页面使用 @deepseek-ai/dsh-client-ui-primitives 与 --dsw-* 设计令牌,注册到官方 settings.section 插槽,与内置设置分区同一套交互。

这是什么

一句话:面向 DeepSeek Harness Web 客户端的 Skill 管理工作流插件(分类:工作流)。

插件通过 cordis.patch.yml 注入一行配置:宿主侧注册一条需认证的 JSON 路由,浏览器侧注册 Settings 页面。要求 DSH >=0.2.0-rc.1,客户端平台为 web(package.json 中 dsh.client.platform: "web")。

核心功能

下面表格对应 README 中「What the page offers」的核实能力。

操作 效果
Catalog 列出扫描根下每个 SKILL.md 及扁平 .md 文档,含来源、优先级 rank、绝对路径、启用状态
扫描共享 agents 目录 开关 ~/.agents/skills 是否纳入扫描;默认关闭,选择会持久化
Enable / disable 按 技能名 关闭或恢复(同名多根不能分别开关)
编辑 SKILL.md 内联编辑器读写,保存时校验读取时的内容哈希
上传 skill 文档 浏览器读取 .md 和/或 .zip 技能包,安装到 installRoot
从 GitHub 导入 解析仓库链接,安装其中暴露的每个 SKILL.md
覆盖已有技能 安装时传入 overwrite,否则跳过已存在的同名 skill

技能包(.zip):每个含 SKILL.md 的目录作为一条 skill 安装,并保留同目录脚本与资源;会先剥掉 GitHub「Download ZIP」常见的一层顶目录。路径规范化后拒绝绝对路径与 ..;加密、ZIP64 或不支持的压缩方式会给出可读拒绝原因。

启用/禁用机制:插件在文档 frontmatter 写入 DSH 已识别的两个键以移出模型目录、skill 工具与 / 菜单:

disable-model-invocation: true
user-invocable: false

被替换的原有 frontmatter 值记录在状态文件 <dshHome>/skill-manager.json,重新启用时恢复;无 frontmatter 的文档禁止禁用(避免猜测)。解析失败的文档会在列表中显示错误而非静默消失。

安装与启用

发布到 npm 后,在资料给出的命令为:

dsh plugin --profile web add @majinggui/dsh-plugin-skill-manager@latest

若从本仓库本地构建后链接安装,README 原文为:

cd dsh-plugin-skill-manager && pnpm install && pnpm build
dsh plugin --profile web add link:$(pwd)

(需先取得仓库源码并进入该目录;lib/ 已提交时,也可按 README Development 节说明通过 dsh plugin add github:<owner>/<repo> 使用预构建产物。)

安装后重启对应 profile(dsh web、pnpm run dev:web 或桌面应用),打开 Settings → Skills。

Node 引擎要求(package.json):^22.19.0 || >=24.0.0。当前包版本 0.1.0,许可证 MIT。

配置项

在插件行声明处设置 config(示例来自 README):

- insert:
    - id: skill-manager
      name: dsh-plugin-skill-manager
      config:
        extraRoots:
          - path: ~/team-skills
            source: team
            rank: 300

常用字段默认值与含义(均来自 README Configuration 表):

字段 默认 含义
dshHome $DSH_HOME 或 ~/.dsh Harness 配置根;其子目录 skills 会被扫描并作为导入目标
agentsHome $DSH_AGENTS_HOME 或 ~/.agents 共享 agent 配置根;页面上扫描开关控制其 skills
includeAgentsRoot false 首次加载前是否扫描 agents 根;之后以页面开关在状态文件中的记录为准
extraRoots [] 额外托管根,每项含 path、source、rank
stateFile <dshHome>/skill-manager.json 启用状态与 agents 扫描开关
installRoot <dshHome>/skills 上传与 GitHub 导入写入目录
githubMaxFiles 20 单次 GitHub 导入最多安装文档数
githubMaxDocumentBytes 524288 单文档大小上限
githubTimeoutMs 30000 单次 GitHub 导入超时
uploadMaxDocuments 20 单次上传最多安装文档/包数
uploadMaxDocumentBytes 524288 单 Markdown 大小上限
zipMaxBytes 52428800 压缩包上传上限(50 MB)
zipMaxUncompressedBytes 209715200 解压后总大小上限(200 MB)
zipMaxMembers 2000 包内文件数上限
zipMaxEntryBytes 67108864 单文件解压上限(64 MB)

默认扫描范围:$DSH_HOME/skills 与配置的 extraRoots。$DSH_AGENTS_HOME/skills(rank 500)仅在页面打开扫描开关后纳入;关闭后下次读取目录即不再列出。读写路径限制在所有已配置根内,agents 扫描关闭后仍可对曾在该根出现的 skill 做启用操作。

典型用法

  1. 打开 Settings → Skills,查看 Catalog:确认每条 skill 的 source、rank 与路径;同名冲突时页面会 inline 说明,开关作用于整个名字。
  2. 需要团队共享目录时,在 extraRoots 增加 path / source / rank,重启或刷新后在新根中出现的 skill 会进入目录。
  3. 临时不让模型调用某 skill:对该名 Disable;恢复时 Enable,frontmatter 按状态文件还原。
  4. 改说明或 invocation 相关 frontmatter:在列表中 Edit SKILL.md,保存;若磁盘文件已被别处修改,会返回 conflict。
  5. 安装新 skill:上传 .md 或含 SKILL.md 的 .zip 到 installRoot;或粘贴 GitHub 仓库链接导入(仅通过公开 API 读取名为 SKILL.md 的文件,受上述数量与大小限制)。需要覆盖同名时勾选/传递 overwrite。
  6. 若本机还有 Cursor 等工具使用的共享 skills:按需打开「扫描 shared agents 目录」,使 ~/.agents/skills 进入 Catalog(默认不扫)。

安全与限制

安全(README Safety):读写限于配置根,越界拒绝 outside-roots;写入带读取时内容哈希,中间被改则 conflict;写入经临时文件再 rename;安装默认不覆盖已有名;GitHub 导入受文件数、大小与时间约束。

限制(README Limitations):启用/禁用会修改 SKILL.md,不允许改 skill 文件的部署不宜使用此页;目录为快照,别处新增 skill 需刷新;项目级 skill 不在本页范围,仅用户级与配置的 extra/agents 根。

适用与注意:适合在 DSH Web 或 dev:web 下集中运维个人与团队 skill 库的开发者。插件以当前 DSH 进程权限读写配置根与 skill 文件;安装前请阅读 GitHub 源码 与 MIT 许可证,并理解 GitHub 导入会访问公开 API。社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-plugin-skill-manager 把 skill 的可见性、优先级、启停、编辑与安装收拢到 Settings 一页,减少手工改目录与 frontmatter 的分散操作。进一步说明见 GitHub README(含 中文 README)与 SkillHub 目录页。

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

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

Xiaoye