Skip to main content
我会严格保留原有 Markdown 结构,只翻译可见文本内容,代码和标签都不动。现在开始逐段翻译并直接输出结果。--- summary: “用于 2026 年 5 月性能、包大小、依赖和 shrinkwrap 清理的可视化摘要与技术证据” read_when:
  • 你正在验证 2026 年 5 月的性能和包大小清理
  • 你需要 OpenClaw 性能和依赖博客文章背后的数据
  • 你正在更改发布门槛、包 shrinkwrap 或插件依赖边界 title: “发布性能扫描”

本页汇总了 2026 年 5 月 OpenClaw 性能、包大小、依赖和 shrinkwrap 清理背后的证据。它是面向公开博客文章的技术配套说明。 这里合并了两类审计:
  • 发布性能扫描:v2026.5.28 回溯到稳定版 v2026.4.23 的 GitHub Releases,使用 OpenClaw Performance 工作流、profile=smoke、mock-provider 线路。大多数标签行只有一个样本;v2026.5.27v2026.5.28 行使用最新的重复 3 次发布分支产物。
  • 更早的 4 月上下文: 已发布的 clawgrit-reports mock-provider 基线,范围从 v2026.4.1v2026.5.2,仅用于避免把 4 月下旬损坏的发布当作公开性能基线。
  • 安装占用扫描: 在临时包中执行全新的 npm install --ignore-scripts,使用 du -sk node_modules 统计大小,并通过遍历 node_modules 统计包实例数量。
  • npm 包大小扫描: 对已发布版本执行 npm pack openclaw@<version> --dry-run --json,记录压缩后的 tarball 大小、解包后大小和文件数量。
主性能扫描每个标签只使用一个 smoke 样本,v2026.5.27v2026.5.28 行除外,它们使用最新的重复 3 次发布分支产物。更早的 4 月上下文使用了来自 clawgrit-reports 的已发布重复 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 新鲜安装v2026.5.28 明显缩减了嵌套的 OpenClaw 依赖树,但本地安装审计中仍然保留了一个更小的 259.7MiB 嵌套树。

依赖图

300 个已安装包最新稳定发布,按在禁用脚本的全新安装中统计的唯一包名/版本根节点数计算。

安装占用时间线

月度高点

645 个依赖2026.2.26 是本样本中的月度依赖数量高点。

引入 shrinkwrap

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.282026.5.27 少安装了 71 个唯一的包名/版本根节点。
shrinkwrap 本身并不是问题。真正的问题是糟糕的包结构。v2026.5.28 仍然带着 shrinkwrap,但嵌套依赖树要小得多,而且在本地审计中,全平台的 canvas 扇出已经消失。

5.28 中发生了什么变化

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

根默认图

唯一包名/版本根从 371 降到 300。包实例从 372 降到 301

嵌套树

在同一份本地安装审计中,嵌套的 openclaw/node_modules656.1MiB 降到 259.7MiB

原生可选锥体

全平台的 @napi-rs/canvas 原生包锥体不再进入默认安装。

供应链面

更少的默认包意味着默认需要信任的 tarball、维护者、原生二进制文件、安装时行为和传递更新路径都更少。

关键数字

不要把 4 月下旬损坏的行作为公开性能基线。v2026.4.23v2026.4.29 可用于回归证据,但那些巨大的 14x 级别差异主要描述的是从坏发布线恢复的过程。 对于博客叙述,请使用更早的 4 月已发布基线作为尺度:
指标更早的 4 月基线v2026.5.28差值
冷启动代理回合9,819ms1,908ms低 80.6%,快 5.1 倍
热启动代理回合7,458ms1,870ms低 74.9%,快 4.0 倍
代理峰值 RSS686.2MB581.0MB低 15.3%
更早的 4 月基线是已发布 clawgrit-reports mock-provider 运行中的 v2026.4.14。该运行使用了重复 3 次,只是因为诊断时间线未输出而失败;冷启动、热启动和 RSS 中位数仍然可作为粗略尺度。请将此视为叙述背景,而不是发布门槛统计。 在 5 月扫描中,最新发布分支行相较于 v2026.5.2 有了明显变化:
指标v2026.5.2v2026.5.28差值
冷启动代理回合3,897ms1,908ms低 51.0%
热启动代理回合3,610ms1,870ms低 48.2%
代理峰值 RSS613.7MB581.0MB低 5.3%
与上一稳定版相比:
指标v2026.5.27v2026.5.28差值
冷启动代理回合2,231ms1,908ms低 14.5%
热启动代理回合2,226ms1,870ms低 16.0%
代理峰值 RSS649.0MB581.0MB低 10.5%

