Release and CI
Проверка производительности релиза
Эта страница содержит подтверждающие данные об оптимизации производительности, размера пакета и зависимостей OpenClaw, а также очистке shrinkwrap в мае 2026 года. Это техническое дополнение к публичной публикации в блоге.
Здесь объединены два аудита:
- Проверка производительности релизов: GitHub Releases от
v2026.5.28до стабильногоv2026.4.23включительно с использованием рабочего процессаOpenClaw Performance,profile=smoke, контура фиктивного провайдера. Большинство строк тегов основаны на одном замере; строкиv2026.5.27иv2026.5.28используют последние артефакты ветки релиза с 3 повторениями. - Контекст начала апреля: опубликованные базовые показатели фиктивного провайдера
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для опубликованных релизов с фиксацией размера сжатого архива, размера после распаковки и количества файлов.
Сводка
Охват производительности: 77 запрошенных релизов, 74 точки на основе артефактов
и 3 недоступных запуска CI. Последняя измеренная точка стабильного релиза: v2026.5.28.
Холодный цикл быстрее в 5,1 раза
v2026.4.14: 9,8 сv2026.5.28: 1,9 с
Архив размером 17,9 МБ
Последний стабильный пакет: размер снизился с мартовского пикового значения 43,3 МБ.
Чистая установка размером 361,7 МиБ
Вложенное дерево зависимостей OpenClaw значительно сокращено относительно пикового значения
при внедрении shrinkwrap в 2026.5.22, хотя в локальном аудите установки
всё ещё остаётся уменьшенное вложенное дерево размером 259,7 МиБ.
300 установленных пакетов
Измерено как количество уникальных корней «имя/версия» пакетов в чистой установке с отключёнными скриптами; на 71 корень меньше, чем в предыдущем стабильном релизе.
Что изменилось в 5.28
Оптимизация между v2026.5.27 и v2026.5.28 уменьшила граф установки
по умолчанию, не удаляя сами возможности.
Количество уникальных корней «имя/версия» пакетов снизилось с 371 до 300. Количество экземпляров пакетов снизилось с 372 до 301.
Размер вложенного openclaw/node_modules снизился с 656,1 МиБ до 259,7 МиБ в
том же локальном аудите установки.
Нативный конус пакетов @napi-rs/canvas для всех платформ перестал попадать в
установку по умолчанию.
Меньше пакетов по умолчанию означает меньше архивов, сопровождающих, нативных бинарных файлов, действий во время установки и путей транзитивного обновления, которым необходимо доверять по умолчанию.
Основные показатели
Не используйте проблемные строки конца апреля как публичные базовые показатели производительности.
v2026.4.23 и v2026.4.29 полезны как подтверждение регрессии, но крупные
изменения уровня 14x в основном отражают восстановление после неудачной линейки релизов.
Для повествования в блоге используйте опубликованную базовую линию начала апреля как ориентир масштаба.
Базовая линия — v2026.4.14 из опубликованного запуска фиктивного провайдера
clawgrit-reports (3 повторения; этот запуск завершился сбоем только потому, что диагностическая
временная шкала не была выведена, поэтому медианы холодного и прогретого циклов, а также RSS всё ещё полезны
как приблизительный ориентир). Рассматривайте это как контекст для повествования, а не как статистику
для критериев выпуска.
| Метрика | Базовая линия начала апреля | v2026.5.28 |
Изменение |
|---|---|---|---|
| Холодный цикл агента | 9 819 мс | 1 908 мс | ниже на 80,6%, быстрее в 5,1 раза |
| Прогретый цикл агента | 7 458 мс | 1 870 мс | ниже на 74,9%, быстрее в 4,0 раза |
| Пиковый RSS агента | 686,2 МБ | 581,0 МБ | ниже на 15,3% |
В рамках майской проверки последняя строка ветки релиза существенно улучшилась относительно
v2026.5.2:
| Метрика | v2026.5.2 |
v2026.5.28 |
Изменение |
|---|---|---|---|
| Холодный цикл агента | 3 897 мс | 1 908 мс | ниже на 51,0% |
| Прогретый цикл агента | 3 610 мс | 1 870 мс | ниже на 48,2% |
| Пиковый RSS агента | 613,7 МБ | 581,0 МБ | ниже на 5,3% |
По сравнению с предыдущим стабильным релизом:
| Метрика | v2026.5.27 |
v2026.5.28 |
Изменение |
|---|---|---|---|
| Холодный цикл агента | 2 231 мс | 1 908 мс | ниже на 14,5% |
| Прогретый цикл агента | 2 226 мс | 1 870 мс | ниже на 16,0% |
| Пиковый RSS агента | 649,0 МБ | 581,0 МБ | ниже на 10,5% |
Размер установки
| Метрика | Базовая линия | v2026.5.28 |
Изменение |
|---|---|---|---|
Размер установки относительно пика 2026.5.22 |
1 020,6 МБ | 361,7 МиБ | ниже на 64,6% |
Размер установки относительно последнего релиза 2026.5.27 |
767,1 МиБ | 361,7 МиБ | ниже на 52,8% |
Зависимости относительно месячного максимума 2026.2.26 |
645 | 300 | ниже на 53,5% |
Зависимости относительно последнего релиза 2026.5.27 |
371 | 300 | ниже на 19,1% |
Вложенный openclaw/node_modules относительно 2026.5.22 |
911,8 МБ | 259,7 МиБ | ниже на 71,5% |
Вложенный openclaw/node_modules относительно 2026.5.27 |
656,1 МиБ | 259,7 МиБ | ниже на 60,4% |
Размер пакета npm
| Версия | Сжатый архив | Распакованный пакет | Файлы | Примечания |
|---|---|---|---|---|
2026.1.30 |
12,8 МБ | 33,5 МБ | 4 607 | ранний пакет после ребрендинга |
2026.2.26 |
23,6 МБ | 82,9 МБ | 10 125 | рост функциональности |
2026.3.31 |
43,3 МБ | 182,6 МБ | 21 037 | максимальный размер пакета |
2026.4.29 |
22,9 МБ | 74,6 МБ | 9 309 | заметное сокращение пакета |
2026.5.12 |
23,4 МБ | 80,1 МБ | 12 035 | масштабное выделение внешних плагинов |
2026.5.22 |
17,2 МБ | 76,9 МБ | 12 386 | документация и ресурсы исключены из пакета |
2026.5.27 |
17,8 МБ | 79,0 МБ | 12 509 | предыдущий стабильный пакет |
2026.5.28 |
17,9 МБ | 81,0 МБ | 9 082 | последний стабильный пакет |
2026.5.12 — заметная в журнале изменений веха выделения плагинов:
Amazon Bedrock, Bedrock Mantle, Slack, песочница OpenShell, Anthropic Vertex,
Matrix и WhatsApp были вынесены из основного пути зависимостей, поэтому их конусы зависимостей
устанавливаются вместе с соответствующими плагинами, а не при каждой основной установке.
Сводка циклов агента Kova
В стабильной апрельской линейке есть две разные истории. В начале апреля работа была медленной,
но предсказуемой. Конец апреля превратился в резкий обвал производительности. В v2026.5.2
контур фиктивного провайдера впервые опускается в диапазон 3–5 с и начинает стабильно
проходить в предоставленной проверке.
Ранее опубликованный контекст:
| Релиз | Kova | Холодный цикл | Прогретый цикл | Пиковый RSS агента |
|---|---|---|---|---|
v2026.4.10 |
СБОЙ | 11 031 мс | 7 962 мс | 679,0 МБ |
v2026.4.12 |
СБОЙ | 11 965 мс | 8 289 мс | 713,5 МБ |
v2026.4.14 |
СБОЙ | 9 819 мс | 7 458 мс | 686,2 МБ |
v2026.4.20 |
СБОЙ | 22 314 мс | 18 811 мс | 810,8 МБ |
v2026.4.22 |
СБОЙ | 9 630 мс | 7 459 мс | 743,0 МБ |
Предоставленная проверка:
| Релиз | Kova | Холодный цикл | Прогретый цикл | Пиковый RSS агента |
|---|---|---|---|---|
v2026.4.23 |
СБОЙ | 47 847 мс | 8 010 мс | 1 082,7 МБ |
v2026.4.24 |
СБОЙ | 48 264 мс | 25 483 мс | 996,0 МБ |
v2026.4.25 |
СБОЙ | 81 080 мс | 59 172 мс | 1 113,9 МБ |
v2026.4.26 |
СБОЙ | 76 771 мс | 54 941 мс | 1 140,8 МБ |
v2026.4.27 |
СБОЙ | 60 902 мс | 33 699 мс | 1 156,0 МБ |
v2026.4.29 |
СБОЙ | 94 031 мс | 57 334 мс | 3 613,7 МБ |
v2026.5.2 |
УСПЕХ | 3 897 мс | 3 610 мс | 613,7 МБ |
v2026.5.7 |
УСПЕХ | 3 923 мс | 3 693 мс | 654,1 МБ |
v2026.5.12 |
УСПЕХ | 7 248 мс | 6 629 мс | 834,8 МБ |
v2026.5.18 |
УСПЕХ | 3 301 мс | 2 913 мс | 630,3 МБ |
v2026.5.20 |
УСПЕХ | 3 413 мс | 2 952 мс | 643,2 МБ |
v2026.5.22 |
УСПЕХ | 4 494 мс | 4 093 мс | 654,3 МБ |
v2026.5.26 |
УСПЕХ | 2 626 мс | 2 282 мс | 660,4 МБ |
v2026.5.27-beta.1 |
УСПЕХ | 2 575 мс | 2 217 мс | 635,3 МБ |
v2026.5.27 |
УСПЕХ | 2 231 мс | 2 226 мс | 649,0 МБ |
v2026.5.28 |
УСПЕХ | 1 908 мс | 1 870 мс | 581,0 МБ |
Измерения исходного кода
Измерения исходного кода были пропущены для 17 успешно проверенных старых ссылок, поскольку в этих деревьях исходного кода ещё не было необходимых точек входа для измерений. Метрики циклов агента для этих ссылок всё же доступны.
Репрезентативные точки измерений исходного кода:
| Релиз | readyz по умолчанию, p50 |
50 плагинов, readyz p50 |
Работоспособность CLI, p50 | Макс. RSS плагина |
|---|---|---|---|---|
v2026.4.29 |
2 819 мс | 2 618 мс | 1 679 мс | 389,0 МБ |
v2026.5.2 |
2 324 мс | 2 013 мс | 1 384 мс | 377,2 МБ |
v2026.5.7 |
1 649 мс | 1 540 мс | 1 175 мс | 387,6 МБ |
v2026.5.18 |
1 942 мс | 1 927 мс | 607 мс | 426,5 МБ |
v2026.5.20 |
1 966 мс | 1 987 мс | 621 мс | 455,0 МБ |
v2026.5.22 |
2 081 мс | 1 884 мс | 5 095 мс | 444,2 МБ |
v2026.5.26 |
1 546 мс | 1 634 мс | 656 мс | 400,4 МБ |
v2026.5.27-beta.1 |
1 462 мс | 1 548 мс | 548 мс | 394,0 МБ |
v2026.5.27 |
1 491 мс | 1 571 мс | 553 мс | 401,5 МБ |
v2026.5.28 |
1 457 мс | 1 474 мс | 623 мс | 386,1 МБ |
Всплеск работоспособности CLI в v2026.5.22 виден в этой таблице, хотя
контур циклов агента всё же прошёл проверку. Сохраняйте измерения исходного кода при расследовании
точечных регрессий CLI или Gateway.
Аудит размера установки
В выборке зависимостей используется один стабильный выпуск за каждый месяц, а также
событие добавления 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
2026.5.20 был выпущен без корневого shrinkwrap и без большого вложенного дерева
зависимостей OpenClaw. В 2026.5.22 появился корневой shrinkwrap, и было установлено 911.8MB
во вложенных openclaw/node_modules. В 2026.5.28 shrinkwrap сохраняется, и по-прежнему
устанавливается 259.7MiB во вложенных openclaw/node_modules, но при локальном аудите
новой установки больше не устанавливаются пакеты @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.
Интерпретация с точки зрения цепочки поставок
Количество зависимостей — это показатель операционной безопасности, а не только размера установки. Каждый пакет расширяет множество сопровождающих, tarball, транзитивных обновлений, необязательных нативных двоичных файлов и действий во время установки, которым должны доверять операторы.
Направление очистки:
- не включать тяжёлые и необязательные возможности в стандартную установку ядра
- передать пакетам плагинов владение их графом зависимостей среды выполнения
- избегать исправления пакетов менеджером пакетов во время запуска Gateway
- сохранять детерминированность установки, не вызывая материализацию нативных пакетов для всех платформ
- оставлять сценарии установки отключёнными при приёмке пакетов и измерениях
- выявлять вложенные деревья зависимостей и взрывной рост необязательных нативных зависимостей до публикации
Связанная документация: