跳转至

发布性能扫描

本页记录了 2026 年 5 月 OpenClaw 性能、包大小、依赖和 shrinkwrap 清理背后的证据。它是公共博客文章的技术配套文档。

此处合并了两项审计:

  • 发布性能扫描: 从 v2026.5.28 回溯到稳定版 v2026.4.23 的 GitHub Releases,使用 OpenClaw Performance 工作流,profile=smoke,mock-provider 通道。大多数 tag 行只有一个样本;v2026.5.27 和 v2026.5.28 行使用最新的 repeat-3 发布分支制品。
  • 更早的 4 月背景: 从 v2026.4.1 到 v2026.5.2 已发布的 clawgrit-reports mock-provider 基线,仅用于避免将 4 月下旬受损的发布版本视为公共性能基线。
  • 安装体积扫描: 在新临时包中执行全新 npm install --ignore-scripts,使用 du -sk node_modules 测量大小,并通过遍历 node_modules 统计包实例数量。
  • npm 包大小扫描: 对已发布版本执行 npm pack openclaw@<version> --dry-run --json,记录压缩 tarball 大小、解压后大小和文件数量。

Warning

主要性能扫描每个 tag 使用一个 smoke 样本,但 v2026.5.27 和 v2026.5.28 行除外,它们使用最新的 repeat-3 发布分支制品。更早的 4 月背景使用来自 clawgrit-reports 的已发布 repeat-3 中位数。请将这些数字视为趋势证据和回归排查信号,而非发布门禁统计。

快照

性能覆盖范围:77 个请求的发布版本,74 个有制品支撑的数据点,以及 3 次不可用的 CI 运行。最新的稳定版测量点:v2026.5.28。

稳定版代理回合

冷启动回合快 5.1 倍

  • v2026.4.14: 9.8s
  • v2026.5.28: 1.9s

已发布包

17.9MB tarball

最新稳定版包,较 3 月 43.3MB 的包大小峰值有所下降。

最新稳定版安装

361.7MiB 全新安装

相比 2026.5.22 引入 shrinkwrap 时的峰值,大幅削减了嵌套的 OpenClaw 依赖树;不过在本机安装审计中,仍保留了较小的 259.7MiB 嵌套树。

依赖图

300 个已安装包

以禁用脚本的全新安装中唯一的包名/版本根节点进行衡量;比上一个稳定版少了 71 个根节点。

5.28 中的变更

v2026.5.27 到 v2026.5.28 之间的清理工作缩减了默认安装图,而不是移除这些能力本身。

根默认图

唯一的包名/版本根节点从 371 降至 300。包实例从 372 降至 301。

嵌套树

在同一本机安装审计中,嵌套的 openclaw/node_modules 从 656.1MiB 降至 259.7MiB。

原生可选依赖锥

全平台 @napi-rs/canvas 原生包依赖锥不再出现在默认安装中。

供应链暴露面

默认安装包越少,意味着默认需要信任的 tarball、维护者、原生二进制文件、安装期行为以及传递性更新路径就越少。

Tip

Shrinkwrap 本身并不是问题所在。问题在于糟糕的包结构。 v2026.5.28 仍然带 shrinkwrap,但在本机审计中,嵌套依赖树已大幅缩小,全平台 canvas 扇出也已消失。

核心数字

不要使用 4 月下旬损坏的行作为公共性能基线。v2026.4.23 和 v2026.4.29 是有用的回归证据,但 14x 量级的大差异主要描述了从糟糕发布线中的恢复过程。

对于博客叙述,请使用 4 月早些时候发布的基线作为规模参照。该基线是来自已发布 clawgrit-reports mock-provider 运行的 v2026.4.14(repeat 3;该运行之所以失败,仅仅是因为没有输出诊断时间线,因此冷启动、热启动和 RSS 的中位数仍可作为粗略规模参考)。请将其视为叙述背景,而非发布门禁统计。

指标 4 月更早基线 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%

在 5 月扫描范围内,最新发布分支行相较于 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 sandbox、Anthropic Vertex、Matrix 和 WhatsApp 已移出核心依赖路径,因此它们的依赖锥会随相应插件一起安装,而不是随每次核心安装一起安装。

Kova 代理回合摘要

四月稳定版系列包含两条不同的故事线。四月上旬虽然缓慢,但表现仍可辨识。四月下旬则跌入回归断崖。v2026.5.2 是模拟提供程序通道首次落入 3-5 秒范围,并在所提供的扫描中开始持续通过的版本。

