DeepSeek Harness 插件开发实战:用「插件经理」从零做一个剧本拆解工作流
2026 年 8 月 13 日,DeepSeek 开源了自家的 Agent 运行壳 DeepSeek Harness(命令行名 dsh),MIT 协议,发布当天 GitHub 拿到两万八千颗星,24 小时冲到四万六千星、三千七百多个 fork,一度登上 Hacker News 榜首。它的口号只有一句话——Everything is a Plugin,一切皆插件。
这句话很好听,但对大多数人来说,看完发布稿之后真正的问题是:那我怎么写一个插件? 现实是,如果你只是打开对话框,跟模型一句一句地聊"帮我做一个 XX 插件",多半会聊出一堆碎片,跑不成一个能装进宿主、能重复使用的东西。插件化架构降低的是运行时的耦合,不是需求到代码这一段的认知负担。
这篇文章顺着一期完整的实操视频记录往下走,把这条路径完整走通一遍,分三段:
- 理解与安装 —— Harness 的插件架构到底跟 Claude Code / Codex 有什么本质不同,怎么在本地跑起来;
- 实战开发 —— 用一个叫「插件经理」的元工作流插件,走五步流水线,从零做出一个「剧本拆解工作流」;
- 真机验证 —— 丢进一集 2900 字的悬疑短剧,看它产出什么,以及这套东西的天花板在哪。
说明:本文的架构与安装部分依据 DeepSeek Harness 官方仓库与文档;实战部分复述并整理自一期公开的实操视频(原作者已将做出来的剧本拆解工作流开源),文中涉及的具体问答轮次、任务数量、镜头数量等均来自那次实操的现场记录,你自己跑一遍时数字不会完全一样。
一、先把设计思路讲清楚:它跟 Claude Code 不是同一类东西
从外观上看,Harness 和 Claude Code、Codex 是一类产品——一个能读写文件、执行命令、调工具的编码 Agent。但底层设计完全不同。
宿主本身几乎是空的。 官方架构文档里那句话说得很直白:"没有特权内核可供打补丁"(no privileged core to patch),扩展 Harness 的方式就是在其他插件旁边再挂一个插件。底座是 Cordis 这个元框架,插件向共享的上下文 ctx 贡献服务、类型化事件与可逆的副作用——插件卸载时,它注册过的一切会被原样撤销。
所以在 Harness 里,下面这些全都是插件:
- 模型适配器是插件(Anthropic、OpenAI、Bedrock、Azure、Google 都是这么接进来的);
- 工具注册表是插件;
- 会话日志、沙箱、权限策略、设置页是插件;
- Agent Loop 本身是插件;
- 你在浏览器里看到的界面——侧边栏、对话区、设置页,每一块都是插件。
开箱自带一百多个(视频里那台机器的插件列表显示 133 个)。更关键的一点是:官方插件和你自己写的插件走的是同一条通道。官方能做到的事,你都能做到——包括把整块界面替换掉。
1.1 四种内置模式,其实是四套现成的插件组合
Harness 内置了四个 Agent 模式(Agent Presets)。理解它们的正确方式不是"四种性格",而是四套预先编排好的插件组合——每一套里装着一个身份(system prompt)、一批工具、一组技能(skills)。你切换模式,等于把这一整套组合全部换掉。
| 模式 | 定位 | 典型场景 |
|---|---|---|
| 标准模式(Standard) | 默认模式,工具给得最全:文件系统、Shell、Web 搜索、子智能体、Plan 模式 | 日常什么都能干 |
| 代码模式(Coding) | 会把接下来一连串要做的事一次性排好再动手,而不是走一步停一下 | 写代码、连续改造 |
| 极简模式(Minimal) | 只留两个工具:一个跑命令,一个改文件 | 上下文敏感、要省 token 的场景 |
| 创造模式(Creator) | 用来开发新模式、新插件,会一步步带着你走 | 插件开发 |
而模式本身也可以自己造——一个模式就是一个文件夹,复制进 Harness 的家目录,菜单里立刻多一项,不用重启、不用走安装流程。这是后面整个实战的地基。
1.2 插件的三种形态
AI 工具的插件大致可以分成三类形态,映射到 Harness 上是这样的对应关系:
- 方法论 / 工作流类(不需要界面)→ 直接做成一个模式。把几个 skill 编排成一条流水线就够了,本文要做的剧本拆解工作流就是这一种;
- 重交互的产品→ 还是熟悉的做法:插件在本地拉起一个外部工作台,在浏览器里打开;
- 界面本身的改造→ 这是 Harness 最特别的地方。在 Claude Code 或 Codex 里,插件的界面是长在对话里的一张卡片;在 Harness 里,界面本身就是插件拼出来的,所以你可以直接改造它——小到加一个按钮,大到换掉一整块区域,甚至整个页面重做。
你在网上刷到的那些"DeepSeek Harness 魔改皮肤",就是从第三类来的。
二、安装与初始化:十分钟跑起来
2.1 两种安装方式
官方给了两种。一键安装(推荐,前提是本机装好 Node.js):
npx @deepseek-ai/dsh web跑完之后 Web UI 监听在 http://127.0.0.1:3080。
源码安装(想改 Harness 本体、或者想写原生 TypeScript 插件时用):
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web2
3
4
5
给非技术背景读者的一个小技巧:看到"终端""命令"就头大的话,完全不用自己动手。打开 Codex、Cursor、Claude Code 或者任何一个 AI Agent,把上面那行一键安装命令直接发给它,让它帮你运行。中间就算报错、缺依赖、Node 版本不对,它也会自己把环境依赖装好。视频里就是用 Codex 装的,全程没有手敲一条命令。
关掉之后要重新启动,同样是打开终端再跑一次 npx @deepseek-ai/dsh web,看到 3080 端口开始监听,浏览器打开就行。
2.2 配置 API Key
去 DeepSeek 开发者平台,左侧导航选 API keys → 创建,名字随便起,把生成的 key 复制下来。
⚠️ 这一步一定要当场保存好。Key 只有这一次机会能复制,关掉弹窗之后就再也看不到了。
回到 Harness 的 Web UI,把 key 贴进去,配置就完成了。进 Settings → Model → 编辑,可以看到它默认已经带了两个模型:DeepSeek V4 Flash 和 DeepSeek V4 Pro(后者在 8 月 12 日刚推到正式版)。
导航栏的 Plugin 是所有插件的统一管理入口——"一切皆插件"的架构下,所有能力都在这个列表里;Agent Presets 则是上面说的模式列表。
2.3 建一个项目文件夹(这一步别省)
创建项目文件夹,起个名字。之后所有的对话、所有新开的 session、中间生成的代码和文件,都会保存到这个文件夹下面。
这个文件夹就是这次工作的工作区,Agent 的读写范围仅限于此。 换一个项目就重新建一个新文件夹,彼此才互不干扰。开发插件的时候尤其要注意这一点——你不会希望剧本拆解的产出文件和插件源码堆在同一个目录里。
到这里 Harness 已经可以正常用了。但要开始开发插件,还差最后一块拼图。
三、把插件开发本身,也做成一个插件
直接跟模型聊"帮我做个插件"效果不好,原因不在模型,在于缺少一条把模糊需求收敛成可执行工程的流程。
所以视频作者的做法是:把插件开发流程本身,做成一个 Harness 插件——一个叫「插件经理」的模式。装进去之后,Agent Presets 菜单里就多一项「插件经理」。
它内部是八个 skill 串成的一条五步流水线:
① 采访 → 把你的需求聊清楚(多轮结构化提问,不是自由发挥)
② 设计 → 交互设计 + 运行时设计(这个插件在 Harness 里怎么被调用、怎么跟人对话)
③ 计划 → 拆开发计划(任务清单、阶段划分、哪些可以并行)
④ 开发 → 调用 plugin-builder 技能按计划写代码
⑤ 验收 → 独立检查 + 装进宿主 + 验证2
3
4
5
你全程只做两件事:回答问题、确认结果。
它产出的东西还是一个插件——可以是纯工作流的模式,可以是带界面的工作台,甚至可以是对 Harness 界面本身的改造,开发完装上就能用。
安装方式很朴素:把插件文件夹丢进项目目录,然后告诉 Agent"我在 xxx 文件夹里放了一个 DeepSeek Harness 插件,请帮我安装一下",它会自己找到安装脚本、读、执行。装完在 Settings → Agent Presets → 自定义 那一栏就能看到。
装完之后它会告诉你两种开发路径:
- 常规开发(用「插件经理」模式):做普通工作流、不涉及改界面的插件,比如把好几个 skill 编排到一起;
- Creator Mode + 插件经理的八个 skill:想改整个界面布局、往里加新的功能模块时用。
说白了,整个 Harness 就是一套大型乐高,每一块都是插件。所以用它的正确姿势也是这个:开发一个新插件插上去,开发一个新模块装上去,一层一层往上堆;或者把原来那些积木全拆掉,换成自己的。
四、实战:从零开发一个「剧本拆解工作流」
新开一个 session,模式选插件经理,然后把需求丢进去:
我想做一个剧本自动拆解的工作流,要能规划分镜镜头,能把人物、场景、道具这些资产拆出来,最后还要生成分镜的提示词。
流水线启动,项目进度全部标记为"未开始"。下面是五步的完整过程。
4.1 第一步:采访(三轮问答)
这是整条流水线里你唯一需要认真投入的环节。它没有让你自由发挥,而是一轮一轮地给选项:
第一轮
- 分镜视频提示词最终要在哪个视频生成平台上用? → 选了即梦
- 整个流程跑完,你希望得到什么产出? → 选结构化文件包(人物、资产、分镜提示词、逐镜视频提示词)
第二轮
- 剧本上传之后,工作流该怎么跑? → 每个阶段暂停一次,跟我确认
- 剧本怎么上传? → 支持
.txt/.md文件,也可以直接在对话里粘贴 - 支持什么类型的剧本? → 多种类型
第三轮
- 这个工作流面向的受众是谁? → AI 影视创作者与编导
三轮之后信息够了,它开始写开发需求文档。
平心而论,剧本拆解这类工作流的流程骨架是成熟的,外面能找到不少通用参考,所以整体需求并不复杂——凭这几个答案,它已经足够搭出一个标准的拆解流程。它把插件定位成"用导演讲戏的思路分三个阶段来跑":
- 阶段一:拆剧本、出分镜、生成总表;
- 阶段二:写人物 / 场景 / 道具的提示词,并保证跨镜头的一致性;
- 阶段三:给每个分镜写符合即梦口径的中文视频提示词。
完整链路是:上传剧本 → 识别类型 → 拆分镜 → 生成资产提示词 → 生成视频提示词 → 产出文件包。需求文档里记录了插件定义、使用场景、核心产出、开发形式,以及为了开发需要拆解的所有任务。
一个体验上的小坑:想打开它写好的文档时,得切回项目文件夹里去翻——因为目前 Web UI 没有文件树,缺少 Codex / Claude Code 那种右侧边栏直接浏览和预览文件的能力。
但这恰恰是个好例子:这个功能你自己就能补。用 Creator Mode 配合插件经理的八个 skill,做一个文件树侧边栏插件并不难——这本身就是插件经理最典型的使用场景之一。
4.2 第二步:交互与运行时设计(两个问题)
- 对某个阶段不满意、让它重做时,旧文件怎么办? → 自动备份,保留最近三版
- 逐镜提示词里要不要写明时长? → 要写,默认 5 秒,需要 10 秒的单独标出来
这两个问题看着小,其实是这类工作流最容易翻车的地方——没有备份策略,返工一次就丢一次产出;没有时长口径,下游生成平台就得逐条手改。
因为这次不涉及界面改动,这一步主要是理顺整套工作流的串联、提示词,以及"如何和用户沟通、一步步引导"。产出的设计文档里给了插件的四个技能划分(一个总调度 + 三个阶段各一个),还附了一张覆盖表:每条需求对应设计里的哪一条,一条条对齐。
4.3 第三步:拆开发计划(不需要你参与)
需求和设计都齐了,这一步它自己完成:22 个任务,分 8 个阶段,其中 4 批可以并行执行。开发计划文档的开头是整个插件的目录结构——文件放在哪、每个技能负责什么,都标好了。
进开发之前它给了两个选择:
- 直接说"继续",它就在对话里一路开发,中间可能停下来要你确认;
- 让它生成一条自驱的 GO 指令,转成全自动开发,自己想办法完成目标,不用你在旁边确认。
视频里选了第一种(更省心,也更容易在中途纠偏)。
4.4 第四步:开发
它自动调用 plugin-builder 技能,按定好的循环和流程写代码。
这一步比预期慢很多——差不多花了一个多小时。 这是一个需要提前有心理预期的数字:不是几分钟出活的量级,中途你最好去干点别的。
4.5 第五步:交付与验收
开发完成后它给了一份交付说明:怎么安装、怎么分享给别人、怎么使用,并且已经帮你把插件装好了。
回到 Settings → Agent Presets → 自定义,除了插件经理之外,多了一个「剧本拆解工作流」。打开它的文件夹,结构大致是这样:
剧本拆解工作流/
├── <配置文件 1> # 模式定义:身份、工具集、技能挂载
├── <配置文件 2> # 插件元信息
└── skills/
├── 总调度.md # 编排三个阶段、阶段间确认与备份
├── 分镜拆解.md # 阶段一:拆解报告 + 分镜总表
├── 资产提示词生成.md # 阶段二:人物 / 场景 / 道具 + 一致性锚点
└── 逐镜视频提示词.md # 阶段三:对齐分镜总表逐条生成2
3
4
5
6
7
8
打开任意一个 skill,是一份非常标准的 SKILL.md——输入、输出、约束规则写得清清楚楚。大致是这么个骨架(示意):
---
name: 资产提示词生成
description: 从分镜总表中抽取人物/场景/道具,生成可直接用于文生图的提示词与一致性锚点
---
## 输入
- `分镜总表.md`(阶段一产出)
- `拆解报告.md`
## 输出
- `资产提示词.md`:人物 / 场景 / 道具三类,每项含提示词正文 + 一致性锚点 + 索引编号
## 约束
1. 同一实体在剧本中的不同称谓必须统一到一个资产条目
2. 每个资产必须给出可复制的完整提示词,不使用省略或引用
3. 一致性锚点需覆盖:外形、材质/服装、光照倾向、镜头中的相对尺度
4. 阶段结束后暂停,等待用户确认再进入下一阶段2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
⚠️ 一个必须提醒的坑:它显示"安装完成",不代表宿主已经加载。取决于你开发的插件影响范围,有时候需要重启 Harness 才能加载进来。如果你明明装完了,却在模式预设、插件列表甚至界面上找不到它——先重启一次再排查。
五、真机跑一遍:一集 2900 字的悬疑短剧
使用方式:新开一个 session(正常来说最好也新建一个项目文件夹),模式下拉菜单里选「剧本拆解工作流」,把剧本粘进去。
测试素材是一集悬疑惊悚题材的短剧剧本,约 2900 字。
阶段一:拆分镜
产出两个文件:
- 拆解报告:一句话故事、整体主题、情绪基调、叙事结构、分镜概述、导演阐述;
- 分镜总表:41 个镜头,总时长 180 秒,每个镜头标注场次、景别、运镜、画面内容、台词、时长。
阶段二:资产提示词
产出 9 项资产:2 个人物、3 个场景、4 个道具。每一项都带一段可以直接复制、拿去做文生图的提示词,以及一致性锚点。
它做的一件对的事:把剧本里"老太太""阿婆"这类不同称谓统一成了同一个资产。
但这里要说句实话——这种称谓统一,对维护人物一致性和文生图一致性其实帮助有限。 真正决定跨镜头一致性的是参考图、锚点描述的颗粒度和生成侧的种子控制,不是称呼。这部分提示词后面你自己肯定还要重新调整。
阶段三:逐镜视频提示词
产出 41 条,和分镜总表一镜一镜对齐,确保没有遗漏也没有多加。每一条写明主体动作、场景、镜头语言、光影,还有建议时长。同时给出备份说明(第一次生成所以没有历史备份)。
确认收尾,全部完成。项目文件夹里最终躺着四份文件:拆解报告、分镜总表、资产提示词、逐镜视频提示词。把逐镜提示词复制到即梦,配合参考图就能开始生成。
六、真实体感:它给你的是骨架,不是 know-how
这是我认为整期实操里最有价值的一段结论,值得单独拎出来说。
看它拆的分镜、写的提示词,你应该能感受到——它给你的其实只是一个框架、一个架子。
但这不奇怪。整个设计过程中,几乎没有人给过它有效的输入:
- 什么叫好的视频提示词?
- 什么叫好的分镜?
- 分镜应该怎么拆?
- 节奏应该怎么定?
- 主体的视觉怎么呈现?
这些全都没告诉它,全靠它自己上网搜。 所以它只能给你一个"流程正确"的框架,里面的细节还是要你自己去调整、补充。
这反而指向一个挺实用的工作方法:
先让它把框架搭起来,然后你再慢慢往里面补自己的 know-how 和方法论。
对于任何有一定经验积累的领域,这都是一个不错的起点——你省下的是"把流程结构化、把文件格式定下来、把阶段间的衔接和备份写好"这些工程性的苦力活,而不是你的专业判断。专业判断这部分,AI 替不了,也不该替。
6.1 几个需要预期管理的点
基于这次实操,有几件事值得提前知道:
- 开发耗时比想象长。一个四技能的纯工作流插件,跑了一个多小时。
- 安装 ≠ 加载。找不到新插件时先重启。
- 复杂的界面改造目前不顺利。以现阶段 Harness 加上 DeepSeek 模型的能力,复杂的布局改造或功能模块,往往要反复打磨好几轮才能接近你心里想要的效果。
- 网上那些很酷的"魔改界面",有可能不是用 DeepSeek 开发的——开发者用 Codex 或 Claude Code 开发好,再装进 Harness 里。这么做完全没问题,Harness 的插件接口对谁都一样开放,选哪个 Agent 来写代码是你的自由。
- 对话式开发要配合项目隔离。每换一个项目就新建一个文件夹,避免产出文件和插件源码互相污染。
七、这套方法还能用在哪
把上面这套路径抽象一层,它其实是一个通用范式:
用一个"元工作流插件"(插件经理)去生产"业务工作流插件",宿主提供统一的加载与运行时。
沿着这个思路,下面这些都是同一类活:
- 补齐 Harness 缺失的能力:文件树侧边栏、产出物预览、会话导出、token 用量看板;
- 把你已有的 SOP 插件化:竞品分析、周报生成、代码评审清单、客户需求单拆解——凡是你已经能写清楚"分几步、每步输入输出是什么"的流程,都可以走这条流水线;
- 多阶段内容生产:本文的剧本拆解只是一个样本,播客选题→大纲→逐段稿、产品文档→FAQ→客服话术,结构上是一模一样的三段式;
- 界面级改造:Creator Mode + 八个 skill,把 Harness 改造成某个垂直场景的专用工作台(比如真把它做成一个剧本创作工作台)。
小结
DeepSeek Harness 这次"一切皆插件"的思路,我认为方向是对的:没有特权内核、官方插件和你的插件走同一条通道、插件卸载时副作用可逆——这几条加在一起,意味着这个宿主的上限不由 DeepSeek 决定,而由社区决定。开源两周不到,社区插件已经数百个了。
但也得说清楚现状:它整体还处在比较早期、偏实验的阶段,未来还有很长一段迭代的路要走。文件树这样的基础体验还缺,复杂界面改造还不够顺,模型在"没有领域 know-how 输入"时也只能给你流程正确的空架子。
不过这恰恰是值得现在就跟一跟的理由。它代表的是一个新方向——Agent 不只是被你使唤的工具,它可以改装自己所在的那个壳。本文这个案例走到最后其实是一件挺有意思的事:用 Harness 上的一个插件,开发出了另一个 Harness 插件,然后装回 Harness 自己跑起来。 这种"左脚踩右脚"的玩法能走多远还不好说,但至少现在,它已经能把一个流程正确的骨架,一个小时之内交到你手上。
剩下的,是你往里面填什么。
参考链接
- deepseek-ai/deepseek-harness · GitHub —— 官方仓库(MIT)
- DeepSeek Harness 中文 README —— 一键安装与源码安装
- DeepSeek open sources an agent harness where everything is a plugin · The New Stack —— 架构与模式介绍
- DeepSeek 正式开源 Harness:它终于有了自己的 Vibe Coding 入口 · 新浪科技 —— 发布时间线
- DeepSeek Harness 安装教程 · 菜鸟教程 —— 中文安装步骤速查
本文第三至六节的实战过程,整理自一期公开的 DeepSeek Harness 插件开发实操视频记录,「插件经理」与「剧本拆解工作流」两个插件均由原作者开发并已开源,版权归原作者所有。
💬 评论