大数跨境

DeepSeek Harness v0.2.2-alpha.2:一个 alpha 版写了 116 条变更,49 小时 2161 个提交

DeepSeek Harness v0.2.2-alpha.2:一个 alpha 版写了 116 条变更,49 小时 2161 个提交 创见AI实验室
2026-10-28
107
导读:DeepSeek Harness 发了个 alpha 版:116 条变更、2161 个提交。我用 Node 22 把它跑起来了——写进包里的版本要求,其实拦不住人。
dsh022-01-cover.png

系列导航:这是「DeepSeek Harness」系列的第一篇,写的是 v0.2.2-alpha.2 这个预发布版本。

本文目录

  • 一、先说清这是什么东西
  • 二、116 条是怎么构成的
  • 三、五件值得单独拎出来的事
  • 四、它是怎么拼起来的:四层剖面
  • 五、我在 Node 22 上把它跑起来了
  • 六、升级前要改的八件事
  • 七、怎么升
  • 八、一句话

一、先说清这是什么东西

DeepSeek 前段时间开源了一个叫 DeepSeek Harness 的东西,命令叫 dsh。

它不是一个模型,而是"装模型的壳"——你在里面选模型、给它工具、交给它任务,它负责调度、执行、把结果给你看。官方的说法叫 agent harness,中文一般叫"智能体框架"或者"智能体客户端"。

有三件事值得记住:

第一,它火得离谱。 8 月 13 日建仓,到今天 76 天,26.4 万 star、3.2 万 fork。这个速度在开源项目里属于异常值。

第二,它有三种形态。 桌面应用、浏览器里的 Web UI、命令行里的 tui 和 headless。三种形态共用一套内核,装哪个看你习惯在哪儿干活。

第三,它的架构叫"一切皆插件"。 底座是一个叫 Cordis 的框架,工具、技能、界面、甚至会话怎么存,全都是插件。好处是能替换、能自己写;代价是——每次内核一动,插件就得跟着动。这一点是理解这次更新的钥匙。

二、116 条是怎么构成的

先说这版有多密。

官方在 release notes 里写了 116 条变更,分成四类:

类型
条数
占比
修的是什么
问题修复
46
39.7%
已经发布出去、但坏了的东西
体验优化
36
31.0%
能用 → 顺手
其他变更
23
19.8%
协议、接口、依赖——写插件的人才受影响
新增功能
11
9.5%
真正"以前没有"的东西
dsh022-02-anatomy.png

这个比例本身说明了一件事:它不是"加功能"的版本,是把上一轮铺开的东西压实的版本。新增只占不到一成,修复接近四成。

再看跨度。上一个 tag 和这个 tag 之间隔了 49 小时,GitHub 的 compare 口径是 2161 个提交。

2161 个提交,提炼出 116 条能给用户看的变更——平均每 18 个提交才有一条。剩下的是重构、测试、琐碎调整,写进日志也没人看。写这 116 条的是 28 个人。

还有个细节挺有意思:npm 上的包比 GitHub 的 release notes 早了 7 小时 40 分。北京时间 10 月 28 日凌晨三点多,@alpha 标签就指到新版了;上午十点五十,GitHub 上才挂出这份 116 条的说明。也就是说,凌晨那段时间装包的人,拿到的是一个"没有说明书"的新版本。

顺带一提,GitHub 上紧挨着它还有一个 dsh-v0.2.1-rc.4 的 release,发布时间比它早 56 秒,正文只有一条修复。两个 release 挤在一起发,是补上一条漏掉的日志。

三、五件值得单独拎出来的事

116 条里大部分是细节,但有五件是能改变使用方式的。

1. 插件管理终于能"管"了

以前插件页更像一个开关列表。这一版加了三件事:插件详情支持富文本(不再是纯文本堆着)、支持更新第三方插件包、热更新失败会自动回滚到旧版本。

第三条最实用。装第三方插件最怕的就是更新完起不来,还得手动删目录。现在它会自己退回去。

2. 会话可以开在独立的 Git 工作树里

这是这一版最"重"的新功能,叫「变更请求与工作树」,还在实验阶段。

