Перейти к основному содержанию
Эта страница фиксирует доказательства, лежащие в основе майской очистки 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, размера после распаковки и количества файлов.
Основная проверка производительности использует один smoke-образец на тег, кроме строк v2026.5.27 и v2026.5.28, которые используют последние артефакты release-branch с repeat-3. Более ранний апрельский контекст использует опубликованные медианы repeat-3 из clawgrit-reports. Рассматривайте эти числа как свидетельство тренда и сигнал для поиска регрессий, а не как статистику release-gate.

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

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

Stable agent turn

Холодный ход быстрее в 5,1 раза
  • v2026.4.14: 9.8s
  • v2026.5.28: 1.9s

Published package

Tarball 17,9MBПоследний стабильный пакет, меньше мартовского пика размера пакета в 43,3MB.

Latest stable install

Свежая установка 361,7MiBv2026.5.28 резко сокращает вложенное дерево зависимостей OpenClaw, но в локальном аудите установки все еще остается меньшее вложенное дерево размером 259,7MiB.

Dependency graph

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

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

Monthly high

645 зависимостей2026.2.26 был месячным максимумом по количеству зависимостей в этой выборке.

Shrinkwrap introduced

Установка 1 020,6MB2026.5.22 добавил корневой shrinkwrap и выявил проблему формы пакета: 911,8MB оказались во вложенном openclaw/node_modules.

Latest stable

Установка 361,7MiB2026.5.28 сокращает размер свежей установки на 52,8% по сравнению с 2026.5.27, но все еще устанавливает вложенное дерево OpenClaw размером 259,7MiB.

Dependency graph

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

Что Изменилось В 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,819ms1,908msна 80.6% ниже, в 5.1 раза быстрее
Теплый ход агента7,458ms1,870msна 74.9% ниже, в 4.0 раза быстрее
Пиковый RSS агента686.2MB581.0MBна 15.3% ниже
Более ранний апрельский базовый показатель — это v2026.4.14 из опубликованного запуска mock-provider clawgrit-reports. В этом запуске использовалось повторение 3, и он завершился ошибкой только потому, что диагностическая временная шкала не была выведена; медианы cold, warm и RSS по-прежнему полезны как приблизительный масштаб. Рассматривайте это как контекст повествования, а не как статистику релизного барьера. Внутри майской зачистки последняя строка release-ветки заметно сдвинулась относительно v2026.5.2:
Метрикаv2026.5.2v2026.5.28Дельта
Холодный ход агента3,897ms1,908msна 51.0% ниже
Теплый ход агента3,610ms1,870msна 48.2% ниже
Пиковый RSS агента613.7MB581.0MBна 5.3% ниже
По сравнению с предыдущим стабильным релизом:
Метрикаv2026.5.27v2026.5.28Дельта
Холодный ход агента2,231ms1,908msна 14.5% ниже
Теплый ход агента2,226ms1,870msна 16.0% ниже
Пиковый RSS агента649.0MB581.0MBна 10.5% ниже

Размер установки

МетрикаБазовый показательv2026.5.28Дельта
Размер установки от пика 2026.5.221,020.6MB361.7MiBна 64.6% ниже
Размер установки от последнего релиза 2026.5.27767.1MiB361.7MiBна 52.8% ниже
Зависимости от месячного максимума 2026.2.26645300на 53.5% ниже
Зависимости от последнего релиза 2026.5.27371300на 19.1% ниже
Вложенный openclaw/node_modules от 2026.5.22911.8MB259.7MiBна 71.5% ниже
Вложенный openclaw/node_modules от 2026.5.27656.1MiB259.7MiBна 60.4% ниже

Размер npm-пакета

