← 返回更新日志

OpenClaw v2026.4.12

2026-04-13 · GitHub 原文
OpenClaw `2026.4.12` 是一个广泛的质量版本,聚焦于插件加载、内存与梦境可靠性、新的本地模型选项,以及更顺畅的飞书配置路径。 ## 变更 - **QA/实验室**:新增由 Convex 支持的池化 Telegram 凭证租赁,以及 `openclaw qa credentials` 管理命令和代理设置文档。(#65596)感谢 @joshavant。 - **内存/主动内存**:新增可选的主动内存插件,使 OpenClaw 在主回复前拥有专用的内存子代理,因此持续聊天可自动拉取相关偏好、上下文和过往细节,无需用户手动说“记住这个”或“搜索内存”。包括可配置的消息/最近/完整上下文模式、实时 `/verbose` 检查、用于调优的高级提示/思考覆盖,以及可选的转录持久化以用于调试。(#63286)感谢 @Takhoffman。 - **macOS/对话**:为对话模式新增实验性本地 MLX 语音提供程序,支持显式提供程序选择、本地语音播放、中断处理及系统语音回退。(#63539)感谢 @ImLukeF。 - **CLI/执行策略**:新增本地 `openclaw exec-policy` 命令,包含 `show`、`preset` 和 `set` 子命令,用于同步请求的 `tools.exec.*` 配置与本地执行批准文件,并跟进强化节点主机拒绝、回滚安全性和同步冲突检测。(#64050) - **网关**:新增 `commands.list` RPC,使远程网关客户端可发现运行时原生、文本、技能和插件命令,并支持表面感知的命名和序列化参数元数据。(#62656)感谢 @samzong。 - **模型/提供程序**:为受信任的自托管 OpenAI 兼容端点新增每个提供程序的 `models.providers.*.request.allowPrivateNetwork` 设置,将选择范围限定在模型请求表面,并在请求传输覆盖更改时刷新缓存的 WebSocket 管理器。(#63671)感谢 @qas。 - **QA/测试**:为 `openclaw qa suite` 新增 `--runner multipass` 通道,使仓库支持的 QA 场景可在一次性 Linux 虚拟机中运行,并输出常规报告、摘要和虚拟机日志。(#63426)感谢 @shakkernerd。 - **文档国际化**:分块处理原始文档翻译,拒绝截断的标签输出,避免模糊的仅正文包装器解包,并在不更改默认 `openai/gpt-5.4` 路径的情况下从终止的 Pi 翻译会话中恢复。(#62969、#63808)感谢 @hxy91819。 - **控制 UI/梦境**:简化场景和日记表面,为部分状态负载保留未知阶段状态,并稳定等待条目新近性排序,使梦境状态和审查列表保持清晰和确定性。(#64035)感谢 @davemorin。 - **网关**:分离启动和运行时边界,使网关生命周期排序、重载状态和关闭行为更易维护,且不改变观察到的行为。(#63975)感谢 @gumadeiras。 - **Matrix/部分流式**:在草稿预览发送和编辑中新增 MSC4357 实时标记,使支持的 Matrix 客户端可渲染实时/打字机动画,并在最终编辑到达时停止。(#63513)感谢 @TigerInYourDream。 - **QA/Telegram**:为私聊群组机器人对机器人检查新增实时 `openclaw qa telegram` 通道,强化其工件处理,并保留原生 Telegram 命令回复线程以用于 QA 验证。(#64303)感谢 @obviyus。 - **模型/Codex**:新增捆绑的 Codex 提供程序和插件拥有的应用服务器工具 harness,使 `codex/gpt-*` 模型使用 Codex 管理的认证、原生线程、模型发现和压缩,而 `openai/gpt-*` 保持正常的 OpenAI 提供程序路径。(#64298)感谢 @steipete。 - **模型/提供程序**:新增捆绑的 LM Studio 提供程序,支持入门、运行时模型发现、流预加载支持,以及用于本地/自托管 OpenAI 兼容模型的内存搜索嵌入。(#53248)感谢 @rugvedS07。 - **插件/加载**:将 CLI、提供程序和通道激活范围缩小至清单声明需求,保留显式范围和信任边界,并集中清单所有者策略,使启动、命令发现和运行时激活避免加载无关插件运行时。(#65120、#65259、#65298、#65429、#65459)感谢 @vincentkoc。 - **内存/主动内存**:默认将 QMD 召回设置为搜索,并展示更好的搜索路径遥测,使内存支持的召回开箱即用更可预测。(#65068)感谢 @Takhoffman。 - **文档/提供程序**:扩展捆绑提供程序文档,在提供程序页面中提供更丰富的能力、环境变量和设置指导。 - **文档/memory-wiki**:添加推荐的 QMD + 桥接模式混合方案,以及 `memory-wiki` 桥接设置的无工件故障排除指南。(#63165)感谢 @sercada 和 @vincentkoc。 ## 修复 - **安全/busybox**:从类解释器安全二进制文件中移除 busybox/toybox。(#65713)感谢 @pgondhi987。 - **安全/批准**:防止空的批准者列表授予明确批准授权。(#65714)感谢 @pgondhi987。 - **安全/Shell**:扩大 shell 包装器检测范围并阻止环境参数赋值注入。(#65717)感谢 @pgondhi987。 - **网关/启动**:延迟计划服务直至边车完成,在边车恢复期间限制聊天历史和模型列表,并允许控制 UI 重试启动限制的历史加载,使沙盒唤醒优先恢复通道。(#65365)感谢 @lml2468。 - **控制 UI/聊天**:将实时网关斜杠命令目录加载到组合器和命令面板,使停靠命令、插件命令和直接技能别名出现在聊天中,同时保持受信任的本地命令权威并限制远程命令元数据。(#65620)感谢 @BunsDev。 - **CLI/更新**:在包自更新后从更新入口点重新启动跟踪的插件刷新,使 `openclaw update` 不再因过时的哈希 `dist/install.runtime-*.js` 区块导入而失败。(#65471) - **内存/主动内存**:在启用 `mx-claw` 等包装器时保持召回运行在已解析通道上,改进词汇回退排序,并保持词汇提升脱离混合搜索,使召回更一致地找到正确记忆。(#65049、#65395)感谢 @Takhoffman。 - **梦境**:恰好一次消耗托管心跳事件,从所有记录的短期信号中暂存浅睡置信度,立即唤醒计划作业,提升仅梦境推广以跨越持久内存门,并阻止梦境重新摄入自身叙述转录。 - **梦境/叙述**:通过重试超时删除、通过锁感知会话存储路径清理陈旧梦境会话工件,以及按工作区隔离瞬态叙述会话密钥,来强化瞬态叙述清理。(#65320、#61674) - **内存/wiki**:在 wiki slug 和矛盾聚类中保留 Unicode 字母、数字和组合标记,并将 Unicode 文件名段限制为安全字节长度,使非 ASCII 标题不再折叠或溢出路径限制。(#64742)感谢 @zhouhe-xydt。 - **内存/短期召回**:允许 `memory/**/YYYY-MM-DD.md` 下的嵌套每日笔记 feeding 短期召回,同时仍排除 `memory/dreaming/**` 下的生成梦境报告,使梦境不推广自身输出。(#64682)感谢 @SARAMALI15792。 - **UI/WebChat**:从聊天历史重新加载中隐藏综合转录修复工具结果,使内部恢复标记在重连后不泄露到可见聊天。(#65247)感谢 @wangwllu。 - **WhatsApp/出站**:当 `mediaUrl` 为空时回退到第一个 `mediaUrls` 条目,使网关媒体发送不再静默丢弃已解析媒体列表的附件。(#64394)感谢 @eric-fr4 和 @vincentkoc。 - **医生/Discord**:阻止 `openclaw doctor --fix` 将遗留 Discord 预览流式配置重写为嵌套现代形状,使降级仍可恢复而无需手动编辑 `channels.discord.streaming`。(#65035)感谢 @vincentkoc。 - **网关/认证**:清空 `.env.example` 中 shipped 的示例网关凭证,并在仍配置复制的占位符令牌或密码时使启动失败,使操作员无法意外使用公开已知密钥启动。(#64586)感谢 @navarrotech 和 @vincentkoc。 - **内存/主动内存+梦境**:保持主动内存召回运行在最强已解析通道上,恰好一次消耗托管梦境心跳事件,阻止梦境重新摄入自身叙述转录,并在 CLI、医生和梦境 UI 中添加显式修复/去重恢复流程。 - **代理/队列**:在修复转录顺序前,将孤立的主动轮次用户文本携带到下一个提示,使中途到达的后续消息不再静默丢弃。(#65388)感谢 @adminfedres 和 @vincentkoc。 - **网关/保活**:停止将 WebSocket 滴答广播标记为可丢弃,使慢速或背压客户端在长时间运行工作仍存活时不会因 `tick timeout` 自断开。(#65256)感谢 @100yenadmin 和 @vincentkoc。 - **Matrix/提及**:在保持房间提及严格限制的同时接受可见 `@displayName` Matrix URI 标签,使 `requireMention` 对非 OpenClaw Matrix 客户端再次生效。(#64796)感谢 @hclsys。 - **医生**:当 `~/.openclaw/agents/<id>/agent` 下的磁盘代理目录仍存在但配置中缺少匹配的 `agents.list[]` 条目时发出警告。(#65113)感谢 @neeravmakwana。 - **Telegram**:将批准按钮回调查询路由到单独的顺序器通道,使插件批准点击可立即解析,而不是在阻塞的代理轮次后死锁。(#64979)感谢 @nk3750。 - **Telegram/直接会话**:将仅评论助手回退负载保留在可见直接交付之外,使 Codex 规划闲聊在运行无 `final_answer` 文本时不会泄露到 Telegram DM。(#65436) - **网关/插件**:始终为插件子代理运行发送非空 `idempotencyKey`,使梦境叙述作业停止失败网关模式验证。(#65354)感谢 @CodeForgeNet。 - **插件/memory-core 梦境**:仅当外部内存槽所有者启用梦境时保持捆绑 `memory-core` 加载 alongside,同时保留 `plugins.slots.memory = "none"` 禁用语义。(#65411)感谢 @pradeep7127。 - **CLI/插件**:当 `plugins.allow` 设置为 `openclaw wiki` 时尊重 `memory-wiki`,并将活动应用配置传递到元数据注册器,使插件拥有的 wiki 命令解析实时插件配置而非回退到默认值。(#64779、#65012) - **QA/打包**:当可选场景执行配置不可用时阻止打包的 QA 助手崩溃,使 npm 分发可跳过仅仓库场景包而不破坏完成缓存和启动路径。(#65118)感谢 @EdderTalmor。 - **媒体/音频转录**:当每次音频转录尝试失败时展示真实提供程序失败,使状态输出和 CLI 不再将这些错误折叠为通用跳过。(#65096)感谢 @l0cka。 - **基础设施/网络**:修复受保护运行时获取主体跨越 FormData 实现边界时多部分 FormData 字段(包括 `model`)被静默丢弃的问题,恢复因 HTTP 400 失败的 OpenAI 音频转录请求。(#64349)感谢 @petr-sloup。 - **梦境/日记**:当 `dreaming.timezone` 未设置时使用主机本地时区作为日记时间戳,并包含时区缩写,使 `DREAMS.md` 和 UI 明确本地或 UTC 时间。(#65034、#65057) - **梦境/推广**:提升阶段强化足够多次数,使重复仅梦境重访在数天后清除默认持久内存门,而非卡在阈值下方。(#64068)感谢 @vincentkoc。 - **梦境/浅睡**:从所有记录的短期信号而非仅召回计数计算暂存候选置信度,使仅梦境条目停止渲染为 `confidence: 0.00`。(#64599)感谢 @vincentkoc。 - **插件/内存**:在插件注册表缓存命中时恢复缓存的内存能力公共工件,使内存支持的工件表面在热加载后保持可见。 - **网关/cron**:在运行时重载时保留请求的隔离代理配置,使子代理作业和心跳覆盖在热加载快照陈旧时保持正确工作区和心跳设置。 - **Cron/隔离会话**:为每个隔离运行持久化正确的转录路径,包括新鲜会话轮换,使 cron 运行停止追加到陈旧会话文件。 - **Discord/网关**:在重连前清除陈旧的心跳定时器,使僵尸网关回调无法崩溃进程并丢弃飞行中的回复。(#65009)感谢 @SARAMALI15792。 - **代理/Anthropic 重放**:在存储和实时重放中保留不可变签名思考重放安全性,保持非思考嵌入式 `tool_result` 用户块完整,并在验证前丢弃冲突的保留工具 ID,使重试不再降级为省略工具调用。(#65126)感谢 @shakkernerd。 - **内存/QMD**:允许 shipped 默认 QMD 范围中的通道会话,同时仍拒绝群组。 - **内存/QMD**:停止将遗留小写根内存文件注册为单独的默认集合,使 QMD 现在优先选择 `MEMORY.md` 和 `memory/` 树,而不会出现重复集合添加警告。 - **内存/memory-core**:直接监视 `memory` 目录并忽略非 markdown 扰动,使嵌套笔记更改在 macOS + Node 25 环境中仍同步,其中递归 `memory/**/*.md` 全局监视失败。(#64711)感谢 @jasonxargs-boop 和 @vincentkoc。 - **WhatsApp**:集中每账户连接所有权,使重连、登录恢复和出站准备状态保持附加到实时套接字,而非在监视和登录路径间漂移。(#65290)感谢 @mcaxtr 和 @vincentkoc。 - **iMessage**:在拆除监视器前重试瞬态 `watch.subscribe` 启动失败,并清理启动错误日志,使短暂的本地传输停滞不会立即反弹通道或将原始 imsg RPC 负载泄露到日志。(#65393)感谢 @vincentkoc。 - **CLI/音频提供程序**:在 `openclaw infer audio providers --json` 中报告环境认证的提供程序,同时在认证设置期间保持受信任的工作区提供程序环境查找默认稳定。 - **插件/安装**:当匹配的平台原生可选子项缺失时重新安装捆绑运行时包,使打包的 Windows 安装可恢复在另一主机 OS 上打包的依赖项。 - **内存/QMD**:保留显式 `memory.qmd.command` 路径,在 QMD 探测前创建缺失的代理工作区,并保持当前 Node 二进制在 QMD 子进程 PATH 上,使服务和网关环境不必要回退到内置搜索。