Skip to main content
本页汇总了 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 全新安装将嵌套的 OpenClaw 依赖树从 2026.5.22 shrinkwrap-introduction 峰值显著压缩,不过在本地安装审计中仍 保留着一个更小的 259.7MiB 嵌套树。

依赖图

300 个已安装包在禁用脚本的全新安装中,按唯一的包名/版本根节点计量;比之前的稳定版本少 71 个根节点。

5.28 中的变化

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

根默认图

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

嵌套树

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

原生可选锥体

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

供应链面

更少的默认包意味着默认需要信任的 tarball、维护者、原生二进制文件、安装时行为和传递更新路径都更少。
Shrinkwrap 本身并不是问题。问题在于糟糕的包结构。 v2026.5.28 仍然包含 shrinkwrap,但嵌套依赖树小得多,而且在本地审计中,全平台的 canvas 扇出已经消失。

标题数字

不要把 4 月下旬损坏的行作为公开性能基线。v2026.4.23v2026.4.29 可用于回归证据,但那些巨大的 14x 级别差异主要描述的是从坏发布线恢复的过程。 对于博客叙述,请使用较早的 4 月已发布基线作为尺度。 该基线是来自已发布的 clawgrit-reports mock-provider 运行的 v2026.4.14(重复 3 次;那次运行仅因未输出诊断 时间线而失败,因此冷启动、热启动和 RSS 中位数仍可 作为粗略尺度使用)。请将其视为叙述背景,而非发布门禁 统计。 在 5 月的扫描范围内,最新的发布分支行相较于 v2026.5.2 有了显著变化: 与上一稳定版相比:

安装占用

npm 包大小

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 秒区间,并在给定扫描中开始稳定通过的位置。 更早的已发布上下文: 给定扫描:

源探针

由于这些源代码树当时还没有所需的探针入口点,17 个成功的旧 ref 的源探针被跳过了。这些 ref 仍然存在 agent-turn 指标。 代表性的源探针数据点: 尽管 agent-turn 这条线仍然通过了,表格中仍然可以看到 v2026.5.22 的 CLI health 峰值。排查有针对性的 CLI 或网关回归时,请保留源探针。

安装体积审计

依赖样本使用每月一个稳定版,再加上 2026.5.22 的 shrinkwrap 引入事件,以及最新的 2026.5.28 版本。

Shrinkwrap 边界

2026.5.20 发布时没有根 shrinkwrap,也没有大型的嵌套 OpenClaw 依赖树。2026.5.22 引入了根 shrinkwrap,并在嵌套的 openclaw/node_modules 下安装了 911.8MB。2026.5.28 保持了 shrinkwrap,且仍然会在嵌套的 openclaw/node_modules 下安装 259.7MiB,但在本地 fresh-install 审计中不再安装任何 @napi-rs/canvas 包。 已发布 tarball 的检查验证了这个边界: 关键区别在于:问题并不在 shrinkwrap 本身v2026.5.28 仍然包含根 shrinkwrap。问题在于包的形态导致 npm 物化出一个很大的嵌套 OpenClaw 依赖树,以及全部 12 个 @napi-rs/canvas 平台包。v2026.5.28 中嵌套树更小了,而且 canvas 平台分发也 აღარ在本地审计中落地。 有关当前依赖审查和包策略,请参见 dependency locking

供应链解读

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