Skip to content

DeepSeek Harness 0.2.2-rc.2:接口没再动,默认值开始动你的文件 ​

2026 年 11 月 11 日 19:33(UTC+8),DeepSeek 放出 dsh-v0.2.2-rc.2,距上一个候选版 rc.1 整七天。

上一篇写 rc.1 时,结尾我留了一句:插件作者先别急着跟,等 rc.2 看看这批接口还会不会再动。现在可以回答——没动。 PTC 工具执行拆分、Session Projection 异步注册、SSH 协议 2→3,这三件 rc.1 里最重的事,rc.2 一件都没回退,只是接着往上长。

对生态来说这是好消息:迁移大概率是一次性的,不会让你改两遍。

但它同时带来一个更麻烦的问题。rc.1 的破坏你是看得见的——编译不过、启动报错、连不上。rc.2 的改动多数是默认值,你只能事后发现,比如某天归档一个会话,回头发现工作目录没了。

项目内容
版本dsh-v0.2.2-rc.2(Pre-release)
发布2026-11-11 19:33(UTC+8),target master
基线v0.2.2-rc.1,间隔 7 天
规模新增 3 / 优化 27 / 修复 26 / 其他变更 20,共 76 条
提交1,568 个(GitHub compare API 口径)
运行时Node.js ≥ 24.9(沿用 rc.1,非本版新增)
仓库MIT,TypeScript,约 27.9 万 star(API 读数)

七十六分之一 ​

把 76 条按性质摊开,形状很反常:新增只有 3 条,剩下 73 条全是优化、修复和迁移。

76 条变更按性质分三层:新增 3 条、体验优化与修复 53 条、默认值与边界 20 条,唯一会删本地目录的改动落在第三类

这是一版典型的「收口版」。rc.1 立骨架,rc.2 补肉。七天里 1,568 个提交,但用户能看见的新能力只有三条,其余的力气都花在同一件事上——把 rc.1 摆出来的东西,从「能用」推到「用起来不别扭」。

这不算贬义。agent 工具的真实体验差距,往往就来自那 53 条优化和修复,而不是多一个按钮。

工作树:从隔离目录变成审阅回路 ​

rc.1 的工作树解决的是隔离:会话跑在独立目录里,不污染你正在编辑的那份。rc.2 补的是另一半——审阅。

工作树的三段式回路:独立工作树隔离运行、按分支提交文件类型审阅、在 DSH 里直接处理 GitHub 评审并同步进度,最后回流到本地差异

四条新能力单看是清单,连起来才是一条回路:按分支、提交、文件类型切分差异 → 逐文件导航并标记已读 → 评论与意见直接在 DSH 里回到 GitHub PR → PR 更新后本地差异跟着更新、行号不串、已读进度还认得 → 继续看。

配套的修复里有一条很说明问题:修复 PR 更新后审阅差异与提交行号不一致。

这个 bug 只在「本地 diff 和远端 PR 同时看」的场景下才会出现,而 rc.1 根本没有这个场景。bug 的形状会暴露功能的方向——它比任何 roadmap 都诚实。

再配上「查看大型改动不卡」「大仓库创建工作树放宽等待时间」这两条,方向就很清楚了:这两条都不是加功能,是把上一版留下的性能债还掉,好让新回路真的能跑完一遍。

我的判断是,DSH 正在从「agent 运行器」往「审阅工作台」走。它跟 Cursor 那类 IDE 抢的不是同一个位置——它的差异不在编辑器写得好,而在改了什么都留得住、说得清。工作树、评审回写、已读进度,是这条路上必须的三块砖。

子代理:具名之后,等待才真正解决 ​

rc.1 修的是「等得省」:子代理返回前不再 sleep 轮询,只有结果没回来才结束当前轮次。rc.2 动的是结构。

子代理形态对比:左侧 rc.1 是三个匿名同层子代理,右侧 rc.2 是具名且可再分层的树,共享成员与任务面板

