OpenClaw 更新分析 — 2026-03-29
> 统计周期:2026-03-28T05:00Z ~ 2026-03-29T05:00Z
> Commits 总数:9+(社区贡献者 4 人)
概览
今天是 OpenClaw 的高强度活跃日,核心焦点集中在两大方向:
1. Control UI 的 /steer / /redirect 指令完整落地 — 从零到可用,包含大量防御性逻辑和边界处理
2. 插件注册表(Plugin Registry)并发安全修复 — 修复子 Agent 工具加载时的注册表复用问题
重要变更(逐条分析)
🔴 1. `fix: wire control-ui steer and redirect` — PR #54625(@fuller-stack-dev)
类型: feat + fix(大型社区 PR,已合并)
模块: ui / slash-command-executor / sessions
这是今天最重磅的变更。完整实现了两个斜杠命令:
/steer:向活跃子 Agent 软注入消息(sessions.steer RPC)/redirect:硬重启 Agent 并注入新方向
关键实现细节:
resolveSteerTarget重构为专用的resolveSteerSubagent,仅匹配 subagent key suffix 或 label,防止/steer main refine plan误命中 agent id 为main的情况- 过滤掉已结束的 sessions(
endedAt已设置),避免重名 subagent 被错误定向 - 免除 busy-queue 排队,steer/redirect 立即执行
- 使用
generateUUID作幂等 key,防止重复触发 - 跟踪 redirected run 状态,使 Abort 按钮生效,阻止并发发送
- 对 idle steer runs 进行拦截,显示 pending 状态
对我们的影响: 🟢 正面。/steer 和 /redirect 现在可以在 Control UI 中实际使用。Jay 如果在 Web UI 操控子 Agent,这两个命令终于能用了。
🔴 2. `fix: scope subagent registry reuse to tool loading` — PR #56240(@GodsBoy)
类型: fix + refactor(11 个回归测试)
模块: plugins / runtime-plugins / loader / tools
修复子 Agent 在加载工具时对 Plugin Registry 的复用逻辑:
- 子 Agent 调用
resolveRuntimePluginRegistry时,如果当前已有 active registry,优先复用(避免重复扫描磁盘上的 plugin) - 新增安全注释:单进程单 Gateway 模型下,子 Agent 与 Gateway 共享
workspaceDir、config、env,cache-key mismatch 时回退是安全的 - 新增 11 个回归测试覆盖 cold-start、per-field isolation、caller-shape 等场景
- 添加 debug 日志记录注册表走的是哪条路径
对我们的影响: 🟢 稳定性提升。使用多个子 Agent 时工具加载更快、更稳定,不会因重复 plugin 扫描导致延迟或状态不一致。
🟡 3. `fix(plugins): preserve gateway-bindable registry reuse`(@obviyus)
类型: fix
模块: plugins / agents/runtime-plugins / loader / tools
作为 PR #56240 的后续补丁,修复合并冲突并保留 gateway-bindable registry 的复用行为。涉及文件:
src/agents/runtime-plugins.tssrc/plugins/loader.tssrc/plugins/tools.ts
对我们的影响: 🟡 内部修复,但与上条协同确保 plugin 注册表在 gateway 重启/子 Agent 创建时的正确性。
🟡 4. `fix(ui): keep explicit ended steer targets`(@obviyus)
类型: fix
模块: ui
对 PR #54625 的追加 patch:当用户显式通过名字/key 指定了一个已结束的 steer target 时,保留该目标而不因 endedAt 过滤逻辑被丢弃。
对我们的影响: 🟡 边界场景修复。让 steer 的"精确指名"更可靠,不会因 session 已结束就拒绝执行。
🟡 5. `Agents UI: fix effective model and file hydration`(@vignesh07)
类型: fix
模块: Control UI / Agents 面板
修复 Agents UI 中展示的「实际使用模型」字段和文件附件的水合(hydration)逻辑,确保 UI 中展示的是真实生效的模型,而非 fallback 默认值。
对我们的影响: 🟡 UI 体验修复。在 Agents 管理界面查看子 Agent 时,显示的模型和文件信息更准确。
🟢 6. `Chore: regenerate protocol Swift agent summary models`(@vignesh07)
类型: chore
模块: iOS/macOS 客户端协议层
重新生成了 Swift 端的 agent summary 模型,与最新的 Control UI agents metadata/file fix 保持同步。
对我们的影响: ⚪ 仅影响 iOS/macOS 原生客户端用户。
🟢 7. `Docker setup: force BuildKit for local builds`(@vignesh07)
类型: chore
模块: Docker / 部署基础设施
本地 Docker 构建强制启用 BuildKit(DOCKER_BUILDKIT=1),与 CI 环境保持一致,避免缓存行为差异。
对我们的影响: ⚪ 仅影响自编译部署用户。我们使用 npm 安装,无直接影响。
🟢 8. `fix(kimi): preserve valid Anthropic-compatible...`(@yuanchao)
类型: fix
模块: Kimi channel plugin
修复 Kimi 模型的 Anthropic 兼容性(消息被截断,推测是处理 stop_reason 或响应格式相关)。
对我们的影响: 🟡 如果在 Jay's Server 的 #kimi-chat 频道使用 Kimi K2.5,这个 fix 会改善响应的稳定性。
架构观察
1. Steer/Redirect 成熟化:从 PR 结构看,/steer 和 /redirect 经历了至少 10 个迭代补丁才合并,说明团队对边界条件极为谨慎。最终实现在精确性(避免误命中)和可靠性(幂等、状态追踪、busy-queue 豁免)上都做到位了。
2. Plugin Registry 并发问题:今天有两个独立 PR 都在修 plugin registry 相关问题,说明这是近期引入的新架构(可能随子 Agent 支持一起引入),还在经历「新功能稳定化」阶段。
3. 社区贡献活跃:今天 4 位贡献者(@fuller-stack-dev、@GodsBoy、@vignesh07、@yuanchao),2 个大型社区 PR 被合并,核心团队 @obviyus 负责 review 和 follow-up patch,节奏很健康。
4. Swift 客户端同步:每次 Control UI 的 agents 相关改动,Swift 模型都需要重新生成,说明 iOS/macOS 客户端与 Web UI 共享相同的协议定义。
对我们的影响
| 影响等级 | 内容 | 行动建议 |
|---|---|---|
| 🔴 高 | `/steer` 和 `/redirect` 命令可用 | 更新 OpenClaw 后可在 Control UI 测试这两个命令 |
| 🟡 中 | Plugin 注册表稳定性提升 | 使用多个子 Agent 时应更稳定,无需特别操作 |
| 🟡 中 | Agents UI 模型/文件显示修复 | 刷新 Control UI 即可看到准确的 agent 信息 |
| 🟡 中 | Kimi channel 修复 | `#kimi-chat` 频道使用体验改善 |
| ⚪ 低 | Docker BuildKit / Swift 模型 | 对我们的部署方式无影响 |
建议:运行 npm update -g openclaw 获取今天的所有修复。
原始 Commits
| SHA | 时间 | 作者 | 说明 |
|---|---|---|---|
| [3a43401](https://github.com/openclaw/openclaw/commit/3a43401924d8de2b58eec2db11b54aad178eec75) | 04:57 UTC | @obviyus | fix(ui): keep explicit ended steer targets |
| [83808fe](https://github.com/openclaw/openclaw/commit/83808fe4943abe2c6ff2704f89433007b2b989a7) | 04:45 UTC | @fuller-stack-dev | fix: wire control-ui steer and redirect (#54625) |
| [e3faa99](https://github.com/openclaw/openclaw/commit/e3faa99c6a4752e64ee1cefa82bcda4731562d90) | 04:29 UTC | @obviyus | fix(plugins): preserve gateway-bindable registry reuse |
| [bb9394e](https://github.com/openclaw/openclaw/commit/bb9394e1239a948c31b571a62ed16f7b2ed1cd0a) | 04:22 UTC | @vignesh07 | Changelog: note Control UI agents metadata/file fix |
| [5a0bd90](https://github.com/openclaw/openclaw/commit/5a0bd9036c152026dd1e1fbf71d91c26150d566a) | 04:17 UTC | @vignesh07 | Chore: regenerate protocol Swift agent summary models |
| [384a590](https://github.com/openclaw/openclaw/commit/384a590e54e658cf2ffed0e77cdd34ee8f9b210d) | 04:10 UTC | @vignesh07 | Agents UI: fix effective model and file hydration |
| [27188fa](https://github.com/openclaw/openclaw/commit/27188fa39f6020dd71ddb7b9006d993c06db8309) | 04:06 UTC | @GodsBoy | fix: scope subagent registry reuse to tool loading (#56240) |
| [6883f68](https://github.com/openclaw/openclaw/commit/6883f688e8da11481a5d0f91dfab4e4ba6e9f871) | 03:46 UTC | @vignesh07 | Docker setup: force BuildKit for local builds |
| [ec7f19e](https://github.com/openclaw/openclaw/commit/ec7f19e2ef7abc1868c3d1fe088cb5263814bb81) | 03:37 UTC | @yuanchao | fix(kimi): preserve valid Anthropic-compatible response |
由 OpenClaw 更新分析 cron 自动生成 · 2026-03-29 05:00 UTC