它做的事是:让一个会话在单独的 Git worktree 里跑,跑完能直接看关联 PR 的状态和代码差异。你的主工作目录不会被动。

为什么重要——agent 改代码最怕的是"改到一半,你自己的改动被搅进去"。隔一个工作树,两边互不干扰。这个思路和很多团队已经在用的"一个任务一个分支"是一回事,只是它把这件事做进了产品里。

3. 开发者工具多了「统计」页

按轮次、按步骤看:上下文用了多少、缓存命中多少、模型花了多久、每个工具花了多久。

说白了就是让你知道时间和钱花在哪儿。以前只能感觉"这轮有点慢",现在能看出是模型慢还是工具慢、是缓存没命中还是上下文太大。

4. 能把活派给本机的 Codex 或 Claude CLI

新增一个实验性插件 subagent_oar,作用是把独立任务交给本机已装的 Codex 或 Claude 命令行去跑。

这个设计思路挺务实:不重新造一个子智能体,而是复用你机器上已经配好、已经付过钱的那些 CLI。

5. 引用一段聊天、把整段历史导成 Markdown

两个小功能,但用起来很顺:

  • 选中聊天里的文字,可以作为引用插进输入框,发送后显示成紧凑的引用块
  • 一段会话可以整段复制成 Markdown,还附带原始日志路径

第二个对写文章、写复盘的人特别有用——聊完的东西能直接落成文档,不用一句句复制。

另外这一版还加了六种语言:日语、西班牙语、法语、德语、俄语、巴西葡萄牙语。

四、它是怎么拼起来的:四层剖面

要看懂那些"破坏性变更",得先知道它的启动流程不是一个程序,而是按顺序摞起来的四层。

dsh022-03-stack.png

从上往下:

  • PROFILE:你装的是哪一形态——web、tui、headless、desktop。用 dsh --profile <name> 选一个启动。
  • PATCH LAYERS:你的覆盖层。可以叠,后面的压前面的,最后合成一份完整配置。
  • BUNDLES:插件束。工具、技能、界面、会话都在这层。
  • CORE:Cordis 内核,管服务、事件、插件的装卸。

这次的破坏性变更,几乎全在下面两层。普通用户基本无感,写插件的人躲不开——因为你要么动了工具执行的方式,要么动了会话状态的存法。

比如这一版把"原生工具执行"和"PTC 执行"拆成了两个插件,按 Agent 作用域选择用哪个。以前是一个开关 tools.mode,现在开关废了,改用配置 overlay。

五、我在 Node 22 上把它跑起来了

这一版第一次在 package.json 里写了最低运行时要求:node >= 24.9。

上一版连 engines 这个字段都没有。所以看到这条时我第一反应是:手边这台机器是 22.22.2,还能不能跑。

于是我走了一遍。

dsh022-05-node.png

结果是这样:

第一步,装包。 npm 抛了一句 EBADENGINE,明明白白写着要求 >=24.9.0、当前 v22.22.2。然后——没有然后了,它继续装完了。

第二步,dsh --version。 输出版本号 0.2.2-alpha.2,跟 release tag 对得上。

第三步,dsh --help。 完整帮助照常打印,profile、patch、dump-config 全在。

第四步,dsh web --no-open。 服务起在 127.0.0.1:3080,带 token,界面能正常打开。

四步全过。所以结论是:写进 engines 的"最低 Node 24.9"是一句声明,不是闸门。npm 只警告不阻断,程序也不自己检查版本。

dsh022-06-web.png

第一次启动会弹一个「预览版说明」,讲得很直白:0.2 版本仍处于预览阶段,产品功能和插件 API 都会继续快速迭代。点"继续"进主界面。全新配置下,插件页会要求你先登录 DeepSeek 账号或加 API Key,并说明"你的项目和文件保存在本地"。

配上已有的配置,插件页长这样:

dsh022-07-plugins.png

上半部分是内置插件配置(子智能体、网页搜索、Agent 循环、终端),下半部分是实验性插件。能直接看到这一版的新东西:变更请求与工作树、开发者工具(统计页就在里面)。

