openclaw 2026.4.20版本于2026年4月20日发布,这是一个广泛的质量更新版本,主要专注于模型提供商优化、安全加固和跨平台稳定性提升。
主要新增功能
- Onboard/向导重新设计:重新设计设置安全免责声明,采用单一黄色警告横幅、章节标题和项目符号清单,使关键指导更易于扫描
- 代理提示增强:加强默认系统提示和OpenAI GPT-5覆盖层,提供更清晰的完成偏差、实时状态检查、弱结果恢复和最终指导前的验证
- 模型成本支持:支持缓存目录和配置模型的分层定价,包含捆绑的Moonshot Kimi K2.6/K2.5成本估算用于令牌使用报告
- 会话维护优化:默认强制执行内置条目上限和年龄修剪,在加载时修剪过大的存储,防止累积的cron/执行器会话积压导致网关内存溢出
- 插件测试改进:在重复的相同上下文加载中重用插件加载器别名和Jiti配置解析,减少导入密集型测试开销
- Cron作业分离:将运行时执行状态拆分为jobs-state.json,使jobs.json保持稳定用于git跟踪的作业定义
- 代理压缩通知:在上下文压缩期间发送选择加入的开始和完成通知
- Moonshot/Kimi模型默认设置:默认捆绑的Moonshot设置、网络搜索和媒体理解表面使用kimi-k2.6,同时保持kimi-k2.5可用于兼容性
- BlueBubbles群组系统提示:将每群组systemPrompt配置转发到入站上下文GroupSystemPrompt中,使配置的群组特定行为指令在每个回合中注入
- 插件任务注册:添加分离的运行时注册合约,使插件执行器可以拥有分离的任务生命周期和取消,而无需深入核心任务内部
- 终端日志优化:通过用单个正则表达式传递替换迭代的控制字符剥离循环来优化sanitizeForLog(),同时保留现有的ANSI优先清理行为
- QA/CI改进:使openclaw qa套件和openclaw qa telegram默认在场景失败时失败,为仅工件运行添加--allow-failures,并为CI自动化收紧实时通道默认值
- Mattermost流式处理:将思考、工具活动和部分回复文本流式传输到单个草稿预览帖子中,安全时最终确定
重要修复与改进
安全加固
- QQBot安全:为uploadC2CMedia和uploadGroupMedia中的直接上传URL路径添加SSRF防护
- 网关会话密钥验证:在模板渲染的映射sessionKeys上强制执行allowRequestSessionKey门控
- 浏览器/Chrome MCP:将DevToolsActivePort附加失败显示为浏览器连接错误,而不是通用的"等待标签页"超时
- MCP环境变量限制:阻止解释器启动环境变量如NODE_OPTIONS用于stdio服务器,同时保留普通凭证和代理环境变量
- 安全dotenv处理:阻止所有OPENCLAW_*密钥从未受信任的工作区.env文件,使工作区本地环境加载对新运行时控制变量失败关闭
- 网关设备配对限制:将非管理员配对设备会话限制到它们自己的配对列表、批准和拒绝操作
- 代理网关工具防护:扩展面向代理的网关工具的配置突变防护,使模型驱动的config.patch和config.apply无法重写操作员信任的路径
- 网关WebSocket广播范围:要求operator.read(或更高)用于聊天、代理和工具结果事件帧,将插件定义的plugin.*广播范围限定为operator.write/admin
代理与上下文管理
- Exec/YOLO修复:停止通过Python/Node脚本预检强化路径拒绝security=full加ask=off模式中的网关主机exec
- 代理压缩通知:在上下文压缩期间发送选择加入的开始和完成通知
- 代理/Pi运行器重试:当没有副作用运行时,重试静默stopReason=error且无输出的回合
- 代理引导优化:针对每文件上限预算截断标记,保留源内容,避免在微小预算截断情况下仅输出标记
- 代理模型选择:在每个回合前清除瞬态自动故障转移会话覆盖,使恢复的主模型立即重试而不发出用户覆盖重置警告
- 代理子代理失败负载:在子代理失败负载中包含请求的角色和运行时计时,使父代理可以关联失败或超时的子工作
- 上下文引擎插件兼容性:停止拒绝其info.id与注册的插件槽id不同的第三方上下文引擎
内存与梦境系统
- 活动内存降级:当内存召回在提示构建期间失败时优雅降级,记录警告并让回复在没有内存上下文的情况下继续
- 内存核心/梦境规范化:规范化扫描时间戳并为回退清理重用哈希的叙述会话密钥
- 插件内存保留:在只读快照插件加载运行时保留活动内存能力
平台特定修复
- OpenAI Codex规范化:在默认OpenAI/Codex和GitHub Copilot兼容主机上将遗留的openai-completions传输覆盖规范化回原生Codex Responses传输
- Anthropic插件作用域:将Anthropic api: "anthropic-messages"默认作用域限定为Anthropic拥有的提供商
- Ollama默认配置:为baseUrl和模型添加提供商策略默认值,使隐式本地发现可以在配置验证拒绝最小Ollama提供商配置之前运行
- Telegram状态反应:当启用生命周期状态反应时,遵守messages.removeAckAfterReply
- Telegram轮询优化:将默认轮询看门狗阈值从90秒提高到120秒,添加可配置的channels.telegram.pollingStallThresholdMs
- BlueBubbles超时调整:将出站/api/v1/message/text发送超时默认值从10秒提高到30秒
- BlueBubbles HTTP整合:通过类型化的BlueBubblesClient整合出站HTTP,在构造时解析SSRF策略一次
- BlueBubbles发送方法:在出站文本发送上始终显式设置方法
- BlueBubbles反应回退:当代理用iMessage tapback集合之外的emoji反应时,回退到love
- BlueBubbles消息类型偏好:当两个聊天存在于同一句柄时,偏好iMessage而不是SMS
- Discord思考命令:仅在实际支持提供商管理的自适应思考的提供商/模型对中显示/think自动完成中的自适应
- Discord斜杠命令容错:在斜杠命令和模型选择器流中容忍部分Discord通道元数据
- Matrix允许列表热重载:在入站消息上热重载dm.allowFrom和groupAllowFrom条目,同时保持配置删除具有权威性
- Matrix命令识别:识别以机器人的Matrix提及为前缀的斜杠命令
- Webchat图像处理:将内联图像附件视为媒体用于空回合门控,同时仍忽略仅元数据的空白回合
- Slack SecretRef修复:修复通过文件或exec秘密源配置的账户的出站回复失败,显示"未解析的SecretRef"
- Codex图像生成工具:避免在具有入站图像的原生视觉回合上重新暴露图像生成工具
- Codex应用服务器会话释放:在下游消费者抛出时释放会话通道,同时排空回合/完成通知
- Codex应用服务器审批处理:默认将审批处理设置为on-request,使Codex harness会话不会以过于宽松的工具审批开始
- GitHub Copilot默认模型:将GitHub Copilot设置默认设置为claude-opus-4.6
网关与会话管理
- 网关会话密钥验证:在模板渲染的映射sessionKeys上强制执行allowRequestSessionKey门控
- 网关使用缓存:使用FIFO驱逐限制成本使用缓存,使日期/范围查找无法无限增长
- 网关配对处理:将环回共享秘密节点主机、TUI和网关客户端视为本地用于配对决策
- 网关启动延迟:延迟HTTP绑定直到WebSocket处理程序附加,使立即启动后的WebSocket健康/连接探测不再命中启动竞争窗口
- 网关/TUI会话历史重试:在本地网关仍在完成启动时重试会话历史
- 网关状态报告分离:分离可达性、能力和读取探测报告,使仅连接或范围受限的会话不再看起来完全健康
- 网关/控制UI配对审批显示:在auth错误和Control UI提示中显示待处理的范围、角色和设备元数据配对审批
Cron相关
- Cron作业分离:将运行时执行状态拆分为jobs-state.json,使jobs.json保持稳定用于git跟踪的作业定义
- Cron交付处理:将显式delivery.mode: "none"运行视为未请求,即使运行器报告delivered: false
- Cron/Telegram去重:将隔离的直接交付去重键控到每个cron执行,而不是重用的会话id
- Cron/CLI PowerShell解析:以与逗号分隔输入相同的方式解析PowerShell风格的--tools允许列表
- Cron网关配置验证:在添加/更新时拒绝模糊的公告交付配置
- Cron主会话交付:通过延迟唤醒排队、网关唤醒转发和相同目标唤醒合并保留heartbeat.target="last"
- Cron网关通道检查:在检查公告交付模糊性时忽略禁用的通道
- Cron隔离代理交付模式:为隔离运行保留显式delivery.mode: "none"消息目标,而不继承隐式last路由
- Cron隔离代理目标解析:防止delivery.mode: "none"仅账户或仅线程配置继承陈旧的隐式收件人
用户界面与控制
- 控制UI/Cron运行时处理:防止运行时专用的最后交付哨兵在创建或编辑作业时具体化到持久化的cron交付和失败警报通道配置中
- 控制UI设备配对范围说明:在重新连接期间解释范围和角色审批升级
- 设置/TUI重启:在保留配置的网关目标和auth源的同时,在新进程中重新启动设置舱口TUI
- 浏览器用户配置文件:让现有会话profile="user"工具调用自动路由到连接的浏览器节点或使用显式target="node"
其他修复
- 插件测试改进:在重复的相同上下文加载中重用插件加载器别名和Jiti配置解析
- 插件任务注册:添加分离的运行时注册合约
- 插件启动优化:将捆绑的运行时依赖安装到每个插件自己的运行时目录中
- 插件安装修复:在打包安装中导入前修复活动和默认启用的捆绑插件运行时依赖
- 插件优先级处理:当不同的发现插件共享id时,仅保留最高优先级的清单
- 终端日志优化:通过用单个正则表达式传递替换迭代的控制字符剥离循环来优化sanitizeForLog()
- QA/CI改进:使openclaw qa套件和openclaw qa telegram默认在场景失败时失败
- Mattermost流式处理:将思考、工具活动和部分回复文本流式传输到单个草稿预览帖子中
- 思考模式支持:仅对明确支持提供商最大推理的模型暴露max
- OpenAI响应处理:解析/think级别与每个GPT模型支持的推理工作,使/think off不再成为高推理或发送不支持的reasoning.effort: "none"负载
- OpenAI响应清理:在出站Responses API调用前剥离孤立的推理块
- 会话重置清理:在/new和/reset上清除自动来源的模型、提供商和auth-profile覆盖,同时保留显式用户选择
- 会话成本快照:像令牌计数器一样快照estimatedCostUsd
- 自动回复策略:按对话类型应用静默NO_REPLY策略
- 代理压缩事件重命名:将嵌入式Pi压缩生命周期事件重命名为compaction_start / compaction_end
- 安全修复:阻止MINIMAX_API_HOST工作区环境注入并移除环境驱动的URL路由
贡献者
该版本共涉及60位贡献者,包括feniix、zeroaltitude等,主要聚焦于安全性加固、模型提供商优化、内存系统改进和跨平台稳定性提升。