mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
3520 字
9 分钟
DeepSeek Harness 上手三天:一切皆插件是真的
2026-08-16

08-13 晚上,DeepSeek 一口气端出两样东西:V4-Pro 正式版,和一个开源的 agent harness(智能体工具链)。我直奔后者。盯着 GitHub 仓库页 README 上那句 “Everything is a plugin”,我顺手 clone 了下来,一折腾就是三天。

这篇是三天实录,也是上一篇 大模型斩杀线 结尾挖的坑:“harness 这一刀值不值,我下篇专门拆”。读完你手里会有四样东西:一条十分钟跑通 DeepSeek Harness 的命令序列、Claude Code 概念到 dsh 插件的对照、三个我打算直接抄走的上下文细节,还有那个欠了三天的答案。

十分钟跑起来:一行 npx 和四种模式#

跑起来的成本比预想低,前置只要 Node.js 20 以上,其余一行命令:

npx @deepseek-ai/dsh web

第一次启动的观感有点特别:终端先刷出一整屏插件加载行,绿勾一路排下去,那是 Cordis 内核在逐个挂插件;刷完自动拉起浏览器,落在本地页面。首次运行要配一次模型 API key,我在设置页填的,环境变量也行,之后不用再管。

dsh 有四种模式,第一次启动会让你选,之后在界面里随时切:

模式给谁用里面有什么我拿它干了什么
Standard日常使用完整编码 agent:全量工具、技能、审批改我自己站里的组件,对标 Claude Code
Code想编排流程的人模型现场写 TypeScript 来编排工具调用让它现写脚本批量重命名图片
Minimal跑分与复现只有 bash 和 str_replace_editor 两个工具官方基准测试的口径,见后文误区
Creator插件开发者运行时热插拔插件调试拆插件的主战场,也在这崩过一次

我在 Standard 里扔的第一个真实任务,是给我站里一个 React 组件加暗色模式的过渡动画。它先读组件和样式文件,改完自己跑构建,报错又自己修了一轮,我只在审批弹窗上点了几次确认。同一个活我上周在 Claude Code 里干过,体验差距不大,差距在细节:dsh 的审批弹窗更密,v0.1 对每一步都更谨慎。

用得最多的是 Standard 和 Creator。Code 模式玩过两次,看模型自己写胶水代码串工具调用,适合一次性批处理。Minimal 平时用不上,但它有个特殊身份先按下:官方跑分就是拿这套只有两个工具的最小配置跑的,这个信息后面要还的。

“一切皆插件”到底是什么:拿 Claude Code 的概念对照一遍#

这句口号是在 HN 上被吐槽最狠的一句,08-13 的主帖里有人说不知道它在说什么,还有人嫌官网文案 AI 味重(讨论帖)。我第一眼也当它是营销话术,拆完源码改主意了:这句口号字面意义上是真的。

内核叫 Cordis,干两件事:依赖注入(dependency injection)和热更新(hot reload)。模型、工具、技能、会话、沙箱、存储、Agent 循环、UI,全部做成插件(plugin),每一个都能用配置换掉,源码一行不动。

热更新单独说一句:改插件代码不用重启,保存即生效。对我这种改一行想看一眼效果的人是刚需,Creator 模式整个就是围着这个能力建的。

flowchart TB subgraph P["全是插件"] M["模型"] T["工具 / 技能"] S["会话 / 沙箱 / 存储"] L["Agent 循环"] U["UI"] end P --> K["Cordis 内核<br>依赖注入 + 热更新"] C["你的配置文件"] -.->|"不改源码,替换任意一层"| P

拿 Claude Code 的概念对照一遍,迁移成本心里就有数了:

你在 Claude Code 里熟悉的在 dsh 里对应什么我的实测记录
Skills(技能)技能也是一个插件挂载思路一致,写法换成插件配置
Hooks(钩子)hook 文件可原样扔进 dsh 工具管线跑官方明说的兼容承诺,我搬了一个真跑通
MCP 外部工具对位的是工具插件思路一致、接口不同,迁移要写层薄适配
CLAUDE.md被软链到 AGENTS.md下一节细说

举一个配置替换的实例:我想挪会话的存储位置,文档里没找到说明,翻源码定位到存储插件的名字,配置文件里写两行就换了。这就是口号的意思:不是什么都长得像插件,是连接点真的都留出来了。

三个我打算直接抄走的上下文管理细节#

糙归糙,有三个设计是我这三天里最值钱的收获,每一个都值得抄回自己的工作流。

**细节一:CLAUDE.md 被软链(symlink)到 AGENTS.md。**很多仓库同时躺着两份指令文件:Claude Code 读一份,其他工具读一份,内容八九成重叠。手维护两份,漂移只是时间问题,我自己的站就漂过,改了一边忘了另一边。

dsh 的做法是软链加加载时去重,官方的表述是”从构造上消灭两份文件的漂移”。抄法很简单:一份文件当唯一事实源,另一份只留指针,谁也不手抄谁。我看完这段的当天,就把站里那两份合了一份。