ВерсияСжатый tarballРаспакованный пакетФайлыПримечания
2026.1.3012.8MB33.5MB4,607ранний пакет после ребрендинга
2026.2.2623.6MB82.9MB10,125рост возможностей
2026.3.3143.3MB182.6MB21,037максимум размера пакета
2026.4.2922.9MB74.6MB9,309заметная обрезка пакета
2026.5.1223.4MB80.1MB12,035крупное выделение внешних плагинов
2026.5.2217.2MB76.9MB12,386docs/assets исключены из пакета
2026.5.2717.8MB79.0MB12,509предыдущий стабильный пакет
2026.5.2817.9MB81.0MB9,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,031ms7,962ms679.0MB
v2026.4.12СБОЙ11,965ms8,289ms713.5MB
v2026.4.14СБОЙ9,819ms7,458ms686.2MB
v2026.4.20СБОЙ22,314ms18,811ms810.8MB
v2026.4.22СБОЙ9,630ms7,459ms743.0MB
Предоставленная зачистка:
РелизKovaХолодный ходТеплый ходПиковый RSS агента
v2026.4.23СБОЙ47,847ms8,010ms1,082.7MB
v2026.4.24СБОЙ48,264ms25,483ms996.0MB
v2026.4.25СБОЙ81,080ms59,172ms1,113.9MB
v2026.4.26СБОЙ76,771ms54,941ms1,140.8MB
v2026.4.27СБОЙ60,902ms33,699ms1,156.0MB
v2026.4.29СБОЙ94,031ms57,334ms3,613.7MB
v2026.5.2ПРОЙДЕНО3,897ms3,610ms613.7MB
v2026.5.7ПРОЙДЕНО3,923ms3,693ms654.1MB
v2026.5.12ПРОЙДЕНО7,248ms6,629ms834.8MB
v2026.5.18ПРОЙДЕНО3,301ms2,913ms630.3MB
v2026.5.20ПРОЙДЕНО3,413ms2,952ms643.2MB
v2026.5.22ПРОЙДЕНО4,494ms4,093ms654.3MB
v2026.5.26ПРОЙДЕНО2,626ms2,282ms660.4MB
v2026.5.27-beta.1ПРОЙДЕНО2,575ms2,217ms635.3MB
v2026.5.27ПРОЙДЕНО2,231ms2,226ms649.0MB
v2026.5.28ПРОЙДЕНО1,908ms1,870ms581.0MB

Пробы исходного кода

Пробы исходного кода были пропущены для 17 успешных старых refs, потому что в этих деревьях исходного кода еще не было требуемых точек входа проб. Метрики хода агента для этих refs все равно существуют. Репрезентативные точки проб исходного кода:
Релизreadyz p50 по умолчаниюreadyz p50 с 50 плагинамиp50 состояния CLIМаксимальный RSS Plugin
v2026.4.292,819ms2,618ms1,679ms389.0MB
v2026.5.22,324ms2,013ms1,384ms377.2MB
v2026.5.71,649ms1,540ms1,175ms387.6MB
v2026.5.181,942ms1,927ms607ms426.5MB
v2026.5.201,966ms1,987ms621ms455.0MB
v2026.5.222,081ms1,884ms5,095ms444.2MB
v2026.5.261,546ms1,634ms656ms400.4MB
v2026.5.27-beta.11,462ms1,548ms548ms394.0MB
v2026.5.271,491ms1,571ms553ms401.5MB
v2026.5.281,457ms1,474ms623ms386.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.30605438.4MB45.8MB2.4MBнетобертка верхнего уровня + darwin-arm64
Фев 2026.2.26645575.7MB110.1MB3.5MBнетобертка верхнего уровня + darwin-arm64
Мар 2026.3.31438584.1MB234.8MB0MBнетобертка верхнего уровня + darwin-arm64
Апр 2026.4.29392335.0MB97.4MB0MBнетничего не установлено
2026.5.224011,020.6MB1,020.4MB911.8MBдавложенно: все 12 пакетов @napi-rs/canvas
Май 2026.5.26371767.5MB767.4MB656.4MBдавложенно: все 12 пакетов @napi-rs/canvas
2026.5.27371767.1MiB766.9MiB656.1MiBдавложенно: все 12 пакетов @napi-rs/canvas
Последний 2026.5.28300361.7MiB361.6MiB259.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 в локальном аудите свежей установки.
Проверка опубликованного 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.

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

Количество зависимостей — это операционная метрика безопасности, а не только метрика размера установки. Каждый пакет расширяет набор сопровождающих, tarball, транзитивных обновлений, необязательных нативных бинарных файлов и поведения во время установки, которым операторы должны доверять. Направление очистки:
  • держать тяжелые и необязательные возможности вне стандартной установки ядра
  • чтобы пакеты Plugin владели своим графом runtime-зависимостей
  • избегать runtime-исправления менеджером пакетов во время запуска Gateway
  • сохранять детерминированные установки без материализации нативных пакетов для всех платформ
  • держать установочные скрипты отключенными в путях приемки пакетов и измерений
  • выявлять вложенные деревья зависимостей и взрывной рост нативных необязательных зависимостей до публикации
Связанные документы: