- Проверка производительности релизов: GitHub Releases от
v2026.5.28назад до стабильногоv2026.4.23, с использованием workflowOpenClaw 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, размера после распаковки и количества файлов.
Снимок состояния
Покрытие производительности: 77 запрошенных релизов, 74 точки, подтвержденные артефактами, и 3 недоступных запуска CI. Последняя измеренная точка стабильного релиза:v2026.5.28.
Stable agent turn
Холодный ход быстрее в 5,1 раза
v2026.4.14: 9.8sv2026.5.28: 1.9s
Published package
Tarball 17,9MBПоследний стабильный пакет, меньше мартовского пика размера пакета в 43,3MB.
Latest stable install
Свежая установка 361,7MiB
v2026.5.28 резко сокращает вложенное дерево зависимостей OpenClaw, но
в локальном аудите установки все еще остается меньшее вложенное дерево размером 259,7MiB.Dependency graph
300 установленных пакетовПоследний стабильный релиз, измеренный как уникальные корни имени/версии пакета в
свежей установке с отключенными скриптами.
Хронология размера установки
Monthly high
645 зависимостей
2026.2.26 был месячным максимумом по количеству зависимостей в этой выборке.Shrinkwrap introduced
Установка 1 020,6MB
2026.5.22 добавил корневой shrinkwrap и выявил проблему формы пакета:
911,8MB оказались во вложенном openclaw/node_modules.Latest stable
Установка 361,7MiB
2026.5.28 сокращает размер свежей установки на 52,8% по сравнению с 2026.5.27, но все еще
устанавливает вложенное дерево OpenClaw размером 259,7MiB.Dependency graph
300 корней пакетов
2026.5.28 устанавливает на 71 уникальный корень имени/версии пакета меньше, чем
2026.5.27.Что Изменилось В 5.28
Очистка междуv2026.5.27 и v2026.5.28 уменьшила граф установки по умолчанию,
а не удалила сами возможности.
Корневой граф по умолчанию
Количество уникальных корней имя/версия пакета снизилось с 371 до 300. Количество
экземпляров пакетов снизилось с 372 до 301.
Вложенное дерево
Вложенный
openclaw/node_modules уменьшился с 656.1MiB до 259.7MiB в
той же локальной проверке установки.Нативные необязательные конусы
Общеплатформенный конус нативных пакетов
@napi-rs/canvas перестал попадать в
установку по умолчанию.Поверхность цепочки поставок
Меньше пакетов по умолчанию означает меньше tarball-архивов, сопровождающих, нативных бинарных файлов,
поведения во время установки и транзитивных путей обновления, которым нужно доверять по умолчанию.
Главные Числа
Не используйте сломанные строки конца апреля как публичные базовые показатели производительности.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 |
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
До shrinkwrap
В
2026.5.20 нет корневого shrinkwrap и нет большого вложенного дерева
зависимостей OpenClaw.Введено
2026.5.22 добавляет корневой shrinkwrap и устанавливает 911.8MB во
вложенный openclaw/node_modules.Последняя стабильная версия
2026.5.28 сохраняет shrinkwrap и по-прежнему устанавливает 259.7MiB во
вложенный openclaw/node_modules.Разрастание Canvas исправлено
2026.5.28 больше не устанавливает пакеты @napi-rs/canvas в локальном
аудите свежей установки.| Версия | Стабильно опубликована? | Корневой 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 | да | да | вложенное дерево зависимостей стало намного меньше |
v2026.5.28 все еще поставляется с корневым shrinkwrap. Проблемой была форма
пакета, из-за которой npm материализовал большое вложенное дерево зависимостей
OpenClaw и все 12 платформенных пакетов @napi-rs/canvas. Во v2026.5.28
вложенное дерево меньше, а платформенное разрастание canvas больше не попадает
в локальный аудит.
Простое объяснение shrinkwrap и проверок пакетов на уровне сопровождающих см. в
npm shrinkwrap.
Интерпретация цепочки поставки
Количество зависимостей — это операционная метрика безопасности, а не только метрика размера установки. Каждый пакет расширяет набор сопровождающих, tarball, транзитивных обновлений, необязательных нативных бинарных файлов и поведения во время установки, которым операторы должны доверять. Направление очистки:- держать тяжелые и необязательные возможности вне стандартной установки ядра
- чтобы пакеты Plugin владели своим графом runtime-зависимостей
- избегать runtime-исправления менеджером пакетов во время запуска Gateway
- сохранять детерминированные установки без материализации нативных пакетов для всех платформ
- держать установочные скрипты отключенными в путях приемки пакетов и измерений
- выявлять вложенные деревья зависимостей и взрывной рост нативных необязательных зависимостей до публикации