三件事:

  • 具名。名字不是装饰,它让「把这件事交给 Researcher」成为一次可寻址的指派,而不是「再开一个匿名子代理」。
  • 多层。子代理可以继续往下开,任务能接着收窄,不再是一个平面上摊开一堆。
  • 共享面板。AgentTeam 按会话开启,成员与任务面板共用一份;SDK 还能为新会话默认开启,恢复已有会话时保留你原来的选择。

配套优化里有条很容易滑过去:多层子代理读取失败后可以重试,并且能逐层展开、优先显示任务描述。

这条比「多层」这个功能本身更重要。层数越多,失败概率天然越高;一层读不到就整棵树空着,那种体验没人受得了。多 agent 的难点从来不是叫得动,而是错了以后能局部重来。

代价写在迁移项里:AgentTeam 改用统一的具名子代理,中断工具默认关闭。

为什么关,官方没说。我的推测是(注意,这是推测):多 agent 下「中断」的语义是含糊的——中断主 agent 时,已经在跑的子代理算不算一起中断?它们的产出要不要回收、能不能复用?语义没定清之前,默认关掉比默认开安全。这不是能力退化,是把没想好的东西先藏起来。

那 53 条在修什么 ​

26 项修复里,有一类属于「卡住 / 起不来」级别,值得单独拎出来:

  • 可选插件加载失败导致整个 Web 页面无法启动(必需插件失败才提示)。一个装坏了的可选插件,能把整个界面拖死——这条在 rc.1 时期应该是相当难受的。
  • 聊天更新出错后,历史加载和新消息显示持续卡住。错误处理没兜住,界面就永久停在那。
  • 桌面端多次启动后,鉴权信息累积到起不来。用得越久越容易中。
  • Linux 上存在长期后台进程时,会话加载与新建变慢。

四条都不在边角。它们的共同点是:故障发生在不常用的路径上,但一旦发生就是整个不可用。首个候选版有这类问题很正常,一周内修掉,节奏是对的。

优化侧挑几条对调 agent 的人真有用的:

  • 模型请求失败后的重试可配:条件、次数、等待时间都能在设置里选,以前是写死的。
  • 临时失败后直接点「继续生成」,不用再补一条没意义的消息。
  • 向上回看聊天时自动加载更早消息,且优先保持阅读位置。这条做对的产品不多。
  • 聊天里的代码差异显示增删行颜色,并按文件语言高亮。
  • 更多只读工具可以并行跑,结果仍按调用顺序返回。
  • 单次网页搜索默认支持 10 个查询、10 个来源。
  • 可展开工作区指令、技能目录,看清模型到底收到了什么上下文。

最后一条其实是个隐性能力:可观测性。上下文里塞了什么,过去只能靠猜。

迁移清单:这版要你动手的部分 ​

20 条「其他变更」里,真正需要改配置或改代码的,我整理成下面这些。所有内容来自 release notes,不是我的推断。

#变更你要做什么
1网页搜索默认改用 DeepSeek Search API,Search 与 Fetch 可分别选计费账号或 API Key旧提供方与自定义配置按升级指南调整
2归档会话默认清理符合条件的 Git 工作树,保留分支与提交想留住本地目录,归档前先关掉清理;自定义配置与 Forge 插件另需迁移
3AgentTeam 改用统一具名子代理,中断工具默认关闭自定义插件与 SDK 迁移;共享同一份会话存储的进程必须同步升级
4Creator 指引统一收敛到 dsh-doc引用旧技能名称或路径的扩展要迁移
5账号通知支持产品公告并随界面语言更新已有登录保留;自定义账号插件与配置需迁移
6Computer Use 调整窗口操作、键盘控制与授权,默认不再移动系统鼠标自定义脚本与 helper 需同步升级
7Office 改用原生工具,Web 与 SDK 都能加载技能旧包与技能需迁移;解析在主进程跑,详见下节
8Windows 额外目录授权仅对文件工具生效不扩大到终端与 PTC;相关沙箱扩展需迁移
9LiveShare 调整多会话分享与插件授权旧授权要重新配置
10Session 支持批量追加事件(日志格式不变)自定义追加接口的包装代码要支持批量调用
11工具失败提供更明确的错误类型与代码依赖旧错误分类的插件和 SDK 集成需同步适配
12Stagehand 升到 4.4.0,Zod 升到 4.6.6Stagehand 改自动发现扩展,旧 extensionId 配置不再生效

