乐于分享
好东西不私藏

OpenClaw v2026.4.20(2026-04-22)· 向导与网关配对安全加固

OpenClaw v2026.4.20(2026-04-22)· 向导与网关配对安全加固

OpenClaw v2026.4.20(2026-04-22)· 向导与网关配对安全加固

【DreamAI梦幻智能导读】

OpenClaw 是面向多操作系统与多消息渠道的「个人 AI 助手 / 网关」型 TypeScript 项目,把模型、工具、会话与插件编排到统一 Gateway,适合自托管与重度自动化用户。

本版在体验上重做向导安全提示与模型目录加载反馈;模型侧默认推进 Moonshot Kimi K2.6 并补充分层计价与用量估算;运行时默认裁剪会话存储、拆分 cron 运行时状态文件;安全面收紧网关配对、设备会话权限、WebSocket 广播可见范围,以及阻止工作区 .env 注入 OPENCLAW_* 控制项;同时附带跨 Discord/Telegram/Matrix/BlueBubbles/Codex 等渠道的大量缺陷修复。细节见「完整更新日志」与参考资料¹。

版本概览

项目 信息
项目名称 OpenClaw
版本号 v2026.4.20
发布日期 2026-04-22
项目地址 https://github.com/openclaw/openclaw[1]
Release 链接 https://github.com/openclaw/openclaw/releases/tag/v2026.4.20[2]
Stars 361.8k
Forks 73.8k

完整更新日志

以下条目与 GitHub Release「v2026.4.20」分组与顺序一致,以中文概括要点;技术名词与文件名按行业惯例保留英文;每条末括号内为 PR 与贡献者信息(与上游一致)。

