3.28 给龙虾穿上了新甲。壳硬了,钳子利了,摆出一副谁都别惹我的架势。
然后现实给它上了一课。
Cisco 的 AI 安全团队拆开了一个热门社区技能,发现它本质上就是恶意软件——悄悄把数据往攻击者的服务器上搬,用提示词注入绕过安全限制。安全研究人员扫了 31,000 个技能,26% 至少有一个漏洞。ClawHavoc 攻击往 ClawHub 里塞了 800 多个恶意技能。龙虾是有新壳了,但海里的威胁也升级了。
三天,三个版本。3.31、4.1、4.2。这不是功能冲刺——是一场围城战。Breaking Changes、安全封锁、基础设施重写,目标只有一个:让 OpenClaw 更难被攻破,更容易被掌控,对自己在干什么更坦诚。
老规矩加倍强调:生产环境的龙虾,升级前先读完再动手。
装插件?先过安检
最容易搞砸你工作流的改动,恰好也是最有必要的。
以前装技能,不管里面藏了什么——危险代码、恶意依赖、提示词注入——安装都能顺利通过,你根本不会察觉,直到出事。
现在不行了。OpenClaw 在每次插件安装前都会跑一遍内置的危险代码扫描。一旦发现严重问题,安装直接失败。唯一的绕过方式是在命令里显式加上 \--dangerously-force-unsafe-install\——这个名字就是故意让你打字的时候犹豫一下。
背景是什么?技能生态有信任危机。Cisco 发现一个热门社区技能在用静默的 curl 命令往外搬用户数据。ClawHub 当时收录了 2,857 个技能,其中 341 个被确认为恶意——分布在多个攻击活动里。后来这个数字涨到了 824 以上。安装关卡来得晚,但确实该来。
如果你维护的技能依赖了有已知漏洞的包,或者通过网关拉取技能依赖,升级后很可能装不上。解决办法要么是清理依赖树,要么就做个明确的决定:强制安装。
xAI 和 Firecrawl:配置路径换了
用了 xAI 搜索或者 Firecrawl 抓网页的用户注意:你的配置路径现在是无效的。
xAI 搜索:\tools.web.x_search.<em class="italic text-slate-200">\ 下面的所有配置,全部迁移到 \plugins.entries.xai.config.xSearch.</em>\。认证统一走 \plugins.entries.xai.config.webSearch.apiKey\ / \XAI_API_KEY\。
Firecrawl:旧的 \tools.web.fetch.firecrawl.<em class="italic text-slate-200">\ 路径作废。新地址是 \plugins.entries.firecrawl.config.webFetch.</em>\。web_fetch 的回退逻辑现在走的是规范的 fetch-provider 边界,不再是 Firecrawl 专用的核心分支。
好消息:跑一次 \openclaw doctor --fix\ 就能自动完成迁移。但如果你有脚本、自动化流程或 CI 管线直接引用旧路径,那些得手动改。
这是更大架构调整的一部分:provider 专属的配置正在从整块的核心 config 里搬出来,进入插件自治的命名空间。边界更清晰,归属更明确。
后台任务长了个大脑
OpenClaw 的后台任务系统被彻底重建了。
以前,ACP 任务、定时任务、子智能体任务各走各的路——有的有自己的追踪机制,有的干脆没有。调试一个卡住的任务靠猜。取消一个任务靠祈祷。
现在所有任务都走统一的 SQLite 账本。ACP、子智能体、定时任务、后台 CLI 执行全部汇入同一个系统,有完整的生命周期追踪、审计日志和状态可视化。
对用户来说意味着什么:
- •聊天窗口里输入 \
/tasks\,实时查看当前会话的所有后台任务——状态、最近活动、回退计数,一目了然。 - •任务被阻塞时会告诉你原因。 不用再猜了。
- •优雅取消。 取消任务时,系统会等活跃的工作完成再真正停下来,不是一刀切。
- •丢失任务恢复。 系统能检测到孤儿任务,并给出 doctor 恢复建议。
- •流控制。 \
openclaw flows list|show|cancel\给你一个线性的多任务工作流控制面板。
跑复杂自动化的用户——链式 agent、定时作业、后台处理——从此调试不再靠玄学,而是有据可查。
命令执行:锁又紧了一圈
这是本轮安全加固最密集的区域,几个改动直接影响命令怎么跑、谁能跑。
节点配对不再等于命令权限。 以前设备完成配对就自动获得节点命令执行权。现在配对必须被明确批准后,节点命令才会启用。这堵住了一个通过滥用配对流程来提权的漏洞。
敏感环境变量被从 shell 执行环境中剥离。 Python 包索引 URL(\PIP_INDEX_URL\)、Docker 端点、TLS 证书路径、编译器路径——这些现在全部禁止通过请求作用域传入执行环境。这关掉了一个有据可查的供应链攻击面:攻击者以前可以通过注入环境变量,把包拉取请求重定向到恶意源。
\tools.exec.host=auto\ 现在是纯路由标志。 不再隐含"有沙箱就用沙箱"的逻辑。沙箱不存在时,显式指定沙箱会直接失败,而不是悄悄降级到无沙箱执行。不再有静默降级。
各平台更新
智能体现在可以用 emoji 回应消息了——给照片一个 ❤️,给确认一个 👍。不用每次都打字说"照片不错!"了。
Telegram
群组里的审批请求现在会留在原来的话题里,不再跑到根聊天。新增错误冷却控制(\errorPolicy\ 和 \errorCooldownMs\),同一个瞬态错误不会反复刷屏。
Matrix
流式回复现在会在同一条消息里原地更新,不再每个数据块发一条新消息。同时加入了消息历史上下文,智能体能理解触发对话时的前因后果。
Slack
命令执行的审批请求现在可以完全在 Slack 内完成,不用跳到网页端或终端。
Android
接入了 Google Assistant App Actions,可以从语音助手直接触发 OpenClaw,提示词直接传入聊天界面。
macOS
Voice Wake 功能让你用语音唤醒词激活对话模式,解放双手。
LINE
正式支持捆绑插件,补齐了图片、视频和音频的出站发送能力。全局 npm 安装下的运行时契约解析也修好了。
QQ Bot
作为完整的捆绑渠道插件上线:多账号配置、斜杠命令、提醒、富媒体支持,覆盖私聊、群组 @消息和频道。
网关认证:不再默认信任
自托管用户注意。
网关的 \trusted-proxy\ 模式现在拒绝同时使用共享令牌的混合配置。本地直连回退不再隐式放行同一主机的调用者——你必须提供明确配置的令牌。
如果你的环境以前靠"同一台机器就自动信任"运行,升级后会挂。补上显式的认证配置。
共享认证的速率限制现在在 WebSocket 握手阶段也保持激活,Origin 头不匹配的 trusted-proxy HTTP 请求会被直接拒绝。
---
3.28 给龙虾上了甲。3.31 到 4.2 教它用钳子打架。
插件安装有了门卫。后台任务有了大脑。配置路径有了清晰的边界。执行环境被剥离了攻击面。网关不再假设来者善意,而是开口要凭证。
三个版本。三天。安全圈收紧了,圈里的一切变得更难撬动。
龙虾亮出了钳子。没有许可,别伸手。