**细节二:工作区指令文件共 65,536 字节预算,超了按具体性淘汰。**所有工作区指令文件共享一个 64KB 预算,装不下时按”先丢宽泛文件、最后截断最具体文件”的顺序出局。

这个顺序讲道理:宽泛的通用守则到处能抄,便宜;越具体的越贵,人工写的、贴着当前项目,所以让便宜的先走。抄法:别把指令堆进一个大文件,按具体性分层放,最具体的单独放,预算紧张时它们活得最久。

**细节三:压缩(compaction)指令挪到请求尾部,未使用的工具 schema 保留。**这条正中我 7 月的实测:621 个会话、15,308 轮请求,中位数一轮读 42,882 token,九成以上是系统提示、工具定义和历史对话这些常驻前缀,完整账单在 实测 Coding Agent 的 token 账单。

缓存省钱的前提是前缀逐字节一致,谁在中间插一句话,整条缓存链就碎——这不是调参能救的,是构造问题。dsh 把压缩指令从请求头挪到尾,连没被用到的工具 schema 都留着不删,就为不动前缀。我 7 月靠数账单才发现这个规律,人家把它做成了构造,这就是差距。

没有跨会话记忆:插件生态已经在补位#

会话是 append-only(只追加)的事件流(event stream),fork、resume、搜索、回放都支持。我的进程崩过一次,resume 回来历史一条不丢,这是事件流的功劳。

但跨会话记忆没有:这次会话记住的事,下次启动它不认识你。官方仓库里躺着一个跨会话记忆提案,到我写这篇为止还停在 proposed 状态。社区手速倒快,发布没几天,好几个记忆插件已经冒头补位。

这个走向我在 Agent 记忆架构全景 里押过:K3 把记忆烧进权重是模型侧路线,harness 把记忆做成插件是工具侧路线,两条不冲突,外挂派的空间还在。事件流的设计还给了记忆插件一个干净的挂点:回放事件就能重建状态,不用自己发明存储格式。现在就挑记忆插件还太早,等淘汰策略卷出差异再选不迟。

误区拆解:模型强就行,harness 只是随便换的壳#

常见理解:官方公式 “Agent = Model + Harness” 里是个加号,harness 看着像加项、配角。所以选型只盯模型跑分,谁分高用谁,harness 随便挑个顺手的。

为何错:dsh 的 Minimal 模式是官方基准测试的跑分口径,只有 bash 和 str_replace_editor 两个工具。你看到的分数是”模型 × Minimal harness”的联合成绩,不是模型裸分。工具从全套砍到两个,同一个模型能跑出另一份成绩;换个 harness,等于换了一张卷子。拿这份分去跟别的 harness 里的模型分直接比,是跨卷子对答案。

正确理解:把 harness 当成选型变量,公式当乘法读:Agent 成绩 = Model × Harness。选型时固定一个、换另一个做对照,才有资格谈”哪个模型强”。以后看到跑分,先问一句:这分是哪个 harness 跑出来的。

举个具体例子收尾:同一个模型,在 Minimal 里只有 bash 和文件编辑两个工具,复杂重构的成绩大概率比 Standard 里差。这时你骂”模型不行”,冤枉的是模型,账要算在 harness 头上。

v0.1 的糙:我踩的三个坑#

三天踩的坑,按疼的程度排。

**坑一:文档跟代码没对齐。**README 简短,配置项基本没文档。我照仓库示例抄了一段会话存储配置,启动直接报 unknown key,翻源码才发现示例里的字段名比代码旧。改出来靠的是对着类型定义一个字段一个字段摸。

**坑二:Creator 模式热插拔会崩。**我连着卸载再装同一个工具插件,第三次进程直接挂了。万幸会话按事件流落盘,重启 resume 历史一条不少,但崩掉那一轮的输出丢了,得重跑。

**坑三:遇到 bug 只能等。**v0.1 阶段不接受外部 PR,我那个 unknown key 搁普通开源项目顺手就能提个 patch,在这里只能本地改着用,改完还没法贡献回去,这个体验挺拧巴。

顺带说说 HN 那两极:赞的人真赞产品,吐槽的人集中火力于文案。产品本身和包装,确实是两个完成度。

值不值这一刀:设计 9 分,成熟度 6 分#

我的打分:设计 9 分,成熟度 6 分。

设计给 9 分的理由:口号经得起拆,三个上下文细节有真实的品味,审批的 fail-closed(失败关闭)设计也加分。应答者缺失、不是持有者、抛异常,一律按 unavailable 处理,宁可不放行也不侥幸;凭据只传环境变量引用不传值。这些都是想清楚了才动手的痕迹。

成熟度给 6 分的理由:开发者预览(developer preview)四个字是认真的,文档缺、示例旧、会崩、不收 PR。当教材、当玩具都行,当生产主力不行。

