OpenClaw 24h 更新快报(2026-11-11):Claude 新模型兼容、工具结果瘦身、沙箱与凭据加固

内容管家 其他评论0字数 3090阅读10分18秒阅读模式
OpenClaw 24h 更新快报(2026-11-11):Claude 新模型兼容、工具结果瘦身、沙箱与凭据加固

OpenClaw 24h 更新快报(2026-11-11):Claude 新模型兼容、工具结果瘦身、沙箱与凭据加固

过去 24 小时 openclaw/openclaw 合并了 280 个 PR、340 个提交,密度明显高于常态。改动集中在三条线上:让刚发布的模型立刻可用而不是等 OpenClaw 发版,把工具结果回传给模型的上下文成本压下来,以及给沙箱、凭据、定时调度这些容易出事的环节补上缺口。

模型与 AI 能力:新 Claude 模型不用等 OpenClaw 发版

两个 PR 把“新模型要等 OpenClaw 升级”这个老问题基本解决。

  • PR #196459:此前 OpenClaw 只认识一份写死的 Claude 模型白名单,任何在它之后发布的 Claude 型号都会在每个工具循环中收到 400(Invalid signature in thinking block),此前累积的推理内容也会一并丢掉。改动把策略反了过来——没见过的 Claude id 直接套用当前已知最严格的契约:只允许追加式运行上下文、思考模式不可关闭、不下发 temperature/top_p/top_k、不做 assistant 预填充,并处理流式拒答;老型号则收敛成一份只减不增的封闭清单。线上 /v1/models 声明的能力仍然优先。
  • PR #196693 补上了订阅用户的另一条路径。setup-token / OAuth 请求新模型时,Anthropic 会返回 HTTP 400 并提示本机 Claude Code 版本过低。OpenClaw 现在会采用 Anthropic 在报错里给出的版本号重发一次,并把版本记进插件状态,之后的 CLI 进程和重启后的 Gateway 直接从该版本起算——用户既不用手动升 OpenClaw,也不用自己装 Claude CLI。
  • 其余几处是更细的兼容修正。PR #196742 让 Gemini / Vertex 端不再把布尔字面量 optional 送成 enum 字符串,因为 Google 的 Schema 只允许 enum 出现在 string 类型上,导致任何暴露内置 read 工具的回合都被整轮拒绝。PR #196641 让 native isolated completion 在模型拒绝 temperature 时(例如 openai/gpt-6-luna)不再下发该参数,避免 Codex 运行时下 Activity 摘要每次都撞 400。PR #196766 修正了 LM Studio 的输出预算,改按“首选加载上下文”而非当前已加载上下文计算:16K 首选配 8K 输出默认值,而把已加载的 16K 提升到 64K 首选后输出上限会变成 32K,不再停在 8K。

上下文成本:工具结果开始瘦身

  • PR #196756:核心的 jsonResult / payloadTextResult 之前会以带两空格缩进的 JSON 送进模型,每次工具调用都在为缩进花 token,Code Mode 的 dispatch_action 信封还会把缩进文本再转义一遍。改动把 JSON 工具结果改成紧凑形式输出,覆盖约 116 个非测试文件,包含核心工具、约 28 个内置插件以及全部 feature-plugin 工具。官方测算这类调用能少用约 20–25% token,折合真实会话里交互 token 的 2.5%、全量 transcript 的 8%,返回的数据本身不变。
  • PR #196767 处理的是另一头:Knowledge 工具在一次 6800 次调用、5778 万字符的试用里,光是连接信息就占了输出的 49%。改动把工具参数从“显示多少”改成“读取哪些数据”,不再提供 full 模式,列表只回 16 位哈希前缀,写入回执带上下一次写入需要的本体指纹。官方称同样的答案约占用原来三分之一的上下文。
  • PR #196252 解决的是“为了知道工具叫什么都得先搜”。在默认的结构化 Tool Search 下,模型必须先调 tool_search 才能知道任何 MCP 工具的名字,实测平均每次试验 3.8 次 tool_search,每次约 5.8 kB 结果且每次请求都要重发。改动让模型可以在 tool_describe 里直接拿到已列出工具的调用入口,省掉这轮前置搜索。
  • 缓存侧也有两处。PR #196471 让 Anthropic 会话在只有 Runtime facts 不同时复用同一份系统提示,避免每次新开会话都重写 prompt cache。PR #196502 修掉了启用 cache checkpoint 时系统提示被拆块、且丢掉原本那次请求里分隔换行的问题;配套的 PR #196538 把同样的分隔符保留补到了 Bedrock Converse 上。

