用 OpenClaw 一段时间的人都懂:功能好不好是一回事,稳不稳是另一回事。
4.12 在稳定性上做了大量工作,很多问题藏得很深,但影响每天的使用体验。
这篇把最值得关注的稳定性修复拆开来讲。
WebSocket 断连:长任务跑着跑着客户端掉线了
问题描述:
在跑一个耗时较长的 AI 任务时(比如生成长文、批量处理),有时候客户端会突然断开,任务结果丢失。
根本原因:
OpenClaw 会定期发送 WebSocket tick 心跳,但这个心跳被标记成了「可丢弃」的消息——当网络稍微有点抖动或者客户端处理较慢,tick 被丢弃,超时计时器触发,连接被主动断开。
而此时 AI 可能还在后台努力工作着。
4.12 修复:
tick 广播不再标记为「可丢弃」,网络压力下连接不会因为心跳超时自动断开。
修复后:tick(droppable=false) → 网络抖动 → 重传 → 保持连接
消息丢失:用户发了第二条,第一条结果没了
问题描述:
AI 还在处理第一条消息时,用户发来第二条,有时候第一条的处理结果会消失,第二条也可能无响应。
根本原因:
当一个「孤立的」用户消息在任务进行中到达,系统没有把它正确排入队列,而是直接丢弃了。
4.12 修复:
孤立的用户输入文本现在会被携带到下一个 prompt 执行轮次,确保消息不被静默丢弃。
这个 bug 在高并发使用场景(比如同时用多个频道跟 AI 交互)下特别容易出现。
Discord:zombie 回调崩溃整个进程
问题描述:
Discord 网关断线重连后,有时候进程会直接崩溃,需要手动重启 OpenClaw。
根本原因:
旧连接的心跳定时器没有被正确清理,重连后新旧两个心跳定时器同时运行,旧的「僵尸定时器」在回调时触发了未保护的操作,导致进程崩溃。
4.12 修复:
重连前强制清除所有旧定时器,确保不会出现 zombie callback。
Telegram:审批按钮点了没反应
问题描述:
在 Telegram 里通过内联按钮点击「审批」操作,有时候按钮完全没反应,或者需要等很久才生效。
根本原因:
审批按钮的 callback query 和正在进行的 agent turn 共用同一个处理队列,被 agent 任务阻塞了。
4.12 修复:
审批 callback query 现在走独立的 sequentializer 通道,不再被 agent turn 阻塞,点击即时响应。
Gateway 启动:侧载服务还没好,聊天历史就开始加载了
问题描述:
OpenClaw 重启后,Control UI 立刻尝试加载聊天历史,但此时后端服务还没完全启动,导致加载失败,需要手动刷新。
4.12 修复:
调度服务现在会等到所有 sidecar 初始化完成后才启动,Control UI 的历史加载也加了重试机制,启动后第一次加载不再失败。
WhatsApp:附件发出去了,对方收不到
问题描述:
通过 OpenClaw 发 WhatsApp 附件(图片、文件),有时候对方收不到,但发送方没有报错。
根本原因:
当 mediaUrl 字段为空但 mediaUrls 列表里有内容时,系统没有回退到列表,直接静默跳过了发送。
4.12 修复:
mediaUrl 为空时,自动取 mediaUrls[0] 作为回退,附件不再静默丢失。
Cron 任务:定时任务配置热重载后失效
问题描述:
修改配置后 OpenClaw 热重载,定时任务(cron jobs)里配置的 workspace 和 heartbeat 设置丢失,任务开始用错误的配置运行。
4.12 修复:
热重载时隔离 agent 配置会被正确保留,cron 任务不受热重载影响。
稳定性的价值
功能可以慢慢加,但稳定性是每天都在影响你的东西。
4.12 修了一批「藏得很深但每天都在折磨你」的 bug,如果你之前用 OpenClaw 遇到过消息丢失、连接断开、按钮没反应这类问题,升级到 4.12 是值得的。
你遇到过哪些让你印象深刻的 bug?评论区聊聊,说不定已经修了。
一键三连「点赞」「转发」「小心心」,欢迎在评论区留下你的想法!
夜雨聆风