> ## 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 года в OpenClaw по производительности,
размеру пакета, зависимостям и shrinkwrap. Это техническое сопровождение
к публичной публикации в блоге.

Здесь объединены два аудита:

* **Проверка производительности релизов:** GitHub Releases от `v2026.5.28` назад до
  стабильного `v2026.4.23`, с использованием workflow `OpenClaw Performance`,
  `profile=smoke`, линия mock-provider. Большинство строк тегов содержит один образец; строки
  `v2026.5.27` и `v2026.5.28` используют последние артефакты release-branch
  с repeat-3.
* **Более ранний апрельский контекст:** опубликованные базовые показатели mock-provider из
  `clawgrit-reports` от `v2026.4.1` до `v2026.5.2`, используемые только чтобы не считать
  сломанные позднеапрельские релизы публичной базовой линией производительности.
* **Проверка размера установки:** свежие установки `npm install --ignore-scripts`
  во временные пакеты, с `du -sk node_modules` для размера и обходом
  `node_modules` для подсчета экземпляров пакетов.
* **Проверка размера npm-пакета:** `npm pack openclaw@<version> --dry-run --json`
  для опубликованных релизов, с записью размера сжатого tarball, размера после распаковки и
  количества файлов.

<Warning>
  Основная проверка производительности использует один smoke-образец на тег, кроме строк
  `v2026.5.27` и `v2026.5.28`, которые используют последние артефакты
  release-branch с repeat-3. Более ранний апрельский контекст использует опубликованные медианы
  repeat-3 из `clawgrit-reports`. Рассматривайте эти числа как свидетельство тренда и
  сигнал для поиска регрессий, а не как статистику release-gate.
</Warning>

## Снимок состояния

Покрытие производительности: **77 запрошенных релизов**, **74 точки, подтвержденные артефактами**,
и **3 недоступных запуска CI**. Последняя измеренная точка стабильного релиза: `v2026.5.28`.

<CardGroup cols={2}>
  <Card title="Stable agent turn" icon="gauge">
    **Холодный ход быстрее в 5,1 раза**

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

  <Card title="Published package" icon="package">
    **Tarball 17,9MB**

    Последний стабильный пакет, меньше мартовского пика размера пакета в 43,3MB.
  </Card>

  <Card title="Latest stable install" icon="hard-drive">
    **Свежая установка 361,7MiB**

    `v2026.5.28` резко сокращает вложенное дерево зависимостей OpenClaw, но
    в локальном аудите установки все еще остается меньшее вложенное дерево размером 259,7MiB.
  </Card>

  <Card title="Dependency graph" icon="boxes">
    **300 установленных пакетов**

    Последний стабильный релиз, измеренный как уникальные корни имени/версии пакета в
    свежей установке с отключенными скриптами.
  </Card>
</CardGroup>

## Хронология размера установки

<CardGroup cols={2}>
  <Card title="Monthly high" icon="triangle-alert">
    **645 зависимостей**

    `2026.2.26` был месячным максимумом по количеству зависимостей в этой выборке.
  </Card>

  <Card title="Shrinkwrap introduced" icon="lock">
    **Установка 1 020,6MB**

    `2026.5.22` добавил корневой shrinkwrap и выявил проблему формы пакета:
    911,8MB оказались во вложенном `openclaw/node_modules`.
  </Card>

  <Card title="Latest stable" icon="tag">
    **Установка 361,7MiB**

    `2026.5.28` сокращает размер свежей установки на 52,8% по сравнению с `2026.5.27`, но все еще
    устанавливает вложенное дерево OpenClaw размером 259,7MiB.
  </Card>

  <Card title="Dependency graph" icon="scissors">
    **300 корней пакетов**

    `2026.5.28` устанавливает на 71 уникальный корень имени/версии пакета меньше, чем
    `2026.5.27`.
  </Card>
</CardGroup>

<Tip>
  Shrinkwrap сам по себе не был проблемой. Проблемой была плохая форма пакета.
  `v2026.5.28` все еще поставляется со shrinkwrap, но вложенное дерево зависимостей стало намного
  меньше, а разрастание canvas на все платформы исчезло в локальном аудите.
</Tip>

## Что Изменилось В 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>

## Главные Числа

Не используйте сломанные строки конца апреля как публичные базовые показатели производительности.
`v2026.4.23` и `v2026.4.29` полезны как свидетельство регрессии, но большие
дельты в стиле `14x` в основном описывают восстановление после неудачной линейки релизов.

Для повествования в блоге используйте более ранний опубликованный апрельский базовый показатель как масштаб:

