OpenClaw 小龙虾 2026.5.22 更新日志
一句话总结
2026.5.22 是一次非常大的性能、运行时稳定性、安全边界和多通道修复版本。核心方向是:Gateway 启动和模型列表热路径提速、Meeting Notes 插件体系落地、Plugin SDK 能力面扩展、QA-Lab 发布门禁强化、Codex/OpenAI/子代理链路更稳、消息工具投递证据修复、Windows/macOS 更新安装链路收敛、Memory/Dreaming 与通道投递可靠性增强。
统计概览
| 类别 | 数量/说明 |
|---|---|
| 原始 changelog 行数 | 263 行 |
| Changes 起始行 | 2 |
| Fixes 起始行 | 49 |
| 版本性质 | 大型维护版本,偏性能、安全、运行时稳定性和发布链路 |
| 重点模块 | Gateway、Models、Codex、Subagents、Plugin SDK、QA-Lab、Control UI、Telegram/Slack/Discord/Feishu、Memory、Windows/macOS、OpenAI/Gemini/Anthropic/Ollama |
| 最值得关注 | /models 热路径从约 20 秒降到约 5 ms;Meeting Notes 插件上线;默认子代理上下文收窄;OpenAI 图片改走 native Images API;Codex app-server compaction/超时/消息工具投递修复密集 |
核心亮点
1. Gateway 与模型列表性能大幅优化
- Gateway 复用 process-stable channel catalog reads,避免重复 bundled-channel 边界检查。
- Gateway watch CPU profiles 增加轮转机制,避免 benchmark 运行持续堆积无限 artifacts。
- 启动、配置、模型、通道、setup、secret metadata 读取路径复用不可变 plugin metadata snapshots。
- startup-idle plugin work、Gateway core method handlers 和 embedded ACPX runtime 改为 lazy-load。
- Gateway health / ready signals 不再等待未使用的 handler tree 或 ACPX probe。
- Plugin SDK public-surface alias maps 被缓存,macOS Linuxbrew PATH 探测也跳过无关慢路径。
/models和模型列表调用通过 provider auth-state map 预热,单次成本从约20 s降到约5 ms,约4,100x提升。
2. Meeting Notes 插件体系落地
- 新增 source-only external meeting-notes plugin。
- SDK 新增 source-provider contract,位于 core npm package 外部。
- 支持 auto-start capture config。
- 支持手动导入 transcripts。
- 新增只读
openclaw meeting-notesCLI 访问。 - Discord voice 成为第一个 live source。
3. 文档与配置说明大量补齐
- 补充 Signal
configPath、Telegram wildcard topic defaults、本地时间 backup archive names、Termux home fallback 等配置说明。 - 加强 include-path validation、secret-scanner-safe placeholder、Gemini CLI / Antigravity media、macOS VM auto-login 文档。
- 补充 Codex migration、model-usage portability、thread-bound subagent limits、hook ownership、config-preserving safety guidance。
- 补充 WhatsApp QR/408 recovery、cron output language prompts、Gateway upstream 403 排障、Plugin fallback override。
- 补充 browser CDP diagnostics、limited-tool troubleshooting、cron HEARTBEAT handling、Telegram multi-agent groups、Bitwarden SecretRef、EasyRunner deployments。
- 补充 Gateway exposure runbook、Copilot/Voyage setup、MEDIA directives、secrets plaintext boundaries、Feishu dynamic agents 和中文术语表。
4. Plugin SDK 能力面继续扩展
- 新增 generic channel-message poll sender,使通道插件可以提供 poll delivery,而不依赖特定通道 SDK facade。
- 新增 row-level session workflow helpers。
loadSessionStore被标记为 deprecated,鼓励插件读取和 patch session 行级数据,降低对 legacy whole-store shape 的依赖。- 新增 generic
embeddingProviderscapability contract 和注册 API,使 embeddings 成为 memory adapter 之外的可复用 provider surface。 - external plugin runtime 下,OpenClaw plugin SDK subpaths 解析不再修改 package installs,也不扩大 process-wide module resolution。
5. 子代理默认上下文收窄
- 默认 sub-agent bootstrap context 限定为
AGENTS.md和TOOLS.md。 - 默认不再把 persona、identity、user、memory、heartbeat、setup 文件带入 delegated workers。
- 这能降低隐私泄露面,也减少子代理获得不必要长期记忆和人格文件。
6. QA-Lab 与发布门禁更严格
- OpenTelemetry smoke harness 扩展到 trace、metric、log export 验证。
- 新增 Prometheus 和 observability smoke aliases。
- 加入 curated mock JSONL replay fixtures 和 first-drift reporting,增强 runtime parity audits。
- QA coverage report 会列出 named scenario packs 和 live transport lane membership。
- package integrity checks 前置到 package acceptance lanes 之前,避免私有 QA assets 泄入公开包。
- release-soak artifacts 包含可选 100-turn runtime parity soak。
- 新增 Codex plugin lifecycle、auth-profile fixture coverage、gateway restart recovery、streaming final-integrity、personal-agent failure recovery 等场景。
7. 安全与发布供应链增强
- root npm package 和 OpenClaw-owned npm plugins 使用 generated shrinkwrap。
- suitable plugin tarballs 支持 bundled plugin runtime dependencies。
- lockfile / shrinkwrap 变更需要 review。
- shrinkwrap package versions 保持在 pnpm lock graph 内,防止 published package locks 绕过 pnpm dependency age 和 override policy。
- Docker setup 不再在 setup logs 和 follow-up commands 中打印 Gateway bearer token。
- Node/Linux service 将 token 写入 node-specific env file,避免
OPENCLAW_GATEWAY_TOKEN出现在 systemd unit 文件。
重点模块整理
Gateway / Models / Startup
- Gateway dispatch 阶段会复用兼容的 startup plugin registry,减少 safe plugin dispatch 的重复 registry loading。
- provider auth-state prewarm 延后到 startup readiness 之后,早期 Gateway tool/session requests 不再被 provider auth discovery 阻塞。
- auth-profile 失败后会合并 provider auth-state rewarm,并记录 warm/rewarm 的 event-loop delay。
- 取消的 provider auth-state prewarm 不再继续完整 provider sweep。
- Gateway restart lifecycle runtime 改为 eager-load,避免 in-place upgrade signal handling 在包替换时 deadlock restart imports。
- Gateway service PATH generation 和 doctor audit 会包含 active
openclawcommand bin directory。 - Gateway status 增加 inbound delivery telemetry counters 和 transport-liveness warnings。
Control UI / WebChat / TUI
- chat session picker 新增搜索和 Load More 分页,初始加载保持有界,同时可访问旧会话。
- session search 保持在 selector 内,不再出现重复 standalone search row。
- focused mode header chrome 折叠,隐藏 header 时的 scroll updates 被抑制,减少滚动跳动。
- thinking selector 对已知 non-reasoning models 禁用,避免显示重复 Off。
- 粘贴
data:image/...;base64,...时会转成图片附件,而不是把 payload 塞进输入框。 - logs 面板剥离 ANSI escape sequences,避免彩色控制码直接显示。
- TUI 会镜像 internal-ui message-tool replies 到最终 chat output,message-tool-only agents 不再“无声”。
- TUI streaming watchdog 在同 run 收到 chat event 后立即消失,不再残留“响应时间过长”提示。
Codex / OpenAI / Provider
- Codex API-key image generation 改走 native OpenAI Images API,不再通过 Codex OAuth streaming backend,避免有效 API key 触发 401。
- OpenAI-compatible endpoint 调用会省略空 tool payload fields,严格 vLLM 风格服务可接受无工具 turn。
- OpenAI Responses API 家族遇到 non-visible reasoning-only turns 会重试,而不是当作空失败 turn。
- OpenAI video edit 改发到文档化的
/videos/editsendpoint,并附带 video file,不再提交 MP4 references 到/videos。 - OpenAI/Codex 保留稀疏
openai-codex/gpt-5.5catalog rows 的 image input support。 - OpenAI structured provider error 会保留 code、type 和脱敏 body metadata。
- Responses 和 Chat Completions reasoning_tokens usage metadata 被保留,并避免 aggregate output token 双计。
- Anthropic 1M context 迁移到 GA-capable Claude 4.x models,忽略退休的
context-1m-2025-08-07beta。 - Google/Gemini freshness-bound search 会剥离 fractional seconds,避免 Gemini 拒绝时间范围过滤。
- Gemini 3 cron 的
thinkingDefault: "low"会被保留,即使陈旧 catalog metadata 显示reasoning:false。 - Microsoft Foundry 的 DeepSeek V4 Pro / Flash 走 Foundry Responses API,旧版 DeepSeek 模型保持原路径。
- OpenCode Go 会剥离 Kimi 不支持的 reasoning replay fields,避免重复
kimi-k2.6turn schema validation 失败。
Agents / Subagents / Sessions
- 默认子代理 bootstrap context 收窄,减少不必要人格和记忆文件进入 worker。
- tool-only child progress 会出现在 timeout summaries,不再显示“无输出”。
- native sub-agent completion handoff 简化:child 把最新可见 assistant result 报给 requester,不使用 message。
- required child-run completion 若只报告 progress、没有 final deliverable 或 requester delivery 失败,会标记 blocked。
- blocked child-run completion 会作为错误暴露,而不是成功子代理完成。
- explicit subagent allowlist targets 必须是 configured agents,stale deleted-agent ids 会被省略并拒绝。
- stale cached agent-session entries 与 store updates 竞争时,Gateway 保留新鲜 session overrides 和 metadata。
- session write-lock acquisition 阶段执行 max-hold policy,长时间持有的锁可在 stale-lock window 前被回收。
/newrotation 时会暴露 previous-transcript archive failures,避免 rename 失败被静默隐藏。- Gateway/ACP 会在 parent session reset/delete 时关闭通过
sessions_spawn派生的 child ACP sessions,避免 orphan 进程累积耗尽内存。
Cron / Heartbeat / Scheduled Runs
- Telegram forum-topic delivery target 由 Telegram plugin 解析,支持
:topic:和:topicId。 cron.retry.retryOn: ["network"]会覆盖常见网络错误码,如EAI_AGAIN、EHOSTUNREACH、ENETUNREACH。- single-owner
session.dmScope=main的 direct-message exec 和 cron event wake 会回到 agent main session,避免异步完成结果流入孤立 DM 队列。 - group/channel heartbeat runs 遵循 message_tool visible-reply policy 和 model-specific Codex runtime config,失败的内部工具输出保持私有。
- Codex heartbeat response tool schemas 可持久复用,但不会暴露 turn policy 禁用的 dynamic tools。
Messaging / Channels
- WebChat 会摘要 internal message-tool source replies,tool cards 不再重复可见回复正文。
- Telegram 保留显式
:topic:conversation suffix。 - Telegram local path / filePath 和 structured attachment media 会正常通过 sendMessage actions 发送,不再降级为纯文本。
- Telegram fenced code block languages 在 Markdown 渲染后被保留。
- Telegram isolated ingress missing-harness failure 会进入 dead-letter,避免毒化 spooled update 阻塞同 lane 后续消息。
- Telegram default isolated polling path 支持
channels.telegram.pollingStallThresholdMs,沉默 worker 会重启。 - Telegram 按 chat/message identity 去重 replayed dispatches,避免 isolated-ingress replay 触发重复模型调度。
- Slack 在 monitor、slash-command、fallback 和 direct reply 路径中会先抑制 reasoning payload,避免泄露模型推理内容。
- Slack native plugin approval prompts 会投递到 originating app conversation thread。
- Discord component workflow 的
agentComponents.ttlMscallback registry lifetime 可配置,最长 24 小时。 - Discord recovery 与
/stopabort ownership 保持在 source dispatch lane,避免 bound ACP turns 泄漏。 - Matrix 显式配置的双人房间优先走 room route,避免 stale
m.direct或 strict two-member DM fallback 绕过 mention gating。 - Channels 对 bare abort messages,如
stop、abort、wait,在 inbound debounce 中立即作为控制命令处理。
Memory / Dreaming / QMD
- LanceDB 通过 active memory provider bridge 暴露 public memory artifacts,memory-wiki 可导入 durable memory files、daily notes、dream reports 和 event logs。
- Memory doctor 会把缺失或不可用 QMD workspace directories 报为 workspace failures,而不是泛化为 binary failures。
- configured extra memory paths 中的
~会先展开,避免 home-relative folders 被当成 workspace-relative。 dreaming.enabled=false时,memory search 不再因 recall tracking 写入 dreaming side-effect artifacts。- Memory-core/dreaming 复用 stable narrative subagent session keys,并保持 per-run idempotency 和有界 cleanup,避免 stale
dreaming-narrative-*sessions 累积。
Browser / Proxy / Media / PDF
- managed proxy 会绕过本地 managed Chrome CDP readiness 和 DevTools WebSocket endpoints,避免 operator proxy 阻断 loopback egress。
- local embedding origins 对 Ollama 也会绕过 managed proxy,同时保留未配置 target 的 SSRF guardrails。
- Browser/CDP 增加 WSL2 portproxy self-loop hint,当 Chrome DevTools endpoints 连接成功但 HTTP reply 为空时给出明确排障方向。
- PDF tool 对远程 PDF body read 增加 120 秒 idle timeout,避免卡死 session。
- image、music、video completion delivery 修复 task ownership 重复或丢失问题。
- media/audio 遇到空 structured
sherpa-onnxtranscript 时跳过,不再把 raw JSON payload 当作 spoken text。 - media provider credentials、custom provider API keys 会影响 media/image/video/music/PDF tools 是否可用。
- OpenAI video 支持本地或自托管 video endpoints 的 provider request private-network opt-in。
CLI / Update / Installer / Windows / macOS
- Windows check stage 通过 managed child runner 与显式
cmd.exewrapping 运行,避免 Node 24 subprocess deprecation warnings。 - Windows npm release / prepublish / postpublish 通过 Windows-safe npm command shims。
- Windows installer 在 WSL2 UNC paths 启动时从 Windows-local directory 运行 npm 和 Corepack shims。
- Git-backed Windows update 失败时会回滚到 previous checkout。
- Windows installer 会持久化 user-local portable Git,并启用 repo-pinned pnpm。
- Windows installer 在无 Node、winget、Chocolatey、Scoop 的裸机上会 bootstrap user-local portable Node.js。
- portable Node.js 先用 native tar 解压,再回退到 .NET zip extraction,规避 PowerShell 5.1 archive 和路径长度问题。
- macOS update 会沿 process ancestry 找 inherited Gateway runtime PID,避免 in-band updater 子进程误杀拥有自己的 LaunchAgent-supervised Gateway。
- LaunchAgent reload 会等待 bootout 完成,bootstrap race 时回退 kickstart;并把 concurrent bootstrap 视作成功,减少错误重启失败。
- managed Gateway service environment 会在 package cutover 中保留。
- update handoff helpers 从稳定已有目录启动,可容忍 cwd/package roots 被删除。
openclaw update --jsonstdout 不再混入 managed Gateway service stop/restart 状态行,方便自动化解析 JSON。
Security / Diagnostics
- Diffs viewer toolbar icons 改用封闭 icon-name map 渲染,移除 toolbar icon XSS sink。
- browser sandbox bind sources 增加校验。
- legacy plugin cleanup paths 被约束。
- channel read target allowlists 被强制执行。
- setup logs 不再打印 Gateway bearer token。
- OpenTelemetry log bodies 需要显式 content capture;agent-session scoped keys 从 OpenTelemetry 和 Prometheus labels 中 scrub。
- denied exec failure logs 省略 raw command text 和 env values,只保留安全 correlation metadata。
- workspace provider plugins 在 setup-mode discovery 中 fail closed,除非明确 trusted,避免未信任 workspace plugin code 被执行。
- diagnostics 对 cleanup timeout detail logs 加边界,async diagnostic bursts 超过 queue cap 时输出 drop summaries。
- OpenTelemetry exporter promise rejections 在 collector shutdown 时被处理,不再导致 Gateway 崩溃。
Fixes 重点摘录
运行卡死与超时恢复
- Gateway lifecycle error cleanup 在后续非终止事件中保留,provider timeout 可持久化 failed session state,不再留下 stuck running。
- Gateway chat 会广播 agent-start 后返回的 agent-run error payloads,使 ACP/WebChat 收到 terminal idle-timeout errors。
- Codex app-server 在 server-side compaction timeout 时会重启 native app-server 并重试一次。
- embedded auto-compaction session write-lock watchdog 被限定到 compaction timeout,而不是 full run timeout。
- Codex app-server missing turn completion after observed execution 被标记 replay-unsafe 并释放 session。
- Codex app-server 为 visible message dynamic tool sends 增加更长 timeout budget。
- Codex app-server 新增 post-tool raw assistant completion idle timeout config。
- PDF 远程读取 120 秒 idle timeout 防止 wedged session。
- deep Docker audit probes 有边界,
openclaw status --deep会报告慢 container checks,而不是无限挂起。
投递可见性与最终回复
- 成功的 generated media message-tool delivery 不再被后续 false failure message 覆盖。
- same-source message-tool sends 会镜像进 session transcripts,后续上下文可看到已投递回复。
- TUI/agents 会显示 message-tool-only agents 的最终输出。
- WebChat tool cards 不再重复 visible reply body。
- Channels message tool 会在 in-agent channel selection 时解析 configured external channel plugins。
- Feishu/Slack/Telegram/cron heartbeat 等通道会更好地区分可见回复、失败私有输出和 delivery evidence。
安装、升级和发布链路
- managed npm plugin
openclawpeer links 会在 post-core convergence 阶段修复,错误 target 会在 restart 前被拒绝。 - package update 可 pre-pack GitHub/git targets,恢复
openclaw update --tag main。 - junction-backed source checkout 会被识别为 git install。
- Docker first-run named volumes 预创建 workspace 和 auth-profile config mount points,并设置 node ownership。
- Docker runtime images 会 prune 未 opt-in plugin 的 source workspaces 和 dependency closures。
Provider 与模型兼容
- custom provider auth hooks 和 transport selection 支持 per-model
api和baseUrloverrides。 - Ollama Cloud
OLLAMA_API_KEYmarker 会解析到真实 discovery key。 - Docker/OrbStack host aliases 被视为 local Ollama endpoints。
- provider-owned CLI aliases 会通过 harness selection,不再被提前拒绝。
- moonshot/kimi、Gemini、Anthropic、OpenAI、Copilot、Foundry、Ollama 等多个 provider 的 replay、reasoning、auth、tool-call 和 catalog 兼容性继续修复。
原文结构索引
Changes:Gateway 性能、Meeting Notes、文档、Packaging、Media understanding、Subagents、Plugin SDK、QA-Lab、Models/perf、Release/security 等。Fixes:WebChat、Gateway、Agents/subagents、Telegram、Browser/proxy、Ollama、OpenAI、Windows、Sessions、Models、Doctor、Channels、Foundry、Status、Codex app-server、Memory、CLI/update、Slack、Discord、Matrix、PDF、Diagnostics、Installer 等。
https://www.fireself.cn/post/4rPmncDc