DeepSeek Harness 插件 vs 技能:你到底需要哪个?

插件改变 harness 能做什么,技能改变 agent 知道什么。对照表、真实截图、两个完整实例,再加三个帮你拍板的问题。

最近更新: 2026-09-09

DeepSeek Harness 自带两套听起来很像的扩展机制:插件和技能。官方首页的口号是 "everything is a plugin",但 agent 同时也会老老实实读取你仓库里的 Markdown 技能文件。把这两者搞混,结果是要强制执行的地方写了个技能,或者一个 Markdown 文件就能解决的事造了个插件。

这一页用证据而非感觉来区分两者:下面每张截图都来自真实会话,并且回链到源视频的精确秒数;每条结论都来自这两支视频或 DeepSeek 官方首页原文。

一句话结论

技能是一个 Markdown 指令文件 —— 通常是 .agents/skills/<name>/SKILL.md —— 作用是补充上下文:agent 会读它、通常照着做,但没有任何机制强制。插件是接进 harness profile 的 Cordis 包,装在仓库之外:它能新增工具、替换审批策略,甚至能在工具调用执行前直接拦截。要引导,写技能;要保证,造插件。

官方定位,逐项对照

DeepSeek 官网用一句话讲清了架构:"Every capability is a plugin that can be swapped or recomposed: models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and the UI." 注意细读:技能出现在"可替换物"的清单里,而插件是这一切的封装单元。

DeepSeek Harness 官网首页 hero,写着 everything is a plugin,说明从 models、tools、skills 到 scheduling 和 UI 的每种能力都可替换重组
官方定位:技能只是长清单里一项可替换能力。看原视频 4:16

在一个跑起来的实例里,插件以设置面板里一排开关的形式出现 —— harness 本身就是散件交付的,每个部件都能关掉:

DeepSeek Harness 设置里的插件面板,两列网格展示 tool-subagent、spill-local、web 等插件,各自带启用/停用开关
harness 本身就是散件交付 —— 一路都是开关。看原视频 4:32
维度插件技能
本质Cordis 包,向 harness 本体注入一种能力 —— 工具、审批策略、定时任务,甚至 UI。Markdown 指令文件(SKILL.md),给 agent 补充上下文和步骤。
存放位置仓库之外:软链到 ~/.dsh/profiles/<profile>/node_modules,并在 profile 的 cordis.patch.yml 里注册。项目内 .agents/skills/<name>/SKILL.md —— 或全局技能目录,会话会自动拾取。
分发方式走插件目录和 GitHub 仓库;安装进 profile,下次 harness 重启时加载。把文件拷进仓库即可 —— 立刻出现在会话的技能目录里。
能力边界能强制:插件 hook 可以在工具调用执行前直接拒绝(同步的 ctx.tools.guard() API)。只能建议:agent 通常照步骤做,但没有任何东西强制它照做。
适用场景改变 harness 能做什么:新工具、安全护栏、审批流程、定时任务。教 agent 你希望一件重复的事怎么做:提交规范、SOP、检查清单。

还是拿不准?问自己三个问题

1

它必须被保证,还是大概率照做就行?

如果漏一步就是事故(碰生产数据库、破坏性 git 操作),你需要强制:插件 hook,或者让技能里的某一步跑确定性脚本。如果只是风格和流程 —— 提交信息、spec 工作流 —— 技能就够了。

2

它属于仓库,还是属于这台机器?

应该随仓库走、给全团队共享的团队约定,放进跟代码一起提交的技能文件。机器层面的能力 —— 拦直连 psql、加一个定时任务工具 —— 放进装在这台机器 profile 里的插件。

3

一个文件的英文说明能不能说清?

如果 Markdown 里几步白话就够了,就写技能 —— 并且让 agent 替你起草;crash course 的博主就让 AI 写他的技能,因为写得比他自己还周全。一旦需要保证执行,就升级:把那一步变成脚本,或者做成 hook 插件 —— 视频里走的正是这条升级路径。

