编者摘要:Openclaw 发布v2026.2.12版本(提交标识 d8d69cc),自发布后主分支完成35 个更改,本次更新核心包含CLI、Telegram、配置项的功能新增与优化,POST /hooks/agent的突发配置规则变更,同时围绕网关、会话、沙盒、网络工具等模块开展全维度安全强化与漏洞修复,针对 Cron 定时任务、网关、代理等核心模块解决了多项运行异常问题,完成 WhatsApp、Telegram、飞书等多平台的适配优化,完善了第三方服务商对接、插件钩子体系及测试覆盖,还修复了各类场景下的执行、兼容问题,全面提升了系统的安全性、稳定性和兼容性。
本次 openclaw v2026.2.12 版本更新是一次多维度的迭代,涵盖版本基础更新、功能新增、配置突发变更、安全强化、核心模块优化、多平台适配、第三方服务商对接等多个方面,修复了大量已知问题,同时完善了体系建设与测试覆盖,以下为详细内容:
一、版本基础信息
本次更新发布标识为d8d69cc,自发布后项目主分支已完成35 个更改,是一次内容较丰富的版本迭代。
二、新增功能
本次更新新增 3 项实用功能,均为高频使用模块的优化,解决了实际使用中的体验与验证问题:
- CLI 模块
新增 openclaw logs --local-time参数,支持以本地时区展示日志时间戳,提升日志可读性; - Telegram 适配
将引用块渲染为原生<blockquote>标签,不再直接去除,还原内容格式展示; - 配置模块
配置快照脱敏时避免脱敏 maxTokens 类字段,从根源防止 /config 中的往返验证失败问题。
三、突发配置变更
本次更新对 Hooks 模块做了关键规则变更,直接影响 POST /hooks/agent 的使用逻辑,具体为:
- 默认规则变更
POST /hooks/agent 现在默认拒绝 payload sessionKey 的覆盖,提升钩子使用的安全性; - 固定钩子上下文配置
如需保持固定的 hook 上下文,可设置 hooks.defaultSessionKey,官方建议搭配hooks.allowedSessionKeyPrefixes: ["hook:"]使用; - 旧行为恢复方式
若业务需要沿用旧版本的行为,可显式设置 hooks.allowRequestSessionKey: true。
四、安全专项修复与强化
安全是本次更新的核心重点,覆盖配置、沙盒、网络工具、钩子、浏览器、会话等多个模块,完成漏洞修复与机制强化,关键内容如下:
-
修复未认证的 Nostr 个人资料 API 远程配置篡改漏洞,从源头杜绝配置非法修改; -
移除捆绑的灵魂邪恶挂钩,清理风险组件; -
新增钩子会话路由硬化检查,涵盖 hooks.defaultSessionKey、hooks.allowRequestSessionKey和前缀白名单,且 HTTP API 端点允许显式会话密钥路由时会发出警告,提前规避风险; - 沙盒安全
将镜像技能同步目标限制在沙盒技能 / 根目录,停止使用前言控制的技能名称作为文件系统目标路径,防止路径越权; - 网络工具安全
默认将浏览器 / 网络内容视为不可信,同时从模型面对的转录 / 压缩输入中去除 toolResult.details,降低提示注入重放风险; - 钩子安全
通过共享的常量时间秘密比较强化 Webhook 和设备令牌验证,并为钩子端点添加每个客户端的身份验证失败限制(429 + Retry-After),防止暴力破解; - 浏览器安全
要求对环回浏览器控制的 HTTP 路由进行身份验证,未认证启动时自动生成 gateway.auth.token,并增加未认证浏览器控制的安全审计检查; - 会话 / 网关安全
强化转录路径解析,拒绝不安全的会话 ID / 文件路径,保证会话操作始终在代理会话目录内; -
修复 BlueBubbles 通过环回代理信任的 Webhook 身份验证绕过问题,封堵权限漏洞。
五、核心模块优化修复
针对网关、Cron、CLI、心跳、守护进程、代理等系统核心模块,完成了多维度的问题修复与性能优化,解决了运行异常、数据丢失、执行错误等问题,关键数字与对应优化见下表,核心优化点如下:
|
|
|
|
|---|---|---|
| 5,000,000 字节 |
|
|
| 429 + Retry-After |
|
|
| ±HH:MM |
|
|
| 9 个 |
|
|
- 网关模块
是本次优化的重点,累计修复 / 优化 8 项问题,包括提升 WS 载荷至 5000000 字节、重启前排空活动回合防止消息丢失、安装时自动生成认证令牌防止 launchd 重启循环、防止身份验证配置中令牌未定义 / 缺失、处理关闭期间的异步 EPIPE 错误、解决全局安装时的仪表盘资产缺失问题等; - Cron 定时任务
完成多项核心修复,包括用 agentId 隔离作业认证解析、防止 nextRunAtMs 进展导致的任务跳过、作业执行中触发 onTimer 时重启定时器、防止多作业同时触发的重复执行、隔离调度程序错误避免连坐、防止一次性任务重启后的重复触发、传递 agentId 至主会话作业、尊重存储的会话模型覆盖同时保留 Gmail 钩子会话模型优先级等,全面解决定时任务执行异常问题; - 心跳模块
过滤噪音仅保留系统事件,避免 cron 仅运行心跳时触发计划提醒;防止调度程序因意外错误停滞,避免请求飞行跳过后立即重跑循环; - CLI/Logging 模块
控制台前缀使用本地时区时间戳, --local-time参数展示 ±HH:MM 偏移量消除歧义;交互式向导取消时以代码 1 退出,适配 set -e 自动化流程; - 守护进程
重启 LaunchAgent 时抑制 EPIPE 错误,提升进程稳定性; - 智能体模块
防止子进程清理的文件描述符泄漏、缓存 TTL 跳过保护导致的双重紧缩;优化令牌缓存逻辑,使用上一个 API 调用的缓存令牌做上下文显示,通过最后调用使用情况保持后压缩上下文的总令牌对齐,提升代理运行效率。
六、多平台适配优化
针对 WhatsApp、Telegram、Slack、Signal、Discord、飞书(Feishu)等主流社交 / 办公平台,完成了适配细节优化,解决了格式兼容、功能失效、触发异常等问题:
- WhatsApp
将 Markdown 粗体 / 删除线转换为平台原生格式;允许仅发送媒体文件;为语音消息设置默认 MIME 类型(解决 Baileys 省略的问题); - Telegram
处理无文本消息的 editMessageText 操作;将 REACTION_INVALID 标记为非严重警告,减少无效报错; - Slack
将默认的 replyToMode 从 "off" 改为 "all",优化回复逻辑;检测以机器人提及前缀开头的控制命令(如 @Bot /new),提升指令识别准确性; - Signal
对机器人账户提示强制执行 E.164 验证,及早捕捉错误号码;将提及占位符渲染为 @uuid/@phone,保证提及门控和 Clawdbot 目标正常工作; - Discord
处理 DM 反应不再静默丢弃;在线程中尊重 replyToMode 规则;仅媒体消息中省略空内容字段并保留标题空白字符;允许频道编辑归档 / 锁定线程并设置自动归档持续时间; - 飞书
将缓冲区直接传递给 SDK 上传 API,解决表单数据上传失败问题;仅机器人被提及时时触发群组提及限制处理,精准过滤触发条件;用已解决的账户上下文做多账户凭证检查;编写文档时保留顶级转换块顺序;移除插件打包中的依赖并同步锁定文件,保证安装兼容性。
七、第三方服务商对接优化
完善了 Z.AI、MiniMax、Ollama 等第三方 AI 服务商的对接能力,提升兼容性与使用体验:
- Z.AI
新增端点特定的身份验证选项(zai-coding-global、zai-coding-cn、zai-global、zai-cn),并扩展默认的模型接线; - MiniMax
将 API 默认 / 推荐模型从 M2.1 更新为M2.5,添加 M2.5/M2.5-Lightning 模型条目,且在现代模型过滤中纳入 minimax-m2.5; - Ollama
根据配置的 models.providers.ollama.baseUrl进行模型发现,将 /v1 端点规范化为原生 Ollama API 根目录,统一对接标准。
八、插件与钩子体系完善
完善了插件钩子的核心运行体系,提升扩展性与执行稳定性:
-
将 9 个此前未连接的插件生命周期钩子接入核心运行路径(会话、压缩、网关和出站消息钩子),激活插件能力; -
在两个工具执行路径中调度 before_tool_call和after_tool_call钩子,并完成冲突修复重基,保证钩子执行顺序与逻辑正确。
九、其他优化与测试完善
- 通用优化
媒体模块使用本地路径避免条带媒体以文本形式泄露;配置模块从定时任务配置中排除 maxTokens 的屏蔽,且尊重 deleteAfterRun 规则,配置文件监视器忽略元字段更改,减少无效配置刷新;反重力模块添加 opus 4.6 向后兼容模型,跳过思维签名清理;语音通话模块通过<Parameter>传递 Twilio 流授权令牌,替代查询字符串,提升传输安全性; - 测试覆盖
更新 Slack 消息收集测试的线程 ID 处理逻辑;Discord 测试中在斜线命令覆盖使用部分 @buape/carbon 模拟;为 Gateway/OpenResponses 的 URL 处理新增回归测试覆盖,并完善相关文档,提升测试覆盖率。
关键问题Q&A
问题 1:本次 openclaw v2026.2.12 版本更新的核心安全优化方向有哪些,解决了哪些关键漏洞?
答案:本次版本的安全优化为核心重点,覆盖配置、沙盒、网络工具、钩子、浏览器、会话等多维度,核心方向为漏洞封堵、访问控制、风险组件清理、注入风险防范、令牌验证强化;解决的关键漏洞包括未认证的 Nostr 个人资料 API 远程配置篡改漏洞、BlueBubbles 环回代理 Webhook 身份验证绕过漏洞,同时移除了捆绑的灵魂邪恶挂钩等风险组件,从源头规避安全隐患。
问题 2:本次更新对 Cron 定时任务模块做了哪些核心修复,解决了哪些典型的执行异常问题?
答案:本次更新对 Cron 模块做了全方位的修复优化,核心修复包括用 agentId 隔离作业认证解析、传递 agentId 至主会话作业;解决的典型执行异常问题有:nextRunAtMs 进展导致的任务跳过、多作业同时触发的重复执行、调度程序错误导致的所有任务受影响、跳过 / 错误运行后重启引发的一次性任务重复触发、作业执行中 onTimer 触发导致的执行异常等,同时还实现了隔离调度程序错误、尊重会话模型覆盖规则等优化,保障定时任务稳定执行。
问题 3:本次更新在主流社交 / 办公平台适配方面,有哪些关键的体验与功能优化调整?
答案:本次更新针对 WhatsApp、Telegram、Slack、Signal、Discord、飞书等平台做了针对性适配优化,关键调整包括:WhatsApp 实现 Markdown 格式转换、支持仅发媒体;Slack 将默认 replyToMode 改为 "all" 并优化机器人指令识别;Signal 强制执行 E.164 号码验证,保证提及功能正常;Discord 处理 DM 反应、优化线程回复与媒体消息展示;飞书解决文件上传失败问题、精准触发群组提及处理、完善多账户凭证检查;Telegram 还原引用块格式、减少无效报错,各平台优化均解决了格式兼容、功能失效、触发异常等实际使用问题,提升了平台对接的体验与稳定性。
v2026.2.12版本
steipete在6小时前发布了这个版本。自本次发布以来,主分支已提交35个更改。
v2026.2.12d8d69cc
变化
1.CLI: add openclaw logs --local-time 以在本地时区显示日志时间戳。(#13818)感谢@xialonglee。
2.Telegram:将引用块呈现为原生<blockquote>标签,而不是去除它们。(#14608)
3.配置:在配置快照脱敏时避免脱敏maxTokens类似字段,以防止/config中的往返验证失败。(#14006)感谢@constansino。
突发新闻
Hooks: POST /hooks/agent现在默认拒绝payload sessionKey 的覆盖。要保持固定的hook 上下文,请设置hooks.defaultSessionKey(建议与hooks.allowedSessionKeyPrefixes: ["hook:"] 一起使用)。如果您需要旧版本的行为,请显式设置hooks.allowRequestSessionKey: true。感谢@alpernae 的报告。
修复程序
Gateway/OpenResponses:加强基于URL的input_file/input_image 处理,实施明确的SSRF 拒绝政策、主机名白名单(files.urlAllowlist / images.urlAllowlist)、按请求的URL 输入上限(maxUrlParts)、被阻止抓取的审计日志记录,以及回归测试覆盖/文档更新。
1.安全:修复未认证的Nostr 个人资料API 远程配置篡改。(#13719) 感谢@coygeek。
2.安全性:移除捆绑的灵魂邪恶挂钩。(#14757) 感谢@Imccccc。
3.安全/审计:添加钩子会话路由硬化检查(hooks.defaultSessionKey、hooks.allowRequestSessionKey 和前缀白名单),并在HTTP API 端点允许显式会话密钥路由时发出警告。
4.安全/沙盒:将镜像技能同步目标限制在沙盒技能/根目录,并停止使用前言控制的技能名称作为文件系统目标路径。感谢@1seal。
5.安全/网络工具:默认将浏览器/网络内容视为不可信(对浏览器快照/标签/控制台的包装输出和针对网络工具的结构化外部内容元数据),并从模型面对的转录/压缩输入中去除toolResult.details,以降低提示注入重放风险。
6.安全/钩子:通过使用共享的常量时间秘密比较来强化Webhook和设备令牌验证,并为钩子端点添加每个客户端的身份验证失败限制(429 + Retry-After)。感谢@akhmittra。
7.安全/浏览器:要求对环回浏览器控制的HTTP路由进行身份验证,当浏览器控制在未进行身份验证的情况下启动时,自动生成gateway.auth.token,并对未经过身份验证的浏览器控制增加安全审计检查。感谢@tcusolle。
8.会话/网关:强化转录路径解析并拒绝不安全的会话ID/文件路径,以保证会话操作保持在代理会话目录内。感谢@akhmittra。
9.网关:提高WS有效载荷/缓冲区限制,以便5,000,000字节的图像附件能够可靠工作。(#14486) 感谢@0xRaini。
10.Logging/CLI: 使用本地时区时间戳进行控制台前缀,并在使用openclaw logs --local-time 时包含±HH:MM 偏移量以避免歧义。(#14771) 感谢@0xRaini。
11.网关:在重启之前排放活动回合以防止消息丢失。(#13931) 感谢@0xRaini。
12.网关:在安装过程中自动生成认证令牌以防止launchd重启循环。(#13813) 感谢@cathrynlavery。
13.网关:防止身份验证配置中的未定义/缺失令牌。(#13809)感谢@asklee-klawd。
14.网关:在关闭期间处理stdout/stderr上的异步EPIPE。(#13414) 感谢@keshav55。
15.Gateway/Control UI: 在通过基于符号链接的Node 管理器(nvm/fnm/n/Homebrew) 全局安装openclaw 时解决缺失的仪表盘资产。(#14919) 感谢@aynorica。
16.Cron:使用请求的agentId 进行隔离作业认证解析。(#13983) 感谢@0xRaini。
17.Cron: 防止当nextRunAtMs 进展时跳过执行cron 任务。(#14068) 感谢@WalterSumbon。
18.Cron: 将agentId 传递给runHeartbeatOnce 以用于主会话作业。(#14140) 感谢@ishikawa-pro。
19.Cron: 当作业仍在执行时,onTimer触发时重新启动定时器。(#14233)感谢@tomron87。
20.Cron: 防止多个作业同时触发时重复触发。(#14256) 感谢@xinhuagu。
21.Cron:隔离调度程序错误,以免一个错误的任务影响所有任务。(#14385) 感谢@MarvinDontPanic。
22.Cron:防止在跳过/错误运行后重启时一次性任务重新触发。(#13878) 感谢@lailoo。
23.心跳:防止调度程序在意外运行错误时停滞,并避免在请求飞行跳过后立即重新运行循环。(#14901) 感谢@joeykrug。
24.Cron: 在隔离代理运行时尊重存储的会话模型覆盖,同时为Gmail钩子会话保留hooks.gmail.model的优先级。(#14983) 感谢@shtse8。
25.记录/浏览器:当/tmp/openclaw不可用时,回退到os.tmpdir()/openclaw作为默认日志、浏览器追踪和浏览器下载临时路径。
26.WhatsApp:将Markdown的粗体/删除线转换为WhatsApp格式。(#14285)感谢@Raikan10。
27.WhatsApp: 允许仅发送媒体并规范前导空白有效负载。(#14408) 感谢@karimnaguib。
28.WhatsApp:当Baileys 省略时,语音消息的默认MIME 类型。(#14444)感谢@mcaxtr。
29.Telegram: 在模型选择器中处理无文本消息editMessageText。(#14397) 感谢@0xRaini。
30.Telegram:将REACTION_INVALID 作为非严重警告。(#14340)感谢@0xRaini。
31.BlueBubbles: 修复通过环回代理信任的Webhook身份验证绕过问题。(#13787) 感谢@coygeek。
32.Slack: 将默认的replyToMode 从"off" 改为"all"。(#14364) 感谢@nm-de。
33.Slack:检测当频道消息以机器人提及前缀开头的控制命令(例如,@Bot /new)。(#14142) 感谢@beefiker。
34.Signal:对Signal 机器人账户提示强制执行E.164 验证,以便及早捕捉到输入错误的号码。(#15063)感谢@Duartemartins。
35.Discord:处理DM 反应而不是静默丢弃它们。(#10418) 感谢@mcaxtr。
36.Discord:在线程中尊重replyToMode。(#11062)感谢 @cordx56。
37.心跳:过滤噪音仅系统事件,以便在cron运行仅携带心跳标记时,不会触发计划提醒通知。(#13317) 感谢@pvtclawn。
38.Signal: 将提及占位符渲染为@uuid/@phone,以便提及门控和Clawdbot目标正常工作。(#2013)感谢@alexgleason。
39.Discord:在仅包含媒体的消息中省略空内容字段,同时保留标题的空白字符。(#9507)感谢@leszekszpunar。
40.Onboarding/Providers: 添加Z.AI 端点特定的身份验证选项(zai-coding-global, zai-coding-cn, zai-global, zai-cn)并扩展默认的Z.AI 模型接线。(#13456)感谢@tomsun28。
41.Onboarding/Providers: 将MiniMax API 的默认/推荐模型从M2.1 更新为M2.5,添加M2.5/M2.5-Lightning 模型条目,并在现代模型过滤中包含minimax-m2.5 。(#14865) 感谢@adao-max。
42.Ollama: 使用配置的 models.providers.ollama.baseUrl 进行模型发现,并将 /v1 端点规范化为原生的Ollama API 根目录。(#14131) 感谢 @shtse8。
43.语音通话:通过<Parameter>传递Twilio流授权令牌,而不是查询字符串。(#14029) 感谢@mcwigglesmcgee。
44.Feishu: 将缓冲区直接传递给Feishu SDK 上传API,而不是使用Readable.from(...) 以避免表单数据上传失败。(#10345) 谢谢@youngerstyle。
45.Feishu: 仅在提到机器人本身时触发提及限制的群组处理(而不仅仅是任何提及)。(#11088) 感谢@openperf。
46.Feishu: 探测状态使用已解决的账户上下文进行多账户凭证检查。(#11233) 感谢@onevcat。
47.Feishu DocX:在编写/追加文档时,使用firstLevelBlockIds 保持顶级转换块的顺序。(#13994) 感谢@Cynosure159。
48.Feishu 插件打包:从extensions/feishu 中移除workspace:* openclaw 依赖,并同步锁定文件以确保安装兼容性。(#14423) 感谢@jackcooper2015。
49.CLI/Wizard:在配置、添加代理或交互式入门向导被取消时以代码1 退出,因此set -eautomation 能够正确停止。(#14156) 感谢@0xRaini。
50.媒体:使用本地路径而不是泄露为可见文本的条带媒体。(#14399) 感谢@0xRaini。
51.配置/定时任务:从配置中排除maxTokens的屏蔽,并对跳过的定时任务尊重deleteAfterRun。(#13342)感谢@niceysam。
52.配置:在配置文件监视器中忽略元字段更改。(#13460)谢谢@brandonwise。
53.Cron:使用请求的agentId 进行隔离作业认证解析。(#13983) 感谢@0xRaini。
54.Cron: 将agentId 传递给runHeartbeatOnce 以用于主会话作业。(#14140) 感谢@ishikawa-pro。
55.Cron: 防止当nextRunAtMs 进展时跳过执行cron 任务。(#14068) 感谢@WalterSumbon。
56.Cron: 当作业仍在执行时,onTimer触发时重新启动定时器。(#14233)感谢@tomron87。
57.Cron: 防止多个作业同时触发时重复触发。(#14256) 感谢@xinhuagu。
58.Cron:隔离调度程序错误,以免一个错误的任务影响所有任务。(#14385) 感谢@MarvinDontPanic。
59.Cron:防止在跳过/错误运行后重启时一次性任务重新触发。(#13878) 感谢@lailoo。
60.守护进程:在重启LaunchAgent 时抑制EPIPE 错误。(#14343) 感谢@0xRaini。
61.反重力:添加opus 4.6 向后兼容模型,并跳过思维签名清理。(#14218) 感谢@jg-noncelogic。
62.智能体:防止子进程清理中的文件描述符泄漏。(#13565) 感谢@KyleChen26。
63智能体:防止因缓存TTL 跳过保护而导致的双重紧缩。(#13514)感谢@taw0002。
64.智能体:使用上一个API调用的缓存令牌进行上下文显示,而不是累积和。(#13805)感谢@akari-musubi。
65..智能体:通过使用最后调用使用情况和共享令牌计算逻辑,保持后压缩上下文中的跟进运行者会话总令牌对齐。(#14979) 感谢@shtse8。
66.Hooks/Plugins: 将9个之前未连接的插件生命周期钩子接入核心运行路径(会话、压缩、网关和出站消息钩子)。(#14882)感谢@shtse8。
67.Hooks/Tools: 在两个工具执行路径中调度 before_tool_call 和 after_tool_call 钩子,并进行冲突修复重基。(#15012) 感谢 @Patrick-Barletta, @Takhoffman。
68.Discord:允许频道编辑归档/锁定线程并设置自动归档持续时间。(#5542)感谢@stumct。
69.Discord 测试:在斜线命令覆盖中使用部分@buape/carbon 模拟。(#13262) 感谢@arosstale。
70.测试:更新Slack消息收集测试中的线程ID处理。(#14108)感谢@swizzmagik。

