


引言
2026年4月25日,OpenClaw 团队正式发布了 v2026.4.24 版本。这是一次涵盖核心代理框架、多平台渠道集成、模型生态、浏览器自动化、语音通话、诊断可观测性等数十个模块的超大版本更新 。本次更新不仅引入了 Google Meet 作为原生捆绑参与者插件,还将 DeepSeek V4 Flash 设为开箱即用的默认模型,同时在浏览器自动化、实时语音交互、插件SDK、MCP服务等方面带来了大量稳定性修复和能力增强。
一、核心亮点(Highlights)
1. Google Meet 正式成为 OpenClaw 原生参与者插件
Google Meet 以捆绑参与者插件的形式加入 OpenClaw。该插件支持:
- 个人 Google 账号认证(OAuth)
- Chrome / Twilio 实时会话
- 配对节点 Chrome 支持(用于 Parallels 风格的 Chrome/BlackHole/SoX 主机)
- 会议记录、录音、转录、智能笔记、参与者会话等工件与出勤导出
- 针对已打开的 Meet 标签页的恢复工具 (
googlemeet recover-tab)
2. DeepSeek V4 系列模型入包,V4 Flash 成为默认模型
- DeepSeek V4 Flash 和 DeepSeek V4 Pro 已加入捆绑模型目录。
- V4 Flash 成为新用户 onboarding 的默认模型。
- 修复了 DeepSeek 思维链(thinking)在后续工具调用轮次中的回放行为。
3. 实时语音循环增强:Talk、Voice Call、Google Meet 可调用完整 OpenClaw 代理
Talk 模式、语音电话和 Google Meet 现在可以使用实时语音循环,并能咨询完整的 OpenClaw 代理以获取更深入的、基于工具的答案。
4. 浏览器自动化升级
- 坐标点击(viewport coordinate clicks)
- 更长的默认操作预算(60 秒)
- 支持按配置文件单独设置 headless 模式
- 更稳定的标签页复用与恢复
5. 插件与模型基础设施启动更轻量
- 静态模型目录
- 基于 manifest 的模型行
- 延迟加载 provider 依赖
- 针对打包安装的外部运行时依赖修复
二、破坏性变更(Breaking Changes)
Plugin SDK / 工具结果转换
移除了仅限 Pi 的兼容路径 :api.registerEmbeddedExtensionFactory(...) 已被删除。捆绑的工具结果重写必须使用 api.registerAgentToolResultMiddleware(...) 并配合 contracts.agentToolResultMiddleware 声明目标 harness,确保转换在 Pi 和 Codex 应用服务器动态工具上一致运行。
三、主要功能变更(Changes)
控制 UI / Talk
- 添加了基于 OpenAI Realtime 的浏览器 WebRTC 实时语音会话,支持 Gateway 签发的临时客户端密钥,并可通过
openclaw_agent_consult将完整 OpenClaw 代理引入实时语音。
插件 / Google Meet(详细)
- 捆绑参与者插件,支持个人 Google 认证、显式会议 URL 加入、Chrome 和 Twilio 实时传输。
- 支持 配对节点 chrome-node,用于 Parallels 风格的 Chrome/BlackHole/SoX 主机。
- 实时语音会话中支持完整代理咨询。
- 工件与出勤工作流 :会议记录、录音、转录、智能笔记、参与者会话,支持 Markdown/文件输出、最新记录查找以及
--all-conference-records历史扫描。 - OAuth 与浏览器状态诊断/恢复 :包括
googlemeet doctor --oauth和recover_current_tab/recover-tab,允许代理检查已打开的 Meet 标签页而不重复打开。
插件 / Voice Call
- 暴露共享的
openclaw_agent_consult实时工具,使实时电话呼叫可以向完整 OpenClaw 代理请求基于工具的答案。 - 添加
voicecall setup和 默认 dry-run 模式 的voicecall smoke命令,可在真正测试呼叫前检查 Twilio/provider 就绪状态。
提供商 / Google
- 新增 Gemini Live 实时语音 provider,用于后端 Voice Call 和 Google Meet 音频桥接,支持双向音频和函数调用。
- 允许 Gemini TTS 预置配置的
audioProfile和speakerName提示文本,实现可复用的语音风格控制。
Gateway / VoiceClaw
- 新增基于 Gemini Live 的实时大脑 WebSocket 端点,支持 owner 认证和异步 OpenClaw 工具交接。
控制 UI
- 优化代理工具访问面板:紧凑的实时工具芯片、可折叠工具组、直接的每个工具开关、更清晰的运行时/来源信息。
- 在聊天界面中,为排队消息添加 Steer 操作,可向正在运行的任务中注入浏览器后续指令而无需重新输入。
浏览器
- 坐标点击 :支持托管会话和现有会话自动化,新增 CLI 命令
openclaw browser click-coords。 - 新增
browser.actionTimeoutMs,默认 60 秒操作预算,避免健康的长时浏览器等待在客户端传输边界失败。 - 按配置文件覆盖 headless :支持
browser.profiles.<name>.headless覆盖,单个配置文件可独立设置 headless 而不影响全局。
Matrix
- 要求针对自我设备验证的完整跨签名身份信任 ,新增
openclaw matrix verify self以便 CLI 建立该信任。
Gradium
- 新增捆绑的文本转语音 provider,支持语音笔记和电话输出。
Memory-core / 混合搜索
- 在混合内存搜索结果中公开原始
vectorScore和textScore,以及组合分数,方便调用者在时间衰减或 MMR 重排序前检查向量与文本检索贡献。
依赖 / 内存
- 默认不再安装
node-llama-cpp;本地嵌入现在仅在操作员安装可选运行时包时加载。
提供商 / DeepSeek
- 将 DeepSeek V4 Flash 和 V4 Pro 加入捆绑目录,并将 V4 Flash 设为 onboarding 默认模型。
依赖 / Pi
- 更新捆绑 Pi 包至 0.70.2,使用 Pi 上游的
gpt-5.5和 DeepSeek V4 目录元数据,仅保留本地gpt-5.5-pro前向兼容处理。
模型 / CLI
- 通过安全静态目录加速模型列表显示,减少对注册表的广泛枚举。
模型 / 命令
- 弃用
/models add:现在 chat 尝试会返回弃用消息而非写入模型配置,并从/models provider菜单中移除 add 动作。
模型 / 目录
- 添加 manifest 来源的模型行 、重复 provider/model 冲突报告,以及共享的
src/model-catalog规范化,用于 provider 索引、缓存、onboarding 和列表消费,无需加载 provider 运行时。
Codex harness / 上下文引擎
- 在 Codex 应用服务器会话中运行上下文引擎的引导、组装、轮后维护和引擎自持压缩,同时保持原生 Codex 线程状态和可审计压缩。
Codex 运行时计划
- 整合合同优先的 Pi/Codex 奇偶校验覆盖,在应用服务器配置文件登录和刷新路径中接受遗留 Codex 认证 provider 别名。
Codex harness
- 将 Codex 原生工具钩子桥接到 OpenClaw 插件钩子和审批流程,带有限制中继负载和审批垃圾防护。
插件 SDK / Codex harness
- 添加 provider 拥有的传输/认证/后续衔接接口和 harness 结果分类,使 Codex 风格运行时可以参与回退策略而无需核心特判。
Gateway / 节点
- 添加默认禁用 的
gateway.nodes.pairing.autoApproveCidrs,用于首次从显式可信 CIDR 进行节点配对,同时保持操作员/浏览器配对和所有升级流为手动。
WebChat / 会话
- 将运行时仅限提示的上下文排除在可见对话记录之外,并从会话历史表面清理遗留包装器。
代理 / 引导
- 添加
agents.defaults.contextInjection: "never"以禁用工作区引导文件注入,适用于完全拥有自己提示生命周期的代理。
插件 / manifest
- 添加
modelCatalog合同,用于 provider 拥有的模型行、别名、抑制规则和发现模式元数据,无需加载插件运行时。
插件 / 设置
- 遵守显式的
setup.requiresRuntime: false作为仅描述符的设置合同,同时将省略的值保留在遗留 setup-api 回退路径上。 - 当 setup-api 注册与
setup.providers或setup.cliBackends不一致时报告描述符/运行时漂移,但不拒绝遗留设置插件。 - 将
setup.providers[].envVars纳入通用 provider 认证/环境查找,并对仍然依赖已弃用providerAuthEnvVars兼容性元数据的非捆绑插件发出警告。 - 在回退到设置运行时之前,从描述符安全的
setup.providers[].authMethods派生通用 provider 设置选项。 - 在回退到设置运行时或安装目录选择之前,直接在 provider 设置流程中呈现 manifest provider 认证选项。
- 当仅描述符的设置插件仍然包含被忽略的设置运行时条目时发出警告,保持
setup.requiresRuntime: false语义明确。
插件 / 渠道
- 当没有设置条目可用或设置描述符声明运行时不需要时,使用 manifest
channelConfigs进行只读外部渠道发现。
插件钩子
- 在消息钩子上下文和运行生命周期事件上暴露一流的
run,message,sender,session,trace correlation字段。
插件 / PDF
- 将本地 PDF 提取移至捆绑的
document-extract插件,核心不再拥有pdfjs-dist或 PDF 图像渲染依赖。
提供商 / Anthropic Vertex
- 将 Vertex SDK 运行时移至捆绑 provider 插件之后,核心不再拥有该 provider 特定依赖。
插件 / 激活
- 暴露激活计划原因和更丰富的计划 API,允许调用者检查为何选择某插件,同时保留现有的 ID 列表激活行为。
插件 / 源元数据
- 在 provider 和渠道目录上暴露规范化的安装源事实,使得 onboarding 可以在运行时加载前解释 npm pinning、完整性状态和本地可用性。
插件 / 目录
- 将官方外部 WeCom 渠道源固定到精确的 npm 版本和分发完整性,并保护官方外部源保持完整性固定。
插件 / Bonjour
- 将 LAN Gateway 发现广告移至默认启用的捆绑插件 ,带有自己的
@homebridge/ciao依赖,允许用户在不切断广域发现的情况下禁用 Bonjour。
插件 / 兼容性
- 添加中央插件兼容性注册表和文档,包含 SDK/配置/设置/运行时弃用记录,包括遗留 harness 命名的带日期迁移元数据。
TUI / 依赖
- 从 OpenClaw TUI 代码块渲染器中移除直接
cli-highlight使用,保持主题代码着色而不增加额外根依赖。
依赖 / SBOM
- 添加所有权支持的依赖风险报告,涵盖根闭包大小、原生/构建风险包以及缺失所有者记录。
诊断 / OTEL
- 将运行、模型调用和工具执行诊断生命周期事件导出为 OTEL span,不保留实时 span 状态。
- 接受可选的
diagnostics.otel.captureContent控制,用于未来模型/工具内容 span 属性,同时保持原始内容导出默认禁用。 - 添加轻量级诊断跟踪上下文载体,用于未来 span 关联,而不向核心添加 OTEL SDK 状态。
- 将诊断跟踪上下文附加到导出的 OTEL 日志,使日志记录可以与未来 span 关联。
- 通过代理和工具钩子上下文传递不可变的每次运行诊断跟踪上下文,并从已验证上下文父级导出诊断 span,不保留全局跟踪状态。
- 使导出器启动可重启安全,配置重载不会保留过时的 SDK、日志传输或诊断事件监听器。
- 发出有界的
exec-process诊断并将其导出为openclaw.execspan,而不暴露命令文本、工作目录或容器标识符。 - 支持
OPENCLAW_OTEL_PRELOADED=1,使插件可以重用已注册的 OpenTelemetry SDK,同时保持 OpenClaw 诊断监听器连接。
诊断
- 发出带有跟踪上下文、时序和已编辑错误元数据的结构化工具执行诊断事件。
- 发出带有跟踪上下文、持续时间和非消息错误元数据的结构化运行和模型调用诊断事件。
CLI / Gateway
- 通过在只读状态路径上跳过插件加载 ,让
gateway status启动更快。
四、问题修复(Fixes)
打包安装
- 保留包根运行时依赖及其导出的子路径,当捆绑插件运行时镜像回退到复制共享块时解决 Windows npm 更新可能无法加载复制 dist 模块的问题。
Heartbeat
- 通过共享安全计时器助手钳制过大的调度延迟,防止超过 Node 超时上限的值变成 1 毫秒崩溃循环。
- 停止将心跳系统提示注入非心跳运行 ,防止普通用户回复被错误抑制为
HEARTBEAT_OK确认。
MCP
- 在运行结束时退役一次性嵌入式捆绑 MCP 运行时 ,当运行时工具允许列表无法访问捆绑 MCP 工具时跳过捆绑 MCP 启动,并添加
mcp.sessionIdleTtlMs空闲驱逐以防止泄漏的会话运行时。
Gateway / 重启延续
- 在删除重启哨兵之前,将重启延续可靠地交给会话投递队列,在崩溃重启后恢复排队延续工作,并在无渠道路由存活时回退到仅会话唤醒。
代理 / 工具结果修剪
- 强化工具结果字符估计器和上下文修剪循环,防止由 void 或 undefined 工具处理器结果创建的格式错误的
{ type: "text" }块,对非字符串文本负载进行序列化以便大小核算,使其无法作为零大小绕过修剪。
守护进程 / 服务环境
- 在 macOS 和 Linux 上为生成的 gateway 服务 PATH 添加 Nix Home Manager 配置文件 bin 目录,遵循
NIX_PROFILES从右到左优先级,并在未设置时回退到~/.nix-profile/bin。
Feishu
- 在 HTTP 400 启动失败后退避流式卡片创建,使不支持的卡片设置回退而不延迟每条消息。
- 通过
thread_id键控原生 Feishu/Lark 主题组会话,使具有不同root_id格式的起始消息和回复保持在同一个group_topic对话中。 - 抑制空闲关闭流式卡片后最终卡片交付重复。
Signal
- 保留发送者附件文件名,并从这些文件名解析缺失的 MIME 类型,使得没有
contentType的 Linux signal-cli 语音笔记仍能进入音频转录。
Telegram / 代理
- 抑制在回复已通过消息工具提交后的虚假"代理无法生成响应"回退。
模型 / CLI
- 在
openclaw models list中显示 provider 运行时contextTokens以及原生contextWindow,并将openai-codex/gpt-5.5与 Codex 的 272K 运行时上限和 400K 原生窗口对齐。
仪表板 / 安全
- 避免将标记化的控制 UI URL 或 SSH 提示写入运行时日志,保持 gateway bearer 片段远离通过
logs.tail可读的控制台捕获日志。
提供商 / OpenRouter
- 将 DeepSeek refs 视为缓存 TTL 合格,而不注入 Anthropic 缓存控制标记,使上下文修剪与 OpenRouter 管理的提示缓存对齐。
控制 UI / 浏览器
- 延迟临时目录访问模式常量,直到 Node 专用临时目录解析运行,防止浏览器捆绑包在
node:fs常量被 stub 时崩溃。
Discord / cron
- 仅从标准的最终助手文本交付隔离的 cron 和心跳公告的纯文本输出,避免当流式块负载和最终答案包含相同内容时重复 Discord 发布。
macOS Gateway
- 等待 launchd 重新加载已退出的 Gateway LaunchAgent 后再引导修复回退,防止配置触发的重启导致服务未加载。
- 容忍重启回退期间
launchctl bootstrap的"已加载"退出,并在 bootstrap 后使用非杀死 kickstart,避免可能卸载 LaunchAgent 的第二次竞态。 - 在重启回退引导前重写过时的 LaunchAgent plist,匹配当 gateway 重启需要重新注册 launchd 时的安装修复行为。
TTS / 钩子
- 为
message_sending和message_sent钩子保留纯音频 TTS 转录,而不将转录渲染为媒体字幕。
WhatsApp / TTS
- 通过共享媒体负载发送和 WhatsApp 出站适配器保留
audioAsVoice,使得[[audio_as_voice]]回复负载在通过sendPayload路由时保持其语音笔记意图。
控制 UI / WebChat
- 从可见聊天记录中隐藏心跳提示、
HEARTBEAT_OK确认以及内部仅运行时的上下文轮次,同时保持底层转录完整。 - 当最终历史刷新短暂返回较旧快照时,保持乐观的用户和助手尾部消息可见,防止消息卡片在下次刷新前闪烁消失。
Talk / TTS
- 在 provider 列表发现之前从活动运行时注册表解析已配置的扩展语音 provider,使 Talk 模式不再拒绝有效的插件语音 provider 为不支持。
会话 / 子代理
- 停止已结束运行和旧的仅存储子反向链接在
childSessions中重新出现,同时保持活跃后代和最近结束的子节点可见。 - 在可恢复的等待传输失败后恢复子会话而不暴露额外的等待状态,并保持终端生命周期计时器顺序确定性。
- 停止未结束的运行永远计为活动或挂起,同时为可恢复子会话保留重启中止恢复。
Gateway / 工具
- 允许
POST /tools/invoke到达插件支持的目录工具(如browser),即使没有核心实现,同时仍为核心名称优先选择内置工具。
浏览器 / 安全
- 要求
operator.admin用于browser.requestgateway 方法,匹配该路由暴露的主机/浏览器节点控制权限。
浏览器 / 配置文件
- 允许本地托管配置文件覆盖
browser.executablePath,使不同配置文件可以启动不同的基于 Chromium 的浏览器。
代理 / 回放
- 在严格的 provider 回放之前修复位移或缺失的工具结果,对 OpenAI Responses 历史使用 Codex 兼容的中止输出,并在重试前丢弃部分中止/错误传输轮次。
浏览器 / 启动
- 对每个配置文件去重并发延迟启动调用,使同时的浏览器工具请求不再竞争导致重复 Chrome 启动和端口占用错误。
- 在崩溃或主机移动后通过清除死锁/外部锁并重试一次启动,从过时的 Chromium Singleton* 配置文件锁中恢复。
- 保持 Chrome MCP 状态探测仅为传输性和临时性,并对过时缓存的 Playwright 附件重试一次,使空闲配置文件检查不再毒害下一次真实附件。
Cron / 执行
- 仅对
delivery.mode="none"的静默 cron 任务抑制自动后台执行完成唤醒,同时保持 webhook 和公告运行可观察。
回复媒体
- 允许沙盒回复交付 OpenClaw 管理的
media/outbound和media/tool-*附件,而不将其视为沙盒逃逸,同时在托管媒体根目录上保持别名逃逸检查。
CLI / 代理
- 通过将 gateway、插件和内嵌回退诊断路由到 stderr,保持
openclaw agent --json的 stdout 专用于 JSON 响应。
代理 / Gemini
- 重试仅推理、空和仅规划的 Gemini 轮次,防止会话静默卡住。
提供商 / DeepSeek
- 为启用了 DeepSeek V4 思维的回放助手工具调用轮次添加缺失的
reasoning_content占位符,使得将现有会话切换到deepseek-v4-flash或deepseek-v4-pro不再触发 provider 的 400 回放检查错误。
执行审批
- 允许裸命令名称模式匹配 PATH 解析的可执行文件基名,而不信任
./tool或绝对路径选择的二进制文件。
配置 / 恢复
- 当无效性仅限于
plugins.entries.*时跳过整个文件的"最后已知良好"回滚,在插件模式或主机版本偏差期间保留无关用户设置。
代理 / 工具
- 保持解析的回复运行配置不被过时的运行时快照覆盖,并让空 web 运行时元数据回退到配置的 provider 自动检测,使标准和排队轮次暴露相同的工具集。
代理 / TTS
- 将解析的共享配置传递给
tts工具,使工具触发的语音使用配置的 provider 和语音,而不是回退到新的配置加载。
回复媒体
- 当相同媒体已通过块流发送时,从最终回复中剥离
MEDIA:附件,防止重复的 Telegram 语音笔记和文件。
代理 / TTS
- 当工具生成的回复与精确的
NO_REPLY哨兵配对时保留语音媒体,剥离哨兵文本而不是丢弃音频负载。
压缩
- 遵守显式的
agents.defaults.compaction.keepRecentTokens用于手动/compact,重新蒸馏保障摘要而不是累加先前的摘要,并默认启用保障摘要质量检查。
会话
- 在加载时维护期间遵守配置的
session.maintenance设置,而不是回退到默认条目上限。
浏览器 / 沙盒
- 将解析的
browser.ssrfPolicy传递到沙盒浏览器桥接,并在有效策略更改时刷新缓存的桥接,使沙盒浏览器导航遵守私有网络选择加入。
浏览器 / 代理
- 保持 Gateway/provider 代理环境变量不代理 OpenClaw 管理的浏览器,使
HTTP_PROXY和HTTPS_PROXY不再阻止普通浏览器导航。
代理 / MCP
- 使用支持 draft-2020-12 的捆绑 MCP 客户端验证器验证 MCP 工具输出模式,使外部 MCP 服务器不再因缺少模式引用而失败。
仪表板 / Windows
- 通过系统 URL 处理程序打开控制 UI 和 OAuth URL,无需 cmd.exe 解析或基于 PATH 的
rundll32查找,并拒绝非 HTTP 浏览器打开输入。
配置 / doctor
- 拒绝
SecretRef凭据路径上的遗留secretref-env:<ENV_VAR>标记字符串,并通过openclaw doctor --fix将有效标记迁移到结构化 env SecretRef。
插件 SDK / 浏览器
- 通过浏览器配置文件外观导出解析的浏览器标签页清理配置类型,保持 SDK 子路径合同对齐。
提供商 / OpenAI
- 分离 API-key 和 Codex 登录 onboarding 组,并避免在模型路由切换后回放过时的 OpenAI Responses 推理块。
提供商 / OpenAI 兼容
- 仅对选择加入
compat.supportsPromptCacheKey的 provider 转发prompt_cache_key完成请求,保持默认代理负载不变。 - 跳过来自自定义 provider 的 null 或非对象流块,而不是在部分输出后使轮次失败。
- 将单数 MLX 风格的
finish_reason: "tool_call"视为工具使用而非 provider 错误。
文档 / TTS
- 澄清遗留扁平 TTS provider 配置块由
openclaw doctor --fix修复,而不是在加载时被严格运行时模式接受。
插件 / OpenCode
- 为 OpenCode 图像理解剥离不支持的禁用 Responses 推理负载。
- 注册图像理解元数据,使
image工具对具有视觉支持的 OpenCode 目录模型可用。 - 将默认 Go 目录模型更新为
opencode-go/kimi-k2.6。
提供商 / ElevenLabs
- 为 PCM 电话合成省略仅 MP3 的
Accept标头,使对pcm_22050的 Voice Call 请求不再接收 MP3 音频。
提供商 / MiniMax TTS
- 在发送 T2A 请求前截断分数音高覆盖,匹配 MiniMax 的整数音高合同,同时保持分数速度和音量。
- 将语音笔记目标转码为 Opus,使 Feishu/Telegram 接收原生语音消息而非 MP3 文件附件。
提供商 / Microsoft TTS
- 即使另一个语音插件已注册,保持允许列表中的捆绑语音 provider 可发现,使 Edge/Microsoft TTS 与 OpenAI 同时可用。
- 遵守遗留
messages.tts.providers.edge语音设置,将 Edge TTS 规范化到 Microsoft provider。
提供商 / OpenRouter
- 添加使用 OpenAI 兼容的
/audio/speech端点和OPENROUTER_API_KEY的 OpenRouter TTS provider。
macOS Talk 模式
- 通过 gateway
talk.speak在失败时重试本地 ElevenLabs 流播放,回退到系统语音,使配置的 ElevenLabs 语音在流播放失败时仍能播放。
插件 / Voice Call
- 默认收割过时的接前呼叫,为 Twilio 媒体流播放遵守配置的 TTS 超时,并将空电话音频失败而非完成为静音。
- 当 Twilio、Telnyx 或 Plivo 会回退到环回/私有 webhook URL 时快速失败,使呼叫不会以无法到达的回调端点开始。
- 当抢占或流拆除清除播放队列时解析已排队但尚未播放的 Twilio TTS 条目,使调用
queueTts()的等待者不会挂起。 - 终止过时的恢复呼叫会话并提供给 provider,以及仅用剩余持续时间重启恢复的最大持续时间计时器,防止 Gateway 重启后过时的外呼重试循环。
- 在 Telnyx 外呼对话问候后启动 provider STT,并将配置的 Telnyx 语音 ID 传递给 speak 动作。
Skills
- 当
metadata.openclaw不存在时,遵守遗留metadata.clawdbot要求和安装程序提示,使较旧的技能在缺少必需二进制文件时不再显示为就绪。
浏览器 / 配置
- 在 Chromium 启动前扩展
browser.executablePath中的~,使家目录相对的自定义浏览器路径不再因ENOENT失败。
渠道 / 流式
- 保持 Telegram 工具进度预览更新默认启用,文档说明
streaming.preview.toolProgress: false仅用于禁用这些状态行,并防止预览进度文本触发 Telegram Markdown 链接、Discord 提及或 Slack mrkdwn 提及。
Gateway / 会话
- 在原子重写之前将过大的
sessions.json复制到轮转备份而不是重命名活动存储,使崩溃期间的轮转保持权威的会话到转录映射。
提供商 / OpenAI 兼容
- 从代理负载中剥离仅限 OpenAI 的 Completions 存储,并允许
extra_body/extraBody传递参数用于 provider 特定请求字段。
Discord / 子代理
- 通过保持请求者代理公告路径为主,并仅在公告未产生可见输出时回退到直接线程发送,保留线程绑定完成交付。
Discord / 代理
- 使用
undiciFormData 序列化代理的多部分附件上传,使 Discord 媒体发送通过配置的 REST 代理工作。
浏览器 / 工具
- 为 Chrome MCP 现有会话管理调用提供更长的默认超时,通过标签页管理传递显式工具超时,并从过时的选中页面 MCP 会话中恢复,无需强制手动重置。
浏览器 / 沙盒
- 清理由主代理浏览器会话打开的空闲跟踪标签页,同时为子代理、cron 和 ACP 会话保留活动标签页复用和生命周期清理。
插件 / Voice Call
- 跨进程内插件上下文重用 webhook 运行时,避免当 agent 工具或 CLI 命令在 Gateway 已拥有语音 webhook 端口时出现
EADDRINUSE。 - 在
call.initiated上应答接受的 Telnyx 入站呼叫控制分支,使到达 OpenClaw 的 webhook 不再让呼叫者一直响铃直到挂断。 - 在同一运行时实例上合并并发的 webhook 服务器启动,避免重叠启动路径竞速时的第二次
listen()绑定。 - 在内嵌 agent 运行前将语音响应会话固定到
responseModel,避免当全局默认模型不同时实时会话模型切换失败。 - 为语音响应生成添加
agentId,使电话呼叫可以使用专用 agent 工作区,而不是总是通过主 agent 路由。 - 将内嵌语音响应沙盒解析范围限定到选定的语音 agent,使隐式主语音会话遵守
agents.defaults.sandbox.mode: "off",即使其他 agent 定义了沙盒 Docker 绑定。
媒体工具
- 为媒体理解、图像/音乐/视频生成引用和 PDF 输入遵守配置的
web-fetchSSRF 策略,使显式 RFC2544 选择加入覆盖 WebChat OSS 上传而不削弱默认值。
代理 / TTS
- 当结构化语音媒体已排队时,抑制来自详细聊天工具输出的成功口语转录,同时为非内置工具名称冲突保留文本输出。
插件 / Google Meet
- 跨无害的 URL 查询差异重用活动 Meet 标签页,在浏览器超时后恢复已打开的标签页,为登录或权限阻止程序展示手动操作细节,并让
googlemeet recover-tab从终端检查配对浏览器节点。
Cron / 隔离会话
- 在创建新的隔离运行时清除过时的运行时、生命周期、认证、模型、执行、心跳、使用、特权、路由和交付工件,并将每次运行会话行保存为快照,使旧的基会话状态不再泄漏到新的 cron 执行中。
Gateway / 会话
- 从过时的转录锁证据中恢复因 gateway 重启而中断的主 agent 轮次,避免没有广泛启动后转录扫描的卡在
status: "running"会话。
Codex 审批
- 在转发到 OpenClaw 审批提示之前,清理 MCP 征集的审批标题、描述和显示参数。
- 保持命令审批响应在 Codex 应用服务器
availableDecisions内,包括为不提供 decline 的提示添加拒绝/取消回退。
Codex harness
- 在绑定轮次开始后,拒绝同一线程的应用服务器通知没有
turnId或turn.id,防止无范围事件变异或完成活动回复。
插件 / Google Meet
- 在设置中包含实时 Chrome 节点就绪和 Parallels 恢复检查,使过时的节点令牌或断开的 VM 浏览器在 agent 打开会议前可见。
上下文引擎
- 在上下文引擎窗口化后以及对于
ownsCompaction引擎保持保障压缩检查活动,使大型转录可以在提示提交前压缩,而不是等待 provider 溢出。
审批
- 将结构化家目录路径压缩为
~用于 Codex 权限提示和执行审批元数据,而不重复作为单独的高风险警告,同时保留文件系统根和通配符主机警告。
插件 / 运行时依赖
- 隔离用于捆绑插件运行时依赖修复的内部 npm 缓存,并让包更新刷新/验证已当前的安装,使失败的更新或 sudo doctor 运行可以通过重新运行
openclaw update修复。
代理 / 删除
- 保持
--json输出机器可读,并保留与另一个 agent 工作区重叠的工作区,而不是将共享状态移到回收站。
浏览器 / 截图
- 遵守通过主机和节点截图请求的
timeoutMs,绑定原始 CDP 截图命令,并避免对普通视口截图使用超出视口的 CDP 捕获,使 Windows Chrome 截图不再超过请求的截止时间挂起。
Telegram / 模型选择器
- 在通过 provider 按钮浏览模型时显示配置的模型显示名称,匹配
/models <provider>输出。
插件 / 运行时依赖
- 将捆绑插件运行时依赖暂存到打包/全局安装的外部运行时根目录,并在修复时保留已暂存依赖,避免包树更新竞态和升级后的 npm 修剪。
- 在同步 npm 安装开始前记录捆绑插件运行时依赖暂存,并包含经过时间,使升级后的首次启动在依赖修复期间看起来不再卡住。
内存 / Bedrock
- 当 AWS 凭证不可用时,在自动内存嵌入选择期间跳过 Bedrock,使
memory_search可以回退到词汇搜索,而不是在第一次嵌入调用时就失败。
代理 / 故障转移
- 将内嵌运行中止信号转发到 provider 拥有的模型流,将隐式 LLM 空闲看门狗限制在长运行超时以下,并将没有可用重试时机的 429 响应标记为不可重试,使 GitHub Copilot 速率限制故障转移或快速暴露而不是挂起直到运行超时。
插件 / Google Meet
- 使会议创建默认为加入,带有显式的仅 URL 退出,使创建 Meet 的 agent 也会进入它。
Telegram / 轮询
- 在长运行处理器完成前持久化接受的更新偏移量,使轮询器重启不会重播已摄入的更新,同时为处理器失败保留同进程重试。
Telegram / 配置
- 在打包插件 manifests 中包含生成的 Telegram 渠道配置模式元数据,使论坛主题/组配置在运行时加载前被接受。
CLI / Claude
- 在严格的 Claude CLI MCP 捆绑配置中包含用户配置的
mcp.servers,匹配 Pi 运行,同时保留 OpenClaw 环回覆盖。
浏览器 / 工具
- 保持显式 AI 快照不继承高效角色快照默认值,并保留数字 Playwright AI 引用,使
--format ai保持为真正的 AI 快照路径。
Gateway / 配置
- 当磁盘上恢复了
${VAR}环境引用时,保持在解析的源快照上的进程内配置补丁重载比较,避免对未更改的 gateway/plugin 密钥进行虚假的全 gateway 重启。
Slack / 消息
- 序列化写客户端请求和每个目标的完整出站发送,使快速的 Slack 多消息回复保持发送顺序。
- 保持 Slack bot 令牌不在内部消息排序和 DM 缓存键中。
- 通过 Gateway 解析原生审批按钮点击,而不是将
/approve ...作为纯 agent 文本交付,如果 Gateway 解析失败则保留重试按钮。
浏览器 / 工具
- 向 agents 暴露
browser doctor诊断,并扩展openclaw doctor浏览器就绪笔记,说明托管 Chromium 启动先决条件。
Slack / 文件
- 将非图像下载文件结果作为本地文件路径返回而不是图像负载,并在入站文件占位符中包含 Slack 文件 ID,使 agents 可以调用
download-file。
浏览器控制
- 将独立环回认证范围限定到已解析的活动 gateway 凭证,并在密码模式缺少已解析密码时关闭失败,使非活动令牌或密码不再授权浏览器路由。
控制 UI / Codex harness
- 发出原生 Codex 应用服务器助手和生命周期完成事件,使实时 webchat 运行停止旋转而不需要转录重载回退。
代理 / 会话
- 从内嵌 agent 运行中持久化运行时解析的上下文预算,使 Codex GPT-5.5 会话保持目录/运行时上下文上限,而不是回退到通用 200k 状态值。
代理 / 工具
- 当显式工具允许列表解析为零可调用工具时,在模型提交前使运行失败,防止对未注册工具(如未注册的插件命令)的纯文本幻觉工具结果。
代理 / 内嵌
- 当内嵌运行没有提示、回放历史或提示本地图像时跳过 provider 提交,防止空的 OpenAI Responses 请求将 provider 错误暴露给用户渠道。
提供商 / Google
- 将
/think adaptive映射到 Gemini 动态思维而不是固定的中/高预算,对 Gemini 3 使用 provider 默认值,对 Gemini 2.5 使用thinkingBudget: -1。
提供商 / MiniMax
- 保持 M2.7 聊天模型元数据为纯文本,使图像工具请求路由到 MiniMax-VL-01 而不是 Anthropic 兼容的聊天端点。
Discord / 回复
- 为 Discord 回复交付运行
message_sending插件钩子,包括 DM 目标,使插件可以跨渠道一致地转换或取消出站 Discord 回复。 - 跨共享负载回退、组件、语音和排队交付路径保留单次使用原生回复语义,使显式回复标签不再消耗隐式回复槽位,且分块回退发送仅回复一次。
控制 UI / 命令
- 在会话行和默认值中携带 provider 拥有的思维选项 ID/标签,使新会话显示并接受动态模式,如
adaptive、xhigh、max。
图像生成
- 使显式
model=覆盖为仅精确匹配,使失败的openai/gpt-image-2请求不再回退到 Gemini 或其他配置的 provider,并更新image_generate list提及 OpenAI Codex OAuth 作为openai/gpt-image-2的有效认证。
提供商 / GitHub Copilot
- 保持插件流包装器不在 OpenClaw 选择边界感知流路径前声明传输选择,避免在普通模型轮次上使用 Pi 的过时回退 Copilot 标头。
Discord / 子代理
- 将运行时配置传递到线程绑定原生子代理绑定中,并在助手边界处需要它,使 Discord 渠道解析保持账户感知配置。
Slack / Assistant
- 当 Slack Assistant DM
message_changed事件的元数据标识人类发送者时接受它们,同时继续丢弃自作者机器人编辑。
Slack / 原生流式
- 在
chat.startStream/appendStream之前抑制仅推理负载,使 Claude 扩展思维块不再显示为可见的 Slack 消息。
Slack / 块回复
- 当
replyToMode为first时,保持多部分块交付在第一个 Slack 回复线程中,匹配文本回复线程,而不是将后面的块泄漏到渠道中。
Slack / 线程广播
- 将
thread_broadcast事件作为用户消息处理,使选择"也发送到频道"的回复能到达 agent,而不是成为仅元数据的系统事件。
Slack / 线程
- 在选择 Slack
thread_ts值时忽略内部回复 ID,使恢复的回复保持真实的 Slack 线程锚点,而不是泄漏到渠道根。
代理 / 故障转移
- 停止无体的 HTTP 400/422 代理失败默认归类为"格式",使内嵌重试暴露不透明的 provider 失败,而不是陷入压缩循环。
插件 / 加载器
- 使用缓存的发现模式快照进行只读插件能力查找,保持快照缓存与活动 Gateway 注册表隔离,并使同一插件的渠道/HTTP 路由重新注册幂等,使重复的快照或热重载路径不再重新运行完整插件副作用或累积重复表面。
- 在 gateway 可绑定启动加载后,重用兼容的活动 Gateway 注册表进行广泛的运行时插件
ensure调用,使非捆绑插件在相同启动路径中不再重新运行register()。 - 当后来的默认模式插件激活不同注册表时,保持 gateway 可绑定钩子运行器安装,跨运行时缓存未命中保留 Gateway 子代理生命周期钩子。
- 在入站渠道调度前刷新实时 Gateway 运行时钩子,使外部安装的插件在作用域启动插件加载后保持
message_received、before_dispatch和reply钩子活动。
媒体 / 输入
- 通过共享媒体加载器解析规范的入站媒体引用,使原生提示图像回放和显式图像/PDF 工具可以在仅工作区文件策略下读取
media://inbound/<id>和托管入站回放路径。
媒体 / 工具
- 集中化图像、PDF、图像生成、视频生成和音乐生成输入的媒体引用方案分类,使托管入站引用被一致接受。
控制 UI / 媒体
- 在提供助手媒体预览前解析规范的入站媒体引用,使
media://inbound/<id>源不再通过访问检查但随后无法打开文件。
认证 / Codex
- 在新安装时从 Codex CLI 凭证引导
openai-codex:default,而不替换稍后本地刷新的 OpenClaw OAuth 令牌。
插件 SDK / 工具结果转换
- 绑定中间件详情,验证原地结果突变,并将失败关闭的中间件回退标记为规范错误状态。
Discord / gateway
- 防止当 Carbon gateway 注册与生命周期重连竞速时启动卡在等待 gateway 就绪。
- 监督 Carbon 的异步 gateway 注册承诺,使致命的 Discord 元数据失败通过启动暴露,而不是进程级未处理拒绝。
- 将 WebSocket 帧活动记录为传输活跃性,使空闲但健康的 Discord gateway 在用户消息间不再显示为过时。
Slack / 流式
- 当原生或草稿预览流式拥有轮次时抑制块回复,防止同时启用块流式时重复 Slack 交付。
插件 / 缓存
- 在加载器缓存命中时恢复插件命令和交互式处理程序注册表,而不重置交互式回调去重,使缓存的外部插件在重载后保持斜杠命令和回调处理程序可用。
Gateway / OpenAI 兼容
- 当 agent 运行仅有最后调用使用元数据可用时,报告
/v1/chat/completions的非零令牌使用。
插件 SDK / 工具结果转换
- 将 harness 工具结果中间件限制为捆绑插件,在中间件错误时关闭失败,验证重写的结果形状,保留 Pi 每次调用 ID,并保持 Codex 媒体信任检查锚定到原始工具来源。
Gateway / MCP 环回
- 在
127.0.0.1/mcp的tools/list和tools/call上应用仅 owner 工具策略和运行前工具调用钩子,使非 owner bearer 调用者无法再看到或调用 owner 专用工具(如cron、gateway、nodes),匹配现有 HTTP/tools/invoke和内嵌 agent 路径。
Codex harness / 安全
- 等待最终应用服务器审批决策,并清理审批预览文本,使原生 Codex 权限提示不能由过早的占位决策解决或渲染不安全的终端/控制内容。
提供商 / 语音安全
- 通过受保护的 fetch 路径路由 ElevenLabs TTS 和 OpenAI Realtime 浏览器会话秘密创建,保持 provider 调用同时在语音表面上启用 SSRF 保护。
代理 / OpenAI WS
- 匹配 Codex 的 Responses WebSocket 继续策略,仅发送带有
previous_response_id的严格增量后续输入,并在回放链或请求形状不同时回退到完整上下文。
插件 / Google Chat
- 仅在所有候选项失败后记录 webhook 认证拒绝原因,并当
add-on appPrincipal值与配置不匹配时发出警告。
模型 / 配置
- 当从 configure 重新运行 provider 认证时保留现有默认模型,同时使显式默认设置命令保持权威。
配置 / 插件
- 在验证、生成的模式元数据和插件策略检查中接受
plugins.entries.*.hooks.allowConversationAccess,使受信任的外部插件能启用会话访问钩子(如agent_end)而不需要本地模式补丁。
模型 / 运行时
- 每个 provider 显示一个模型 provider 选择,并将 Codex、Claude CLI 和 Gemini CLI 执行移入显式运行时选择,同时为遗留运行时引用保持仅回退的未更改。
插件 / 运行时依赖
- 在修复捆绑运行时依赖时遵守显式插件和渠道禁用,使
doctor和健康检查不再为禁用的已配置渠道安装依赖。
诊断 / OTEL
- 通过有界诊断日志事件导出日志,而不是直接 logger 传输钩子。
WhatsApp / 插件
- 支持显式选择加入入站
message_received钩子,带有规范渠道、对话、会话和发送者字段。
渠道 / 设置
- 保持捆绑设置条目依赖轻量,并仅在登录实际需要时暂存 WhatsApp 运行时依赖,使首次运行设置和只读渠道发现避免未使用的 SDK 导入。
Slack / HTTP
- 将 webhook 处理程序保存在进程全局注册表中,使 HTTP 模式在插件加载器/原生导入拆分后存活,并且
/slack/events/<account>在记录为活动后不再返回 404。
诊断
- 针对恶意错误、阻塞监听器和不安全稳定性原因字段强化工具和模型诊断事件。
插件 / onboarding
- 记录本地插件安装源元数据,而不在持久化的
plugins.installs中重复原始绝对本地路径,同时保留链接的加载路径清理。
群聊 / 静默回复
- 收紧
NO_REPLY提示指导,使群组保持安静而不叙述沉默或在沉默是预期结果时发出回退闲聊。
WhatsApp / 群组 + 直连
- 在特定
groups.<id>或direct.<peerId>条目上设置systemPrompt: ""现在会抑制通配符系统提示而不是回退到它,允许用户为特定群组或对等方静默全局提示。
浏览器 / 工具
- 告知 agents 不要在现有会话类型、评估和其他拒绝超时覆盖的 Chrome MCP 动作上传递每次调用
timeoutMs。 - 使用 Playwright 当前 AI aria 快照 API 用于
refs="aria",并在节点浏览器无法提供 aria 引用时回退到角色引用,使 agents 仍能检查和点击如 Google Meet 入场按钮等控件。 - 暴露稳定的
tabId句柄如t1及可选标签页标签,并在任何需要浏览器标签页目标的地方接受这些句柄。 - 在标签页负载中首先返回
suggestedTargetId,使 agents 自然地重用标签页标签或稳定句柄而不是原始 DevTools ID。 - 捆绑一个浏览器自动化技能,包含多步快照、稳定标签页、过时引用和手动阻塞循环,用于 agent 控制的页面。
- 添加
openclaw browser doctor、URL 扩展快照、直接标签截图,以及为意外传递位置索引的 agents 提供更清晰的标签页目标错误。
插件 / Google Meet
- 使用浏览器自动化分类并清除 Meet 入场阻塞器(如麦克风选择插页),并在重试时重用进行中的创建标签页而不是打开重复项。
Codex / GPT-5.4
- 强化跨原生和内嵌运行时路径的回退、认证配置文件、工具模式和回放边缘情况。
模型 / 回退
- 在模型切换前解析裸回退模型 provider ID,使配置的回退链在回退命名时没有显式 provider 前缀时仍能工作。
Voice-call / Telnyx
- 保留入站/出站回调元数据,并从 Telnyx 当前的
transcription_data负载读取转录文本。
提供商 / DeepSeek
- 连接 V4 思维控制和 OpenAI 兼容回放策略,使后续轮次保留 DeepSeek
reasoning_content,而None/off思维路径剥离回放的推理字段。
提供商 / GitHub Copilot
- 跨 Anthropic、Responses 和内建压缩摘要路径(包括工具结果和图像后续轮次)对齐 Copilot 请求标头,而不启用未验证的 Responses 继续。
Codex harness
- 对于原生应用服务器运行,向聊天渠道发送详细的工具进度,匹配 Pi harness 的
/verbose on和/verbose full行为。
Codex 模型
- 获取分页的 Codex 应用服务器模型目录,标记截断的
/codex models输出,并在openai-codex/gpt-5.5路由上保持 ChatGPT OAuth 默认值,而不是 OpenAI API-key 路由。
Codex 状态
- 对原生
codex/*会话将 Codex CLI OAuth 报告为oauth (codex-cli),而不是显示未知认证。
渠道 / CLI
- 接受显式的共享密钥、基 URL 和认证目录设置标志,并将遗留 Nextcloud Talk
--url/--token添加命令映射到捆绑插件设置输入。
模型 / CLI
- 保持
openclaw models list只读,同时仍显示符合条件的已配置 provider 行,使列出模型不再重写每个 agent 的models.json。
代理 / 传输
- 将配置的尝试超时传播到受保护的每次请求分发器,使慢速本地 LLM 调用(如 Ollama)不再在 Undici 默认 60 秒体超时时失败。
插件 / providers
- 在捆绑 provider manifests 中镜像运行时认证选择,并在插件运行时加载前从环境变量检测
KIMI_API_KEY用于 Moonshot/Kimi 网页搜索。
Gateway / chat
- 在聊天运行注册表中注册
chat.send运行,使生命周期错误事件到达客户端而不是被静默丢弃,修复卡在"等待"状态和/abort报告无活动运行的问题。
插件 / QQ Bot
- 默认启用捆绑的
qqbot插件,使其运行时依赖@tencent-connect/qqbot-connector在首次启动时安装,解封在任何账户配置前动态导入连接器的 QR 码绑定流。
Gateway / agent RPC
- 将活动 agent 运行注册到聊天中止控制器映射中,使
chat.abort和sessions.abort可以中断它们,匹配chat.send行为,并解封通过公共 agent RPC 驱动 Gateway 的外部运行时。
Matrix / CLI
- 将解析的运行时配置传递到
verify命令,使openclaw matrix verify status和兄弟verify子命令不再在获取 Matrix 客户端前崩溃。
Gateway / 启动
- 在渠道监视器报告就绪前等待启动边车完成,减少 Discord 和插件启动竞态,同时保持 gateway 启动可观察性完整。
插件 / Google Meet
- 报告 Chrome 加入所需的手动操作,使用浏览器自动化进行 Meet 入场,并持久化私有 WS 节点选择,使配对节点实时会话保持其预期的网络策略。
Slack
- 通过正常分块发送器路由原生流回退回复,使长缓冲的 Slack Connect 响应不被丢弃或重复。
- 在 agent 分派前转录接受的语音笔记,同时保持口语转录不在命令授权中。
插件 / CLI
- 在发现模式插件加载期间暴露渠道插件 CLI 描述符,使快照注册表保持渠道命令可见而不激活完整运行时。
- 交付由工具结果回复生成的媒体,同时抑制纯文本工具闲聊。
配置 / 代理
- 在严格配置验证中接受
agents.list[].contextTokens,使每个 agent 覆盖在热重载后存活,让/status反映配置的模型窗口而不是 200k 回退。
Heartbeat
- 在心跳提示中包含异步执行完成详情,使命令完成通知传递实际输出。
内存搜索
- 对会话转录点击应用会话可见性和 agent 到 agent 策略,并在结果限制前保持
corpus=sessions排名限定到会话集合。
代理 / 会话
- 停止会话写锁超时进入模型故障转移,使本地锁争用直接暴露而不是级联跨 providers。
自动回复
- 通过
message_sending钩子运行入站回复交付,使插件在发送前可以转换或取消生成的回复。
CI / 发布检查
- 通过步骤环境变量传递工作流输入和矩阵值,而不是直接嵌入到
run:shell 命令中,减少跨操作系统发布检查工作流中的模板注入表面。
五、总结
代码地址:github.com/openclaw/openclaw
OpenClaw v2026.4.24 是一次里程碑式的大版本更新,涵盖了从模型生态、实时语音、浏览器自动化到多渠道集成、企业级可观测性的全方位进化。Google Meet 的原生接入使其成为真正意义上的全场景智能代理平台,DeepSeek V4 Flash 成为默认模型则大幅降低了新用户的使用门槛。同时,超过两百项的问题修复和优化,显著提升了系统的稳定性、安全性和生产环境可用性。