8 月 13 日晚上,DeepSeek 干了两件事。
先宣布 API 调价,几个小时后,甩出了 DeepSeek Harness v0.1 开发者预览版,MIT 协议,代码全开。
我们当晚就装上了。一行命令的事:
Plain Text
npx @deepseek-ai/dsh web
浏览器打开你自己的本地网址就进去了。
在这里可能要先说说 Harness 是什么,因为预感接下来这词要爆。
它的原义是马具,缰绳。在 agent 语境里,它指模型之外的那一整套工程外壳——让模型能读文件、调工具、管上下文、失败了重试、连续干活几个小时的系统。
DeepSeek 官方的说法是,模型是 agent 的灵魂,harness 让 agent 在真实环境里理解处境、使用工具、持续工作。Claude Code 商业上跑通之后,这一层成了所有模型公司的必争之地,DeepSeek 今年 3 月挖来前 Jane Street 工程师崔添翼,专门组了个团队干这个。
当时,所有人都以为 DeepSeek 要做的是自己版本的 Claude Code。
直到 DeepSeek Harness 上线。
一个骨骼轻奇的产品
打开 DSH,是一个网页版的 coding agent。
左边是会话列表,按工作区组织,一个工作区对应你本地的一个项目目录;中间是对话区,你说需求,它读文件、写代码、跑命令,每一步的工具调用都摊开在时间线上。整体观感介于 Claude Code 和一个网页 IDE 之间,只是它跑在你自己的机器上,界面开在浏览器里。
它自带四种模式。
标准模式是全套:文件编辑、shell、文件和网页搜索、技能、规划、目标管理、子 agent、工作流,一个完整的编程 agent。
PTC 模式换了一种干活方式——工具通过一个 Code Mode SDK 暴露给模型,模型直接写一段 TypeScript 程序,把本来要一来一回调十次的工具操作合并成一次执行。
极简模式做减法,只留一个持久 bash 和一个文件编辑器,两个工具。官方说这是给模型做基准测试用的——外壳的花活全部拆掉,看模型的裸实力。
创造模式最特别,它是用来造新模式的,这个后面是我最想细说的。
除了模式,DSH 还有一个我们认为被低估的设计,叫 Trajectory(轨迹)。模型看到的一切——系统提示词、推理过程、工具调用和结果、子 agent 的调度、每一次上下文注入——全部记录在一份只增不改的会话日志里。你可以在 Trajectory 视图里按来源逐条检查这些记录,而恢复会话、分叉会话、搜索、回放,全在同一条事件流上操作。相当于 agent 的每次运行都自带一个黑匣子,出了问题可以完整复盘它到底看到了什么、为什么这么做。
到这里为止,它似乎就是一个设计得相当扎实的 Claude Code 平替:免费,开源,本地跑,可追溯。
然后我们点开了它的插件页面。
这一夜就没睡成。
288 个插件仓库,和一只鲸鱼娘
DeepSeek 给 Harness 的口号就是:一切皆插件。
DSH 的插件生态入口很朴素,GitHub 上一个叫 dsh-plugin 的 topic,谁的仓库打上这个标签,就能被发现。社区已经建了目录站,其中一个叫 awesome-dsh-plugins 的仓库做了每日兼容性追踪,我们看的时候,它收录了 288 个插件仓库。
注意,这是一个发布还不到 24 小时的产品。
288 个仓库不是一夜冒出来的。翻一下 dsh-external 这个社区组织就明白,里面有 "DSH 内测群聊日记归档 "、" 内测用户排行榜 " 这样的仓库——这个生态在内测期已经建设了一个多月。
我们从目录里开始挑着装。
先体验了几个:
dsh-plan-execute,一个双模型路由插件。plan 模式用推理型模型做规划,用户批准后自动切换到执行模型干活。两个模型各干各的擅长的事,账单立省一截。
dsh-vision,给纯文本的 DeepSeek 模型装一双眼睛。它加一个 view_image 工具,桥接任意 OpenAI 兼容的视觉模型,DeepSeek 负责思考,另一个模型负责看图。
装完这两个插件,我突然发现,这里面一个改的是 " 用哪个模型 ",一个改的是 " 模型有什么能力 "。
而在 Claude Code 里,这两件事根本轮不到用户碰的——模型是 Anthropic 定的,能力是 Anthropic 给的。
但在 DSH 里,它们和换个主题皮肤是同一个操作。
就这么简单。DeepSeek 认为,这就是个皮肤。
接下来我发现, 甚至模型,在这个系统里同样没有特殊地位。
DeepSeek 自己家的模型也没有。它也就是又一个插件而已。
这种思路下,其他插件就开始显得更加放飞。
dsh-qq2006,把整个界面换成 2006 年 QQ 的皮肤。dsh-ui-whale,标题栏常驻一只手绘像素鲸鱼,平时眨眼,偶尔摆尾。还有whale-girl,QQ 宠物形态的鲸鱼娘桌宠,可以拖拽、投喂。
dsh-ads,一个我们看到简介就笑出声的插件—— " 是兄弟就来蹬我!",给 DSH 的 Web 界面加上 2005 年中文站点风格的侧栏广告。然后目录里紧挨着就有一个dsh-anti-ads,专门屏蔽上面那个插件的广告。
广告是插件,去广告也是插件。这个生态自己已经完成了一轮攻防。
dsh-stock-market,简介原话:" 有效解决了写代码的时候账户不能同时亏钱的 BUG。"
dsh-lazyfish,右侧摸鱼面板,内嵌 B 站播放器。dsh-gomoku,和 AI 下五子棋,也可以让两个 AI 对下,看哪个棋力强。
这,谁不都得玩上瘾?
这不就是《我的世界》吗
装了一些玩的不亦乐乎后,一种熟悉感越来越强。
皮肤、桌宠、小游戏、能改掉一切的 mod、民间目录站、整合包——这套东西太熟悉了。
这不就是《我的世界》。
DSH 本体是原版生存模式,功能齐全但朴素克制;插件是 mod;awesome-dsh-plugins 这类目录站是 CurseForge 和 MC 百科;社区里那些打包发布的仓库—— dsh-mega 直接自称 "dsh 整合包 "。
甚至,deepseek-harness-distro 干脆就叫自定义发行版——是整合包作者;教育版 dsh-edu,对应 MC 教育版。
连 mod 加载器都有对应物:dsh-external 组织里真有一个插件叫 fabric,简介是 " 一种类似 MC Fabric 的 hook 处理器 "。Fabric 是《我的世界》最主流的 mod 加载器之一,很显然,起这个名字的开发者,把玩了一阵 DSH 后,想的和我是同一件事。
这个类比有意思的地方在于《我的世界》的商业史。
原版 MC 从来不是这个游戏的全部,恰恰因为原版足够朴素、足够可改造,mod 社区才替它长出了无穷多个版本的 MC,这个游戏才活了十几年还在长大。Mojang 卖的从来不是一个封装好的游戏,是一块可以被无限改造的地基。
DSH 被社区当成的,也是这样一块地基。
不新鲜的热插拔被玩出花
然后我开始看他们官方发的技术细节的介绍。其实,这些 mod 能像 MC 那样随装随卸,靠的是一个很硬核的技术底座。
DSH 的内核叫 Cordis。它出自 Koishi 社区——国内做 QQ 机器人的开发者几乎人人知道的聊天机器人框架,作者是 GitHub 上的 Shigma。
Cordis 是从 Koishi 里抽出来的微内核:依赖注入,插件之间靠服务和事件通信,最关键的一个特性叫 " 可逆副作用 " ——每个插件注册时产生的所有副作用都被追踪,卸载时自动回收,不留垃圾,不漏内存。
这个特性翻译成使用体验,就是热插拔。
装一个插件、卸一个插件、换一套 UI,都不用重启,系统跑着跑着就把自己的一部分换掉了。我们装卸那二十几个插件的过程里,DSH 一次都没重启过。
而模型、工具、技能、会话、沙箱、存储、循环、调度、UI ——官方文档明确列出来,这几个明明最核心的功能,全部都是插件。连你打开自己网址看到那个界面本身,也只是一个默认挂载的插件。
沙箱方面,社区里有 sandbox-micro、sandbox-mxc、sandbox-nono 三个沙箱插件,对应三种隔离方案,挑一个换上就行,也就是说,agent 在什么样的笼子里跑代码,也是配置项。
另外,DSH 生态里还有一整排 " 远程渠道 " 插件:qqbot、dsh-weixin-bot、dsh-feishu-bot、dsh-wecom-bot、telegram。装上之后,DSH 就有可能变成一个能在 QQ 群、微信、飞书里被 @的机器人。
所以,Cordis 从聊天机器人框架里被抽出来,去给 DeepSeek 当 agent 内核,然后社区用它做的第一批事情里,就包括把这个 agent 接回 QQ 和微信。
转了一圈,Koishi 的魂回来了。
不是又一个 Claude Code,而是要干死 Claude Code
后半夜我去装的第三批插件,全是冲着别人家产品去的。
dsh-cc-tui,把 DSH 的交互换成 Claude Code 风格的全屏终端,像素鲸鱼顶栏,流光大字,双击 Esc 回退。dsh-opencode-server,给 DSH 实现了 opencode 的 API,直接拿 opencode 的 TUI 当 DSH 的前端用。dsh-pi-adapter,让 pi 这个编码 agent 的扩展直接跑在 DSH 里。official-plugins-port,把 Claude Code 和 Codex 的官方插件移植成 DSH 插件。
dsh-session-hub和cross-harness-cite更进一步,前者把 opencode、Claude Code、Antigravity 的会话历史导进 DSH 变成可续写的会话,后者让你在 DSH 的对话里直接引用 Claude Code 的历史对话。
我试着导入了自己 Claude Code 的会话记录,接着聊,居然是通的。
盯着屏幕上这个长得像 Claude Code、连着聊天软件、用着别家会话历史的东西,一时说不清自己在用什么。
你发现 tmd 它可以长成任何一个竞品的样子,因为它自己没有样子——它是一个挂载点系统,上面恰好挂了这么一堆东西而已。
软件史上把 " 一切皆插件 " 当口号的最著名产品是 Eclipse。2004 年前后它把整个系统重构到 OSGi 内核上,提法和今天 DSH 几乎一字不差,everything is a plug-in。那之后 Eclipse 就不再是一个 IDE 了,它变成一个平台,Java IDE 只是跑在上面的一个官方发行版,后来从 NASA 的火星车操控界面到银行柜台系统都构建在它上面。
DSH 可以说是在重演这个过程。
它的四个官方模式,说白了就是四份插件配置清单,四个官方发行版,和社区那些整合包没有地位差别。DSH 的 " 本体 " 在这些东西下面沉下去了,已经是一个内核加一套协议的味道了,再拿原版 MC 比喻,它已经沉在几万个 mod 下面。
然后就是因为此,我的世界把其他同类游戏给干掉了,活下来活得最久。
再回头看官方发布公告里的用词,DSH 说的是,自己 " 面向全球 harness 开发者开放 " ——欢迎的不是用户,是同行,是那些自己也在造 harness 的人。
用了一晚上,我感觉认为它是一个 DeepSeek 版的 Claude Code 的想法完全错了。
Claude Code 是一个意见极其强烈的产品。工具集定死,权限模型定死,上下文怎么压缩、子 agent 怎么调度,全是 Anthropic 单方面决定的。更关键的是这些决定和模型一起演化—— Anthropic 用自己的 harness 训自己的模型,模型行为和外壳设计互相咬合。
然后用户的订阅费买的就是这套咬合,别人拆不开,也抄不走。Harness 在 Anthropic 手里是产品,是收入,是壁垒。
如果 DSH 想做的是一个思路相同但更好的竞品,它的路径应该是功能对齐、体验打磨、然后推一个订阅。
但它一样都没做。
它从第一天选的路径就是把这个品类本身开源掉。
不跟你比谁的缰绳编得好,直接宣布缰绳这个东西不该收钱。看你有啥辙。
这套打法很容易就让人想到 R1 开放权重的时候,OpenAI 藏在 API 后面高价出售的推理能力,一夜之间变成了人人可以下载的东西,o1 的稀缺性没了,OpenAI 被迫降价、调整整个产品节奏。
当时它对准的是闭源模型的溢价。这一次,DSH 对准的是闭源外壳的溢价:Anthropic 靠 Claude Code 把 harness 做成壁垒,DSH 想要从第一天的设计上,就直接让它标价为零。
这些当然不是做公益,DeepSeek 有自己清晰的算盘。
Anthropic 需要 harness 值钱,因为它卖的是模型加外壳的整体;DeepSeek 需要 harness 不值钱,因为这一层一旦被拉平成公共品,竞争就被压回模型本身的能力和价格上,那现在已经是 DeepSeek 的主场了。
这也是为何 API 调价和开源 DSH,会发生在同一个晚上。DeepSeek 需要价格和产品配合起来,开始打仗。
当然,从目前的反馈看,人们对 DSH 的感受是两极分化的,批评它故弄玄虚的也开始涌现。
这一晚上的体验里,也不全是正向体验。做每日兼容性追踪的目录仓库里,就出现了不稳定性,静态判定 41 个兼容、31 个关注、9 个需适配、188 个待调研。运行级实测写着测了 5 个,可用 0 个,失败 5 个。
官方 README 倒是也把丑话直接用全大写字母标出:
THERE WILL BE COMPATIBILITY-BREAKING CHANGES,一定会有破坏兼容性的变更。
以及,安全这块可能会带来更大隐患和变数,dsh-external 组织里有一个叫 dsh-security 的仓库,简介是 "DSH 现有的可行的攻击链 demo"。
一个人人可以往里挂插件、插件能碰你的 shell 和文件系统的架构,攻击面有多大,不用我多说了。
现在,一切都刚刚开始,接下来我们会继续密切使用 DSH,看看它带着一整个生态能走到多远。


登录后才可以发布评论哦
打开小程序可以发布评论哦