openclaw 小龙虾 2026.5.5 更新说明
📊 概览
2026.5.5 是一次大规模的 Bug 修复版本,涵盖三大渠道、四个提供者、Control UI 全面检修、CLI/TUI/Doctor 清理、安全加固和插件系统修复。
🛠️ 渠道更新
Feishu (飞书)
- 话题线程修复: 在会话路由前补全原生话题发起者的 thread ID,确保第一条消息和后续回复在同一话题会话中。修复 #78262。感谢 @joeyzenghuan
LINE
- DM 策略安全: 拒绝
dmPolicy: "open"但没有通配符allowFrom的配置,webhook DM 在入站处理前即被阻断而非默默忽略。修复 #78316
Telegram / Codex
- 进度草稿修复: 仅含消息工具类型的进度草稿保持可见,原生 Codex 工具进度每个工具渲染一次,不再重复
item/tool草稿行。修复 #75641 (#77949)
Matrix
- 审批重试: 审批消息传递失败时最多重试 3 次(带短退避),临时 Matrix 发送失败不再导致审批提示被遗忘 (#78179)。感谢 @Patrick-Erichsen
Discord
- 心跳超时修复: 从实际心跳发送时刻开始测量 ACK 超时,防止通道尚未就绪时首条延迟心跳触发假重连循环。修复 #77668 (#78087)。感谢 @bryce-d-greybeard 和 @NikolaFC
- 文本控制命令: 纯文本控制命令(如
/steer)通过常规授权和提及门控路由,不再在 agent 会话可见前静默丢弃。修复 #78080。感谢 @ramitrkar-hash - 推理文本展示: 流式回复中显示实时推理文本而非裸露的
Reasoning状态行
Slack
- Socket Mode 日志: 保留 Socket Mode SDK 错误上下文和结构化 Slack API 字段在重连日志中,启动失败不再坍缩为裸
unknown error
- 响应性优化: 仅停止已验证的过期本地 TUI 客户端(当其降低 Gateway 事件循环并延迟回复时)。感谢 @vincentkoc
🎨 Control UI
会话管理
- 检查点展示: 压缩计数改为紧凑的
N Checkpoint(s)折叠式,展开后以现代检查点历史卡片显示会话级详情,响应式表格布局。感谢 @BunsDev - Agent 运行时显示: 每个会话的 agent 运行时在 Sessions 表中展示,并支持按运行时标签筛选,与 Agents 面板的运行时措辞一致。感谢 @BunsDev
- /new 命令修复: 仅显式 Control UI 创建的会话才触发
/new命令和生命周期钩子,恢复 session-memory 和自定义钩子捕获,不改变 SDK 父会话创建行为。修复 #76957。感谢 @BunsDev
性能优化
- 标签响应性: 历史负载和通道探测缓慢时保持 Chat/Channel 标签页响应,标注部分通道状态,在事件日志中记录慢速 Chat/配置渲染时间。感谢 @BunsDev
聊天
- 进度文本可见性: 当同一条转录同时也包含工具使用元数据时,保留已持久化的助手的进度文本,chat.history 重载后这些回复不再消失。修复 #77374。感谢 @BunsDev
☁️ 提供者更新
xAI (Grok)
- 推理 effort 修复: 停止向原生 Grok Responses 模型发送 OpenAI 风格的 reasoning_effort 控制参数,
xai/grok-4.3不再因Invalid reasoning effort在 Docker/Gateway 中失败 - Thinking 配置锁定: 将内置 xAI thinking profile 锁定为
off,防止网关运行时向原生 Grok 模型发送不支持的推理级别
Fireworks (Kimi)
- 推理限制: Kimi 模型仅暴露为 thinking-off-only,K2.5/K2.6 请求保持
thinking: disabled,手动切换模型不会发送 Fireworks 拒绝的reasoning*参数。参考 #74289。感谢 @frankekn
OpenAI / Gateway
- SSE 流修复: 正确刷新聊天流的首个 chunk,首个 token 流式内容可见而非被后续 chunk 延迟
🔒 安全加固
iOS 配对
- 连接协议修复: 支持通过 setup-code 和手动
ws://连接私有 LAN 和.local网关,Tailscale/公网路由保持wss://;混合认证重连时优先使用显式网关密码而非过期 bootstrap token。修复 #47887;延续 #65185。感谢 @draix 和 @BunsDev
Docker / Gateway
- 容器加固: Docker compose 中移除
NET_RAW和NET_ADMIN能力,启用no-new-privileges。感谢 @VintageAyu
Exec 审批
- Windows 重命名修复: 当 Windows 拒绝 overwrite-with-rename 时,回退到受保护的复制,同时保留符号链接、硬链接和仅拥有者权限保护。修复 #77785 (#77907)。感谢 @Alex-Alaniz 和 @MilleniumGenAI
Gateway HTTP
- 媒体路由修复: 避免为不相关请求加载受管理的出站图片媒体处理器,已禁用 OpenAI 兼容路由返回 404 而无需等待懒加载媒体 sidecar
⚡ Gateway / 核心
关闭/重启
- 延迟维护取消: 关闭时取消延迟的 post-ready 维护任务,快速重启后抑制维护/cron 启动,防止孤儿后台定时器。感谢 @vincentkoc
- 结构化关闭警告: 通过 ShutdownResult 报告结构化关闭警告和 HTTP 关闭超时警告,同时保留生命周期钩子加固。延续 #41296。感谢 @edenfunf
OpenAI 兼容端点
- 200 无响应修复: 流式 chat-completion 头一旦被接受即发送
assistant角色 SSE chunk,冷 agent 启动不再让/v1/chat/completions客户端在空闲超时前收到无主体的 200 响应
模型目录
- 空结果缓存: 缓存空的只读模型目录结果直至重载,TUI 和控制面板刷新循环不会在无可发现模型时反复锤插件元数据读取。感谢 @vincentkoc
Status/健康检查
- CPU 误报修复: 避免将快速重复的健康/状态样本标记为事件循环降级(仅从 CPU/利用率判断),直到 Gateway 积累了足够持续采样窗口。感谢 @shakkernerd
- 上次 Supervisor 重启:
openclaw gateway status --deep中显示最近 supervisor 重启交接,包含 JSON 详情。感谢 @shakkernerd
身份验证配置
- Token 冲突警告: doctor/status 警告当
OPENCLAW_GATEWAY_TOKEN与配置中其他活跃的gateway.auth.token源不一致时,同时避免配置指向同一 env token 时的误报。修复 #74271。感谢 @yelog
🖥️ CLI / TUI
TUI 稳定性
- CLI 重绕修复: 交互式启动跳过通用 CLI respawn wrapper,终端丢失时干净退出,拒绝将 heartbeat 会话恢复为记忆的聊天会话,防止首次启动时过期 heartbeat 历史和孤儿
openclaw-tui进程。感谢 @vincentkoc - 会话选择器: 限定会话选择器为最近行,活跃会话使用精确查找式刷新,大量旧存储不再让 TUI 在 hydrating 数周前的转录后才变得可响应。感谢 @vincentkoc
CLI 会话
- 工件清理: 常规会话清理时修剪旧的未引用转录、压缩检查点和轨迹工件,Gateway 重启或崩溃的孤儿不会在
sessions.json之外无限积累。修复 #77608。感谢 @slideshow-dingo - Agent 运行时显示:
openclaw status和openclaw sessions中显示所选 agent 运行时/框架
CLI 通道
- 启动提速: 裸
openclaw channels父帮助命令跳过配置、代理、通道选项目录、banner-config 和插件启动引导,打印帮助后立即退出。感谢 @vincentkoc
CLI 更新
- dev-channel 修复: 获取失败后干净停止 dev-channel 更新,不再继续执行后续步骤
- 预检 lint 可选: dev-channel 预检 lint 改为 opt-in,且启用时受限,
openclaw update --channel dev不会在 Ubuntu 主机 OOM-kill 或并行 oxlint 分片失败时回滚原本好的主 commits。感谢 @vincentkoc
Doctor 增强
- Codex 路由修复: 将
openai-codex/*遗留路由修复为openai/*,仅在 Codex 插件已安装、启用、提供 codex 框架且有可用 OAuth 时选择agentRuntime.id: "codex";否则选择"pi"。感谢 @vincentkoc - Heartbeat 中毒修复: 将 heartbeat 污染的默认主会话存储条目移至恢复键,清除过期 TUI 恢复指针,
doctor --fix可修复卡在agent:main:mainheartbeat 历史的实例。感谢 @vincentkoc
🧩 插件系统
诊断插件
- TypeScript 包警告: 纯源码 TypeScript 包的警告变为可操作——说明缺少编译运行时输出是发布者的打包问题,建议用户更新/重装或禁用/卸载插件。修复 #77835。感谢 @googlerest
插件更新/安装
- 官方插件同步: 主机更新期间保持已安装的官方 npm 和 ClawHub 插件(Codex, Discord, WhatsApp, 诊断插件)同步,即使被禁用或之前精确 pinned,同时保留第三方插件 pin。感谢 @vincentkoc
- peer 依赖修复: 更新前修复过期的 managed npm-root
openclawpeer 包,beta-channel 官方插件更新不会被旧核心 package-lock 状态降级。感谢 @vincentkoc - 共享 root 修复: 共享 root npm 安装、更新、卸载后重新断言 managed npm 插件的
openclawpeer 链接,修改一个插件不会让之前安装的 SDK 使用插件无法解析openclaw/plugin-sdk/*。感谢 @vincentkoc - 损坏记录容错: 更新时容错损坏的 managed 插件记录,核心包更新仍可完成并报告插件修复路径
🤖 Agent 核心修复
媒体处理
- 附件去重: 将附件风格的消息工具操作视为已完成的聊天发送,防止已上传的生成文件重复回退发布。感谢 @vincentkoc
- 异步完成去重: 避免在 announce-agent 运行仍在等待时直接回退已生成的媒体完成,异步视频和音乐完成不会重复推送原始媒体消息 (#77754)
- WebChat/Codex 媒体: Codex app-server 生成的本地图片在 Gateway 展示前先 stage 到 managed media,避免
LocalMediaAccessError。感谢 @frankekn
上下文引擎
- 运行时消息隔离: 隐藏的 OpenClaw 运行时上下文自定义消息不在 context-engine 的 assemble/afterTurn/ingest 钩子中出现,转录重建插件只看到对话消息。感谢 @vincentkoc
钩子 / Session-Memory
- 文件名冲突修复: fallback 记忆文件名增加碰撞后缀,同一分钟内重复的
/new或/reset捕获不会覆盖之前的存档。感谢 @vincentkoc - LLM slug 可选: reset 记忆捕获在命令回复路径之外运行,模型生成的记忆文件 slug 通过
llmSlug: true选择加入,/new和/reset不再阻塞 WhatsApp 等渠道的回复。感谢 @vincentkoc
Agent 配置
- 遗留路径移除: 移除模糊的遗留 main agent 目录辅助函数;model/auth/gateway/插件/测试辅助函数通过
agents.list/agent-scope 辅助函数解析默认/会话 agent 目录,插件 SDK 保留弃用兼容导出。感谢 @vincentkoc
生成的媒体
- 去重修复: 将附件风格的消息工具操作视为已完成的聊天发送,防止已上传的生成文件重复回退发布
🖥️ 平台特定
iOS
- 配对协议修复: 见安全加固章节 — 支持 setup-code 和手动
ws://连接私有 LAN/.local网关
Windows
- Exec 审批重命名: 见 Exec 审批章节
🧪 杂项
- Auth 配置集: 格式级别拒绝不将提供者加入冷却期,模型名不支持时回退配置集仍可尝试
- WebChat/Codex: 同上 Codex 媒体修复
- Gateway 媒体路由: 跳过不相关 HTTP 路由的媒体 sidecar 处理
- Discord 推理草稿: 流式回复中显示推理文本
- 视频生成: 接受提供者特定的 aspect-ratio 和 resolution 提示,720P 标准化为 MiniMax 支持的 768P,停止在 Gemini 视频请求中发送 Google
generateAudio,提供者回退可从模型特定参数差异中恢复。感谢 @vincentkoc - Status 增强: 在
/status中显示 Gateway 进程运行时间(紧凑格式)和系统运行时间。感谢 @vincentkoc
🧪 致谢贡献者
@joeyzenghuan, @Patrick-Erichsen, @bryce-d-greybeard, @NikolaFC, @ramitrkar-hash, @BunsDev, @Alex-Alaniz, @MilleniumGenAI, @draix, @googlerest, @vincentkoc, @shakkernerd, @yelog, @frankekn, @slideshow-dingo, @edenfunf, @VintageAyu, @frankekn 及更多社区贡献者
本文件由 芙宁娜 🎭 整理自原始英文修复日志
https://www.fireself.cn/post/uM0SUVjo