实例一:commit 技能(写一个技能)

在 Agentic AI crash course 里,博主需要一个可复用的提交流程:全部提交、信息干净、绝不 push。一条提示词就产出一个技能 —— 整个过程在视频里只花了两三分钟。

  1. 1

    一条消息把技能说清楚

    提示词要求创建一个负责 commit 的技能:不署 AI 名、信息用简洁的要点列表、快速检查不该提交的东西、默认提交所有工作区文件、绝不 push 或部署。

    DeepSeek Harness 聊天输入框里那段创建 commit 技能的提示词,要求 agent 提交全部工作区文件、不署 AI 名、绝不 push 或部署
    整个需求就是一段白话消息 —— 没有 SDK,没有样板代码。看原视频 15:50
  2. 2

    agent 写文件并当场注册

    技能从 .agents/skills/<name>/SKILL.md 这类项目根路径被发现。新的 commit 技能立刻出现在会话的技能目录里 —— 输入框的斜杠菜单能看到 agent 可调用的所有技能。

    DeepSeek Harness 聊天确认 .agents/skills/commit/SKILL.md 已写入,带 name、description、whenToUse frontmatter,且 commit 技能已进入会话技能目录
    保存为 .agents/skills/commit/SKILL.md —— 当场进入会话目录。看原视频 17:00
    DeepSeek Harness 输入框的斜杠菜单,列出已安装技能如 find-skills 和 cordis-plugin-development,每项带一行描述
    敲一个斜杠,目录里就是 agent 能调用的所有技能。看原视频 10:55
  3. 3

    当成 Markdown 来读:frontmatter、步骤、规则

    生成的文件带 frontmatter(name、description、whenToUse),从 git status 到 verify 共六步,外加"不署名""绝不 push 或部署"这类规则。它就是个文件 —— 随时可以手动改。

    VS Code 预览生成的 commit SKILL.md:从 git status 到 verify 的六步,外加"不署名""绝不 push 或部署"等规则
    技能就是 Markdown:frontmatter、编号步骤、规则。看原视频 18:00
    check-invoices 技能的 SKILL.md 示意动画:name、description 头部加上四个发票核验步骤,第一步打了勾
    第二支视频用动画演示同一个结构:先描述,后步骤。看原视频 10:45
  4. 4

    把模糊步骤升级成确定性脚本

    "快速安全检查"原本靠模型判断,于是让 agent 把它转换成 scripts/check-commit-safety.sh,用退出码表示结论:0 安全、1 有问题、2 环境错误。当场实测:故意埋的 .env 文件被 deny 规则拦下 —— 相同的 git 状态进,相同的结论出。

    DeepSeek Harness 聊天里 check-commit-safety.sh 的实测表:干净工作树退出码 0,故意埋的 .env 文件被 deny 规则拦下
    模糊步骤变成了脚本:0 安全,1 有问题,2 环境错误。看原视频 19:30

实例二:git-protect 插件(造一个插件)

