Skip to content

DeepSeek Harness 0.2.2-rc.1:手机端补齐了,但升级前先看那份迁移清单 ​

2026 年 11 月 4 日 13:07,DeepSeek 放出了 dsh-v0.2.2-rc.1(提交 66491b0),这是 0.2.2 系列的第一个候选版本,汇总的是自 v0.2.1-rc.5 以来的变更。

先说结论:这一版的价值一半在功能,一半在它明确写出的「你得改什么」。

功能侧,拖延很久的手机/平板适配终于落地,Git 工作树从实验插件并入主流程,插件市场开始具备真正的分发能力(更新、回滚、富文本详情、失败诊断)。开发侧则是另一幅景象:Node 最低版本抬到 24.9,PTC 工具执行被拆成按 Agent 作用域选择的插件,SSH 协议从 2 升到 3,Session Projection 的注册接口改成异步。这些都不是「顺手升一下」的量级。

从 10 月 17 日的 v0.2.1-rc.1 到这版,中间隔了 18 天、5 个 RC,节奏一如既往地快。README 自己也写着 developer preview、会有破坏性变更——这版把这句话落实得相当彻底。

项目内容
版本dsh-v0.2.2-rc.1(Pre-release)
发布2026-11-04 13:07,提交 66491b0
基线自 v0.2.1-rc.5 起累计
规模新增 13 项 / 优化 30 余项 / 修复 50 余项 / 其他变更近 30 项
运行时Node.js ≥ 24.9(旧版需先升级)
许可MIT
安装npx @deepseek-ai/dsh web(默认 127.0.0.1:3080)

三条线同时在动 ​

把上百条变更摊开看,脉络其实只有三条。

入口在变宽。手机、平板的软键盘、导航与窄屏布局一起重做,界面语言一次加了六种。DSH 原先是个桌面/Web 工具,这版之后它开始接受「躺着也能看一眼」的使用姿势。

协作在变深。引用插入、历史导出为 Markdown、Git 工作树、变更请求——这些都在回答同一个问题:agent 干活的过程,怎么让第二个人看得懂、接得住。

底座在重排。PTC 拆分、Session API 独立、Cordis 升到 4.1.0、pi-ai 升到 1.3.0、Node 24.9。这部分用户感知不到,但决定了插件作者接下来三个月要不要返工。

手机和平板:终于不是「勉强能用」 ​

这是本次最实在的一条。改动覆盖三块:

  • 软键盘交互:输入框被键盘顶起时的滚动、光标可见性、发送后的收起行为;
  • 导航与窄屏布局:菜单和操作入口在窄屏下不再折叠到看不见,而是换位保留;
  • 触屏与键盘混合操作:会话列表、侧栏都补了触屏路径,同时保留键盘快捷键。

配合后面几条体验优化,能看出是成套做的——侧栏搜索支持不区分大小写的会话 ID 子串匹配,同名工作区在选择器里显示最短的区分路径后缀(窄屏优先保留后缀),侧栏会话悬浮卡显示工作目录。这些都是「屏幕小、指头粗、同时开五个会话」时才会疼的地方。

一次加了日语、西班牙语、法语、德语、俄语和巴西葡萄牙语六套界面文案。这个动作和移动端适配放在同一版里,指向很明确。

输入框和会话:几个用起来会立刻有感的小改动 ​

  • 聊天文本作引用插入:选中一段助手回复,可以直接引用进输入框,发送后显示紧凑预览,不会把原文再糊一遍。
  • 完整历史导出为 Markdown:整段会话导出,附带可用的原始日志路径。
  • 工作步骤收起后保留全部助手文字:以前收起步骤会把中间的说明文字一起吞掉,现在保留,还能切到「仅最终回答」。
  • 统一右键与键盘菜单:会话、工作区、侧栏共用一套,插件可以扩展。
  • 文件预览常驻目录树:加文件定位,不用来回退回列表。

还有两条容易被忽略但影响手感的:

  • 发送语义变了。消息要等宿主确认接收后才显示并清空草稿;发送期间输入框只读,失败时草稿、引用、附件全部保留。这是个正确的取舍——宁可多等半秒,也不要在弱网下丢掉一段刚写完的话。
  • 图片改成进输入框就上传,发消息时复用已上传的结果,单张上限提到 50 MiB。

插件:从「能装」到「能分发」 ​

这是我认为本次分量最重的一块,因为它决定生态能不能长出来。

变化之前现在
索引来源「自定义插件市场」「自定义插件索引」,读用户添加的索引文件
索引内容无过滤排除标记为 private 的版本、标签与默认分支包
第三方包更新只能重装支持更新,热更新失败会尝试恢复旧版本
详情页纯文本富文本详情 + 布局与导航改善
设置页图标无插件可自带导航图标,卸载后恢复默认
安装失败报「未知错误」完整诊断 + Host 日志入口,区分安装失败与启用失败

「市场」改叫「索引」是个耐人寻味的变化。市场暗示有个中心化的货架,索引则承认现实:插件分散在 npm、Git 和各种自托管仓库里,DSH 只负责读一份清单。配套的 prepare 脚本授权提示(安装含 prepare 脚本的 Git 插件时会显示授权与重试选项)、HTTPS 读不到时自动回退 SSH,都是同一个方向——承认插件来源很杂,然后把杂这件事处理干净。

Git 工作树:agent 开始管分支 ​

实验性的「变更请求与工作树」这次正式成型,同时旧的独立插件「Git 工作树」被并入。

能力上有三层:

  1. 隔离:会话跑在独立的 Git 工作树里,不污染你正在编辑的那份;
  2. 审阅:可搜索的文件树 + 逐文件导航,本地 diff 和 PR diff 都能看;
  3. 回流:选中的代码和评论可以直接交给 Agent,检查与评审状态可跟踪。

配套修了几个相关的老问题:聊天里的相对文件链接现在按点击时会话的当前工作目录打开(进 worktree 后不再误开原项目文件),~ 和 ~/ 会被正确展开为宿主主目录(路径中间的 ~ 保持字面含义)。

顺手要提醒的迁移项:之前启用过独立插件的用户,需要手动从 profile 的 dsh.profile.bundles 里移除 @deepseek-ai/dsh-experimental-tool-worktree。不删会怎样,官方没写,但带着两个同源插件大概率不是你想要的状态。

把别的 agent 当工具:subagent_oar ​

实验性插件 subagent_oar 可以把独立任务丢给本机的 Codex 或 Claude CLI 执行。

这条单独拎出来说,是因为它代表一种态度:DSH 不打算把所有能力都自己实现,而是把自己定位成调度层。同时它也和另一条改动呼应——子代理等待指引减少 sleep 和重复轮询,只有结果未返回时才结束当前轮次等待通知。多 agent 编排的瓶颈从来不在「叫得动」,而在「等得省」。

另两个实验插件:

  • 个性化推荐:在回答下方按需给出官方插件启用卡片或个性化页面创建卡片;
  • 开发者工具 - 统计:按轮次和步骤看上下文、缓存、模型与工具耗时。

最后这个对调 prompt 的人价值很大。缓存命中率、工具耗时这类数据,过去只能靠 trial and error 猜。

性能:三处不起眼但真省时间的改动 ​

  • 远程连接默认开 WebSocket 压缩,可通过 websocketCompression 关闭。历史消息越长收益越明显。
  • Web 静态资源支持 ETag 条件请求,未变化返回 304。
  • Search 优先给模型 Search API 的长摘要,默认每来源最多 800 字符,搜索卡片仍显示短摘录。

另外 Auto 自动审核在连续工具调用之间能更好地复用历史上下文缓存;系统提示词未变化时,新一轮请求继续复用已有前缀缓存——这条修的是「什么都没改,缓存却失效了」的隐形成本。

升级前必须处理的六件事 ​

这部分是本文的重点。以下每一条都来自 release notes 的「其他变更」,不做会出问题。

#变更你要做什么
1Node.js 最低版本 24.9先升运行时,否者装不上或跑不起来
2PTC 工具执行拆为按 Agent 作用域选择的插件,旧 tools.mode 与 DSH_TOOLS_MODE 废弃迁移到配置 overlay,环境变量删掉
3PTC Node 控制通道改用 birpc,SSH 协议 2 → 3自部署 bootstrap 与 SSH helper 必须同步升级
4Session Projection 注册 API 改为异步插件启动时持有,同步写法会静默失效
5官方组合包改由 @deepseek-ai/dsh-official-bundles 导出自定义集成需更新原 app-boot 的相关导入
6未声明容量的自定义模型默认按 1M / 128K(十进制)小端点显式覆盖容量,否则会延迟压缩

还有三条虽然不阻断启动,但会改变行为:

  • agent/request 不再允许改路由。Agent 在提示词组装与 pre-step 前固定本步模型,重试保留同一选择;插件应通过 agent.model 选模型。
  • PTC 中被调用方取消的 run_code 返回 ABORTED,不再是 CODE_RUN_FAILED。SDK 和 Session 消费方要更新取消分类,否则会把「用户取消」当成「代码跑挂了」。
  • 文件修改的先读与外部修改防护默认关闭。沙箱限制和 Review 不变;需要原防护的 profile 要显式恢复观察策略。

部署侧的一条安全提醒 ​

Web Fetch 不再拒绝非公网地址,可用于代理与内网,部署应自行限制网络访问。

这句话很短,但它把一个原本由客户端兜底的边界推给了部署方。如果你的 DSH 跑在能被外部访问的地址上,这就是一条 SSRF 面。上公网之前,网络层的出口限制得自己补。

冷静看 ​

这是一版 pre-release,而且官方说了会有破坏性变更。 上面那张迁移表就是证据——六条里没有一条是「改个配置项名字」的程度。

几个判断:

  1. 日常用户值得升。手机端、发送语义、插件更新回滚、WebSocket 压缩,都是纯收益,风险集中在插件作者和自部署方。
  2. 插件作者先别急着跟。PTC 拆分、Session Projection 异步化、agent/request 路由限制,三件事叠在一起,基本上是要把插件重写一遍执行层的量级。建议等 rc.2 或正式版,看这些接口还会不会再动。
  3. 自部署方先看 SSH 协议。协议 2 → 3 意味着 bootstrap 和 helper 必须同时升,漏一个就连不上。这是最容易踩的坑。
  4. 工作树值得先试。它解决的是一个真实痛点(agent 改文件和你手头的分支打架),而且不涉及底座改动。

至于「Node 24.9」这条——2026 年 11 月了,24 已经是 LTS 线上的版本,但对还在 22 上的机器,这是一次不得不做的运维动作。DSH 官方给的理由是运行时能力依赖,没有细化,实际影响面得自己评估。

一个值得盯的信号:这次把 apply_patch 工具加进来了(默认关闭,一次完成多文件新增、编辑、删除、移动,变更在 Review 里看),同时把文件修改的先读防护默认关了。两件事方向相反——一边要求更强的批量改动能力,一边放松了改动前的确认。官方没说原因,但从「工具按步骤条件启用」这条看,防护正在从默认策略变成按 profile 配置的策略。用之前想清楚自己要哪一档。

参考来源 ​