Changes

  • 向导:用单一黄色警示横幅重排安装阶段安全免责声明,补充分节标题与清单式核对项,正文对比度提高;模型目录首次拉取时展示加载指示;各厂商 API 密钥输入增加占位提示。(PR #69553;贡献者 @Patrick-Erichsen)
  • 智能体提示:强化默认系统提示词与 OpenAI GPT-5 叠加层,突出完成偏好、在线状态自检、弱结果回收与「先验证再收尾」指引。
  • 模型与费用:支持按缓存目录与已配置模型做分层计价;在 token 用量报表中补充捆绑的 Moonshot Kimi K2.6 / K2.5 费用估算。(PR #67605;贡献者 @sliverp)
  • 会话维护:默认启用内置条数上限与按时间裁剪,并在加载时裁剪异常膨胀的存储,避免 cron/执行器积压会话在写入路径运行前把网关拖向 OOM。(PR #69404;贡献者 @bobrenze-bot)
  • 插件与测试:在重复同上下文加载时复用插件加载器别名与 Jiti 配置解析,降低重导入类测试成本。(PR #69316;贡献者 @amknight)
  • 定时任务:把运行时执行状态拆到 jobs-state.json,让可被 git 跟踪的 jobs.json 定义保持稳定。(PR #63105;贡献者 @Feelw00)
  • 压缩:在上下文压缩过程可选地推送开始与完成提示。(PR #67830;贡献者 @feniix)
  • Moonshot/Kimi:捆绑安装、联网搜索与媒体理解默认切到 kimi-k2.6,并保留 kimi-k2.5 兼容。(PR #69477;贡献者 @scoootscooob)
  • Moonshot/Kimi:在 moonshot/kimi-k2.6 上允许 thinking.keep="all";对其它 Moonshot 模型或在固定 tool_choice 关闭思考时剥离该字段。(PR #68816;贡献者 @aniaan)
  • BlueBubbles 群组:把每群 systemPrompt 透传到入站上下文 GroupSystemPrompt,让群级行为指令每轮生效;支持 "*" 通配回退,语义与既有 requireMention 模式一致。(PR #60665、#69198;贡献者 @omarshahine)
  • 插件任务:新增分离式运行时注册契约,让插件执行器自持分离任务生命周期与取消,而不直接触碰核心任务内部。(PR #68915;贡献者 @mbelinky)
  • 终端日志:用单次正则扫描替换控制字符剥离循环,保持既有 ANSI 优先清洗语义并降低开销。(PR #67205;贡献者 @bulutmuf)
  • QA/CI:openclaw qa suiteopenclaw qa telegram 在场景失败时默认失败;提供 --allow-failures 便于只要产物;收紧 CI 自动化下的在线通道默认。(PR #69122;贡献者 @joshavant)
  • Mattermost:把思考过程、工具活动与分段回复流式写入同一条草稿预览,安全时原地定稿。(PR #47838;贡献者 @ninjaa)

Fixes

  • Exec/YOLO:恢复网关主机在 security=fullask=off 时对解释器 stdin 与 heredoc 的直跑能力,避免 Python/Node 预检误杀。
  • OpenAI Codex:把默认 OpenAI/Codex 及 Copilot 兼容主机上的旧式 openai-completions 传输覆盖归一到原生 Codex Responses,自定义代理不受影响。(PR #45304、#42194;贡献者 @dyss1992、@DeadlySilent)
  • Anthropic/plugins:将 Anthropic api:"anthropic-messages" 的默认改写限定在 Anthropic 自有提供商,避免 openai-codex 等未声明 api 的提供商被误切传输。(PR #64534)
  • fix(qqbot):为直传上传 URL 增加 SSRF 防护。(AI 辅助)(PR #69595;贡献者 @pgondhi987)
  • fix(gateway):对模板渲染生成的 sessionKey 映射强制执行 allowRequestSessionKey 门禁。(PR #69381;贡献者 @pgondhi987)
  • Browser/Chrome MCP:把 DevToolsActivePort 连接失败归类为浏览器连通性问题,并引导未登录回退到托管 openclaw 配置文件。
  • Webchat/images:把内联图片附件按媒体计入空轮次门槛,同时忽略仅元数据的空白轮次。(PR #69474;贡献者 @Jaswir)
  • Discord/think:仅在确实支持提供商托管自适应思考的模型组合上展示 adaptive 自动补全。
  • Thinking:仅在模型声明支持 provider max reasoning 时暴露 max,并在切换模型时把历史 max 重映射到允许的最大思考档位。
  • Gateway/usage:为费用用量缓存增加 FIFO 淘汰,避免日期/区间查询无限增长。(PR #68842;贡献者 @Feelw00)
  • OpenAI/Responses:按各 GPT 模型支持的推理档位解析 /think,避免关闭思考却变成高推理或发送不支持的 reasoning.effort:"none"
  • Lobster/TaskFlow:允许托管审批恢复只凭 approvalId 而无 resume token,并在等待态持久化该 id。(PR #69559;贡献者 @kirkluokun)
  • Plugins/startup:把捆绑插件运行时依赖安装到各自目录、复用源码检出修复缓存,并只在确有安装时输出日志。
  • Plugins/startup:修复捆绑插件依赖时忽略 pnpm 的 npm_execpath,跳过仅 workspace 的包规格,避免 npm 标志或本地链接破坏启动。
  • MCP:为 stdio MCP 拦截解释器启动类环境键(如 NODE_OPTIONS),同时保留普通凭据与代理变量。(PR #69540;贡献者 @drobison00)
  • Agents/shell:忽略 /usr/bin/false/sbin/nologin 等非交互占位 shell,回退到 sh,避免服务账户执行立刻退出。(PR #69308;贡献者 @sk7n4k3d)
  • Setup/TUI:以新进程重启安装 TUI,同时保留网关目标与认证来源,避免在命令行暴露密钥。(PR #69524;贡献者 @shakkernerd)
  • Codex:在带图入站的原生视觉轮次避免再次暴露生图工具,并保持裸图像模型覆盖指向已配置的图像提供商。(PR #65061;贡献者 @zhulijin1991)
  • Sessions/reset:在 /new/reset 清理自动推断的模型/提供商/鉴权覆盖,保留用户显式选择,避免频道会话长期卡在回退模型。(PR #69419;贡献者 @sk7n4k3d)
  • Sessions/costs:像 token 计数一样快照 estimatedCostUsd,避免重复持久化路径把单次运行成本累乘。(PR #69403;贡献者 @MrMiaigi)
  • OpenAI Codex:把 ChatGPT/Codex OAuth 的 Responses 请求改走 /backend-api/codex,避免命中已移除的 /backend-api/responses 别名。(PR #69336;贡献者 @mzogithub)
  • OpenAI/Responses:按各 GPT 模型支持的推理档位解析 /think,避免关闭思考却变成高推理或发送不支持的 reasoning.effort:"none"。(PR #61982;贡献者 @a-tokyo)
  • Gateway/pairing:把回环共享密钥场景下的 node-host、TUI 与网关客户端视为本地配对,避免可信本地工具被误判远程而要求配对。(PR #69431;贡献者 @SARAMALI15792)
  • Active Memory:记忆召回失败时降级为告警并继续回复,而不是整轮失败。(PR #69485;贡献者 @Magicray1217)
  • Ollama:为 Ollama 的 baseUrlmodels 增加提供商策略默认值,让隐式本地发现可在最小配置校验前运行。(PR #69370;贡献者 @PratikRai0101)
  • Agents/model selection:每轮前清理瞬时自动故障转移覆盖,主模型恢复后立即重试,减少误报的覆盖重置告警。(PR #69365;贡献者 @hitesh-github99)
  • Auto-reply:按会话类型应用静默 NO_REPLY:私聊给改写提示,群组与内部投递可保持安静。(PR #68644;贡献者 @Takhoffman)
  • Telegram/status reactions:在启用生命周期状态反应时遵守 messages.removeAckAfterReply,按配置保持/清理反应计时。(PR #68067;贡献者 @poiskgit)
  • Web search/plugins:在共享 web-search 配置下为捆绑 Exa/Firecrawl/Gemini/Kimi/Perplexity/Tavily/Grok 等提供商解析插件域 SecretRef API 密钥。(PR #68424;贡献者 @afurm)
  • Telegram/polling:把 Telegram 轮询看门狗默认从 90s 提到 120s,并支持配置 channels.telegram.pollingStallThresholdMs(可按账号)。(PR #57737;贡献者 @Vitalcheffe)
  • Telegram/polling:给持久化偏移确认用的 getUpdates 探测加客户端超时,避免僵尸套接字卡死恢复流程。(PR #50368;贡献者 @boticlaw)
  • Agents/Pi runner:在无输出且无副作时对静默 stopReason=error 轮次重试,减少非前沿提供商偶发空错误轮提前结束会话。(PR #68310;贡献者 @Chased1k)
  • Plugins/memory:在只读快照插件加载时保留 active memory 能力,避免状态/发现路径把 memory 公共产物清空。(PR #69219;贡献者 @zeroaltitude)
  • Plugins:同 id 多份插件清单只保留最高优先级,避免全局/工作区低优先级副本与捆绑或配置选择并存。(PR #41626;贡献者 @Tortes)
  • fix(security):阻断 MINIMAX_API_HOST 工作区环境注入并移除环境驱动的 URL 路由。(AI 辅助)(PR #67300;贡献者 @pgondhi987)
  • Cron/delivery:把显式 delivery.mode:"none" 视为未请求投递,即使 runner 标记 delivered:false 也不记失败。(PR #69285;贡献者 @matsuri1987)
  • Plugins/install:在导入前修复活跃与默认启用的捆绑插件运行时依赖,避免把依赖树塞进核心。
  • BlueBubbles:把 BlueBubbles 文本发送默认超时从 10s 提到 30s,并支持 channels.bluebubbles.sendTimeoutMs(可按账号)。(PR #67486、#69193;贡献者 @omarshahine)
  • Agents/bootstrap:引导裁剪时把截断标记计入每文件预算,保留源码内容并避免仅输出标记。(PR #69114;贡献者 @BKF-Gitty)
  • Context engine/plugins:停止因 info.id 与注册槽位 id 不一致而拒绝第三方上下文引擎,修复 lossless-claw 等插件被误杀。(PR #66601、#66678;贡献者 @GodsBoy)
  • Agents/compaction:把嵌入式 Pi 压缩生命周期事件改名为 compaction_start / compaction_end 以对齐上游 0.66.1。(PR #67713;贡献者 @mpz4life)
  • Security/dotenv:阻断不受信任工作区 .env 写入全部 OPENCLAW_* 键,避免新的运行时控制变量被静默继承。(PR #473)
  • Gateway/device pairing:限制非管理员设备令牌会话只能操作自身配对列表及审批动作,避免跨设备枚举或越权审批。(PR #69375;贡献者 @eleqtrizit)
  • Agents/gateway tool:扩展面向智能体的 gateway 工具写配置防护,阻止模型驱动的 config.patch / config.apply 改写运营方信任路径(沙箱、插件信任、网关鉴权/TLS、钩子路由与令牌、SSRF 策略、MCP 服务器、工作区文件系统加固等),并禁止通过改写 agents.list[] 下沙箱、工具或嵌入式 Pi 覆盖来绕过防护。(PR #69377;贡献者 @eleqtrizit)
  • Gateway/websocket broadcasts:对聊天、智能体与工具结果广播帧要求 operator.read(或更高)权限,避免配对作用域与节点角色会话被动读到会话内容;未知广播事件默认按作用域门控;插件 plugin.* 广播限定 operator.write/admin;heartbeat/presence/tick 等状态类事件保持开放,并为每连接保留单调序号。(PR #69373;贡献者 @eleqtrizit)
  • Agents/compaction:压缩前始终通过显式加载器重载嵌入式 Pi 资源并重新应用保留 token 覆盖。(PR #67146;贡献者 @ly85206559)
  • Memory-core/dreaming:归一化清扫时间戳并复用哈希叙事会话键,避免 Dreaming 子会话泄漏。(PR #67023;贡献者 @chiyouYCH)
  • Gateway/startup:在 WebSocket 处理器挂载后再绑定 HTTP,避免启动后立刻探测命中竞态。(PR #43392;贡献者 @dalefrieswthat)
  • Codex/app-server:在下游消费 turn/completed 通知抛错时释放会话车道,避免后续消息排队在陈旧锁后。(PR #67996、#69072;贡献者 @ayeshakhalid192007-dev)
  • Codex/app-server:Codex harness 默认把审批策略设为 on-request,避免初始过宽的工具审批。(PR #68721;贡献者 @Lucenx9)
  • Cron/delivery:保留隔离 cron 聊天投递工具、从网关解析 channel:"last" 目标、在 cron list/show 展示预览并避免重复回退发送。(PR #69587;贡献者 @obviyus)
  • Cron/Telegram:把隔离直投去重键绑定到每次 cron 执行而非复用会话 id,修复 Telegram 周期播报后几次静默跳过。(PR #69000;贡献者 @obviyus)
  • Models/Kimi:把捆绑 Kimi 默认思考关闭并归一 Anthropic 兼容 thinking 载荷,避免陈旧 /think 状态悄悄打开推理。(PR #68907;贡献者 @frankekn)
  • Control UI/cron:阻止运行时 last 投递哨兵被物化进持久化 cron 配置。(PR #68829;贡献者 @tianhaocui)
  • OpenAI/Responses:在出站 Responses 调用前剥离孤立推理块,避免压缩/恢复历史触发失败。(PR #55787;贡献者 @suboss87)
  • Cron/CLI:让 cron add/edit 对 PowerShell 风格 --tools 允许列表与逗号分隔等价解析。(PR #68858;贡献者 @chen-zhang-cs-code)
  • Browser/user-profile:已有会话的 profile="user" 浏览器工具可自动路由到已连接节点或显式 target="node",仍尊重 target="host" 固定。(PR #48677)
  • Discord/slash commands:Discord 斜杠命令与模型选择器容忍不完整频道元数据,避免缺字段崩溃。(PR #68953;贡献者 @dutifulbob)
  • BlueBubbles:把 BlueBubbles 出站 HTTP 收敛到单次解析 SSRF 策略的客户端,修复本机图片与私网部署反应被误拦。(PR #34749、#59722、#68234;贡献者 @omarshahine)
  • Cron/gateway:在新增/更新时拒绝含糊的 announce 投递配置,避免坏任务落盘。(PR #69015;贡献者 @obviyus)
  • Cron/main-session delivery:在延迟唤醒合并等路径保留 heartbeat.target="last",让排队 cron 仍回到最近活跃聊天。(PR #69021;贡献者 @obviyus)
  • Cron/gateway:校验 announce 多通道歧义时忽略已禁用通道,并在热重载后用实时 cron 默认 agent 校验主会话投递补丁。(PR #69040;贡献者 @obviyus)
  • Matrix/allowlists:安装阶段要求数字型 allowFrom 用户 id,引导用 from.id/getUpdates 发现。(PR #68546;贡献者 @johnlanni)
  • BlueBubbles:为文本发送显式设置 method(可用时 private-api 否则 apple-script),并倾向 macOS 26 私网 API,修复静默丢信与 -1700。(PR #64480、#53159、#69070;贡献者 @xqing3)
  • Matrix/commands:识别带机器人 Matrix mention 前缀的斜杠命令,如 @bot:server /new 也能走命令路径。(PR #68570;贡献者 @bot、@nightq、@johnlanni)
  • Gateway/pairing:配对失败返回更细的原因、修复建议与 request id。(PR #69227;贡献者 @obviyus)
  • Agents/subagents:子智能体失败载荷补充请求角色与运行时计时,便于父智能体关联超时或失败子任务。(PR #68726;贡献者 @BKF-Gitty)
  • Gateway/sessions:配置移除代理后拒绝陈旧代理作用域会话,同时保留旧默认代理主会话别名。(PR #65986;贡献者 @bittoby)
  • Doctor/gateway:在 openclaw doctor --fix 中展示待处理设备配对、作用域升级审批漂移与陈旧设备令牌不匹配等修复指引,避免配对/鉴权失败无解释地留在现场。(PR #69210;贡献者 @obviyus)
  • Cron/isolated-agent:把显式 delivery.mode:"none" 视为未请求投递,即使 runner 标记 delivered:false 也不记失败。(PR #69153;贡献者 @obviyus)
  • Cron/isolated-agent:把显式 delivery.mode:"none" 视为未请求投递,即使 runner 标记 delivered:false 也不记失败。(PR #69163;贡献者 @obviyus)
  • Gateway/TUI:网关在仍启动时重试会话历史,openclaw tui 重连不再因短暂不可用失败。(PR #69164;贡献者 @shakkernerd)
  • BlueBubbles/reactions:模型点回不在 iMessage tapback 集合时回退到 love,避免整段反应失败。(PR #64693;贡献者 @zqchris)
  • BlueBubbles:同号同时存在 iMessage 与 SMS 时优先 iMessage,尊重显式 sms: 目标,避免可 iMessage 时悄悄降级短信。(PR #61781;贡献者 @rmartin)
  • Telegram/setup:安装阶段要求数字型 allowFrom 用户 id,引导用 from.id/getUpdates 发现。(PR #69191;贡献者 @username、@obviyus)
  • GitHub Copilot/onboarding:GitHub Copilot 引导默认模型切到 claude-opus-4.6 并对齐捆绑默认列表。(PR #69207;贡献者 @obviyus)
  • Gateway/status:拆分网关可达性、能力与读探针上报,并规范化 ssh user@host 输入。(PR #69215;贡献者 @host、@obviyus)
  • Slack:在共享 web-search 配置下为捆绑 Exa/Firecrawl/Gemini/Kimi/Perplexity/Tavily/Grok 等提供商解析插件域 SecretRef API 密钥。(PR #68954;贡献者 @openperf)
  • Control UI/device pairing:在控制面板与 openclaw devices 展示重连时的作用域/角色升级与已批准能力对比。(PR #69221;贡献者 @obviyus)
  • Gateway/Control UI:在鉴权错误与控制面板提示中展示待处理的作用域/角色/设备元数据配对审批。(PR #69226;贡献者 @obviyus)

参考资料

  1. openclaw/openclaw Release「v2026.4.20」原文:https://github.com/openclaw/openclaw/releases/tag/v2026.4.20[3]
  2. openclaw/openclaw 仓库主页:https://github.com/openclaw/openclaw[4]
  3. 相邻版本 Release(v2026.4.14)对照:https://github.com/openclaw/openclaw/releases/tag/v2026.4.14[5]
  4. 仓库内 CHANGELOG.md(历史变更索引):https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md[6]
  5. OpenClaw Hub 版本页(第三方汇总,仅作导航):https://openclaw-hub.com/releases/[7]

关于作者和DreamAI

https://docs.dingtalk.com/i/nodes/Amq4vjg890AlRbA6Td9ZvlpDJ3kdP0wQ[8]

关注微信公众号“AI发烧友”,获取更多AI技术文档及IT开发运维实用工具与技巧

引用链接

[1]https://github.com/openclaw/openclaw

[2]https://github.com/openclaw/openclaw/releases/tag/v2026.4.20

[3]https://github.com/openclaw/openclaw/releases/tag/v2026.4.20

[4]https://github.com/openclaw/openclaw

[5]https://github.com/openclaw/openclaw/releases/tag/v2026.4.14

[6]https://github.com/openclaw/openclaw/blob/main/CHANGELOG.md

[7]https://openclaw-hub.com/releases/

[8]https://docs.dingtalk.com/i/nodes/Amq4vjg890AlRbA6Td9ZvlpDJ3kdP0wQ