
OpenClaw 24h 更新快报(2026-05-13):Heartbeat 多代理调度、工具结果传递安全、Memory 梦境候选泄漏
过去 24 小时,OpenClaw 仓库迎来一轮高密度稳定性和正确性修复。Heartbeat 多代理调度中尘封已久的饥饿死锁问题终于被系统性地解决,同一窗口内,Agent 工具结果中间件泄漏、Telegram 主动记忆分类、Memory 梦境候选污染长时记忆等数个隐性缺陷也相继修复。此外,Codex 插件迁移流程新增应用就绪态检查,通用 Provider 错误处理也得到增强。
Heartbeat 多代理调度死锁全面修复
PR #80470 一次性解决 Heartbeat runner 中的五层叠加缺陷,这是本周期影响力最大的变更。
核心问题出在多代理迭代顺序的广播逻辑上:当一个代理处于忙碌状态时,后续代理的心跳会被静默跳过而非真正停止等待。更深层的问题是心跳 Prompt 拼装阶段存在未捕获异常,以及连接超时未合理设置,导致多代理环境下只有前两个代理能正常触发心跳,后续代理永远沉默。此外,silent-drop 变体在配置验证阶段没有警告,让问题更难发现。修复后心跳广播改为并行,忙碌检查精确到每个代理,并在 doctor 阶段增加了配置校验警告。多代理集群管理员需要注意:此前未触发心跳的代理将在此次修复后恢复正常调度节奏,行为变化可能影响依赖定时触发的外部系统预期。
Agent 工具结果中间件泄漏
PR #78743 修复 Agent Harness 中工具结果通过中间件时的安全传递问题。问题是当插件注册了 agentToolResultMiddleware 时,所有非 exec 类型工具的调用结果会静默丢失——即便 handler 本身是 no-op。这个问题在 2026.5.5+ 版本捆绑的 tokenjuice 插件中默认触发,但此前没有被测试覆盖 catch 到。影响范围是所有使用插件中间件并依赖工具返回值的 Agent 运行时场景,修复后结果将正确流向下游。
Memory 梦境候选污染长时记忆
PR #68774 修复了梦境短时晋升逻辑向 MEMORY.md 写入原始候选行导致文件膨胀的问题。当 dream 模块将待晋升的记忆写入 MEMORY.md 时,会使用原始的候选格式(包含 confidence、evidence、recalls、status: staged),这些数据直接追加到文件末尾,无意间将 MEMORY.md 推过 12KB 引导上下文上限。上限被触发后,真实的持久记忆会被静默截断丢弃,多代理集群中 17% 的 Cron 任务失败与此直接相关。修复后候选数据不再以原始格式写入 MEMORY.md,多代理场景下的 Cron 稳定性应明显改善。
Provider 通用内部错误识别增强
PR #49401 针对 OpenAI 兼容 Provider 返回的纯文本内部错误(如 "An error occurred while processing your request... Please include the request ID...")增加了识别逻辑。此类错误此前不会被归类为可重试的瞬态故障,原始错误信息会直接暴露给终端用户。修复后这类错误被识别并转换为友好的提示文案,同时标记为可重试,使 Agent 运行时能够正确触发故障转移流程。
其他修复:工作空间、Telegram、读偏移、文档导航
PR #75532 修复 CLI 跟进轮次中压缩后上下文刷新可能读取错误工作空间的问题;PR #75533 修复 Telegram DM 话题会话中 Active Memory 因分类错误而跳过记忆召回的问题;PR #75536 让 Agent 读操作在偏移量超出 EOF 时返回空读取而非崩溃,保持其他读取失败(如权限、路径错误)正常抛出。
文档方面,PR #81113 拆分插件文档导航结构,将插件清单、SDK 参考等页面按读者意图重新分组;PR #81141 移除 Canvas A2UI 包的 hash 文件跟踪,减少维护噪音。
Codex 插件迁移方面,PR #80815 在应用就绪态检查完成前 Gate 迁移流程,解决依赖应用列表的插件迁移在后台服务未完全启动时静默跳过的稳定性隐患,同时保持迁移前后的认证隔离。
本周期整体基调是"隐性缺陷的系统性发掘和修复",多个修复都是静默失败或行为偏差,修复前难以从日志直接判断根本原因。多代理稳定性和记忆管理是本轮主题。


评论