---
read_when:
    - 你正在验证 2026 年 5 月的性能和包体积清理工作
    - 你需要 OpenClaw 性能和依赖项博客文章背后的数据。
    - 你正在更改发布门禁、软件包依赖锁定或插件依赖边界
summary: 2026 年 5 月性能、包体积、依赖项和 shrinkwrap 清理的可视化摘要与技术证据
title: 发布性能排查
x-i18n:
    generated_at: "2026-07-11T20:55:18Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 9e98ffc9d63e14e078a19368917eb4278695e1426048dc21942f928af145d5e1
    source_path: reference/release-performance-sweep.md
    workflow: 16
---

本页记录了 2026 年 5 月 OpenClaw 性能、软件包大小、依赖项和 shrinkwrap 清理工作的依据，是公开博客文章的技术配套文档。

这里合并了两项审计：

- **发布性能扫描：**分析从 `v2026.5.28` 回溯到稳定版 `v2026.4.23` 的 GitHub Releases，使用 `OpenClaw Performance` 工作流、`profile=smoke` 和模拟提供商通道。大多数标签行使用单次样本；`v2026.5.27` 和 `v2026.5.28` 行使用最新的重复 3 次发布分支产物。
- **更早的 4 月背景数据：**使用从 `v2026.4.1` 到 `v2026.5.2` 已发布的 `clawgrit-reports` 模拟提供商基线，仅用于避免将 4 月下旬存在问题的版本当作公开性能基线。
- **安装占用空间扫描：**在临时软件包中执行全新的 `npm install --ignore-scripts` 安装，使用 `du -sk node_modules` 测量大小，并遍历 `node_modules` 统计软件包实例数。
- **npm 软件包大小扫描：**对已发布版本执行 `npm pack openclaw@<version> --dry-run --json`，记录压缩 tarball 大小、解压后大小和文件数量。

<Warning>
主要性能扫描对每个标签使用一个冒烟测试样本，但 `v2026.5.27` 和 `v2026.5.28` 行使用最新的重复 3 次发布分支产物。更早的 4 月背景数据使用 `clawgrit-reports` 中已发布的重复 3 次中位数。应将这些数字视为趋势依据和回归排查信号，而不是发布门禁统计数据。
</Warning>

## 快照

性能覆盖范围：**请求了 77 个版本**、**74 个由产物支持的数据点**，以及 **3 次不可用的 CI 运行**。测得的最新稳定版本数据点：`v2026.5.28`。

<CardGroup cols={2}>
  <Card title="Stable agent turn" icon="gauge">
    **冷启动轮次速度提升 5.1 倍**

    - `v2026.4.14`：9.8 秒
    - `v2026.5.28`：1.9 秒

  </Card>
  <Card title="Published package" icon="package">
    **17.9MB tarball**

    最新稳定版软件包，低于 3 月 43.3MB 的软件包大小峰值。

  </Card>
  <Card title="Latest stable install" icon="hard-drive">
    **全新安装占用 361.7MiB**

    与引入 shrinkwrap 后的 `2026.5.22` 峰值相比，嵌套的 OpenClaw 依赖树大幅缩小，但在本地安装审计中仍保留了一个较小的 259.7MiB 嵌套依赖树。

  </Card>
  <Card title="Dependency graph" icon="boxes">
    **安装了 300 个软件包**

    统计方式是在禁用脚本的全新安装中计算唯一的软件包名称/版本根节点；比前一个稳定版本少 71 个根节点。

  </Card>
</CardGroup>

## 5.28 中的变更

`v2026.5.27` 到 `v2026.5.28` 之间的清理缩减了默认安装依赖图，而不是移除相应能力本身。

<CardGroup cols={2}>
  <Card title="Root default graph" icon="git-branch">
    唯一软件包名称/版本根节点从 **371** 个降至 **300** 个。软件包实例从 **372** 个降至 **301** 个。
  </Card>
  <Card title="Nested tree" icon="unplug">
    在同一次本地安装审计中，嵌套的 `openclaw/node_modules` 从 **656.1MiB** 降至 **259.7MiB**。
  </Card>
  <Card title="Native optional cones" icon="cpu">
    覆盖所有平台的 `@napi-rs/canvas` 原生软件包依赖锥不再进入默认安装。
  </Card>
  <Card title="Supply-chain surface" icon="shield">
    更少的默认软件包意味着默认情况下需要信任的 tarball、维护者、原生二进制文件、安装时行为和传递更新路径也更少。
  </Card>
</CardGroup>

<Tip>
shrinkwrap 本身并不是问题，问题在于不合理的软件包结构。`v2026.5.28` 仍然附带 shrinkwrap，但在本地审计中，其嵌套依赖树小得多，覆盖所有平台的 canvas 扇出也已消失。
</Tip>

## 关键数据

不要将 4 月下旬存在问题的行用作公开性能基线。`v2026.4.23` 和 `v2026.4.29` 可作为有价值的回归依据，但类似 `14x` 的巨大差异主要描述的是从一系列不良版本中恢复的幅度。

在博客叙述中，应使用更早发布的 4 月基线来体现量级。基线取自已发布的 `clawgrit-reports` 模拟提供商运行中的 `v2026.4.14`（重复 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 沙箱、Anthropic Vertex、Matrix 和 WhatsApp 已移出核心依赖路径，因此它们的依赖锥会随对应插件安装，而不再随每次核心安装一同安装。

## Kova 智能体轮次摘要

4 月稳定版本线包含两个不同阶段。4 月上旬虽然较慢，但仍处于可理解的范围；4 月下旬则跌入回归断崖。`v2026.5.2` 是模拟提供商通道首次降至 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 个成功的较旧引用，源码探针已跳过，因为这些源码树当时尚不具备所需的探针入口点。这些引用仍然有智能体轮次指标。

有代表性的源码探针数据点：

| 版本                | 默认 `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 或 Gateway 网关回归时，应保留源码探针。

## 安装占用空间审计

依赖项样本每月选取一个稳定版本，并额外包含引入 shrinkwrap 的 `2026.5.22` 事件版本和最新的 `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，但在本地全新安装
审计中不再安装任何 `@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 平台软件包的全平台扇出。

有关 shrinkwrap 的通俗说明和维护者级别的软件包检查，请参阅
[npm shrinkwrap](/zh-CN/gateway/security/shrinkwrap)。

## 供应链解读

依赖数量是一项运营安全指标，而不仅仅是安装大小指标。每个软件包都会扩大
运营者必须信任的维护者、tarball、传递性更新、可选原生二进制文件和安装时行为
的范围。

清理方向如下：

- 将重量级和可选能力保留在默认核心安装之外
- 让插件软件包负责自身的运行时依赖图
- 避免在 Gateway 网关启动期间进行运行时软件包管理器修复
- 在不导致所有平台的原生软件包全部具体化的前提下，保持确定性安装
- 在软件包验收和测量流程中禁用安装脚本
- 在发布前发现嵌套依赖树和原生可选依赖数量激增问题

相关文档：

- [插件依赖解析](/zh-CN/plugins/dependency-resolution)
- [插件清单](/zh-CN/plugins/plugin-inventory)
- [完整发布验证](/zh-CN/reference/full-release-validation)