同一支视频的后半段,仓库需要一个"破坏性 git 命令永远跑不了"的保证 —— 光靠引导不行。agent 最终造了一个插件,整个过程把对照表里插件的特征全演了一遍。

  1. 5

    要一个 hook;批准工作区外的写入

    agent 找到了正确的扩展点:工具注册表暴露了 ctx.tools.guard() API —— 一个能在工具调用执行前拒绝它的同步 hook。接线需要写到工作区之外,所以屏幕上先弹出审批对话框。

    DeepSeek Harness 审批对话框,请求提升沙箱权限,以便把 git-protect hook 接到工作区之外用户的 .dsh profile 目录
    插件装在仓库之外 —— 写入前 agent 会先请求批准。看原视频 24:30
  2. 6

    造了什么:contract、profile 接线、重启

    产物是真正的代码:.agents/git-protect/hook/index.mjs,带 Cordis contract(name、inject: ['tools']、apply),软链进 ~/.dsh/profiles/node_modules 并通过 cordis.patch.yml 注册。屏幕上的注意事项写明:web profile 关闭了 HMR,插件要等下次 harness 重启才生效。

    DeepSeek Harness 聊天列出 git-protect 插件创建的东西:Cordis contract 的 index.mjs、指向 ~/.dsh/profiles/node_modules 的软链,以及需重启生效的注意事项
    插件是带 contract 的真代码 —— 而且要重启才加载。看原视频 25:00
  3. 7

    验证强制力

    重启之后,git reset --hard 和 git branch -D 探测都被拦下 —— 拒绝来自 hook 而不是 shell —— 而 git status、git log、git diff 正常通过,待提交的 spec.md 改动完好无损。

    DeepSeek Harness 验证表:git reset --hard 和 git branch -D 被 git-protect hook 拦截,而 git status、git log、git diff 正常通过
    破坏性命令在 harness 层被拒 —— 不靠客气。看原视频 26:30

两者如何协作

这两种机制是分层,不是对手。视频里的同一个仓库最后两者都有:commit 技能让每次提交都干净,git-protect 插件保证破坏性命令在 harness 层就被拒绝 —— 不管对话里说了什么。

还有一个反方向:存在专门教 agent 造插件的技能。入门向那支视频里,agent 在 creator mode 搭建新插件时加载了 cordis-plugin-development 技能 —— 用技能生产出整套架构所依赖的插件。

The full guardrail stack is now active: the harness hook (tool-level deny), the commit skill (safety check → ignore resolution → clean local commits), and AGENTS.md policy.

crash course 视频约 26:30 处的屏幕总结

常见问题

这一页最常被问到的问题,答案全部来自视频与官方原文。

DeepSeek Harness 的技能文件放在哪?

项目技能放在仓库根目录的 .agents/skills/<name>/SKILL.md —— 视频里的 agent 说这是项目级、会被自动发现。也支持全局技能:第二支视频里,他原有 Claude Code 配置中的全局技能就被自动拾取进来了。

技能能执行工具和命令吗?

技能本身只是指令 —— 默认 agent 会读它并自行解释步骤。想要可预期的结果,学 crash course 的做法:附一个脚本(check-commit-safety.sh)让步骤去执行它,或者把检查绑成 hook,从"建议"升级成"强制"。

插件能做到哪些技能做不到的事?

改变 harness 本身。插件可以注入工具、在工具调用执行前拒绝它、替换审批策略、增加定时任务之类的能力;它接在仓库之外的 profile 上,重启时加载。技能只能给对话补充上下文。

官方对插件和技能的定位原话是什么?

官网首页写的是:"Every capability is a plugin that can be swapped or recomposed: models, tools, skills, sessions, sandboxes, storage, loops, scheduling, and the UI." 换句话说,技能是清单里的一项能力,而插件是这一切(包括技能)的出厂封装单元。

我从 Claude Code 迁移过来,技能还能用吗?

基本能用:技能就是纯 Markdown。crash course 提到,仓库里已有的本地技能 harness 应该能直接读;第二支视频里 Claude Code 的全局技能也被自动拾取了。插件是例外 —— 它绑定 Cordis,需要为 DeepSeek Harness 重新构建或安装。

为什么我的插件没有马上生效?

因为 web profile 关闭了 HMR,新接线的插件要等下次 harness 重启才生效 —— 视频里的注意事项原话就是这么说的。验证方法:让 agent 跑一条该插件应拦截的命令,你应该看到 hook 拒绝而不是 shell 结果。

相关攻略

分清要用哪个之后,接着读这些。

来源与署名

本页所有截图来自这两支视频攻略,每张图都深链回它被截取的精确秒数。上面的文字讲解是我们自己写的。

DSH Plugins 是独立的 DeepSeek Harness 插件市场,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。

每周获取最新的 DeepSeek Harness 插件,绝不滥发。