OpenClaw 24h 更新快报(2026-04-29):内存调度、渠道集成、WebFetch 修复

内容管家 AI领域评论19字数 1702阅读5分40秒阅读模式
OpenClaw 24h 更新快报(2026-04-29):内存调度、渠道集成、WebFetch 修复

OpenClaw 24h 更新快报(2026-04-28):内存调度、渠道集成、WebFetch 修复

过去 24 小时,OpenClaw 共合并了 30 个 PR,覆盖多个关键模块的缺陷修复与功能增强。本期重点:Discord 消息读写超时问题终于修复,WhatsApp socket 保活机制全面暴露,WebFetch 终于能正确处理非 UTF-8 页面,并新增 Docker GPU 直通支持与首个插件预发布 CI 验证套件。

渠道集成与消息处理

Discord 用户长期以来面临消息读/搜操作无限阻塞的问题,此次由 PR #73521 一次性解决三个根本缺陷:REST 请求缺少 15 秒超时保护、空 SessionKey 导致入站钩子不触发、Discord 动作默认回退到 local 执行模式绕过了网关的 10 秒 action 超时。修复后 read 和 search 统一走 gateway 模式,timeout 清晰可追踪,同时恢复了因 SessionKey 推导失败而被静默跳过的自动回复钩子。该 PR 属于 regression 类修复,附带了 72 行改动和 3 个新测试文件,覆盖原有 218 个测试全部通过。

WhatsApp 端,PR #73580 解决了 Baileys WebSocket 保持连接不稳定的问题。OpenClaw 此前没有传递或暴露 Baileys 的 socket _keepAliveIntervalMs、connectTimeoutMs 和 defaultQueryTimeoutMs 参数,导致每个 socket 都用上游默认值运行,当 Baileys 内部看门狗超过 keepalive 窗口时会发出 408 Request Time-out 并导致连接中断。新版将这些参数全流程打通,从配置 schema 到文档,从连接建立到 QR 登录、重连和直接收件箱路径全部覆盖。

Telegram 方面,PR #73379 为 cron add/edit 命令增加了 Telegram thread ID 支持,使定时任务的渠道分发可以精确投递到特定线程,而非整个聊天上下文。

群组原生斜杠命令的回复逻辑也得到了修正:PR #73672 确保原生命令始终绕过群组 message_tool_only 回复抑制机制,同时保留了渠道验证的授权逻辑,不需要群主权限即可执行。

