快速开始
发布性能梳理
本页记录了 2026 年 5 月 OpenClaw 性能、包大小、依赖项和 shrinkwrap 清理背后的证据。它是公开博客文章的技术配套说明。
这里合并了两项审计:
- 发布性能扫描: GitHub Releases 从
v2026.5.28回溯到稳定版v2026.4.23,使用OpenClaw Performanceworkflow、profile=smoke、mock-provider 执行通道。大多数标签行只有一个样本;v2026.5.27和v2026.5.28行使用最新的 repeat-3 发布分支构件。 - 更早的 4 月上下文: 从
v2026.4.1到v2026.5.2发布的clawgrit-reportsmock-provider 基线,仅用于避免把 4 月下旬的故障版本当作公开性能基线。 - 安装占用扫描: 在临时包中执行全新的
npm install --ignore-scripts安装,用du -sk node_modules测量大小,并遍历node_modules统计包实例数量。 - npm 包大小扫描: 对已发布版本执行
npm pack openclaw@<version> --dry-run --json,记录压缩 tarball 大小、解包大小和文件数。
快照
性能覆盖范围:请求的 77 个发布版本、74 个有构件支持的数据点,以及 3 个不可用的 CI 运行。测得的最新稳定版点:v2026.5.28。
冷启动轮次快 5.1 倍
v2026.4.14: 9.8sv2026.5.28: 1.9s
17.9MB tarball
最新稳定版包,低于 3 月 43.3MB 的包大小峰值。
361.7MiB 全新安装
v2026.5.28 大幅削减了嵌套的 OpenClaw 依赖树,但本地安装审计中仍然保留了一个较小的 259.7MiB 嵌套树。
300 个已安装包
最新稳定版发布,在禁用脚本的全新安装中按唯一包名/版本根进行测量。
安装占用时间线
645 个依赖项
2026.2.26 是此样本中的月度依赖数量高点。
1,020.6MB 安装
2026.5.22 添加了根 shrinkwrap,并暴露出一个包形态问题:911.8MB 落在嵌套的 openclaw/node_modules 下。
361.7MiB 安装
2026.5.28 相比 2026.5.27 将全新安装大小减少了 52.8%,但仍会安装一个 259.7MiB 的嵌套 OpenClaw 树。
300 个包根
2026.5.28 安装的唯一包名/版本根比 2026.5.27 少 71 个。
5.28 中的变化
v2026.5.27 和 v2026.5.28 之间的清理减少了默认安装
图,而不是移除这些能力本身。
唯一软件包名称/版本根从 371 降至 300。软件包 实例从 372 降至 301。
在同一次本地安装审计中,嵌套的 openclaw/node_modules 从 656.1MiB 降至 259.7MiB。
全平台 @napi-rs/canvas 原生软件包依赖锥不再进入
默认安装。
默认软件包更少,意味着默认需要信任的 tarball、维护者、原生二进制文件、 安装时行为和传递更新路径更少。
核心数字
不要把四月下旬的异常行用作公开性能基线。
v2026.4.23 和 v2026.4.29 是有用的回归证据,但较大的
14x 风格差值主要描述的是从一条糟糕发布线中恢复的过程。
对于博客叙事,使用四月较早发布的基线作为规模参照:
| 指标 | 四月较早基线 | v2026.5.28 |
差值 |
|---|---|---|---|
| 冷智能体轮次 | 9,819ms | 1,908ms | 降低 80.6%,快 5.1 倍 |
| 热智能体轮次 | 7,458ms | 1,870ms | 降低 74.9%,快 4.0 倍 |
| 智能体峰值 RSS | 686.2MB | 581.0MB | 降低 15.3% |
四月较早基线是来自已发布 clawgrit-reports mock-provider 运行的
v2026.4.14。该运行使用 repeat 3,失败的唯一原因是
未输出诊断时间线;冷轮次、热轮次和 RSS 中位数仍可作为粗略规模参考。
请将其视为叙事背景,而不是发布门禁统计数据。
在五月扫查中,最新发布分支行相较 v2026.5.2
有实质变化:
| 指标 | v2026.5.2 |
v2026.5.28 |
差值 |
|---|---|---|---|
| 冷智能体轮次 | 3,897ms | 1,908ms | 降低 51.0% |
| 热智能体轮次 | 3,610ms | 1,870ms | 降低 48.2% |
| 智能体峰值 RSS | 613.7MB | 581.0MB | 降低 5.3% |
与上一个稳定版本相比:
| 指标 | v2026.5.27 |
v2026.5.28 |
差值 |
|---|---|---|---|
| 冷智能体轮次 | 2,231ms | 1,908ms | 降低 14.5% |
| 热智能体轮次 | 2,226ms | 1,870ms | 降低 16.0% |
| 智能体峰值 RSS | 649.0MB | 581.0MB | 降低 10.5% |
安装占用
| 指标 | 基线 | v2026.5.28 |
差值 |
|---|---|---|---|
相比 2026.5.22 峰值的安装大小 |
1,020.6MB | 361.7MiB | 降低 64.6% |
相比最新版本 2026.5.27 的安装大小 |
767.1MiB | 361.7MiB | 降低 52.8% |
相比月度高点 2026.2.26 的依赖项 |
645 | 300 | 降低 53.5% |
相比最新版本 2026.5.27 的依赖项 |
371 | 300 | 降低 19.1% |
相比 2026.5.22 的嵌套 openclaw/node_modules |
911.8MB | 259.7MiB | 降低 71.5% |
相比 2026.5.27 的嵌套 openclaw/node_modules |
656.1MiB | 259.7MiB | 降低 60.4% |
npm 软件包大小
| 版本 | 压缩 tarball | 解包后软件包 | 文件 | 说明 |
|---|---|---|---|---|
2026.1.30 |
12.8MB | 33.5MB | 4,607 | 早期重命名软件包 |
2026.2.26 |
23.6MB | 82.9MB | 10,125 | 功能增长 |
2026.3.31 |
43.3MB | 182.6MB | 21,037 | 软件包大小高点 |
2026.4.29 |
22.9MB | 74.6MB | 9,309 | 软件包裁剪可见 |
2026.5.12 |
23.4MB | 80.1MB | 12,035 | 主要外部插件拆分 |
2026.5.22 |
17.2MB | 76.9MB | 12,386 | 文档/资产从软件包中排除 |
2026.5.27 |
17.8MB | 79.0MB | 12,509 | 上一个稳定软件包 |
2026.5.28 |
17.9MB | 81.0MB | 9,082 | 最新稳定软件包 |
2026.5.12 是变更日志中可见的插件抽离里程碑:
Amazon Bedrock、Bedrock Mantle、Slack、OpenShell 沙箱、Anthropic Vertex、
Matrix 和 WhatsApp 从核心依赖路径中移出,因此它们的依赖
锥会随这些插件安装,而不是随每次核心安装一起安装。
Kova 智能体轮次摘要
四月稳定线包含两个不同的故事。四月较早版本缓慢,
但仍可辨识。四月下旬变成了回归悬崖。v2026.5.2 是
mock-provider 通道首次降至 3-5 秒范围,并在提供的扫查中
开始持续通过的位置。
较早发布的背景:
| 版本 | Kova | 冷轮次 | 热轮次 | 智能体峰值 RSS |
|---|---|---|---|---|
v2026.4.10 |
失败 | 11,031ms | 7,962ms | 679.0MB |
v2026.4.12 |
失败 | 11,965ms | 8,289ms | 713.5MB |
v2026.4.14 |
失败 | 9,819ms | 7,458ms | 686.2MB |
v2026.4.20 |
失败 | 22,314ms | 18,811ms | 810.8MB |
v2026.4.22 |
失败 | 9,630ms | 7,459ms | 743.0MB |
提供的扫查:
| 版本 | Kova | 冷轮次 | 热轮次 | 智能体峰值 RSS |
|---|---|---|---|---|
v2026.4.23 |
失败 | 47,847ms | 8,010ms | 1,082.7MB |
v2026.4.24 |
失败 | 48,264ms | 25,483ms | 996.0MB |
v2026.4.25 |
失败 | 81,080ms | 59,172ms | 1,113.9MB |
v2026.4.26 |
失败 | 76,771ms | 54,941ms | 1,140.8MB |
v2026.4.27 |
失败 | 60,902ms | 33,699ms | 1,156.0MB |
v2026.4.29 |
失败 | 94,031ms | 57,334ms | 3,613.7MB |
v2026.5.2 |
通过 | 3,897ms | 3,610ms | 613.7MB |
v2026.5.7 |
通过 | 3,923ms | 3,693ms | 654.1MB |
v2026.5.12 |
通过 | 7,248ms | 6,629ms | 834.8MB |
v2026.5.18 |
通过 | 3,301ms | 2,913ms | 630.3MB |
v2026.5.20 |
通过 | 3,413ms | 2,952ms | 643.2MB |
v2026.5.22 |
通过 | 4,494ms | 4,093ms | 654.3MB |
v2026.5.26 |
通过 | 2,626ms | 2,282ms | 660.4MB |
v2026.5.27-beta.1 |
通过 | 2,575ms | 2,217ms | 635.3MB |
v2026.5.27 |
通过 | 2,231ms | 2,226ms | 649.0MB |
v2026.5.28 |
通过 | 1,908ms | 1,870ms | 581.0MB |
源码探针
17 个成功的较旧 ref 跳过了源码探针,因为这些源码 树当时还没有所需的探针入口点。这些 ref 仍然有 智能体轮次指标。
代表性源码探针点:
| 版本 | 默认 readyz p50 |
50 个插件 readyz p50 |
CLI 健康 p50 | 插件最大 RSS |
|---|---|---|---|---|
v2026.4.29 |
2,819ms | 2,618ms | 1,679ms | 389.0MB |
v2026.5.2 |
2,324ms | 2,013ms | 1,384ms | 377.2MB |
v2026.5.7 |
1,649ms | 1,540ms | 1,175ms | 387.6MB |
v2026.5.18 |
1,942ms | 1,927ms | 607ms | 426.5MB |
v2026.5.20 |
1,966ms | 1,987ms | 621ms | 455.0MB |
v2026.5.22 |
2,081ms | 1,884ms | 5,095ms | 444.2MB |
v2026.5.26 |
1,546ms | 1,634ms | 656ms | 400.4MB |
v2026.5.27-beta.1 |
1,462ms | 1,548ms | 548ms | 394.0MB |
v2026.5.27 |
1,491ms | 1,571ms | 553ms | 401.5MB |
v2026.5.28 |
1,457ms | 1,474ms | 623ms | 386.1MB |
v2026.5.22 CLI 健康检查峰值在此表中可见,即使
agent-turn 通道仍然通过。调查有针对性的 CLI 或 Gateway 网关回归时,
请保留源探针。
安装占用审计
依赖样本每月使用一个稳定版本,另加
2026.5.22 shrinkwrap 引入事件和最新的 2026.5.28 版本。
| 节点 | 已安装依赖 | 全新安装 | OpenClaw 包 | 嵌套 openclaw/node_modules |
根 shrinkwrap | Canvas 安装行为 |
|---|---|---|---|---|---|---|
1 月 2026.1.30 |
605 | 438.4MB | 45.8MB | 2.4MB | 否 | 顶层包装器 + darwin-arm64 |
2 月 2026.2.26 |
645 | 575.7MB | 110.1MB | 3.5MB | 否 | 顶层包装器 + darwin-arm64 |
3 月 2026.3.31 |
438 | 584.1MB | 234.8MB | 0MB | 否 | 顶层包装器 + darwin-arm64 |
4 月 2026.4.29 |
392 | 335.0MB | 97.4MB | 0MB | 否 | 未安装 |
2026.5.22 |
401 | 1,020.6MB | 1,020.4MB | 911.8MB | 是 | 嵌套:全部 12 个 @napi-rs/canvas 包 |
5 月 2026.5.26 |
371 | 767.5MB | 767.4MB | 656.4MB | 是 | 嵌套:全部 12 个 @napi-rs/canvas 包 |
2026.5.27 |
371 | 767.1MiB | 766.9MiB | 656.1MiB | 是 | 嵌套:全部 12 个 @napi-rs/canvas 包 |
最新 2026.5.28 |
300 | 361.7MiB | 361.6MiB | 259.7MiB | 是 | 未安装 |
Shrinkwrap 边界
2026.5.20 没有根 shrinkwrap,也没有大型嵌套 OpenClaw 依赖树。
2026.5.22 添加根 shrinkwrap,并在嵌套
openclaw/node_modules 下安装 911.8MB。
2026.5.28 保留 shrinkwrap,并且仍在嵌套
openclaw/node_modules 下安装 259.7MiB。
2026.5.28 在本地全新安装审计中不再安装任何
@napi-rs/canvas 包。
已发布 tarball 检查验证了该边界:
| 版本 | 已发布稳定版? | 根 npm-shrinkwrap.json |
说明 |
|---|---|---|---|
2026.5.20 |
是 | 否 | shrinkwrap 之前的最后一个稳定版本 |
2026.5.21 |
否 | n/a | 没有稳定 npm 版本 |
2026.5.22 |
是 | 是 | 引入 shrinkwrap |
2026.5.23 |
否 | n/a | 没有稳定 npm 版本 |
2026.5.24 |
否 | n/a | 没有稳定 npm 版本 |
2026.5.25 |
否 | n/a | 没有稳定 npm 版本 |
2026.5.26 |
是 | 是 | 嵌套依赖树仍然存在 |
2026.5.27 |
是 | 是 | 嵌套依赖树仍然存在 |
2026.5.28 |
是 | 是 | 嵌套依赖树小得多 |
重要区别:shrinkwrap 本身不是问题。
v2026.5.28 仍然发布根 shrinkwrap。问题在于包形态导致 npm 物化了一个大型嵌套 OpenClaw 依赖树,以及全部 12 个
@napi-rs/canvas 平台包。嵌套树在 v2026.5.28 中更小,
并且 canvas 平台扇出不再出现在本地审计中。
关于 shrinkwrap 的通俗解释以及维护者级别的包检查,请参阅 npm shrinkwrap。
供应链解读
依赖数量是一项运营安全指标,而不仅是安装大小指标。 每个包都会扩大运营者必须信任的维护者、tarball、传递更新、 可选原生二进制文件和安装时行为集合。
清理方向是:
- 将重型和可选能力保留在默认核心安装之外
- 让插件包拥有自己的运行时依赖图
- 避免在 Gateway 网关启动期间进行运行时包管理器修复
- 保持确定性安装,同时避免物化所有平台的原生包
- 在包验收和测量路径中保持安装脚本禁用
- 在发布前捕获嵌套依赖树和原生可选依赖爆炸
相关文档: