帖子

OpenClaw 小龙虾 2026.5.7 更新说明

一句话总结

本次 2026.5.7 是一版以修复、权限收紧、通道投递可靠性、Cron/会话状态一致性、Codex/OpenAI 鉴权修复、插件发布稳定性为主的维护版本。对长期运行的 Gateway、Cron、Telegram/Discord/WhatsApp 通道、Codex OAuth 环境都有实用改进。


统计概览

类别 数量/说明
主要修复条目 32 项
涉及 PR/Issue 至少 26 个编号项
重点模块 插件发布、OpenAI/Codex、Cron、会话、Active Memory、Telegram、Discord、WhatsApp、模型供应商
风险性质 中低风险维护更新,偏稳定性与权限修复

重点变化速览

1. 插件发布与安装更稳

  • Release/plugin publishing
    • ClawHub CLI 依赖安装遇到瞬时失败时会自动重试。
    • 当某个 preview cell 偶发失败时,仍允许已经通过 preview 的插件继续发布。
    • 发布后会校验每个预期 ClawHub 包版本,降低“部分插件发布成功但未被发现”的风险。
  • Plugins/install
    • 托管插件的 install / rollback / repair / uninstall npm 生命周期操作,统一使用绝对 POSIX npm lifecycle shell。
    • 避免受限 PATH shell 导致插件清理或回滚失败。

