乐于分享
好东西不私藏

OpenClaw 2026.4.21发布:安全加固与体验优化,六大实用更新一览

OpenClaw 2026.4.21发布:安全加固与体验优化,六大实用更新一览

2026年4月21日,开源AI Agent框架OpenClaw发布了v2026.4.21版本。虽然没有炫酷的新功能,但这个版本解决了多个实际痛点:升级默认图像生成模型、修复插件依赖问题、收紧命令权限、修复Slack线程消息、加速浏览器自动化,并清理npm安装警告。

如果你是OpenClaw的网关或自动化中心用户,这个版本值得关注。让我们逐一解析每个变化——改变了什么、为什么改变,以及它如何影响你。

1. 图像生成:默认使用gpt-image-2,支持2K/4K尺寸提示

变化内容:

  • • 默认图像生成模型从旧版本升级到OpenAI的gpt-image-2
  • • 文档和工具元数据现在明确支持2K和4K尺寸提示
  • • 失败日志更详细:当图像生成失败时,会记录警告级别的日志,显示失败候选模型和原因

技术价值:

  • • gpt-image-2在细节、风格一致性和分辨率方面优于旧模型
  • • 标准化2K/4K提示减少猜测工作,无需手动计算像素尺寸
  • • 改进的日志帮助调试API密钥、速率限制或网络问题

影响范围:

  • • 未手动配置图像提供商的用户将自动切换到gpt-image-2
  • • 已明确配置其他模型的用户不受影响
  • • 内部冒烟测试现在使用相同模型,测试与生产环境一致

2. 插件依赖:doctor命令可恢复运行时依赖

问题背景:
OpenClaw的插件系统依赖外部通道适配器(如Discord、Telegram)或特定提供商(OpenAI、Google)。在打包安装中,如果插件的运行时依赖缺失,旧版需要全局安装整套核心依赖——这既混乱又过度。

解决方案:

  • openclaw doctor命令现在检查每个启用插件的运行时依赖
  • • 自动安装仅缺失的依赖项,使用打包环境的正确路径信息
  • • 无需拉取整个核心依赖集

实际用例:
如果你从二进制包安装OpenClaw,然后启用需要@slack/web-api的插件,而该依赖未捆绑(或由于版本冲突被跳过),新版doctor会精确定位插件目录并仅安装缺失的包。

这对于生产和容器化部署特别有用,因为你不需要保留完整的Node.js工具链。

3. 安全修复:所有者命令不再被普通用户绕过

OpenClaw有一类标记为所有者强制执行的命令——例如关机、重新加载配置、插件安装。旧逻辑有一个危险的备用方案:

enforceOwnerForCommands=true(推荐的安全设置)但commands.ownerAllowFrom未设置时,系统错误地将通配符allowFrom或空的所有者候选列表视为”允许任何人”。

这意味着非所有者用户——包括随机聊天成员——可以执行所有者专用命令,造成权限提升风险。

修复内容:

  • • 现在所有者强制命令需要明确的所有者身份匹配(用户ID在所有者列表中,或operator.admin角色)
  • • 空的所有者候选列表或通配符allowFrom不再足够
  • • 如果确实想让所有人运行特定所有者命令,必须显式配置commands.ownerAllowFrom: ["*"]——并理解安全影响

操作建议:

  • • 检查你的配置。如果enforceOwnerForCommands为true,请确保所有者列表不为空,或commands.ownerAllowFrom有显式值
  • • 如果你之前依赖”无配置意味着每个人都可以运行所有者命令”,升级后需要添加显式白名单
  • • 检查日志中是否有非所有者用户的意外命令执行

4. Slack集成:保留线程别名,消息保持在正确线程中

问题症状:
当你通过OpenClaw向Slack发送消息并希望它落在特定线程中时,通常提供threadTs参数。在先前版本中,运行时系统可能在转发或处理过程中丢失该threadTs别名——导致消息进入父频道而非预期线程。

修复内容:
现在,当调用者(例如自动化脚本或其他插件)在出站消息中提供threadTs时,Slack适配器会保留该值并在最终API调用中正确使用。

修复适用于:

  • • 通过runtime.send发送的消息
  • • 由网关生成并传递到Slack的内部消息

对Slack用户的价值:
如果你使用OpenClaw进行以下操作,这很重要:

  • • 将监控警报发送到现有的Slack讨论线程以保持上下文一致
  • • 让多个机器人回复出现在同一线程中而不是分散
  • • 将其他平台的消息桥接到Slack线程

升级后,你不再需要额外的变通方法来”重新关联”线程。

5. 浏览器自动化:无效的可访问性引用快速失败,不等待超时

技术背景:
OpenClaw包含一个浏览器自动化模块,允许你使用act命令(点击、填充、读取)与网页交互。定位元素的一种方式是通过可访问性树引用,如ax1ax2。这些来自浏览器的可访问性API。

问题:
如果你编写的act路径包含不存在的可访问性引用——例如,当页面只有ax5时使用ax99——旧版OpenClaw会等待浏览器操作超时(通常数十秒)才失败。这显著减慢了自动化脚本的速度,特别是在批处理操作或错误处理流程中。