安装占用

指标基线值v2026.5.28差值
相较于 2026.5.22 峰值的安装大小1,020.6MB361.7MiB低 64.6%
相较于最新发布 2026.5.27 的安装大小767.1MB361.7MiB低 52.8%
相较于月度高点 2026.2.26 的依赖数645300低 53.5%
相较于最新发布 2026.5.27 的依赖数371300低 19.1%
相较于 2026.5.22 的嵌套 openclaw/node_modules911.8MB259.7MiB低 71.5%
相较于 2026.5.27 的嵌套 openclaw/node_modules656.1MB259.7MiB低 60.4%

npm 包大小

版本压缩后的 tarball解包后的包文件数备注
2026.1.3012.8MB33.5MB4,607早期重新命名后的包
2026.2.2623.6MB82.9MB10,125功能增长
2026.3.3143.3MB182.6MB21,037包大小高点
2026.4.2922.9MB74.6MB9,309可见的包裁剪
2026.5.1223.4MB80.1MB12,035主要外部插件拆分
2026.5.2217.2MB76.9MB12,386文档/资源不再包含在包中
2026.5.2717.8MB79.0MB12,509之前的稳定包
2026.5.2817.9MB81.0MB9,082最新稳定包
2026.5.12 是变更日志中可见的插件拆分里程碑:Amazon Bedrock、Bedrock Mantle、Slack、OpenShell sandbox、Anthropic Vertex、Matrix 和 WhatsApp 从核心依赖路径中移出,因此它们的依赖锥体会随这些插件一起安装,而不是每次核心安装都一并安装。

Kova 代理回合摘要

4 月的稳定线包含两个不同的故事。4 月上旬虽慢,但仍可识别。4 月下旬则变成了回归悬崖。v2026.5.2 是 mock-provider 线路首次跌入 3-5 秒区间,并在给定扫描中开始稳定通过的位置。 更早的已发布上下文:
发布版本Kova冷启动回合热启动回合代理峰值 RSS
v2026.4.10FAIL11,031ms7,962ms679.0MB
v2026.4.12FAIL11,965ms8,289ms713.5MB
v2026.4.14FAIL9,819ms7,458ms686.2MB
v2026.4.20FAIL22,314ms18,811ms810.8MB
v2026.4.22FAIL9,630ms7,459ms743.0MB
给定扫描:
发布版本Kova冷启动回合热启动回合代理峰值 RSS
v2026.4.23FAIL47,847ms8,010ms1,082.7MB
v2026.4.24FAIL48,264ms25,483ms996.0MB
v2026.4.25FAIL81,080ms59,172ms1,113.9MB
v2026.4.26FAIL76,771ms54,941ms1,140.8MB
v2026.4.27FAIL60,902ms33,699ms1,156.0MB
v2026.4.29FAIL94,031ms57,334ms3,613.7MB
v2026.5.2PASS3,897ms3,610ms613.7MB
v2026.5.7PASS3,923ms3,693ms654.1MB
v2026.5.12PASS7,248ms6,629ms834.8MB
v2026.5.18PASS3,301ms2,913ms630.3MB
v2026.5.20PASS3,413ms2,952ms643.2MB
v2026.5.22PASS4,494ms4,093ms654.3MB
v2026.5.26PASS2,626ms2,282ms660.4MB
v2026.5.27-beta.1PASS2,575ms2,217ms635.3MB
v2026.5.27PASS2,231ms2,226ms649.0MB
v2026.5.28PASS1,908ms1,870ms581.0MB

Source probes

