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 模式整个就是围着这个能力建的。
拿 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 的人现在就该上手,想换生产主力工具的人建议再等一个版本。
参考链接
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





