
OpenClaw 24h 更新快报(2026-10-16):Steering 去重、Session Fork 保全、冷启动优化
过去 24 小时,openclaw/openclaw 仓库合并了超过 40 个 PR,并有数条独立提交。以下三个变化值得关注:插件 Steering 机制终于解决了重复注入模型上下文的问题;Session Fork 在父请求准备阶段不再意外失效;Usage 后端在会话冷启动时改为批量回填,减少与前台写入的资源竞争。
Agent 核心:Steering 重复注入修复
PR #173458 一次性解决了两类遗留问题。首先,插件重试 Steering 时同一段 Guidance 会被送入模型两次——这是因为 Transcript 的幂等性检查没有保护住运行中输入队列;修复后,运行注册改为在权限校验通过后才加入 pending/accepted 队列。其次,被拒绝的原生 Guidance(native steer)在被回绝后仍留存在上下文中,污染后续重试——Codex 层现在只在原生接受或已确认投递后才追加内部插件 Guidance,被拒绝的队列预约会被正确释放。
该 PR 附带了两个独立拆解:PR #173489 处理 Session Fork 在父请求准备阶段被错误清理的问题(Advisor 的 review + verification 可以跨过父请求准备边界完成,不再报"缺少 prepared-parent");PR #173459 则修复了新 Turn 或 abort 发生时旧 Guidance 没有被正确取消的问题。
三个 PR 共同覆盖了 OpenClaw Agent 在多轮对话中 Guidance 生命周期管理的完整路径,已在本地 32 项专注测试中验证通过。
Usage 后端:冷启动批量回填
PR #173475 针对大型会话列表在服务重启后的冷启动场景。原来每个过期 Transcript 的用量回填都会触发一次独立的 SQLite 写请求,与前台写入竞争同一 writer,导致启动初期系统负载偏高。
修改后,回填 worker 改为按批次提交:每 50 条 Transcript、1 MiB 已准备载荷或 1 秒流逝(以先到者为准)为一组,在一个事务内完成。大型单条 Transcript 超过阈值时单独成批;失败或取消的扫描会留下未提交的派生总量,由下次刷新负责。内部单行请求替换为数组请求,显式写后深拷贝被消除。测试覆盖精确总数、追加/重写、月度分区、取消/权限撤销等场景,共 25 项专注集成测试在约 54 秒内通过。
Web UI:Claws 渲染桥接层移除
PR #173470 是本期最大规模的重构(size: L)。Claws 目录页、详情页和 Explore 列表仍注册着自定义元素桥接,但所有生产调用方早已切换到 Solid 渲染。改动包括:直接渲染三个 host tags、为主模型视图引入 memo 化、移除仅转发已有 props 的冗余 getter、让 Claws 路由直接懒加载组件。五文件生产代码净减少 28 行,两份耦合测试文件减少 3 行。
值得注意的是,本次删除的是"死代码"——没有任何现有功能被改变,仅为后续维护减负。CI 完整运行通过。
其他值得注意的修复
- PR #173466:减少冷历史准备时的冗余工作,边界元数据和首条保留消息位置合并为一条 SQL 读取。
- PR #173464:修复 clickclack 活动更新在飞行中写入时被丢弃的问题。
- PR #173490:修复慢速音频追加导致 Talk 通话意外结束的问题。
- PR #173460:修复私有模型 Prompt 投影错误出现在 Gateway 显示输出中的问题。
本期更新整体以"稳定性与性能调优"为主基调,Agent 核心的 Steering 修复尤其值得关注,所有使用插件 Guidance 或多轮 Advisor 的用户均会受益。


评论