此前已发布的上下文:

版本 Kova 冷启动回合 热启动回合 Agent 峰值 RSS
v2026.4.10 FAIL 11,031ms 7,962ms 679.0MB
v2026.4.12 FAIL 11,965ms 8,289ms 713.5MB
v2026.4.14 FAIL 9,819ms 7,458ms 686.2MB
v2026.4.20 FAIL 22,314ms 18,811ms 810.8MB
v2026.4.22 FAIL 9,630ms 7,459ms 743.0MB

提供的扫描结果:

版本 Kova 冷启动回合 热启动回合 Agent 峰值 RSS
v2026.4.23 FAIL 47,847ms 8,010ms 1,082.7MB
v2026.4.24 FAIL 48,264ms 25,483ms 996.0MB
v2026.4.25 FAIL 81,080ms 59,172ms 1,113.9MB
v2026.4.26 FAIL 76,771ms 54,941ms 1,140.8MB
v2026.4.27 FAIL 60,902ms 33,699ms 1,156.0MB
v2026.4.29 FAIL 94,031ms 57,334ms 3,613.7MB
v2026.5.2 PASS 3,897ms 3,610ms 613.7MB
v2026.5.7 PASS 3,923ms 3,693ms 654.1MB
v2026.5.12 PASS 7,248ms 6,629ms 834.8MB
v2026.5.18 PASS 3,301ms 2,913ms 630.3MB
v2026.5.20 PASS 3,413ms 2,952ms 643.2MB
v2026.5.22 PASS 4,494ms 4,093ms 654.3MB
v2026.5.26 PASS 2,626ms 2,282ms 660.4MB
v2026.5.27-beta.1 PASS 2,575ms 2,217ms 635.3MB
v2026.5.27 PASS 2,231ms 2,226ms 649.0MB
v2026.5.28 PASS 1,908ms 1,870ms 581.0MB

源码探测

有 17 个成功通过的老版本引用跳过了源码探测,因为这些源码树尚未具备所需的探测入口点。这些引用的代理回合指标仍然存在。

代表性源码探测点:

版本 默认 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 健康检查尖峰在此表中依然可见。在调查针对性的 CLI 或网关回归问题时,请保留这些源码探测。

安装体积审计

依赖样本每个月选取一个稳定版,外加 2026.5.22 引入 shrinkwrap 的事件以及最新的 2026.5.28 版本。

节点 已安装依赖数 全新安装大小 OpenClaw 包体 嵌套 openclaw/node_modules 根级 shrinkwrap Canvas 安装行为
一月 2026.1.30 605 438.4MB 45.8MB 2.4MB 无 顶层包装 + darwin-arm64
二月 2026.2.26 645 575.7MB 110.1MB 3.5MB 无 顶层包装 + darwin-arm64
三月 2026.3.31 438 584.1MB 234.8MB 0MB 无 顶层包装 + darwin-arm64
时间点 已安装依赖 全新安装 OpenClaw 包 嵌套 openclaw/node_modules 根 shrinkwrap Canvas 安装行为
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,但本地全新安装审计中不再安装 任何 @napi-rs/canvas 包。

已发布 tarball 检查验证了该边界:

版本 是否已发布稳定版 根 npm-shrinkwrap.json 备注
2026.5.20 是 否 shrinkwrap 之前的最后一个稳定版
2026.5.21 否 不适用 没有稳定 npm 发布
2026.5.22 是 是 引入 shrinkwrap
2026.5.23 否 不适用 没有稳定 npm 发布
2026.5.24 否 不适用 没有稳定 npm 发布
2026.5.25 否 不适用 没有稳定 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 平台扇出不再出现在本地审计中。

有关当前依赖审查和包策略,请参阅 依赖锁定。

供应链解读

依赖数量是一项运营安全指标,而不仅仅是安装大小 指标。每个包都会扩大维护者、tarball、传递 更新、可选原生二进制文件以及安装时行为等需要操作员 信任的范围。

清理方向是:

  • 将重量级和可选功能排除在默认核心安装之外
  • 让插件包拥有自己的运行时依赖图
  • 避免在 Gateway 启动期间进行运行时包管理器修复
  • 在不导致全平台原生包物化的情况下保持确定性安装
  • 在包验收和测量路径中保持安装脚本禁用
  • 在发布前捕获嵌套依赖树和原生可选依赖爆炸

相关文档:

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw