OpenClaw 24h 更新快报(2026-04-02):inline image 安全修复、GLM-5.1 模型、Matrix 消息排序
过去 24 小时,OpenClaw 主线继续密集推进。本批次变化涵盖一项内存耗尽安全漏洞修复、ZAI 提供商新增 GLM-5.1 系列模型、Matrix 消息流重新引入有序递送、DISCORD 网关重连架构重构,以及 Cron 调度漂移修复、任务面板功能落地等多项 agent 运行时改进。
安全与稳定性
dd7df07 修复了 inline 图片解码过程中的内存耗尽漏洞(#22325)。当 OpenClaw 处理内嵌图片时,若图片数据异常,解码阶段可能无限制申请内存导致进程崩溃或资源耗尽。该修复由 @hackersifu 报告并提交,对所有使用 inline 图片功能的部署有直接影响。
与此同时,PR #58923 修复了 auth-profiles 存储加载时凭证字段类型校验缺失的问题。若用户在 auth-profiles.json 中将 key 字段写成了 SecretRef 对象而非 keyRef,后续 resolveApiKeyFromCredential 调用 cred.key?.trim() 时会因对象无此方法而抛出 TypeError,导致非 ACP 运行时每次收到消息都崩溃。修复在存储加载阶段将非字符串的 key/token 字段迁移为合规的 keyRef/tokenRef 引用,保留用户原始配置意图。
PR #59016 应安全团队请求回滚了 #56024 对沙箱外部绑定源(external bind source)的额外限制。回滚恢复了 #56024 之前的沙箱 bind 校验行为,相关审核&查验将在安全专项路径下继续进行,不影响本次发布节奏。
模型与 AI 能力
PR #58793 为 ZAI 提供商新增 GLM-5.1(纯文本)和 GLM-5V Turbo(多模态,支持图片输入)两组模型定义,扩展了 ZAI 端的模型选项覆盖面。
PR #58625 为 Codex 多配置文件场景引入了 WHAM(Webchat HTTP API Model)感知的冷却机制。OpenClaw 此前对 Codex 速率限制应用通用阶梯退避(30s → 1m → 5m → 25m → 60m),在多 profile 并行使用或突发 429 时容易导致不必要的长时间封禁。新方案在触发限速后主动探测 https://chatgpt.com/backend-api/wham/usage 接口,根据用户实际 WHAM 窗口状态写入精确冷却时间(最快 15s 恢复,最长不超过 4h),避免多 agent 共享 pool 时一个 profile 的误判级联影响全局。
Matrix 消息流与 Discord 网关
PR #59266 恢复了 Matrix 渠道的有序进度递送(ordered progress delivery),并引入了明确的流式模式语义:streaming: "off" 保持 final-only 行为不变;streaming: "partial" 维持 draft-edit 模式;channels.matrix.blockStreaming 启用时,进度风格的分块回复将以正确顺序投递。该回归源于嵌入式 session 生命周期假设分块回复投递回调同步完成,导致异步分块刷新越过预设的工具前、消息末或 agent 结束边界。修复将 MiniMax 明文输出处理权归还 MiniMax 插件运行时,不再改动共享核心推理标签启发式。
PR #59019 将 Discord 网关重连的所有权归还 Carbon 组件。OpenClaw 此前的重连控制器读取网关调试事件作为控制流,存在 stale-socket 补丁层和重连耗尽抑制逻辑,职责边界模糊。新方案中 OpenClaw 仅负责启动就绪监督和生命周期关闭,不再干预 Carbon 侧的重连行为机和超时逻辑,降低了控制流耦合。
渠道集成
PR #58634 对 Discord、Slack、Telegram 三大渠道的审批能力(approval capability)接缝进行了统一重构,引入了 approvalCapability 标准化接缝和通用 capability/adapter 解析机制,替代此前各渠道独立实现的路数。共享审批策略和原生运行时辅助函数迁移至插件 SDK/core 路径,为未来渠道扩展提供了统一基础。
PR #58900 将聊天历史文本截断上限改为可配置项,通过 gateway.webchat.chatHistoryMaxChars 全局控制,并支持 per-request maxChars 参数覆盖,适用于 web-ui 和 macOS Swift 客户端。该功能还修复了截断时 assistant usage/cost 元数据被误删的问题。
Agent 运行时与任务调度
PR #58828 新增聊天原生 /tasks 命令,列出当前 session 的后台任务详情(运行时长、状态、时间戳、进度/错误信息),解决此前仅能通过紧凑的 /status 行查看的体验问题。当当前 session 无可见关联任务时,命令退回到 agent 级别计数,不会跨 session 泄露任务信息。
PR #58872 修复了 recurring main-session Cron 任务在 --wake now 模式下遭遇主 lane 繁忙时累积调度漂移的问题。根本原因是 executeMainSessionCronJob() 在整个 busy-wait 窗口内持续重试 runHeartbeatOnce(),将主 lane 竞争时间计入 cron 运行时长,导致 lastDurationMs 膨胀,短周期任务(如 */3 * * * *)频繁错过后续时间窗口。修复让 recurring 任务在首次检测到 requests-in-flight 后立即退回 requestHeartbeatNow(),不再在 cron 车道空转。
PR #58904 将 webchat/control 会话的 exec 审批提示对齐为原生 UI 行为,不再向 agent 提示粘贴手动 /approve 命令,与 Discord/Slack/Telegram 保持一致。
PR #58856 为 AWS Bedrock、Ollama、Mistral、Cohere、DeepSeek、Together AI、Cloudflare Workers AI 等提供商添加了特定错误模式分类,覆盖上下文溢出、限速、模型停用等场景,修复了 generic 分类器无法识别非标准错误格式导致的错误 failover 行为。
此外,PR #59044 将 host session 身份(sessionKey/sessionId)穿透到插件命令执行上下文,使 /lossless 等依赖活动会话上下文解析的插件命令得以正常工作;PR #58860 修复了审批完成后 agent session 恢复路径;PR #58759 修复了 openclaw sandbox list --browser 对正常浏览器沙箱错误显示 mismatch 的问题,原因是 docker 后端将所有 docker 运行时笼统对比 sandbox.docker.image,未区分浏览器运行时实际使用 sandbox.browser.image。
构建与基础设施
PR #59033 通过懒加载和导入收窄削减了测试文件热重载时的模块抖动(hotspot reload churn),降低开发迭代等待时间;PR #58782 恢复了捆绑运行时依赖供应,修复了此前版本中缺失的运行时路径。
本次更新基调偏向稳定性修复与运行时精细化改进,安全漏洞被主动修复,provider 生态继续扩展,多项 session 和调度层面的长期隐患得到系统性处理。


评论