DeepSeek Harness Skills 放哪能被发现?DSH plugin 技能目录与优先级

配置与使用发布于 2026-10-02作者: DeepSeek Plugin 插件市场
DeepSeek HarnessDSH pluginSkillsSKILL.md技能目录
DeepSeek Harness 的 Skills 按六级目录从本地发现:项目级 .dsh/skills 与 .agents/skills、自定义 customSkillDirs、用户级 skills 与 bundled,优先级从 100 到 600。本文讲清目录放哪、文件命名与 frontmatter 开关。

DeepSeek Harness 的 Skills 按六级目录从本地发现,rank 从 100 到 600,数值小的优先:项目级 .dsh/skills(100)→ .agents/skills(200)→ 自定义 customSkillDirs(300)→ 用户级 <dshHome>/skills(400)→ 用户 agent 目录(500)→ 内置 bundled(600)。 这篇讲清目录放哪、文件怎么命名、开关怎么配。

DeepSeek Harness Skills 从哪发现:六级目录与优先级数值

DeepSeek Harness 按 rank 从小到大依次发现 skill:project-dsh(100)、project-agents(200)、custom(300)、user-dsh(400)、user-agents(500)、bundled(600),rank 小的优先(来源)。 六个来源逐个认:

  1. project-dsh(100) — <projectRoot>/.dsh/skills。预期:只对当前项目生效,优先级最高。
  2. project-agents(200) — 项目根的 .agents/skills。预期:兼容 agent 约定目录,同样只在本项目内生效。
  3. custom(300) — 由 Config.customSkillDirs 指定的目录。预期:适合把团队共享 skill 放一个独立路径。
  4. user-dsh(400) — <dshHome>/skills,即 $DSH_HOME/skills。预期:对本机所有项目生效。
  5. user-agents(500) — 用户级 agent 约定目录。预期:优先级低于 user-dsh。
  6. bundled(600) — 随发行版内置的 skill,位置由 DSH_BUNDLED_SKILL_DIR 与 BUNDLED_SKILL_RANK 控制。预期:优先级最低,作为兜底。

重名时 rank 小的赢:项目级 skill 会盖过用户级同名 skill。

DeepSeek Harness Skill 文件怎么命名:SKILL.md 与单文件两种形态

DeepSeek Harness 的 skill 名用 kebab-case,支持 <name>/SKILL.md 的目录式与 <name>.md 的单文件式两种布局(来源)。 按需选布局:

  1. 目录式 <name>/SKILL.md — skill 名就是目录名,说明写在目录内的 SKILL.md。预期:适合还要带脚本、模板等附属资源的 skill。
  2. 单文件式 <name>.md — 直接用文件名当 skill 名。预期:适合只有一段说明的轻量 skill。
  3. 命名统一 kebab-case — 如 code-review、release-notes。预期:名字与调用时的 name 一致。
  4. 放对目录再验证 — 把文件放好后重启或重新加载。预期:能在 skill 列表里看到它。

DeepSeek Harness Skill 怎么控制调用:frontmatter 开关与 skill 工具

skill 的 frontmatter 支持 disable-model-invocation 与 user-invocable 两个开关,分别控制模型能否自动调用、是否暴露给用户;模型侧通过 skill({ name }) 工具按名调用(来源)。 按组合配置:

  1. 默认全开放 — 不加开关时,模型可自动调用,用户可手动调用。预期:适合通用 skill。
  2. 只手动:disable-model-invocation — 关闭模型自动调用。预期:只有用户显式调用才触发,适合有副作用的操作。
  3. 只自动:不设 user-invocable — 需要限制用户入口时用它。预期:由模型按上下文决定是否调用。
  4. 模型调用方式 — 模型通过 skill({ name }) 传 skill 名。预期:名字对不上就调不到。
  5. 控制目录描述长度 — catalogDescriptionMaxLength 默认 500,限制 skill 在目录里展示的描述长度。预期:描述过长会被截断。

Skills 是 DSH插件 补能力的常见形态;想找现成的 skill 类插件,可在 DSH Plugin Hub 里按用途筛选。

插件市场

DeepSeek Harness Skills 配置的注意事项与局限

  1. 优先级只看 rank:项目级压用户级、用户级压 bundled,重名时低 rank 的不会生效。
  2. customSkillDirs 不是最高优先:它在 300,仍低于项目级两个来源。
  3. 命名必须 kebab-case:大小写或下划线可能导致发现失败或调用名对不上。
  4. 开关决定安全边界:有副作用的 skill 建议设 disable-model-invocation,别让模型自动触发。
  5. 目录多了会相互遮蔽:同名列在多个 rank 出现时,只有最高优先级的那个生效,排查时先看是不是被项目级盖了。

来源:Skills(官方文档)、dsh CLI README(官方仓库)

常见问题

DeepSeek Harness 的 skill 放在哪些目录会被发现、优先级怎么排?

DeepSeek Harness 按六级目录发现 skill:project-dsh(100)、project-agents(200)、custom(300)、user-dsh(400)、user-agents(500)、bundled(600),数值小的优先。项目级目录是 <projectRoot>/.dsh/skills 与 .agents/skills,用户级是 <dshHome>/skills。

DeepSeek Harness 项目级 skill 和用户级 skill 重名时谁生效?

DeepSeek Harness 里数值小的 rank 优先,所以项目级 project-dsh(100)会盖过用户级 user-dsh(400)。重名时以项目级为准,想全局统一就放用户级。

DeepSeek Harness 的 skill 文件怎么命名、SKILL.md 和 <name>.md 有何区别?

DeepSeek Harness 的 skill 名用 kebab-case,支持两种布局:<name>/SKILL.md 的目录式,以及 <name>.md 的单文件式。前者适合带附属资源的 skill,后者适合只有一段说明的轻量 skill。

怎么让某个 skill 只允许用户手动调用、不参与模型自动调用?

在 skill 的 frontmatter 里用 disable-model-invocation 关闭模型调用,用 user-invocable 控制是否暴露给用户。两个开关组合即可实现「只手动」「只自动」或「都开放」。

DeepSeek Harness 的 skill 目录能自定义吗、模型怎么触发某个 skill?

能。用 Config.customSkillDirs 增加自定义目录(rank 300)。模型侧通过 skill({ name }) 工具按名调用,skill 名要与目录或文件命名一致。

相关术语

Skills
Skills 是 DeepSeek Harness 中可被模型或用户按需调用的能力单元,以目录或单文件形式放在约定的目录里,按 rank 优先级被本地提供方发现。— DeepSeek Harness 官方文档 - Skills
project-dsh
project-dsh 是 DeepSeek Harness 的项目级 skill 发现源,位于 <projectRoot>/.dsh/skills,rank 为 100,优先级最高。— DeepSeek Harness 官方文档 - Skills
SKILL.md
SKILL.md 是 DeepSeek Harness 的一种 skill 文件布局,位于 <name>/SKILL.md,适合把说明与附属资源放在同一目录里的 skill。— DeepSeek Harness 官方文档 - Skills
customSkillDirs
customSkillDirs 是 DeepSeek Harness 的配置项,用于追加自定义 skill 目录,这些目录的 rank 为 300,介于项目级与用户级之间。— DeepSeek Harness 官方文档 - Skills

来源