OpenHands 一个月能发好几个版本,大部分是修修补补,v1.38 里值得单独拿出来讲的只有三处。我装了一遍,也在 release notes 里把这三处挨个对了 PR。结论先放这:真正该升级的理由,是 automation 里能改插件配置了这一条。剩下两条是皮肤。

我装了一遍

先说实测,因为版本这件事最容易翻车。我在本机起了一个 venv,跑 pip install openhands-ai,全量依赖装了 22 分钟,进度条一个个走到底,最后一个包都没落盘,卡在文件下载上,日志里是 Read timed out. (read timeout=15)。我改成 --no-deps:

pip install --no-deps openhands-ai

这次成了。装进去的是 1.11.0。import openhands 能过,__version__ 是 1.11.0。

这里有个要命的坑。PyPI 上 openhands-ai 的最新版是 1.11.0,而 GitHub 上的 release 是 v1.38.0。这是两条完全不同的版本线。别拿 PyPI 的版本号去比 release notes 里的功能。它全量依赖拉了一大串,下载列表滚了十几屏,litellm、openai、anthropic、kubernetes、playwright 都在里面。这也是为什么装不动。真想跑起来得靠 Docker 镜像,不是 pip 能解决的。

我把 --no-deps 装完又查了 pip show openhands-ai。它列的 Requires 一眼看不到头,光主要依赖就 80 来个,从 aiohttp 排到 zope-interface。所以装一遍 OpenHands,在没 Docker 的机器上不是五分钟的事。卡在依赖下载是常态,不是我的网络差。这个结论,是我拿 22 分钟加一条 read timeout 换来的。

插件配置终于能改

v1.38 最有价值的是 PR #19453。以前你在 Canvas 里能改一个 automation 的 trigger,但改不了它的可执行插件配置。这意味着 help-agent 想给你提议把仓库列表从 A 换成 B 时,它改不了配置,只能改 filter。这个 PR 把保存下来的插件配置加载进一个 JSON 编辑器,塞进 help-agent 的上下文,让配置和 trigger 一起保存。插件源、pin 和运行时选择都保留下来。一句话,automation 的编辑能力补上了最后一块。

这块为什么重要。我的判断是:automation 能不能改配置,决定了 help-agent 提的建议能不能落地。只能改 trigger 的 automation,等于一半是死的。

顺带提一句,v1.38 的 bug fix 里还有两条值得知道。一条是 export/import 的时候会带着脚本 bundle,之前会丢。另一条是 composer 的 stop 现在中断 Agent,而不是把 Cloud 沙箱暂停。这两条对重度用 automation 的人是实打实的修复,比 Paper 主题实在多了。

预算条和 Paper 主题

剩下两处是体验向的。PR #18533 给 conversation 预算做了语义化填色。它把 Usage 表接到了 ConversationInfo.max_budget_per_run 上,这个字段来自 SDK 的 #6218。之前 Canvas 只显示实际花费,把你配的对话上限丢了。现在上限被接回来,跟实时花费并排显示。没配上限的就不显示这个表。PR #19445 加了 Paper 主题,暖纸面、棕墨、锈色动作,标题用本地打包的 Newsreader 字体。

预算条这个我要多说一句。它是语义化填色,不是随便上个色。表填满到接近上限时颜色会变,让你扫一眼就知道这个会话还剩多少预算,不用去读数字。这种把阈值做成视觉的事,看着小。实际是把一个要时刻盯的指标,变成了余光能扫到的东西。Paper 是另一个故事,纯外观,不影响任何数据。两处对比着看,一目了然:

功能 PR 类型 我给的评价
automation 改插件配置 #19453 功能补全 该升
预算语义化填色 #18533 体验 看需求
Paper 主题 #19445 皮肤 顺手

要不要升

我的选型建议很直接。你在用 automation、又被改不了插件配置卡过的,升 v1.38,就为 #19453 这一个 PR 也值。只把 OpenHands 当聊天界面的,这版对你没实质变化,等下一个大功能。追 Paper 这种外观的,升不升都行。主题是纯增项。不影响数据。该升就升,别等。

这版的 automation 不止一处改动。PR #18699 让安装能感知 automation,用 mode=automation 加一个 POST /plugin-spec 就能装。PR #19421 让 prompt 和插件 preset 能从一个 agent profile 里跑。合起来看,v1.38 的方向是清楚的:把 automation 从能配 trigger 往能完整管理推。你要是一路在用 automation 的,这一版绕不过去。

一个边界得说清。v1.38 是 Docker 镜像的 tag,别用 pip 的 1.11.0 去判断功能有没有。核对一个功能到底在不在,回 release notes 和对应 PR,比看版本号靠谱。