所以结论是:值得试,但分人。想搞明白 harness 这层到底在干什么的人,现在就上手,坑我替你踩过了。只想找个稳定工具把活干了的人,再等等。三类人先别碰:拿它当生产主力跑客户项目的、期待文档齐全开箱即用的、受不了报错只能自己翻源码的。再等一两个版本不丢人。

回看上一篇留的问题:“执行层会不会被下一刀斩”。三天下来我的读法是:这一刀与其说斩别人,不如说 DeepSeek 给 harness 该长什么样公开了一个参考实现,把自己变成了标尺。设计会被抄走,但插件生态一旦长起来,这层就长出了护城河。

十分钟上手清单#

每步可复制粘贴,预期输出写在注释里(v0.1 阶段回显,插件行数你的机器上未必一样):

# 第 0 步:确认 Node.js 版本,需要 20 以上
node -v
# 预期输出:v20.x.x 或更高
# 第 1 步:不装任何东西,直接起 web 界面
npx @deepseek-ai/dsh web
# 预期输出:一整屏插件加载行,末尾两行类似
# ✔ cordis kernel ready (v0.1.0)
# ✔ web ui listening on http://localhost:3210
# 浏览器会自动打开本地页面
# 第 2 步:首次启动配一次模型 API key(设置页或环境变量,配完不用再管)
# 第 3 步:新开会话,模式选 Standard,扔一个真实小任务进去
# 建议用你手头真要改的代码,toy 示例跑不出体感
# 第 4 步:想读源码就 clone 下来(TypeScript,MIT 许可)
git clone https://github.com/deepseek-ai/deepseek-harness.git
# 第 5 步:切到 Creator 模式,装一个最小插件再卸掉,感受热插拔
# 提醒:连插拔几次有概率把进程搞崩,崩了 resume 回来就行

这周末抽十分钟照着跑一遍,再在 Creator 模式里写一个最小插件,你对”一切皆插件”就有体感了。

前瞻留两个钩子。一是记忆插件生态值得盯:官方提案停在 proposed,社区插件已经起跑,谁先把淘汰策略做扎实谁占坑。二是等它开放接入第三方模型之后,同一套 harness 换模型的对照就有了,到那时误区里说的”联合成绩”能拆成两个变量,跑分才真正可比。盯到有意思的,我照旧来交作业。

一句话结论(2026-08-16):DeepSeek Harness(08-13 开源的 v0.1 开发者预览)把模型、工具、技能、会话、UI 全部插件化,设计 9 分、成熟度 6 分:研究 harness 的人现在就该上手,想换生产主力工具的人建议再等一个版本。

参考链接#

  1. DeepSeek Harness GitHub 仓库(TypeScript,MIT)
  2. DeepSeek Harness 官网(developer preview)
  3. Hacker News 主帖讨论(2026-08-13)
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

DeepSeek Harness 上手三天:一切皆插件是真的
https://www.moonzj.com/posts/deepseek-harness-guide/
作者
张敬
发布于
2026-08-16
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

相关文章 智能推荐
1
大模型斩杀线:被杀的从来不是模型
技术 大模型斩杀线不是某次降价事件,而是一条随前沿能力上移的能力/价格比基准线。本文用 V4-Flash 的 0.28 美元与 82.7 分、08-06 涨价和 K3 开放权重三个锚点,拆解它斩的不是模型而是旧定价结构,附当天可用的三步验价比方法和实例。
2
Agent 的第一次"越狱"不是提示注入,是共谋
技术 约 18,000 个自称 OpenAI 的自主 agent 曾把一个德文 wiki 当成秘密留言板,共享答案、交换沙箱逃逸技巧。本文拆解 agent 威胁模型的三代升级:犯错、泄密、共谋,解释为什么单机沙箱防不住网络副作用,并给出检查 NO_PROXY、配置 egress 白名单等五条当晚可用的自查清单。
3
MCP 无状态化解读:把会话还给应用层
技术 MCP 7 月 28 日的大版本把传输层改成无状态:移除协议级 session 与 initialize 握手,会话语义上移到应用层。本文用对比表拆解改了什么、为什么这是 MCP 从插件协议走向 HTTP 级基础设施的一步,附最小 server 验证代码与迁移检查清单。
4
Kimi K3 记忆架构拆解:KDA 把遗忘变成了学出来的能力
技术 Kimi K3 用 KDA 恒定状态递归记忆、MLA 周期精确检索和 AttnRes 深度回读,把记忆的淘汰与检索从向量库外挂移进了模型权重。本文拆解 KDA 谱系与宏循环结构,讲清它和 RAG 外挂的区别与边界,读完你能判断自己的 Agent 要不要继续外挂记忆。
5
Agent 记忆架构全景 — 从虚拟上下文管理到 MCP 驱动的 RAG
技术 聚焦长期运行智能体的记忆瓶颈:上下文窗口有限、信息容易被遗忘、调试成本高。结合 MCP、RAG、Skills、Hooks 等技术,提供一套结构化、可落地的记忆方案。

目录