> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 发布性能全面检查

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

这里合并了两项审计：

* \*\*发布性能扫描：\*\*使用 `OpenClaw Performance` 工作流的 `profile=smoke` 模拟提供商通道，对从 `v2026.5.28` 向前追溯至稳定版 `v2026.4.23` 的 GitHub Releases 进行扫描。大多数标签行采用单次样本；`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="稳定版 Agent 轮次" icon="gauge">
    **冷启动轮次快 5.1 倍**

    * `v2026.4.14`：9.8s
    * `v2026.5.28`：1.9s
  </Card>

  <Card title="已发布包" icon="package">
    **17.9MB tarball**

    最新稳定版包，低于 3 月 43.3MB 的包大小峰值。
  </Card>

  <Card title="最新稳定版安装" icon="hard-drive">
    **全新安装占用 361.7MiB**

    与 `2026.5.22` 引入 shrinkwrap 时的峰值相比，嵌套 OpenClaw 依赖树显著缩小，但本地安装审计中仍有一棵较小的 259.7MiB 嵌套树。
  </Card>

  <Card title="依赖关系图" icon="boxes">
    **安装了 300 个包**

    在禁用脚本的全新安装中，以唯一的包名/版本根节点计量；比前一个稳定版少 71 个根节点。
  </Card>
</CardGroup>

## 5.28 中的变更

`v2026.5.27` 与 `v2026.5.28` 之间的清理缩减了默认安装依赖图，而非移除这些能力本身。

<CardGroup cols={2}>
  <Card title="根级默认依赖图" icon="git-branch">
    唯一的包名/版本根节点从 **371** 降至 **300**。包实例从 **372** 降至 **301**。
  </Card>

  <Card title="嵌套树" icon="unplug">
    在同一次本地安装审计中，嵌套 `openclaw/node_modules` 从 **656.1MiB** 降至 **259.7MiB**。
  </Card>

  <Card title="原生可选依赖锥" icon="cpu">
    全平台 `@napi-rs/canvas` 原生包依赖锥不再包含在默认安装中。
  </Card>

  <Card title="供应链暴露面" 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` |               差异 |
| ------------ | ------: | -----------: | ---------------: |
| Agent 冷启动轮次  | 9,819ms |      1,908ms | 降低 80.6%，快 5.1 倍 |
| Agent 热启动轮次  | 7,458ms |      1,870ms | 降低 74.9%，快 4.0 倍 |
| Agent 峰值 RSS | 686.2MB |      581.0MB |         降低 15.3% |

在 5 月扫描中，最新的发布分支行相较于 `v2026.5.2` 有了显著变化：

| 指标           | `v2026.5.2` | `v2026.5.28` |       差异 |
| ------------ | ----------: | -----------: | -------: |
| Agent 冷启动轮次  |     3,897ms |      1,908ms | 降低 51.0% |
| Agent 热启动轮次  |     3,610ms |      1,870ms | 降低 48.2% |
| Agent 峰值 RSS |     613.7MB |      581.0MB |  降低 5.3% |

与前一个稳定版相比：

| 指标           | `v2026.5.27` | `v2026.5.28` |       差异 |
| ------------ | -----------: | -----------: | -------: |
| Agent 冷启动轮次  |      2,231ms |      1,908ms | 降低 14.5% |
| Agent 热启动轮次  |      2,226ms |      1,870ms | 降低 16.0% |
| Agent 峰值 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 Agent 轮次摘要

4 月稳定版分支包含两个截然不同的阶段。4 月早期速度较慢，但仍属正常范围。4 月下旬则出现了断崖式回归。从 `v2026.5.2` 开始，模拟提供商通道首次降至 3-5s 范围，并开始在所提供的扫描中持续通过。

早期已发布背景：

| 版本           | Kova |    冷启动轮次 |    热启动轮次 | Agent 峰值 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 |    冷启动轮次 |    热启动轮次 | Agent 峰值 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 个成功的较早引用跳过了源码探针，因为当时这些源码树尚未包含所需的探针入口点。这些引用仍有 Agent 轮次指标。

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

| 版本                  | 默认 `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 |

尽管 Agent 轮次通道仍然通过，但此表中仍可看到 `v2026.5.22` 的 CLI 健康指标激增。排查特定 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，但在本地全新安装审计中不再安装
任何 `@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)