但能跑不等于该这么跑。 这一版同时上了 Node PTC 的 VM Script 模式,支持顶层 await 和动态导入——这类特性迟早会真的依赖运行时版本。临时试可以,长期用还是升上去。我把启动、开界面、看插件页都走通了,没崩,但这不代表它稳。

六、升级前要改的八件事

这一版的破坏性变更都写在「其他变更」里,混在 23 条中间,很容易划过去。我挑出会影响人的八条,按"会不会当场翻车"排了序。

dsh022-04-migration.png

真正会拦住你的只有两条:

一是 SSH 协议从 2 升到 3。 PTC 的 Node 控制通道改用了 birpc。如果你自部署了 bootstrap 或 SSH helper,必须跟着升,否则连不上。这条藏在第 23 条"其他变更"里,很不起眼,但影响的是"根本连不上"。

二是自定义插件要迁到异步会话投影句柄。 旧的注册方式和按 key 读取还留着兼容和弃用提示,但审批状态恢复现在要求同时提供 sessionProjections 并等待服务激活——不改会加载失败。

剩下的六条不致命,但都得跟着改:工具模式开关废了、取消返回码从 CODE_RUN_FAILED 变成 ABORTED、官方组合包改从 @deepseek-ai/dsh-official-bundles 导入、模型只能通过 agent.model 选、pi-ai 升到 1.3.0、Web Fetch 不再拒绝内网地址。

最后这条值得单独提醒:Web Fetch 以前会拒绝非公网地址,现在允许了,官方明确说"部署应自行限制网络访问"。以前靠它挡内网,现在得自己在部署层挡。

七、怎么升

先记住一件事:npm 上的 latest 标签现在还停在 0.2.1-rc.2,新版挂的是 alpha 标签。所以直接跑 npx @deepseek-ai/dsh 装的还是旧版。

Web / 命令行,走 npm:

# 跟 alpha 标签(会自动拿到 0.2.2-alpha.2)npx @deepseek-ai/dsh@alpha web # 或者锁死版本,更稳npx @deepseek-ai/dsh@0.2.2-alpha.2 web

服务默认起在 127.0.0.1:3080,会自动打开浏览器。不想开浏览器就加 --no-open。

从源码跑:

git clone https://github.com/deepseek-ai/deepseek-harness.gitcd deepseek-harnessgit fetch --tagsgit checkout dsh-v0.2.2-alpha.2pnpm installpnpm run buildpnpm dsh web

已经是旧版的话,git fetch --tags && git checkout dsh-v0.2.2-alpha.2 && pnpm install && pnpm run build 就够了,不用重新 clone。

桌面端: 去官网 deepseek.com/harness 下载预览版。GitHub 的 release 页面没有挂任何二进制资产,桌面端不走那里。

Node 版本: 建议升到 24.9 以上。虽然实测 22 也能跑,但这一版的新特性里已经有依赖新运行时的东西了。

八、一句话

76 天、26.4 万 star、39 个 npm 版本、平均两天发一版——这个节奏下,一个 alpha 版堆 116 条变更,不是"发布了一个大版本",而是"把过去两周的欠账一次性结算"。

四成修 bug、三成做优化、一成加功能,剩下两成是给插件作者看的迁移说明。这个结构说明项目还在高速塑形期:接口在动、协议在动、插件写法在动。

如果你只是用桌面端聊天、写文档,这一版对你最大的变化是插件能更新了、统计能看了、会话能开在工作树里。如果你在写插件,或者自部署了服务,先看第六节那两条"会翻车"的,再动手。


你更想让 DSH 补哪一块? 我是想看到「统计」页能导出——现在只能在界面里看,没法按周对比"钱花在哪一类任务上"。另外那个把活派给本机 Codex / Claude CLI 的插件,我已经打开了,下一轮准备专门试它:同一个任务,分别交给 DSH 自己的子智能体和外部 CLI,谁快、谁贵、谁靠谱。

精选系列





【声明】内容源于网络
0
0
创见AI实验室
创见AI实验室,我们不只是介绍工具,我们共同创造工作方式的未来。
内容 231
粉丝 0
创见AI实验室 创见AI实验室,我们不只是介绍工具,我们共同创造工作方式的未来。
总阅读22.6k
粉丝0
内容231