安全与稳定性:沙箱、进程与凭据

  • PR #196772:Agent 命令崩溃时如果继承了 Gateway 的无限 core-size 限制,会直接把宿主机磁盘和 I/O 打满。改动给 Linux 上的 agent 命令及其子进程设成零 core 上限,而 Gateway、spawn broker 和内部 worker 仍保留崩溃诊断能力;普通命令、execa、PTY 与默认 Docker 沙箱限制都覆盖,Docker 的 ulimits.core 显式覆盖仍然有效,前提是系统里存在可信目录下的 util-linux prlimit。
  • OpenClaw ID 方向连着两处补丁。PR #196380 处理密钥文件丢失的场景:此前 linked claw 会静默新建一把 endpoint key 或 Gateway key 并用它发布签名,而所有者签名的服务端绑定里并没有这把键,结果所有设备都被孤立。改动之后这种情况直接关闭远程访问,状态标成 keys_refused 并给出 keys_missing 或 key_mismatch 原因,本地功能照常可用,恢复原密钥文件即可恢复访问。PR #196402 则让客户端能跟上 re-bind:claw 换到新 Gateway key 后,浏览器、node 主机和原生 App 不再把新快照误判成重放;同时 binding_seq 高水位跨换钥匙延续,被盗走的旧 key 依旧无法注销绑定。
  • 沙箱侧,PR #196835 缩短了工作区对账时的长时间冻结:容器暂停原先横跨分阶段文件落盘、Git patch 准备和临时文件清理,现在改为先在不可变结果上准备,导入前再短暂暂停做确认,并发编辑会被保留并显式暴露为冲突。PR #196808 修掉了另一个隐性开销:沙箱准备阶段在超过 100 个目标淘汰使用记录后,会重新遍历未变化的 skill 树,改动让 Docker 与 Podman 的只读 skill 挂载保持可复用。
  • PR #196401 解决的是 Gateway 重启循环:旧版节点主机或另一个写入方在规范的 SQLite 审批之外留下冲突的 exec-approvals.json 时,启动会被直接判失败。改动后启动继续,冲突文件被保留并通过既有的状态与 Doctor 警告通道上报,运行时读取和授权编辑一律以 SQLite 为准,冲突策略不会被导入。

Agent / Cron / 会话调度

  • PR #196750:定向到已有会话的 cron(sessionTarget 为某个 session key)确实把 Agent 回合跑完了,但回复送不到渠道,运行记录里是 deliveryStatus: not-delivered 与 “Plugin invocation scope is closed”。唤醒会话的系统事件走同一条投递路径,问题一样。修复之后这类回复能在所有渠道正常送达,而不是只留在会话转录里。
  • PR #196528 处理另一个方向的“插件打断定时任务”:定时回合的策略比对把 plugins 段算进了配置投影,于是任何插件开关、设置修改或密钥引用编辑都被判定为策略变化,正在跑的回合随之失效。官方给出的实例是 9 秒内连续杀掉 8 个运行中的回合(4 个 cron、4 个 session-target)。改动把 plugins 移出这个投影,交还给插件配置自己的归属。
  • 同一类 plugin scope 报错还出现在 Activity 摘要上。PR #196700 处理 Codex 运行时下回合结束自动生成的摘要始终不发模型请求、卡在 updating 的情况;PR #196831 则让归档会话时如果调用回合先结束,摘要仍能在后台补齐最新转录。
  • 另外几处围绕资源与状态保留。PR #196387 让关闭自动调度后空闲的原生数据库 worker 能在内存压力下释放,手动运行与启动恢复不受影响。PR #196828 让重试预算耗尽而挂起的会话清理在 Gateway 重启后不再重复触发失败的 provider 操作。PR #196492 修正了全新隔离运行时 session 的颜色、board face 等外观设置被重置的问题。

渠道集成与通知

  • PR #196250:Slack 关闭流式输出时,长推理流会让 Gateway 整体冻结。非 progress 模式下每次推理增量都把累计文本合并两次,而没有预览时 pushToolProgress 会立刻返回,于是每次合并都要重新处理越来越长的文本。
  • PR #196331 把 Mattermost 的出站分片换成感知代码围栏的分片器:回复超过 4000 字符且包含围栏代码块时,旧分片器会从围栏中间切断,渠道渲染出的 Markdown 是坏的。Matrix 已在前一个 PR 中先一步切过去。
  • PR #196578 让 Telegram 在 provider 拒绝请求时显示真实原因,而不是统一的“OpenClaw 没能完成这次请求”;此前拒绝信息只在 Control UI 里看得到。
  • PR #196293 是一条需要留意行为变化的修复:IRC 频道显式配置了空的发送者列表时,即使通配频道或全局列表允许,该频道现在一律拒绝所有发送者。升级前建议确认那些空列表到底是笔误还是想表达“全部拒绝”。

控制台与开发者体验

  • PR #196313 把回复上方的完成摘要从“分割线加悬停才出现的箭头”改成一行 Worked for 1m 7s,箭头常驻、展开时朝下,摘要与正文之间不再有横线。
  • PR #196829 让侧边栏会话名支持双击重命名,此前双击只会跳转。单击跳转、修饰键链接与只读权限都不变。
  • PR #196850 把 GitHub Copilot 补进默认 setup provider 列表。PR #196832 让带 model token 的 responsePrefix 模板(例如 [{provider}/{model} |think:{think}])在 Agent 用 message 工具主动发消息时也能正确渲染,而不是只有自动回复带前缀。
  • 独立提交 8aa3ef4 修掉了在粘贴的提示词前面输入命令时,斜杠菜单不再显示 /loop 与 /goal 的问题。

构建、运行时与兼容性

  • PR #196855 在 main 上收尾 2026.11.3 稳定版,共 205 个文件,把已发布的版本号、发布说明与更新兼容性清单同步回主干,并把三个已随版本发布但 main 缺失的修复带回来:ACP 终端持久化、启动期间的当前插件元数据、Ollama 输出预算保留。
  • Git 历史下载是这批改动里的一个集中点。PR #196743、PR #196784 与 PR #196618 分别处理 Agent 执行 Git 内容命令、版本表达式与缺失提交时的全历史下载,在读取内容前先做历史协商;origin 无法提供时直接提示从归属远端 fetch,而不是走 Git 昂贵的懒加载路径。
  • PR #196768 修复大型 Gateway 里托管 worktree 的依赖拷贝变慢:文件系统 worker 是 Gateway 进程内的线程,每 128 个文件 fork 一次 GNU cp 就复制一次这个大进程的地址空间,即便原生写时复制可用。改动后大体积依赖包含在 Gateway 内存增长时依然保持速度。
  • 升级与诊断路径上,PR #196872 让更新在 Gateway 通过健康校验后删掉自己的更新前副本以及 Doctor 产生的迁移备份——此前每次成功更新都会把全量副本留到下一次更新,大安装容易在下一次更新时磁盘不足。PR #196157 让 PostgreSQL 网关在更新器明确不会停止它时,提前以既有的归属理由拒绝,而不是先花几分钟做候选校验才拒绝。
  • PR #196294 把 Knowledge 在几千条记录规模下的单条保存耗时从 10 到 16 秒压到约 2 秒(其中校验并发布那一段从 16.5 秒降到 0.8 秒),Agent 的回复不再为一次写入干等。PR #196400 让默认的 Lightpanda 浏览器导航重新可用:页面事件此前发在主连接上、导航守卫会话收不到,导致读取页面、填写与提交表单一律超时。

这批改动的共同点是不再让“新东西”等 OpenClaw 跟上:模型、工具结果、插件配置和凭据状态都改成运行时自适配,把兼容负担和上下文成本一起压了下来。

常用链接

 
内容管家

发表评论