DeepSeek Harness Skills 放哪能被发现?DSH plugin 技能目录与优先级
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 小的优先(来源)。 六个来源逐个认:
project-dsh(100) —<projectRoot>/.dsh/skills。预期:只对当前项目生效,优先级最高。project-agents(200) — 项目根的.agents/skills。预期:兼容 agent 约定目录,同样只在本项目内生效。custom(300) — 由Config.customSkillDirs指定的目录。预期:适合把团队共享 skill 放一个独立路径。user-dsh(400) —<dshHome>/skills,即$DSH_HOME/skills。预期:对本机所有项目生效。user-agents(500) — 用户级 agent 约定目录。预期:优先级低于user-dsh。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 的单文件式两种布局(来源)。 按需选布局:
- 目录式
<name>/SKILL.md— skill 名就是目录名,说明写在目录内的SKILL.md。预期:适合还要带脚本、模板等附属资源的 skill。 - 单文件式
<name>.md— 直接用文件名当 skill 名。预期:适合只有一段说明的轻量 skill。 - 命名统一 kebab-case — 如
code-review、release-notes。预期:名字与调用时的name一致。 - 放对目录再验证 — 把文件放好后重启或重新加载。预期:能在 skill 列表里看到它。
DeepSeek Harness Skill 怎么控制调用:frontmatter 开关与 skill 工具
skill 的 frontmatter 支持 disable-model-invocation 与 user-invocable 两个开关,分别控制模型能否自动调用、是否暴露给用户;模型侧通过 skill({ name }) 工具按名调用(来源)。 按组合配置:
- 默认全开放 — 不加开关时,模型可自动调用,用户可手动调用。预期:适合通用 skill。
- 只手动:
disable-model-invocation— 关闭模型自动调用。预期:只有用户显式调用才触发,适合有副作用的操作。 - 只自动:不设
user-invocable— 需要限制用户入口时用它。预期:由模型按上下文决定是否调用。 - 模型调用方式 — 模型通过
skill({ name })传 skill 名。预期:名字对不上就调不到。 - 控制目录描述长度 —
catalogDescriptionMaxLength默认 500,限制 skill 在目录里展示的描述长度。预期:描述过长会被截断。
Skills 是 DSH插件 补能力的常见形态;想找现成的 skill 类插件,可在 DSH Plugin Hub 里按用途筛选。

DeepSeek Harness Skills 配置的注意事项与局限
- 优先级只看 rank:项目级压用户级、用户级压 bundled,重名时低 rank 的不会生效。
customSkillDirs不是最高优先:它在 300,仍低于项目级两个来源。- 命名必须 kebab-case:大小写或下划线可能导致发现失败或调用名对不上。
- 开关决定安全边界:有副作用的 skill 建议设
disable-model-invocation,别让模型自动触发。 - 目录多了会相互遮蔽:同名列在多个 rank 出现时,只有最高优先级的那个生效,排查时先看是不是被项目级盖了。
常见问题
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 里数值小的 rank 优先,所以项目级 project-dsh(100)会盖过用户级 user-dsh(400)。重名时以项目级为准,想全局统一就放用户级。
DeepSeek Harness 的 skill 名用 kebab-case,支持两种布局:<name>/SKILL.md 的目录式,以及 <name>.md 的单文件式。前者适合带附属资源的 skill,后者适合只有一段说明的轻量 skill。
在 skill 的 frontmatter 里用 disable-model-invocation 关闭模型调用,用 user-invocable 控制是否暴露给用户。两个开关组合即可实现「只手动」「只自动」或「都开放」。
能。用 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
来源
- DeepSeek Harness 官方文档 - Skills· deepseek-ai
- dsh CLI README· deepseek-ai