iOS 和 Android 双端同时新增了经过身份验证的在线状态信标(PR #73330PR #73373),配对节点的 lastSeenAtMs / lastSeenReason 元数据现在可以在重连和后台切换后持久化,node.list 的最后在线时间终于有意义了。

内存与调度系统

memory-core 的 Dreaming Cron 启动协调逻辑存在竞态条件:Gateway 启动时如果 cron 服务尚未就绪,managed Memory Dreaming Promotion 任务会未被注册,但后续也没有心跳流量触发恢复。 PR #73493 在 memory-core 侧增加了有界启动重试循环,最多重试 12 次(间隔 5 秒),直到 cron 可用后才注册托管任务,不再依赖后续心跳触发。

Active Memory 与记忆后端的工具适配也得到了修复:PR #73584 解决了 bundled memory-lancedb 暴露的 recall 表面(memory_recall/memory_store/memory_forget)与 Active Memory 内部只允许 legacy memory_search/memory_get 之间的"插头插座不匹配"问题。现在隐藏的 recall 子代理优先使用 memory_recall,fallback 到 legacy 工具链,兼顾了 bundled LanceDB 和 memory-core 两条路径。

记忆预压缩 flush prompt 不当进入用户 transcript 的问题由 PR #73380 修复,避免了内部系统 prompt 片段被暴露给最终用户。

WebFetch 与网络工具

长期困扰非英语站点的乱码问题终于有了系统解决方案。PR #73513 重写了 readResponseText 的解码策略:在缓冲区满之前先进行字符集检测,顺序为 Content-Type 声明 > BOM > HTML meta 声明扫描(上限 4KB),最后才 fallback 到 UTF-8。修复后 Shift_JIS、Big5、GBK、ISO-8859-1 等编码页面均可正确解析。

PR #73692 修复了 fetch 超时中止时没有记录自身超时行为的问题,使 fetchWithTimeout 和 fetchWithSsrFGuard 在中止时附带操作和清理后的 URL 元数据,方便日志追踪。

沙箱与运行环境

重大功能:PR #73491 为 Docker 沙箱新增了 GPU 直通能力。用户现在可通过 agents.defaults.sandbox.docker.gpus 或 agents.list[].sandbox.docker.gpus 配置字段将 GPU 设备透传给沙箱容器,内部通过 Docker --gpus 参数传递,空字符串被 schema 校验拒绝,不会意外暴露默认行为。这解决了本地 GPU 工作负载(如 Whisper 推理)必须在沙箱外运行的困境。需要 OpenClaw v0.10.5+ 且 Docker 运行于 NVIDIA Container Toolkit 环境。

沙箱默认镜像的 python3 依赖变体容错也得到改进:PR #73362 修复了 Python3 相关 mutation 在默认镜像选择时的 fallback 逻辑。

安全与 CI 改进

CodeQL 安全扫描覆盖大幅增强:PR #73762 为 src/channels 新增了专用的 CodeQL critical-security 配置和上传类别,将安全发现与已有的质量扫描彻底分离,避免敏感发现混入非安全 shard。同期 PR #73742 补充了 channel runtime boundary 的质量扫描 shard,PR #73708 和 PR #73498 分别对 gateway 和 config 目录新增了独立质量 shard,PR #73481 拆分了 macOS 的 CodeQL workflow,PR #73430 为 Android 新增了定时扫描 shard,PR #73447 则增加了插件边界质量扫描。

插件质量保障进入新阶段:PR #73741 将插件预发布验证从 operator skill 清单升级为 first-class CI 套件。新套件涵盖包artifact行为验证、8 个 bundled 插件生命周期 shard(install/inspect/enable/disable/uninstall)、external 插件 SDK 兼容性、channel 运行时依赖(bundled-channel-deps-compat 和 update-channel-switch)、doctor/fix、config round-trip、gateway 引导/状态诊断以及 live-ish 可用性探针,统一通过 plugin-prerelease-suite 聚合检查落地。

Gateway 侧,PR #73445 在检测到 CLAWDBOT_* 或 MOLTBOT_* 遗留环境变量时发出一次性警告,并将明确的遗留环境引导纳入缺失认证错误提示,推动用户迁移到新配置体系。

扩展与工具链

acpx 运行时封装层增加了会话模式断言:PR #73548 使 ensureSession 在遇到不合法的 mode 值(如 user-facing 的 "run"/"session" 词汇)时立即抛出明确的 AcpRuntimeError("ACP_INVALID_RUNTIME_OPTION"),而不是静默 fallback 到 "persistent" 导致后续 SessionResumeRequiredError 难以追踪。此修复专门面向 extensions/acpx 内部,未涉及核心网关生命周期变更。

NVIDIA NIM provider 元数据对齐:PR #73733 修复了 bundled NVIDIA OpenAI 兼容模型的 string-content 兼容性标记,使 subagent 调用发送纯文本 content 时 NIM 能正确处理,同时在 provider catalog 输出中持久化 API-key 标记,并增加了回归测试覆盖。

BlueBubbles DM vs 群组路由在多个层面得到加固:PR #73235 从 session route 推导、reactions、chatGuid fallback 到短消息 ID 处理全部收紧,解决了路由守卫误判导致的投送失败问题。

本次更新基调:缺陷修复密度高,渠道可靠性与 Web 工具链修复尤为突出,插件质量验证正式纳入 CI 体系,GPU 直通为沙箱内本地 AI 推理铺平道路。

常用链接

 
内容管家

发表评论