🦞OpenClaw 2026.3.31 更新

🦞OpenClaw 2026.3.31 更新

本次更新速览

🇨🇳 内置 QQ 机器人 — 支持私聊、群聊、频道聊天及媒体消息

📹 LINE 现已支持发送图片、视频和音频

🧵 真实后台任务流:可列出、查看、取消任务

🇯🇵 中日韩(CJK)体验优化:上下文、记忆与语音合成(TTS)增强

OpenClaw 下一版本内容已提前曝光 🦞

详细更新日志

重大变更

  • 节点 / 执行:移除重复节点。从 CLI 与代理节点工具统一调用 Shell 包装器,使节点 Shell 执行始终通过 exec host=node 进行,在节点调用时保留节点专属能力,同时保留独立的媒体 / 位置 / 通知动作。

  • 插件 SDK:废弃旧版提供商兼容子路径、旧的捆绑式提供商配置及 channel-runtime 兼容垫片,输出迁移警告;保留当前文档化的 openclaw/plugin-sdk/* 入口点及本地 api.ts/runtime-api.ts 集合文件,作为未来大版本移除前的兼容路径。

  • 技能安装 / 插件安装:内置危险代码关键检测项与安装时扫描失败项默认改为拒绝执行。此前可正常安装的插件、网关托管技能依赖安装,现在需显式添加危险覆盖参数(如 --dangerously-force-unsafe-install)才能继续。

  • 网关 / 认证:trusted-proxy 现在拒绝混合式共享令牌配置;本地直连回退方案要求使用配置令牌,而非隐式认证同主机调用方。感谢 @zhangning-agent、@jacobtomlinson、@vincentkoc。

  • 网关 / 节点命令:节点命令在节点配对通过审批前保持禁用,仅完成设备配对不再足以暴露声明的节点命令。(#57909)感谢 @jacobtomlinson。

  • 网关 / 节点事件:节点发起的运行现在限制在更小的可信范围,此前依赖更广泛主机 / 会话工具权限的通知驱动或节点触发流程可能需要调整。(#57691)感谢 @jacobtomlinson

新增功能

  • ACP / 插件:新增默认关闭的 ACPX 插件工具 MCP 桥接配置,明确信任边界,加固内置桥接打包与日志路径,确保全局安装与标准输入输出 MCP 会话稳定运行。(#56867)感谢 @joe2643。

  • 代理 / 大语言模型:为嵌入式执行器请求添加可配置的空闲流超时,使停滞的模型流能正常中止,而非一直挂起到全局运行超时触发。(#55072)感谢 @liuy。

  • 代理 / MCP:以提供商安全命名格式(serverName__toolName)实例化捆绑 MCP 工具,支持可选流式 HTTP 传输选择与单服务器连接超时;保留中止 / 错误轮次中的真实工具结果,除非显式截断丢弃。(#49505)感谢 @ziomancer。

  • Android / 通知:新增通知转发控制,支持包名过滤、安静时段、频率限制,以及更安全的转发通知事件选择器行为。(#40175)感谢 @nimbleenigma。

  • 后台任务:将任务改造为真正的共享后台运行控制平面,不再仅限 ACP 记账。统一 ACP、子代理、定时任务与后台 CLI 执行至同一 SQLite 账本,通过执行器接口路由分离式生命周期更新,新增审计 / 维护 / 状态可见性,收紧自动清理与丢失任务恢复,优化内部状态 / 工具界面的任务感知,明确心跳 / 主会话自动化与分离式定时运行的边界。感谢 @mbelinky、@vincentkoc。

  • 后台任务:新增首个线性任务流控制界面 openclaw flows list|show|cancel,将手动多任务流与单任务自动同步流分离,为明显孤立或损坏的流 / 任务关联提供诊断修复提示。感谢 @mbelinky、@vincentkoc。

  • 任务:新增基于 SQLite 的轻量任务流注册表与任务–流关联基础结构,使编排任务可拥有一级父记录,且不改变现有任务分发行为。感谢 @mbelinky、@vincentkoc。

  • 任务:在单任务流中持久化阻塞状态,重试时同一任务流可正常重新打开,使阻塞的分离式任务可携带父级原因并继续执行,无需拆分为新任务。感谢 @mbelinky、@vincentkoc。

  • 任务:将单任务 ACP 与子代理更新路由至父任务流所有者上下文,使分离式任务可通过预期父线程 / 会话返回,而非仅以原始子任务形式呈现。感谢 @mbelinky、@vincentkoc。

  • 频道 / QQ 机器人:新增 QQ 机器人作为捆绑频道插件,支持多账号配置、SecretRef 凭证、斜杠命令、提醒及媒体收发。(#52986)感谢 @sliverp。

  • 差异对比:跳过未使用的查看器与文件 SSR 预加载,使仅查看差异、仅运行文件的场景减少渲染开销,同时保持模式输出对齐。(#57909)感谢 @gumadeiras。

  • LINE / 外发媒体:在 LINE 专属发送路径新增图片、视频、音频外发支持,为视频提供显式预览与跟踪处理,通用媒体发送仍沿用现有仅图片路径。(#45826)感谢 @masatohoshino。

  • Matrix / 历史记录:通过 channels.matrix.historyLimit 为群组触发器添加可选房间历史上下文,支持单代理水印与重试安全快照,避免失败重试时读取到更新的房间消息。(#57022)感谢 @chain710。

  • Matrix / 网络:新增显式 channels.matrix.proxy 配置,支持通过 HTTP (S) 代理路由 Matrix 流量,包含账号级覆盖与匹配探测 / 运行时行为。(#56931)感谢 @patrick-yingxi-pan。

  • Matrix / 流式回复:新增草案流式功能,使部分 Matrix 回复可原地更新同一条消息,而非逐段发送新消息。(#56387)感谢 @jrusz。

  • Matrix / 会话线程:为单聊添加 threadReplies 覆盖,确保线程会话隔离与触发消息生效的房间 / 单聊线程策略一致。(#57995)感谢 @teconomix。

  • MCP:为 mcp.servers URL 配置新增远程 HTTP/SSE 服务器支持,包含认证头与更安全的 MCP 凭证配置脱敏。(#50396)感谢 @dhananjai1729。

  • 内存 / QMD:新增单代理 memorySearch.qmd.extraCollections,使代理可启用跨代理会话搜索,而无需将所有会话集合扁平化为单一共享 QMD 命名空间。感谢 @vincentkoc。

  • Microsoft Teams / 成员信息:新增基于 Graph 的成员信息动作,使 Teams 自动化与工具可直接从 Microsoft Graph 获取频道成员详情。(#57528)感谢 @sudie-codes。

  • Nostr / 入站私信:在配对或发送方授权前验证入站事件签名,防止伪造私信事件创建配对请求或触发回复。感谢 @smaeljaish771、@vincentkoc。

  • OpenAI / 回复:在 HTTP 与 WebSocket 传输中转发配置的 text.verbosity,并在 /status 中展示,保持单代理详细度优先级与运行时行为一致。(#47106)感谢 @merc1305、@vincentkoc。

  • 树莓派 / Codex:为嵌入式 Pi 运行添加原生 Codex 网页搜索支持,包含配置 / 文档 / 向导覆盖,并在原生搜索启用时抑制托管工具。(#46579)感谢 @Evizero。

  • Slack / 执行审批:新增原生 Slack 审批路由与审批人授权,使执行审批提示可留在 Slack 中,无需回退到 Web UI 或终端。感谢 @vincentkoc。

  • TTS:新增结构化提供商诊断与重试 fallback 分析。(#57954)感谢 @joshavant。

  • WhatsApp / 消息反应:代理现在可对 incoming WhatsApp 消息发送 emoji 反应,支持更自然的对话交互(如用 ❤️ 回应图片而非文字回复)。感谢 @mcaxtr。

  • 代理 / BTW:强制 /btw 侧问题禁用提供商推理,修复 Anthropic 自适应思考会话因 “未生成 BTW 响应” 而失败的问题。修复 #55376。感谢 @Catteres、@vincentkoc。

  • CLI / 初始化引导:拒绝发现的端点后,将远程网关 URL 提示重置为安全回环默认值,避免保留已拒绝的远程 URL。(#57828)

  • 代理 / 执行默认值:在无内联指令与会话覆盖时,遵循单代理 tools.exec 默认配置,使配置的执行主机、安全、询问与节点设置生效。(#57689)

  • 沙箱 / 网络:通过共享沙箱策略清洗 SSH 子进程环境变量,将应用商店归档下载、Ollama 发现、认证与拉取请求路由至受保护的获取路径,确保沙箱执行与远程请求遵循仓库信任边界。(#57848、#57850)

缺陷修复

  • Slack:修复草案定稿编辑模糊失败时重试导致的重复回复,按可读名称记录白名单用户 / 频道,而非原始 ID。

  • 代理 / OpenAI 回复:在 WebSocket / 回复路径标准化原始捆绑 MCP 工具 schema,避免纯对象、类对象与顶层联合 MCP 工具在 OpenAI 注册时被拒绝。(#58299)感谢 @yelog。

  • ACP / 安全:将 ACP 危险工具名称覆盖替换为语义化审批类别,仅窄范围只读查询 / 搜索可自动审批,间接可执行与控制平面工具始终需要显式提示审批。感谢 @vincentkoc。

  • ACP / 会话生成:注册 ACP 子运行以进行完成跟踪与生命周期清理,注册失败清理改为尽力而为,避免调用方误以为已启动的 ACP 轮次已完全中止。(#40885)感谢 @xaeon2026、@vincentkoc。

  • ACP / 任务:在因确定性写入或授权阻塞正常退出时,将 ACP 运行标记为阻塞,并通过后续操作唤醒父会话,而非错误上报成功。

  • ACPX / 运行时:从扩展包元数据推导捆绑 ACPX 预期版本,而非硬编码独立字面量,避免版本升级后插件本地 ACPX 安装与健康检查不一致。(#49089)感谢 @jiejiesks、@vincentkoc。

  • 代理 / Anthropic 故障转移:将包含 “处理响应时发生意外错误” 的 Anthropic api_error 视为瞬时错误,启用重试 / 降级而非抛出终端失败。(#57441)感谢 @zijiess、@vincentkoc。

  • 代理 / 压缩:防止延迟压缩重试完成信号重复解析已完成压缩任务,避免中断或超时压缩出现虚假二次完成竞争。(#57796)感谢 @joshavant。

  • 代理 / 禁用提供商:使禁用提供商从默认模型选择与嵌入式提供商降级中移除;显式锁定的禁用提供商将抛出清晰配置错误,而非静默接管流量。(#57735)感谢 @rileybrown-dev、@vincentkoc。

  • 代理 / OAuth 输出:强制执行主机 OAuth 输出读取器通过网关文件系统策略,避免提供商认证写入超出当前沙箱工作区导致嵌入式网关崩溃。(#58249)感谢 @joshavant。

  • 代理 / 系统提示:修复嵌入式运行时系统提示中 agent.name 插值问题,使提供商 / 模型降级文本正确反映启动后生效的运行时选择。(#57625)感谢 @StllrSvr、@vincentkoc。

  • Android / 设备信息:从包管理器读取应用版本元数据,而非隐藏 API,修复 Android 15+ 初始化与设备信息编译失败或显示占位值问题。(#58126)感谢 @L3eR0y。

  • Android / 配对:修复重复 QR 配对时向 gateway-service.conf 追加重复推送接收器条目问题,限制推送注册至当前成功配对,确保重配对与令牌轮换后推送送达正常。(#58256)感谢 @surrealroad。

  • 应用安装冒烟测试:锁定最新版本查询为 latest,缓存首次稳定安装版本,放宽预发布包断言,使 Parallels 冒烟测试可验证稳定版到主干版升级。(#58177)感谢 @vincentkoc。

  • 认证 / 配置文件:在运行进程内存中保留最后一次成功加载的配置,并在成功写入 / 重载时刷新快照,避免热路径在监视器切换间重复解析 openclaw.json。

  • 配置 / SecretRef + 控制界面:加固 SecretRef 脱敏往返恢复,阻止不安全原始回退(原始不可用时强制表单模式),在配置写入 RPC 持久化前预检提交配置中的 SecretRef。(#58044)感谢 @joshavant。

  • 配置 / Telegram:加载时将已移除的 channels.telegram.groupMentionsOnly 迁移至 channels.telegram.groups["*"].requireMention,避免旧配置启动崩溃。(#55336)感谢 @jameslcowan。

  • 配置 / 更新:阻止 openclaw doctor 回写持久化插件注入的频道默认值,避免 openclaw update 生成后续破坏服务刷新校验的配置键。(#56834)感谢 @openperf。

  • 控制界面 / 代理:首次打开文件面板时自动加载代理工作区文件,从生效运行时代理元数据填充概览模型 / 工作区 / 降级项,避免默认模型显示为 “未设置”。(#56637)感谢 @dxsx84。

  • 控制界面 / 斜杠命令:使 /steer 与 /redirect 可从聊天命令面板执行,为运行中 /steer 显示可见 pending 状态,正确跟踪重定向运行,并在命令菜单保留单一标准 /steer 入口。(#54625)感谢 @fuller-stack-dev。

  • 定时任务 / 公告模式:保留公告模式所有可发送文本 payload,而非仅保留最后一段,确保多行定时报告完整发送至 Telegram 论坛主题。

  • 定时任务 / 隔离会话:重试重启时保留完整活跃会话提供商、模型与认证配置,避免带模型覆盖的定时任务在运行中切换模型时失败或循环。(#57972)感谢 @issaba1。

  • 差异对比 / 配置:保留 diffsPluginConfigSchema.safeParse() 的 schema 式插件配置解析,确保直接调用方获取默认值与安全配置,而非扁平化工具默认值。(#57904)感谢 @gumadeiras。

  • 差异对比:渲染与查看器水化时语言提示无效则回退至纯文本,避免错误或过期语言值破坏差异查看器。(#57902)感谢 @gumadeiras。

  • Discord / 语音:转录前对语音入站强制执行相同服务器频道与成员白名单校验,避免已加入语音频道接收策略外用户语音。感谢 @cyjhhh、@vincentkoc。

  • Docker / 配置:本地镜像构建强制使用 BuildKit,修复主机默认使用旧版构建器时 ./docker-setup.sh 在 RUN --mount=... 步骤失败问题。(#56681)感谢 @zhanghui-china。

以及其他30+项修复

OpenClaw的会话隔离策略 2026-04-02

评论区