改进:
从2026.4.21开始,系统立即验证任何ax<N>引用与当前页面的可访问性树。如果引用不存在,它会立即拒绝act步骤并返回清晰的错误——无需等待超时。

实用建议:

  • • 如果你编写自己的浏览器自动化脚本,现在能更快发现元素定位错误
  • • 如果你让LLM生成act路径,即时错误反馈帮助模型快速自我纠正
  • • 注意:这仅适用于ax引用。其他选择器(CSS、XPath)行为如常

6. npm安装:消除node-domexception弃用警告

警告来源:
使用npm安装OpenClaw时,一些用户看到警告:

npm WARN deprecated node-domexception@1.0.0: Use your platform's native DOMException instead

此警告来自深层依赖链:
google-auth-library → gaxios → node-fetch → fetch-blob → node-domexception

node-domexception是一个旧包,在早期Node.js版本中模拟浏览器的DOMException。现在Node.js原生支持DOMException,该包已弃用。警告不影响功能,但会混乱安装日志。

修复方式:
OpenClaw在根package.json中添加了overrides字段,将node-domexception别名到无操作占位符。当npm解析依赖树时,它会跳过弃用的包并不再打印警告。

影响:

  • • 为OpenClaw运行npm install不再显示node-domexception弃用警告
  • • 无功能影响——使用原生DOMException代替
  • • 如果你维护基于OpenClaw的衍生项目,可以使用相同的覆盖模式作为参考

🚀 如何升级到这个版本

Docker用户

docker pull openclaw/openclaw:v2026.4.21
docker stop openclaw
docker rm openclaw
docker run -d --name openclaw -v ./config:/config openclaw/openclaw:v2026.4.21

npm全局安装

npm update -g @openclaw/core

二进制包(Linux/macOS)

从GitHub Releases[1]页面下载适合你平台的归档文件,并替换现有可执行文件。

推荐升级后步骤

  1. 1. 运行一次openclaw doctor检查插件依赖状态
  2. 2. 检查日志中是否有意外的权限拒绝(如果非所有者之前调用所有者命令,升级后将被拒绝)
  3. 3. 测试Slack线程和图像生成调用

📋 更新摘要表

       

         
           
           
         

领域 问题 修复 影响用户
图像生成 旧默认模型,尺寸提示不明确 默认使用gpt-image-2,文档支持2K/4K 所有生成图像的用户
日志记录 图像失败中间过程不可见 为每个失败候选添加警告级日志 调试图像问题的任何人
插件依赖 在打包安装中难以恢复缺失的运行时依赖 doctor仅安装缺失的依赖 受限环境中的插件用户
安全性 非所有者可能绕过所有者专用命令 严格所有者验证,移除危险备用方案 所有设置enforceOwnerForCommands=true的用户
Slack threadTs别名丢失,消息进入错误线程 在出站发送中保留threadTs 向Slack线程发送消息的用户
浏览器 无效ax引用导致长时间超时 立即验证和拒绝 进行浏览器自动化的用户
npm安装 node-domexception弃用警告 覆盖以消除警告 通过npm安装的任何人

       

     

💡 常见问题解答

如何检查当前OpenClaw版本?

运行:

openclaw --version

或查看网关启动日志的第一行。

哪些命令是”所有者强制”的?

这取决于你的插件和配置。典型示例:

  • • shutdown(关机)
  • • reload(重新加载)
  • • plugin install/uninstall(插件安装/卸载)
  • • exec(如果启用)

你可以通过commands.ownerOnly自定义所有者专用命令。

升级后图像生成停止工作怎么办?

首先,检查网关日志中关于gpt-image-2失败的警告级消息。原因可能是API密钥权限不足或配额耗尽。你可以在配置中暂时回退到先前模型:

imageGeneration:
  provider:
 "openai"
  model:
 "dall-e-3"

Slack线程修复需要我更改代码吗?

不需要。只要你的调用代码正确传递threadTs字段,升级后修复自动生效。如果你之前使用了变通方法(例如在文本中手动链接消息),现在可以简化它。

浏览器自动化中的ax引用是什么?

ax代表可访问性树。浏览器为可访问元素分配临时ID,如ax1ax2。你可以编写act ax1 click来点击该元素。修复后,不存在的ax99会立即失败。

升级后为什么仍然看到npm警告?

确保你使用的是OpenClaw v2026.4.21或更高版本。如果从源代码构建,请删除node_modulespackage-lock.json并重新安装。如果警告仍然存在,它们可能来自不同的依赖链——但主要的node-domexception警告已消失。

🎯 总结与建议

OpenClaw 2026.4.21是一个经典的安全性和稳定性维护版本。它没有添加炫酷的新功能,但解决了几个烦人的实际问题:权限提升漏洞、难以修复的插件依赖、缺失的日志可见性、错位的Slack线程、浪费的自动化超时和嘈杂的安装警告。

如果你重视生产可靠性和可维护性,这个升级是值得的。对于重度Slack用户、浏览器自动化脚本以及向多个用户公开OpenClaw的任何人来说,它特别有价值。

升级后,请关注所有者命令权限日志以确保预期行为。如果遇到任何问题,OpenClaw GitHub Issues是报告的地方——社区维护者通常能快速响应。


引用链接

[1] GitHub Releases: https://github.com/openclaw/openclaw/releases/tag/v2026.4.21