
OpenClaw 24h 更新快报(2026-03-31):会话死亡循环、iOS 扫码配对回归、多渠道安全加固
过去 24 小时,OpenClaw 主线迎来了多个高优先级的稳定性与安全修复。最值得注意的是:PR #58379 修复了一个导致 Agent 会话陷入"死亡循环"的严重回归——当模型返回过载错误时,Session 会无限制重试,表现为静默无响应;PR #58382 修复了 iOS 新设备扫码配对(QR onboarding)的回归问题;同时,trusted-proxy 令牌配置现在强制互斥检查,Exec 审批对 shell 初始化文件脚本匹配的拒绝逻辑也更严格,覆盖 Matrix、Feishu、Nostr 等多个渠道的安全上下文过滤也一并收紧。
核心稳定性:Gateway 会话死亡循环
PR #58379 针对一个在生产环境观察到的严重问题:当模型提供商(如 Anthropic)返回 overloaded_error 时,Agent 会话会进入"死亡循环"——静默无响应,历史上曾出现 97 次无界重试,生产端累积 9 天共 4+ 起确认事故。根本原因有两个:agent-runner-execution.ts 中的 while(true) 循环在捕获 LiveSessionModelSwitchError 时无任何重试上限;pi-embedded-runner/run.ts 对过载错误的身份验证档案轮换也没有限制,由于过载是提供商级别的容量问题而非单 Key 问题,这种轮换只会徒增延迟。修复在两层分别加闸:外层限制 LiveSessionModelSwitchError 重试上限为 2 次,超限后直接返回 kind: "final" 并向用户展示错误而非静默挂起;内层对 overloaded 错误的同提供商档案轮换上限设为 1 次,超限后立即抛出 FailoverError 跨提供商回退,不再穷尽同提供商所有档案。两项改动均不涉及非过载错误(rate_limit、auth、billing 等)的行为。
补充一个非 PR 提交 bf0f33d:修复了压缩模块(compaction)中模型覆盖在运行时上下文中对所有上下文引擎不生效的问题。
安全与稳定性:多渠道安全加固
trusted-proxy 配置互斥检查:PR #58371 在 Gateway 启动时强制拒绝同时配置了 trusted-proxy 模式和共享令牌的认证方案。覆盖 gateway.auth.token 和 OPENCLAW_GATEWAY_TOKEN 两种令牌来源的回归测试同步加入。
Exec 审批加强:PR #58369 拒绝 shell 初始化文件(如 ~/.bashrc)中脚本路径的审批匹配,防止攻击者通过在初始化文件中植入别名或函数劫持命令执行路径。
Hook 会话密钥重新绑定:PR #58225 修复了 hook agent 会话密钥未正确绑定到目标 agent 的问题。
渠道上下文过滤收紧:PR #58376 修复 Matrix 频道获取线程上下文时未过滤发送方白名单的问题;PR #58237 修复 Feishu 群组线程上下文同类问题;PR #58236 修复 Nostr 私信签名验证在配对回复前未校验来源的问题。Plivo 回调来源 IP 也在 PR #58238 中被固定。
iOS 扫码配对回归修复
PR #58382 修复了一个影响 iOS 新设备扫码入网的回归:/pair qr 生成的 bootstrap 一次性令牌被正常_pending 流程消耗,但 iOS 从未收到可复用的设备令牌,导致后续重连陷入 bootstrap_token_invalid 并不断重试。新版 Gateway 对符合条件的新设备 QR 扫码握手(role=node、scopes 为空、无已配对设备)静默自动批准,颁发 hello-ok.deviceToken 并在 iOS 侧清除已消费的 bootstrap 认证,防止其被后续重连误用。
模型与 AI 能力
PR #58299 修复了 MCP 工具无参数时生成缺少 properties 字段的 schema、导致 OpenAI Responses API 直接拒绝并使整个会话静默崩溃的问题。修复在 normalizeToolParameters() 和 convertTools() 两处统一注入 properties: {}。
任务系统架构演进
PR #58521 将任务存储写入改为原子操作,消除并发场景下的竞态条件。PR #58516 引入 owner-key 任务访问边界,以 actor/key 两维度隔离任务读写权限,为大规模多租户部署提供更严格的基础。
开发者体验:ClawFlow 新增线性流程控制
PR #58227 新增 openclaw flows list、show、cancel 三个 CLI 命令,PR #58336 提供底层运行时基板(createFlow、runTaskInFlow、状态转换接口),线性流程的等待目标和输出数据现在持久化到 flow registry 并在 openclaw flows show 和 openclaw doctor 中展示。
过去 24 小时,OpenClaw 主线以稳定性修复为主基调——多个渠道的安全上下文过滤被收紧,Gateway 的过载处理回路被加上了明确上限,任务系统底层也完成了向原子写入和访问边界控制的升级。


评论