由于这些源代码树当时还没有所需的探针入口点,17 个成功的旧 ref 的源探针被跳过了。这些 ref 仍然存在 agent-turn 指标。 代表性的源探针数据点:
ReleaseDefault readyz p5050 plugins readyz p50CLI health p50Plugin max RSS
v2026.4.292,819ms2,618ms1,679ms389.0MB
v2026.5.22,324ms2,013ms1,384ms377.2MB
v2026.5.71,649ms1,540ms1,175ms387.6MB
v2026.5.181,942ms1,927ms607ms426.5MB
v2026.5.201,966ms1,987ms621ms455.0MB
v2026.5.222,081ms1,884ms5,095ms444.2MB
v2026.5.261,546ms1,634ms656ms400.4MB
v2026.5.27-beta.11,462ms1,548ms548ms394.0MB
v2026.5.271,491ms1,571ms553ms401.5MB
v2026.5.281,457ms1,474ms623ms386.1MB
尽管 agent-turn 这条线仍然通过了,表格中仍然可以看到 v2026.5.22 的 CLI health 峰值。排查有针对性的 CLI 或网关回归时,请保留源探针。

安装体积审计

依赖样本使用每月一个稳定版,再加上 2026.5.22 的 shrinkwrap 引入事件,以及最新的 2026.5.28 版本。
PointInstalled depsFresh installOpenClaw packageNested openclaw/node_modulesRoot shrinkwrapCanvas install behavior
Jan 2026.1.30605438.4MB45.8MB2.4MBnotop-level wrapper + darwin-arm64
Feb 2026.2.26645575.7MB110.1MB3.5MBnotop-level wrapper + darwin-arm64
Mar 2026.3.31438584.1MB234.8MB0MBnotop-level wrapper + darwin-arm64
Apr 2026.4.29392335.0MB97.4MB0MBnonone installed
2026.5.224011,020.6MB1,020.4MB911.8MByesnested: all 12 @napi-rs/canvas packages
May 2026.5.26371767.5MB767.4MB656.4MByesnested: all 12 @napi-rs/canvas packages
2026.5.27371767.1MiB766.9MiB656.1MiByesnested: all 12 @napi-rs/canvas packages
Latest 2026.5.28300361.7MiB361.6MiB259.7MiByesnone installed

Shrinkwrap 边界

Before shrinkwrap

2026.5.20 没有根 shrinkwrap,也没有大型的嵌套 OpenClaw 依赖树。

Introduced

2026.5.22 添加了根 shrinkwrap,并在嵌套的 openclaw/node_modules 下安装了 911.8MB。

Latest stable

2026.5.28 保留了 shrinkwrap,并且仍然在嵌套的 openclaw/node_modules 下安装了 259.7MiB。

Canvas fanout fixed

2026.5.28 在本地新鲜安装审计中不再安装任何 @napi-rs/canvas 包。
已发布 tarball 的检查验证了这个边界:
VersionPublished stable?Root npm-shrinkwrap.jsonNotes
2026.5.20yesnolast stable release before shrinkwrap
2026.5.21non/ano stable npm release
2026.5.22yesyesshrinkwrap introduced
2026.5.23non/ano stable npm release
2026.5.24non/ano stable npm release
2026.5.25non/ano stable npm release
2026.5.26yesyesnested dependency tree still present
2026.5.27yesyesnested dependency tree still present
2026.5.28yesyesnested dependency tree much smaller
关键区别在于:问题并不在 shrinkwrap 本身v2026.5.28 仍然包含根 shrinkwrap。问题在于包的形态导致 npm 物化出一个很大的嵌套 OpenClaw 依赖树,以及全部 12 个 @napi-rs/canvas 平台包。v2026.5.28 中嵌套树更小了,而且 canvas 平台分发也 აღარ在本地审计中落地。 关于 shrinkwrap 的通俗解释,以及维护者级别的包检查,请参阅 npm shrinkwrap

供应链解读

依赖数量不仅是安装体积指标,也是运维安全指标。每个包都会扩大维护者、tarball、传递性更新、可选原生二进制文件以及安装时行为的信任面,运维人员必须信任这些内容。 清理方向是:
  • 将沉重且可选的能力放在默认核心安装之外
  • 让插件包负责其运行时依赖图
  • 避免在 Gateway 启动期间进行运行时包管理器修复
  • 在不导致所有平台原生包物化的前提下保持确定性安装
  • 在包接受和度量路径中保持禁用安装脚本
  • 在发布前捕获嵌套依赖树和原生可选依赖爆炸
相关文档: