OpenHands 是个开源的 AI 编程 Agent,v1.34.0 在 10 月 27 日发布。这版没有惊天动地的新模型,但有两个对实际使用影响不小的改动:一个是「每会话独立的 Docker 运行时」,一个是「托管 Agent 的验证」。这两个都指向同一件事——让 Agent 跑得更隔离、更可复用。这篇把它拆开讲。
这版加了两件实在的事
v1.34 最值得看的不是修了多少 bug,而是两个 feature 把「隔离」和「验证」这两件以前要自己搭的事变成了内置能力。一个来自 canvas 方向:每会话独立的 Docker 运行时,配套新增 Settings → Runtime 设置页;一个来自 verify 方向:能「stand in for DigitalOcean」,让托管 Agent 可以被验证。对重度使用的人来说,这两条比一堆 bug 修复更有分量。
每会话独立运行时
以前 OpenHands 的会话可能共享运行时,几个会话之间容易互相污染环境,或者一个会话搞乱的文件影响另一个。每会话独立 Docker 运行时的意思是:每个对话跑在它自己的容器里,环境、依赖、文件系统互不相干。隔离粒度从「共享」变到「每会话」,意味着并行跑多个 Agent 时,一个会话改了系统依赖、另一个会话不受影响,回滚也只需要重建那个容器,不用为整个环境陪葬。这对并行跑多个 Agent、或者拿 Agent 试危险操作的人来说,价值很实在——搞坏了也只是一个容器的事,删掉重建就行。配置上,你可以在新加的 Settings → Runtime 页面选运行时,这页是这版才有的入口。
托管 Agent 验证
另一个 feature 是「stand in for DigitalOcean」。这是给托管 Agent 场景用的:当 Agent 跑在托管环境里,需要一种方式验证它是否真的在那个环境、那个状态里运行,而不是被伪造或顶替。用 stand in 的方式模拟 DigitalOcean 的环境来完成验证,让托管 Agent 的身份和运行状态可被确认。这条对个人自托管意义不大,但对把 OpenHands 当成服务对外提供、需要确认 Agent 真实性的场景很关键。
其它改动
剩下的多是 bug 修复和工程化整理:自动化标签支持过滤和编辑、团队组织里分享开关改标「与组织用户分享」、侧边栏可以在行的沙箱里开新会话、以及大量把魔法数字改写成 CSS 语义变量的重构,还有把 session API key 从 argv 改成 env 传入这类安全细节。macOS 用户会碰到一条:应用还没签 Apple Developer ID,macOS 可能把下载的构建标成「已损坏」,其实是 Gatekeeper 隔离。清一次就行:
xattr -dr com.apple.quarantine "/Applications/OpenHands Agent Canvas.app"
对比表
| 维度 | v1.33(之前) | v1.34 |
|---|---|---|
| 会话运行时 | 可能共享 | 每会话独立 Docker 容器 |
| 运行时配置 | 分散 | Settings → Runtime 页面 |
| 托管 Agent 验证 | 无 | stand in for DigitalOcean |
| 自动化标签 | 只读 | 可过滤、可编辑 |
值不值得升级
如果你是重度并行跑 Agent、或者自托管多会话的人,值得升——每会话独立运行时直接解决了环境串味的问题,这是实打实的体验改善。如果你只是偶尔单会话用用,这版没有非升不可的理由,可以等下一个更实质的版本。macOS 用户升级后记得先跑 xattr 那条命令,否则会卡在「已损坏」上。总体看,v1.34 是那种「不惊艳但把基本功做扎实」的版本,真正的价值在隔离和验证这两条基建上,而不是表面上的功能堆叠。
不适合谁
这版的升级对两类人价值有限:一是只跑单会话、从不并行的个人用户,每会话独立运行时带来的隔离你用不上,反而多一层容器开销;二是既不用托管 Agent、也不需要确认 Agent 身份的团队,stand in for DigitalOcean 这条跟你无关。对这两类人,等下一个更实质的功能版本更划算,不必为这版专门升级。