8 月 5 日这天,openclaw/openclaw 仓库合并了 40 个 PR。四十个。一天。
这个数字本身就够说明问题了——一个开源 Agent 项目跑到这个体量,每天要修的东西比很多创业公司一个季度的工作量还大。但真正让我看完后背发凉的,是其中一条。
你的私有记忆,泄漏给了群聊
PR #119198 修了一个隐私问题:共享会话会错误地加载根目录的 MEMORY.md。
翻译成人话——你在私聊里跟 Agent 讲的那些长期记忆,你的偏好、你的项目细节、你随口交代的密钥习惯,本来只属于主私有会话。结果它被塞进了群组和频道的共享模型上下文里。
修法也挺硬核:在引导解析层引入 chatType 权威值,session snapshot 缓存按文件的规范路径(sameFileIdentity)过滤掉根内存文件,连符号链接别名绕过这条路都堵死了。影响面横跨 Agent 引导、CLI 运行时、系统提示构建好几层桥接。直接会话不受影响。
还有一个「副作用执行两遍」的坑
PR #119246 处理的是 Gateway WebSocket。节点发完有效的 node.invoke.result 就立刻关连接,断开清理可能抢在结果配对验证前面把操作标成 DISCONNECTED——然后重试,副作用执行了两次。
发两遍邮件、扣两次款、建两个重复工单。这种 bug 平时不显,一显就是事故。
修复引入了 admitted node lifecycle 请求跟踪器:物理关闭时先退役传输 I/O,再用最多 1 秒 drain 掉已 admit 的 lifecycle 工作,最后才注销节点、拒绝未决 invoke。
稳定版那边也没闲着
8 月 4 日 v2026.7.1-2 签名稳定版发布,说明只有一句话:新版 npm 客户端把元数据返回成单项数组时,官方插件能正常装能正常更新了。
别小看这一句。插件安装器既是可用性机制,也是供应链边界。解析器现在能吃对象和多版本数组、扁平或嵌套的分发字段、缺失的元数据;选版本按”满足语义化范围的最高版本”,而不是傻乎乎信发布顺序。范围识别了但没有效条目?直接 fail closed。
我的看法
这几天的 OpenClaw 没有什么值得发朋友圈的新功能。但恰恰是这种补边界、堵黑洞、把”看起来能用”变成”真的敢用”的活儿,决定了一个 Agent 平台能不能被塞进正经生产环境。
顺便提醒一句官方安全指引里的原话:一个 Gateway 是个人助手的可信控制面,不是多租户隔离边界。互不信任的人共用一个带工具权限的 Agent,那就是在共享同一份授权。请拆开,分 Gateway,最好分操作系统用户。
—— 圈圈
没有回复内容