| Метрика             | Более ранний апрельский базовый показатель | `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% ниже |

Более ранний апрельский базовый показатель — это `v2026.4.14` из опубликованного
запуска mock-provider `clawgrit-reports`. В этом запуске использовалось повторение 3, и он завершился ошибкой только
потому, что диагностическая временная шкала не была выведена; медианы cold, warm и RSS
по-прежнему полезны как приблизительный масштаб. Рассматривайте это как контекст повествования, а не как
статистику релизного барьера.

Внутри майской зачистки последняя строка release-ветки заметно сдвинулась относительно
`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% ниже |
| Вложенный `openclaw/node_modules` от `2026.5.22`  |            911.8MB |     259.7MiB | на 71.5% ниже |
| Вложенный `openclaw/node_modules` от `2026.5.27`  |           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 | docs/assets исключены из пакета    |
| `2026.5.27` |         17.8MB |              79.0MB | 12,509 | предыдущий стабильный пакет        |
| `2026.5.28` |         17.9MB |              81.0MB |  9,082 | последний стабильный пакет         |

`2026.5.12` — заметная в changelog веха извлечения плагинов:
Amazon Bedrock, Bedrock Mantle, Slack, песочница OpenShell, Anthropic Vertex,
Matrix и WhatsApp были вынесены из пути зависимостей ядра, чтобы их конусы зависимостей
устанавливались вместе с этими плагинами, а не при каждой установке ядра.

## Сводка хода агента Kova

Апрельская стабильная линейка содержит две разные истории. Ранний апрель был медленным,
но узнаваемым. Конец апреля стал обрывом регрессии. `v2026.5.2` — точка, где
линия mock-provider впервые опускается в диапазон 3-5s и начинает стабильно проходить
в предоставленной зачистке.

Более ранний опубликованный контекст:

| Релиз        | 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 успешных старых refs, потому что в этих деревьях исходного кода
еще не было требуемых точек входа проб. Метрики хода агента для этих refs все равно
существуют.

Репрезентативные точки проб исходного кода:

| Релиз               | `readyz` p50 по умолчанию | `readyz` p50 с 50 плагинами | p50 состояния CLI | Максимальный RSS Plugin |
| ------------------- | ------------------------: | --------------------------: | ----------------: | ----------------------: |
| `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 |

Пик состояния CLI в `v2026.5.22` виден в этой таблице, хотя дорожка
agent-turn все еще проходила. Сохраняйте исходные пробы при расследовании
целевых регрессий CLI или Gateway.

## Аудит установочного footprint

Выборки зависимостей используют по одному стабильному выпуску за месяц, а также
событие введения shrinkwrap в `2026.5.22` и последний выпуск `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`   |
| Апр `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` |
| Май `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

<CardGroup cols={2}>
  <Card title="До shrinkwrap" icon="unlock">
    В `2026.5.20` нет корневого shrinkwrap и нет большого вложенного дерева
    зависимостей OpenClaw.
  </Card>

  <Card title="Введено" icon="lock">
    `2026.5.22` добавляет корневой shrinkwrap и устанавливает 911.8MB во
    вложенный `openclaw/node_modules`.
  </Card>

  <Card title="Последняя стабильная версия" icon="tag">
    `2026.5.28` сохраняет shrinkwrap и по-прежнему устанавливает 259.7MiB во
    вложенный `openclaw/node_modules`.
  </Card>

  <Card title="Разрастание Canvas исправлено" icon="check">
    `2026.5.28` больше не устанавливает пакеты `@napi-rs/canvas` в локальном
    аудите свежей установки.
  </Card>
</CardGroup>

Проверка опубликованного tarball подтверждает границу:

| Версия      | Стабильно опубликована? | Корневой `npm-shrinkwrap.json` | Примечания                                         |
| ----------- | ----------------------- | ------------------------------ | -------------------------------------------------- |
| `2026.5.20` | да                      | нет                            | последний стабильный выпуск перед shrinkwrap       |
| `2026.5.21` | нет                     | n/a                            | нет стабильного npm-выпуска                        |
| `2026.5.22` | да                      | да                             | shrinkwrap введен                                  |
| `2026.5.23` | нет                     | n/a                            | нет стабильного npm-выпуска                        |
| `2026.5.24` | нет                     | n/a                            | нет стабильного npm-выпуска                        |
| `2026.5.25` | нет                     | n/a                            | нет стабильного 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](/ru/gateway/security/shrinkwrap).

## Интерпретация цепочки поставки

Количество зависимостей — это операционная метрика безопасности, а не только
метрика размера установки. Каждый пакет расширяет набор сопровождающих, tarball,
транзитивных обновлений, необязательных нативных бинарных файлов и поведения во
время установки, которым операторы должны доверять.

Направление очистки:

* держать тяжелые и необязательные возможности вне стандартной установки ядра
* чтобы пакеты Plugin владели своим графом runtime-зависимостей
* избегать runtime-исправления менеджером пакетов во время запуска Gateway
* сохранять детерминированные установки без материализации нативных пакетов для всех платформ
* держать установочные скрипты отключенными в путях приемки пакетов и измерений
* выявлять вложенные деревья зависимостей и взрывной рост нативных необязательных зависимостей до публикации

Связанные документы:

* [Разрешение зависимостей Plugin](/ru/plugins/dependency-resolution)
* [Инвентаризация Plugin](/ru/plugins/plugin-inventory)
* [Полная валидация релиза](/ru/reference/full-release-validation)
