OpenClaw v2026.5.2:终于修复了“30分钟任务每10秒触发"的离谱Bug”

你有没有碰到过这种情况——
网关运行好好的,突然开始卡顿,发条消息要等半天才有反应,TUI连接一直转圈,日志里全是各种奇怪的超时报错?
你重启了好几次,问题时不时消失,但过段时间又回来了。
如果你用了心跳任务,而且触发周期是30分钟或更长,那恭喜你——你大概率踩到了v2026.5.2里那个修了将近三个月的核心Bug。
先说那个让人哭笑不得的Bug
心跳任务调度器失控。
原本配置了every: "30m"的定时任务,在某些条件下会每隔约10秒就触发一次。连续自激,不停给网关塞任务,事件循环延迟最高飙到超过6秒。
6秒的事件循环延迟意味着什么?意味着消息渠道的静态资源都拿不到,TUI握手超时,所有实时交互全部卡住。从外面看就像网关挂了,但其实它在疯狂地跑心跳任务。
触发条件是exec-event、通知、spawn、retry等唤醒路径没有经过统一的冷却控制,后台的process.start退出通知可以反复自激心跳循环。生产环境里有人配置了30分钟的心跳,结果实际上每10秒跑一次,把网关事件循环堵死了。
这个修复在这一版里加了中央冷却门控,并设了每个Agent最多5次/60秒的兜底限流。手动触发路径(manual、wake、任务完成、/hooks/wake mode=now、cron --wake now)不受影响,还是即时的。
如果你之前莫名其妙遇到网关响应变慢、Control UI无响应的情况,升级之后观察一下,很可能就是这个。
插件系统:这次是动了大手术
v2026.5.2对插件系统做了一次比较彻底的重构,主线是npm优先。
之前官方捆绑插件和ClawHub插件的安装路径有点混,这次理清了:
• 裸包名走npm安装,clawhub:前缀的走ClawHub解析
• beta更新渠道的插件会先尝试@beta标签,没有就回退到默认版本
• 插件运行时预加载范围收窄了,现在只加载当前配置实际用到的插件,不再一股脑把所有能发现的插件都import一遍
顺带一提,这次还加了git插件安装的正式支持。可以直接git:前缀装插件,带ref checkout、commit元数据、正常扫描暂存,而且plugins update也支持git来源的记录了。对于想锁定某个commit版本的用户来说挺实用。
另外openclaw plugins list --json现在会带上包依赖的安装状态,方便脚本检查缺失的依赖,不用再运行时才发现问题。
新模型:Grok 4.3成了xAI默认
这个改动比较简单但值得一提:
xAI的默认聊天模型从之前的版本换成了Grok 4.3,已加入内置目录。如果你在用xAI Provider,升级后默认就会走Grok 4.3。
性能:启动和会话操作都快了不少
这版性能改动点很散,但总体方向是减少重复加载和不必要的克隆操作。几个对日常使用影响比较大的:
sessions.json瘦身:之前每个会话条目里都存着完整的skillsSnapshot.resolvedSkills数组,也就是把每个SKILL.md的内容都塞进sessions.json里。会话一多,这个文件就会很大。现在把这部分移出去了,冷启动时再从磁盘重建,sessions.json会小很多。
TUI冷启动:跳过了context-window预热阶段的全量Provider模型归一化,Terminal首次启动不再卡在大模型注册表后面。这个对本地模型多的用户感受明显一些。
会话列表轮询:sessions.list在会话数量大的时候会很慢,这次改成复用轻量缓存和索引,返回一个轻量的压缩检查点预览,不再做重量级的全量汇总。
Gateway pricing:模型定价目录的刷新推迟到侧车和渠道就绪之后再跑,OpenRouter或LiteLLM定价拉取慢的情况不再卡Gateway启动了。
新命令
两个值得记一下的新CLI命令:
openclaw gateway restart --force:强制重启Gateway,不等待活跃任务完成,支持--wait <duration>参数。重启前会记录当前运行中的任务ID,超时强制重启会明确标记为”forced”。
openclaw proxy validate:验证当前代理配置是否有效,包括配置解析、代理可达性、目标允许/拒绝行为。在部署了透明代理的环境里,这个比你自己手动curl一遍靠谱多了。
消息渠道:修了一大堆
这版渠道修复的量相当大,挑几个主要的:
Telegram:超长消息现在会自动拆分成安全的HTML块发出去,不再因为超过Bot API限制整条失败。另外Telegram forum topic里的slash命令路由也修了,/status@bot这类命令现在能正确路由到绑定的非main会话了。
Discord:Gateway重启期间活跃的按钮、下拉框、表单继续保持可用,直到过期为止。多步Discord交互升级时不再容易中断。另外Discord typing indicator在长工具调用和自动压缩期间会保持活跃,不会让用户看起来像卡住了。
Slack:app_home_opened事件现在有默认的App Home标签视图了;跨重启的bot参与线程会被记录下来,重启后ongoing的thread对话还能继续自动回复。另外修了一个老问题:长私信在Slack发短消息预览时会截断,现在能从rich-text blocks里恢复完整文本了。
WhatsApp:支持了显式的Channel/Newsletter @newsletter外发目标,不再错误地走DM路由。另外顺手修了一个安全问题:惯用crontab跑ensure-whatsapp.sh健康检查脚本的Linux用户注意,那个脚本在缺少systemd user-bus环境时会误报”Gateway inactive”,这版加了doctor警告提示。
Memory/Dreaming:Dreaming和Memory Wiki文件里的CRLF换行和重复标记块现在会自动修复,不会反复写入重复段落了。
几个值得注意的安全修复
BlueBubbles这版加了日志脱敏,?password=/?token=查询参数和Authorization:请求头在写入日志之前会被清理掉。属于CWE-532(敏感信息写入日志),虽然是小众渠道,但有在用的注意一下。
workspace state-directory的环境变量覆盖被锁定了,不能再通过环境变量劫持state dir路径了。
OpenRouter走Claude的问题修了
如果你在OpenRouter上配了Claude模型并开了reasoning,之前通过OpenAI兼容适配器转发时,Anthropic会拒绝带prefill的请求。这版修了:对OpenRouter的Anthropic模型请求,在reasoning开启时会自动剥掉末尾的assistant prefill turn。
用openrouter/anthropic/claude-*路由的用户升级后应该不再遇到这个报错了。
升级前提醒
这版做了一次配置插件安装修复的自动迁移(基于meta.lastTouchedVersion判断是否需要运行),会在首次启动时自动修复之前配置了但实际没装上的插件。如果升级后看到插件自动安装的日志,是正常的。
另外之前在channels配置里用agentId指定Agent的Discord用户:openclaw doctor --fix现在会自动把这些配置迁移到正确的bindings[]路由,不用手动改了。
v2026.5.2是一个以修Bug和性能为主的版本,没有什么新的功能,但那个心跳调度器失控的修复对日常稳定性影响是真的大。
夜雨聆风