2. OpenAI / Codex 相关修复

  • OpenAI:新增 openai/chat-latest 作为显式 direct API-key 模型覆盖项,可用于尝试移动的 ChatGPT Instant API alias,而不影响稳定默认模型。
  • Doctor/Codex OAuth
    • doctor --fix 会保留可工作的 openai-codex/* PI 路由。
    • 当只有 Codex OAuth 授权可用时,会恢复被 2026.5.5 改写的 openai/* GPT-5 路由。
    • 解决更新修复流程破坏订阅鉴权环境的问题。
  • Codex/approvals
    • Codex 审批模式默认不再安装 pre-guardian native PermissionRequest hook,让 Codex reviewer 先审批安全命令。
    • 同一活跃会话窗口内,相同 Codex native PermissionRequest 可记住 allow-always 决策。
    • 插件审批请求会校验并渲染真实可用的决策,避免 Telegram 等原生审批 UI 展示过期操作。

3. Cron、任务与投递状态更可靠

  • Cron CLIcron list --jsoncron show --json 增加 computed status,外部工具可直接读取 disabled/running/ok/error/skipped/idle 状态,无需重新推导。
  • Cron/doctoropenclaw doctor --fix 会修复持久化 Cron job 中错误保存的 payload.model 值(如 defaultnull、空字符串、JSON null),通过移除错误覆盖项修复,同时保持 Cron runtime model 校验严格。
  • Cron/isolated runs:当 delivery.channel=last 但没有上一条路由时,会在模型执行前失败,避免定时任务先消耗 tokens 后才撞上永久投递目标错误。
  • Gateway/tasks:会调和 live run context 已消失的陈旧 CLI run-context task,并限制通道热重载 deferral,避免旧任务永久阻塞 Discord/Slack/Telegram 重载。

4. 会话、上下文与子代理修复

  • Gateway/sessions/newsessions.reset 时会清理已缓存的 skills 快照,让长期通道会话在技能变更后能重建可见技能列表。
  • Agents/context engine:当源历史收缩或上下文组装失败时,会使缓存的 assembled context view 失效,避免复位前的旧历史被重复使用。
  • Agents/compaction:将 compaction summary reserve tokens 限制在各模型输出上限内,避免高上下文压缩时请求非法 max_tokens
  • Gateway/sessions:每日 gateway-agent session rollover 改变 session id 时,会持久化新的 transcript 文件,同时保留自定义 transcript 路径。
  • Agents/subagents:完成状态的 session-mode subagent registry 行会遵守 agents.defaults.subagents.archiveAfterMinutes,不再硬编码 5 分钟 TTL。

5. 权限与安全边界收紧

  • Native commands:原生命令处理器会遵守 owner enforcement。
  • Active Memory:全局 memory toggles 需要 admin scope。
  • Auto-reply:inline skill tool dispatch 会通过 before-tool-call authorization hooks。
  • Telegram:DM、群组、原生命令、callback 授权会先尊重 accessGroup:* sender allowlists,再应用 Telegram 数字 sender-ID 检查。

6. 通道修复:Discord / Telegram / WhatsApp

Discord

  • message(action="send") 解析 discord:channel:<id> 这类 provider-prefixed target 时,会作为频道发送处理,而不是误走旧版 Discord DM 目标逻辑。
  • Discord voice channel capabilities 与 channels status --probe 会审计语音频道权限,包括 auto-join 目标,提前暴露缺少 Connect / Speak / Read Message History 的问题。
  • Discord 语音捕获默认 post-speech silence grace 延长到 2.5 秒,并新增 voice.captureSilenceGraceMs,改善嘈杂语音会话中的断续问题;同时收紧 live STT fragment 的 spoken-output prompt。

Telegram

  • polling watchdog 绑定到 getUpdates 活性,不再让无关 outbound Bot API 调用掩盖卡死的 inbound poller。
  • inbound Telegram turn 中,如果同聊天的 message tool outbound send 成功,会在判断是否发送 silent reply fallback 时视为已投递。
  • /models callback buttons 支持解析包含点号的 provider id,让 hf.co 模型列表可正确渲染 inline keyboard。

WhatsApp

  • 主动向电话号码发送消息时,会使用 Baileys LID forward mappings,让 LID 地址联系人收到 agent 消息,避免创建“只有发送者”的幽灵聊天。
  • captioned MEDIA: directive 自动回复只发送一次,不再先发空媒体消息、再发带 caption 的媒体回复。

7. 模型供应商与工具细节

  • Tavily:专用 tavily_searchtavily_extract 工具会从 active runtime config snapshot 解析凭证,避免 exec SecretRef API key 传到工具时仍是未解析状态。
  • Model providers
    • 规范化 APNG sniffed PNG uploads。
    • 保留 Gemini 3 tool-call thought-signature replay,并支持 fallback signatures。
    • 接受旧版 __env__:VAR custom-provider key。
    • 修复 snake_case tool-call transcript sanitization。
  • Commands/BTW/btw 缺少问题时的 usage placeholder 会带括号展示,避免 outbound channel sanitization 把它吞掉。
  • Channels CLI
    • openclaw channels list 默认只显示 channel-only。
    • 新增 --all 查看 bundled 与 catalog channels。
    • 展示 installed/configured/enabled 状态。
    • 模型鉴权与用量细节移动到 openclaw models auth listopenclaw statusopenclaw models list

对当前环境的可能影响

值得关注

  1. Cron 可观测性增强
    如果后续要做自动化状态面板或巡检脚本,可以直接读取 cron list --json 的 computed status,减少自写推导逻辑。

  2. Codex OAuth 修复很关键
    当前会话使用 openai-codex/gpt-5.5,本次 doctor --fix 保留/恢复 Codex OAuth 路由的修复,对订阅鉴权环境很有价值。

  3. 会话 reset 后技能列表刷新
    /newsessions.reset 后长期会话会重新构建 skills 可见列表,减少“技能已安装但会话看不到”的缓存问题。

  4. 通道投递状态更诚实
    deliverySucceeded=false、Cron isolated runs 先校验投递目标、Telegram same-chat send 视为已送达,这些都能降低“看起来成功、实际没发出去”的误判。

升级后建议检查

openclaw status
openclaw cron list --json
openclaw models auth list
openclaw models list

如有 Cron 任务历史上保存过 payload.model: default/null/空值,可考虑运行:

openclaw doctor --fix

修复清单(逐条中文翻译)

  1. Release/plugin publishing:重试 ClawHub CLI 依赖安装的瞬时失败;当一个 preview cell 偶发失败时,保持 preview 通过的插件仍可发布;发布后校验每个预期 ClawHub 包版本,使维护发布更易恢复,且不易隐藏部分插件发布失败。
  2. OpenAI:支持 openai/chat-latest 作为显式 direct API-key 模型覆盖,用于尝试移动的 ChatGPT Instant API alias,而不改变稳定默认模型。
  3. Cron CLIcron list --jsoncron show --json 输出 computed status,外部工具无需重新实现状态推导。
  4. Channels CLIopenclaw channels list 改为 channel-only;新增 --all 展示 bundled/catalog channels;渲染 installed/configured/enabled 状态;模型鉴权/用量细节迁移到 models/status 命令。
  5. Native commands:原生命令处理器遵守 owner enforcement。
  6. Active Memory:全局 memory toggles 需要 admin scope。
  7. Gateway/sessions/newsessions.reset 时清理 skills 快照缓存,使长期通道会话在技能变化后重建可见技能列表。
  8. Auto-reply:inline skill tool dispatch 通过 before-tool-call 授权钩子。
  9. Tavily:从 active runtime config snapshot 解析 tavily_searchtavily_extract 凭证,避免 SecretRef API key 未解析。
  10. Plugins/install:托管插件 install/rollback/repair/uninstall 的 npm 操作统一使用绝对 POSIX npm lifecycle shell,避免受限 PATH shell 破坏清理。
  11. Agents/context engine:源历史缩减或组装失败时,使缓存上下文视图失效,防止复用 reset 前的旧历史。
  12. Discord/message:将 discord:channel:<id> 正确解析为频道发送,避免误路由成 Discord DM 导致 Unknown Channel。
  13. Agents/compaction:将压缩摘要 reserve tokens 限制在模型输出上限内,避免非法 max_tokens
  14. Commands/BTW/btw 缺少问题时的 usage placeholder 带括号显示,避免通道清洗后不可见。
  15. Cron/doctor:修复 Cron jobs 中错误保存的 payload.modeldefaultnull、空、JSON null),doctor --fix 会移除错误覆盖项,同时保持严格运行时模型校验。
  16. Telegram:DM、群组、原生命令和 callback 授权先遵守 accessGroup:* sender allowlists,再进行 Telegram 数字 sender-ID 检查。
  17. Agent delivery:当 outbound delivery 没有 adapter result 时报告 deliverySucceeded=false,避免空投递路径伪装成成功。
  18. Cron/isolated runs:当 delivery.channel=last 无上一条路由时,在模型执行前失败,避免浪费 tokens。
  19. Gateway/sessions:每日 gateway-agent session rollover 改变 session id 时持久化新 transcript 文件,并保留自定义 transcript 路径。
  20. Doctor/Codex OAuthdoctor --fix 保留可工作的 openai-codex/* PI 路由,并在只有 Codex OAuth 时恢复 GPT-5 路由,避免破坏订阅鉴权。
  21. Telegram:polling watchdog 绑定 getUpdates 活性,无关 outbound Bot API 调用不能掩盖 wedged inbound poller。
  22. Agents/subagents:完成的 session-mode subagent registry 行遵守 agents.defaults.subagents.archiveAfterMinutes,不再硬编码 5 分钟 TTL。
  23. Plugins/channel setup:从非 bundled 外部插件 setup entries 转发 setChannelRuntime,确保延迟外部通道 runtime 初始化器在 startup polling 前安装。
  24. Telegram:inbound Telegram turn 中,同聊天 message tool outbound send 成功时,视为已投递,避免错误 silent reply fallback。
  25. Gateway/tasks:调和陈旧 CLI run-context tasks,并限制通道热重载 deferrals,避免 stale task 永久阻塞通道 reload。
  26. Discord/voice:在 channel capabilities 与 channels status --probe 中审计语音频道权限,包括 auto-join 目标。
  27. Discord/voice:默认 post-speech silence grace 延长到 2.5 秒,新增 voice.captureSilenceGraceMs,改善语音捕获断续问题。
  28. WhatsApp:主动电话号码发送通过 Baileys LID forward mappings 路由,让 LID 联系人收到消息,避免 ghost chats。
  29. WhatsApp:captioned MEDIA: directive 自动回复只发送一次,避免先空媒体后 caption 媒体的重复发送。
  30. Codex/approvals:Codex 审批模式调整 PermissionRequest hook、记住同会话 allow-always、并校验插件审批可用决策。
  31. Model providers:规范化 APNG/PNG 上传,保留 Gemini 3 thought-signature replay,接受旧版 __env__:VAR key,修复 snake_case tool-call transcript sanitization。
  32. Telegram/models/models callback buttons 支持包含点号的 provider id,使 hf.co 模型列表可渲染 inline keyboard。

结论

这是一版“把长期运行边角磨平”的维护更新:重点不是新增大功能,而是让插件发布、Cron、会话 reset、投递确认、Codex OAuth、Telegram/Discord/WhatsApp 通道在复杂场景下更稳、更诚实、更少误判。

https://www.fireself.cn/post/ffVgWp9m

未登录无法操作

评论 0

列表为空,暂无内容
须弥技术

专业PHP开发,运维技术社区

打开 App