还有两条不阻断启动,但会改变行为,单独说:

PTC 现在按运行时限限制工具调用总量。 超限的处理方式是「终止代码并清空保留状态,已完成的操作不会撤销」。也就是说这是个硬切断,不是回滚。习惯在一个 run_code 里写很长脚本的人,得自己把步骤拆开,否则被砍在半路,前面已经产生的副作用还在。

插件可以动态注册和移除 MCP 服务了,还能查状态、重启、探测连接,不用再让用户逐项维护服务配置。这条是给插件作者的,属于纯粹的松绑。

边界:放开了三道,收紧了一道 ​

这一节是本文我认为最该读的部分。四条改动在 release notes 里的篇幅加起来不到十行,但它们决定的东西比所有新功能都多。

四道权限边界:Office 解析移出沙箱、LiveShare 下 PTC 越界、Web Fetch 放开非公网、Windows 授权收紧到文件工具

Office 文档解析现在跑在 DSH 主进程里,不受命令行沙箱保护。 官方把这句话直接写在了变更说明里,没有加解释。这意味着什么很清楚:一个恶意文档,绕过的不是工具层的限制,而是整个沙箱。用 Office 技能处理来路不明的文件时,这个风险是实打实的。

LiveShare 下,PTC 可以访问分享目录之外。 官方原话只有一句「仅应分享给可信任的人」。共享这件事的语义从「共享一个目录」变成了「给对方一个能读到目录外的执行环境」,量级完全不同。

Web Fetch 不再拒绝非公网地址。 这条是 rc.1 起生效的,rc.2 延续:可用于代理与内网,代价是 SSRF 面下放给部署方,出口限制得自己补。如果你的 DSH 能被外部访问,这就是一个必须自己兜的口子。

只有 Windows 那条是收紧的:额外目录授权仅对文件工具生效,不扩大到终端或 PTC。这是四条里唯一把权限往回缩的。

四条放一起看,方向是一致的:能力边界在外扩,兜底责任交给你。 这跟「Everything is a Plugin」的定位是自洽的——DSH 越来越像一个你自己组装的运行时,那就不能指望它默认替你把门关好。

放在公网上之前,网络层和文档来源这两件事,得自己先想清楚。

冷静看 ​

先说证据等级。 以上全部条目来自官方 release notes,属于厂商自述,没有第三方复现。1,568 这个提交数是 GitHub compare API 的口径;同一接口的文件列表被截到 300 个,那 300 个文件合计 +5,327 / −755 行,不能当全量改动看。它只说明一件事:这个仓库的迭代密度非常高。

这是一版 pre-release。 rc.1 里那句「会有破坏性变更」依然有效,rc.2 只是没再扩大接口面的破坏。

几个判断:

  1. 日常用户值得升。 26 项修复里那批「卡住 / 起不来」级别的,属于纯收益;新功能也都在使用面,不碰底座。唯一要记住的是:归档会话前想清楚工作树要不要留。
  2. 插件作者这次可以动。 rc.1 让你等的那三件事,rc.2 确认没回退,接口开始稳定了。真正要过的坎从「重写执行层」变成「对一遍默认值清单」——工作量和上一次不是一个量级。
  3. 自部署方要把边界那四条过一遍。 尤其是 Office 解析出沙箱这一条,它是从「工具层受限」变成「主进程裸跑」的质变,不是程度问题。
  4. 写长 PTC 脚本的人,先拆步骤。 按运行时限限流 + 超限不回滚,这两个条件叠起来,长脚本被砍在半路是最坏的失败模式。

最后两个值得盯的信号。

一个是插件索引开始带 GitHub star 和 npm 周下载量,但默认排序仍然按索引提供的顺序。有数据、不用数据做推荐——这是刻意的克制,也说明官方暂时不想当那个「决定你装什么」的角色。

另一个是桌面端可以切换正式版与开发版更新通道。这个功能本身很小,但它出现的时间点说明:0.2.2 离正式版不远了。按这个节奏,rc.3 大概率是收尾,而不是又一个功能包。

参考 ​