← 返回更新日志

OpenClaw v2026.5.7

2026-05-07 · GitHub 原文
### 修复 - 发布/插件发布:重试 ClawHub CLI 依赖安装的临时性失败,在某个预览单元格波动时仍允许通过预览的插件发布,并在发布后验证每个预期的 ClawHub 包版本,以便维护版本能更快恢复,且不易隐藏部分插件发布。 - OpenAI:支持将 `openai/chat-latest` 作为显式的直接 API 密钥模型覆盖,以便在不更改稳定默认模型的情况下尝试动态变化的 ChatGPT Instant API 别名。 - Cron CLI:在 `cron list --json` 和 `cron show --json` 输出中包含计算出的 `status` 字段,以便外部工具无需重新实现 cron 状态推导即可读取禁用/运行中/正常/错误/跳过/空闲状态。(#78701) 感谢 @aweiker。 - Channels CLI:使 `openclaw channels list` 仅列出频道,添加 `--all` 参数以包含内置和目录频道,渲染已安装/已配置/已启用状态,并将模型认证/使用详情移至 `openclaw models auth list`、`openclaw status` 和 `openclaw models list`。(#78456) 感谢 @sliverp。 - 原生命令:原生命令处理器遵循所有者权限强制执行。(#78864) 感谢 @pgondhi987。 - 活跃内存:全局内存开关需具备管理员权限范围。(#78863) 感谢 @pgondhi987。 - 网关/会话:在 `/new` 和 `sessions.reset` 期间清除缓存的技能快照,以便长生命周期频道会话在技能变更后重新构建可见技能列表。(#78873) 感谢 @Evizero。 - 自动回复:通过调用前授权钩子拦截内联技能工具的分发。(#78517) 感谢 @pgondhi987。 - Tavily:从当前运行时配置快照中解析专用的 `tavily_search` 和 `tavily_extract` 工具凭据,防止依赖 `exec` SecretRef 的 API 密钥在未解析状态下传递给工具。(#78610) 感谢 @VACInc。 - 插件/安装:为托管插件的安装、回滚、修复和卸载 npm 操作使用与暂存包更新相同的绝对 POSIX npm 生命周期 shell,防止受限制的 PATH shell 破坏清理过程。感谢 @vincentkoc。 - 智能体/上下文引擎:当源历史缩短或组装失败时使缓存的已组装上下文视图失效,防止重用重置前的过期历史。修复 #77968。(#78163) 感谢 @brokemac79 和 @ChrisBot2026。 - Discord/消息:将带有提供商前缀的目标(如 `discord:channel:<id>`)解析为频道发送目标,而非传统的 Discord DM 目标,从而避免跨频道智能体的 `message(action="send")` 调用将频道 ID 错误路由导致误导性的“未知频道”失败。修复 #78572。 - 智能体/压缩:将压缩摘要的保留令牌数限制在各模型的输出上限内,使高上下文压缩不再请求无效的 `max_tokens` 值。(#54392) 感谢 @adzendo。 - 命令/BTW:使用方括号显示 `/btw` 缺失问题的用法占位符,以便出站频道清理操作保持其可见。修复 #62877。感谢 @RajvardhanPatil07。 - Cron/诊断:在运行 `openclaw doctor --fix` 时移除错误的覆盖配置,以修复 `payload.model` 被存储为 `"default"`、`"null"`、空白或 JSON `null` 的持久化 cron 任务,同时保持 cron 运行时模型验证的严格性。修复 #78549。感谢 @bizzle12368239。 - Telegram:在应用 Telegram 的数字发送者 ID 检查之前,优先遵循 DM、群组、原生命令和回调授权的 `accessGroup:*` 发送者白名单。修复 #78660。感谢 @manugc。 - 智能体投递:当出站投递未返回适配器结果时报告 `deliverySucceeded=false`,使声称的/空投递路径不再伪装成成功发送。修复 #78532。感谢 @joeyfrasier。 - Cron/隔离运行:当 `delivery.channel=last` 无历史路由时,在模型执行前使隐式公告投递失败,从而避免重复任务在遇到永久性投递目标错误前消耗令牌。修复 #78608。感谢 @sallyom。 - 网关/会话:当日间网关-智能体会话轮换更改会话 ID 时,持久化生成新的转录文件,同时保留自定义转录路径。修复 #78607。感谢 @nailujac、@zerone0x 和 @sallyom。 - 诊断/Codex OAuth:在 `doctor --fix` 期间保留正常的 `openai-codex/*` PI 路由,并在仅支持 Codex OAuth 认证时恢复 2026.5.5 重写版本的 `openai/*` GPT-5 路由,确保更新修复不会破坏订阅认证配置。修复 #78407。感谢 @shakkernerd。 - Telegram:将轮询看门狗绑定到 `getUpdates` 的存活状态,防止无关的出站 Bot API 调用掩盖陷入僵局的入站轮询器。修复 #78422。感谢 @ai-hpc。 - 智能体/子智能体:使已完成会话模式的子智能体注册表行遵循 `agents.defaults.subagents.archiveAfterMinutes` 配置,而非硬编码的 5 分钟 TTL,从而使基于注册表的界面在各类生成模式下保持统一的保留控制。(#78263) 感谢 @arniesaha。 - 插件/频道设置:从非内置的外部插件设置条目转发 `setChannelRuntime`,以便延迟的外部频道运行时初始化器在启动轮询前安装。修复 #77779。(#77799) 感谢 @openperf。 - Telegram:在决定是否触发重写后的静默回复回退机制时,将入站 Telegram 回合期间成功的同聊天 `message` 工具出站发送视为已投递。(#78685) 感谢 @neeravmakwana。 - 网关/任务:清理已消失的实时运行上下文的过期 CLI 运行上下文任务,并绑定频道热重载延迟,防止过期任务记录永久阻塞 Discord/Slack/Telegram 的重载。 - Discord/语音:在 `channels capabilities` 和 `channels status --probe` 中审计 Discord 语音频道权限(包括自动加入目标),以便在 `/vc join` 之前暴露缺失的 Connect/Speak/Read Message History 权限。 - Discord/语音:通过将默认说话后静音宽限期延长至 2.5 秒来减少语音采集的卡顿,为嘈杂的 Discord 会话添加 `voice.captureSilenceGraceMs` 配置,并收紧围绕实时 STT 片段的语音输出提示。感谢 @vincentkoc。 - WhatsApp:当可用时,通过 Baileys LID 转发映射路由主动发送的电话号码消息,使 LID 寻址的联系人接收代理消息,而不是创建仅发送者的幽灵聊天。修复 #67378。(#74925) 感谢 @edenfunf。 - WhatsApp:发送带说明的 `MEDIA:` 指令自动回复时仅发送一次,而不是在带说明的媒体回复前发送空媒体消息。(#78770) 感谢 @ai-hpc。 - Codex/审批:在 Codex 审批模式下,默认停止安装 pre-guardian 原生的 `PermissionRequest` 钩子,以便 Codex 的审核员能在 OpenClaw 弹出审批前批准安全命令;在活跃会话窗口期内,记住针对相同 Codex 原生 `PermissionRequest` 负载的 `allow-always`(始终允许)决策;并使插件审批请求验证/渲染其实际允许的决策,从而防止 Telegram 及其他原生审批 UI 提供过时操作。感谢 @shakkernerd。 - 模型提供商:规范化通过 APNG 嗅探的 PNG 上传,保留带有回退签名的 Gemini 3 工具调用思维签名重放,接受传统的 `__env__:VAR` 自定义提供商密钥,并修复 snake_case 工具调用转录的清理逻辑。修复 #51881、#48915、#77566 和 #42858。 - Telegram/模型:解析 `/models` 回调按钮中包含点号的提供商 ID,使 `hf.co` 模型列表能渲染为内联键盘按钮。修复 #38745。