Passer au contenu principal
Cette page rassemble les preuves derrière le nettoyage de mai 2026 d’OpenClaw concernant les performances, la taille des paquets, les dépendances et le shrinkwrap. Elle est le complément technique de l’article de blog public. Deux audits sont combinés ici :
  • Balayage des performances de publication : les GitHub Releases de v2026.5.28 en remontant jusqu’à la version stable v2026.4.23, avec le workflow OpenClaw Performance, profile=smoke, voie mock-provider. La plupart des lignes de tags correspondent à un seul échantillon ; les lignes v2026.5.27 et v2026.5.28 utilisent les derniers artefacts repeat-3 de la branche de publication.
  • Contexte antérieur d’avril : lignes de base mock-provider publiées dans clawgrit-reports, de v2026.4.1 à v2026.5.2, utilisées uniquement pour éviter de traiter les publications défaillantes de fin avril comme la ligne de base publique des performances.
  • Balayage de l’empreinte d’installation : installations fraîches avec npm install --ignore-scripts dans des paquets temporaires, avec du -sk node_modules pour la taille et un parcours de node_modules pour compter les instances de paquets.
  • Balayage de la taille du paquet npm : npm pack openclaw@<version> --dry-run --json pour les publications publiées, en enregistrant la taille compressée de l’archive tar, la taille décompressée et le nombre de fichiers.
Le principal balayage des performances utilise un échantillon smoke par tag, sauf les lignes v2026.5.27 et v2026.5.28, qui utilisent les derniers artefacts repeat-3 de la branche de publication. Le contexte antérieur d’avril utilise les médianes repeat-3 publiées dans clawgrit-reports. Considérez ces chiffres comme des preuves de tendance et un signal de recherche de régressions, et non comme des statistiques de seuil de publication.

Instantané

Couverture des performances : 77 publications demandées, 74 points appuyés par des artefacts, et 3 exécutions CI indisponibles. Dernier point stable mesuré : v2026.5.28.

Stable agent turn

Tour agent à froid 5,1 fois plus rapide
  • v2026.4.14 : 9,8 s
  • v2026.5.28 : 1,9 s

Published package

Archive tar de 17,9 MoDernier paquet stable, en baisse par rapport au pic de taille de paquet de mars, à 43,3 Mo.

Latest stable install

Installation fraîche de 361,7 Miov2026.5.28 réduit fortement l’arborescence imbriquée des dépendances d’OpenClaw, mais une arborescence imbriquée plus petite de 259,7 Mio reste encore dans l’audit d’installation local.

Dependency graph

300 paquets installésDernière publication stable, mesurée comme racines uniques de nom/version de paquet dans une installation fraîche avec les scripts désactivés.

Chronologie de l’empreinte d’installation

Monthly high

645 dépendances2026.2.26 a été le pic mensuel du nombre de dépendances dans cet échantillon.

Shrinkwrap introduced

Installation de 1 020,6 Mo2026.5.22 a ajouté le shrinkwrap racine et révélé un problème de forme du paquet : 911,8 Mo ont été installés sous openclaw/node_modules imbriqué.

Latest stable

Installation de 361,7 Mio2026.5.28 réduit la taille d’installation fraîche de 52,8 % par rapport à 2026.5.27, mais installe encore une arborescence OpenClaw imbriquée de 259,7 Mio.

Dependency graph

300 racines de paquets2026.5.28 installe 71 racines uniques de nom/version de paquet de moins que 2026.5.27.
Le shrinkwrap n’était pas le problème à lui seul. La mauvaise forme du paquet l’était. v2026.5.28 inclut toujours le shrinkwrap, mais l’arborescence imbriquée des dépendances est beaucoup plus petite et le fanout canvas toutes plateformes a disparu dans l’audit local.

Ce qui a changé dans la version 5.28

Le nettoyage entre v2026.5.27 et v2026.5.28 a réduit le graphe de l’installation par défaut au lieu de supprimer les capacités elles-mêmes.

Graphe racine par défaut

Les racines uniques nom/version de paquet sont passées de 371 à 300. Les instances de paquet sont passées de 372 à 301.

Arborescence imbriquée

Le openclaw/node_modules imbriqué est passé de 656.1MiB à 259.7MiB dans le même audit d’installation locale.

Cônes natifs optionnels

Le cône de paquets natifs toutes plateformes @napi-rs/canvas a cessé d’arriver dans l’installation par défaut.

Surface de chaîne d’approvisionnement

Moins de paquets par défaut signifie moins de tarballs, de mainteneurs, de binaires natifs, de comportements à l’installation et de chemins de mise à jour transitifs auxquels faire confiance par défaut.

Chiffres clés

N’utilisez pas les lignes cassées de fin avril comme références publiques de performance. v2026.4.23 et v2026.4.29 sont des preuves de régression utiles, mais les grands écarts de type 14x décrivent surtout la récupération après une mauvaise série de versions. Pour le récit de blog, utilisez la référence publiée plus tôt en avril comme échelle :
MétriqueRéférence début avrilv2026.5.28Écart
Tour d’agent à froid9,819ms1,908ms80.6% de moins, 5.1x plus vite
Tour d’agent à chaud7,458ms1,870ms74.9% de moins, 4.0x plus vite
RSS maximal agent686.2MB581.0MB15.3% de moins
La référence de début avril est v2026.4.14, issue de l’exécution clawgrit-reports publiée avec fournisseur simulé. Cette exécution utilisait la répétition 3 et a échoué uniquement parce que la chronologie de diagnostic n’a pas été émise ; les médianes à froid, à chaud et RSS restent utiles comme ordre de grandeur approximatif. Traitez cela comme du contexte narratif, et non comme une statistique de validation de publication. Dans le balayage de mai, la dernière ligne de branche de publication a évolué de manière significative depuis v2026.5.2 :
Métriquev2026.5.2v2026.5.28Écart
Tour d’agent à froid3,897ms1,908ms51.0% de moins
Tour d’agent à chaud3,610ms1,870ms48.2% de moins
RSS maximal agent613.7MB581.0MB5.3% de moins
Par rapport à la version stable précédente :
Métriquev2026.5.27v2026.5.28Écart
Tour d’agent à froid2,231ms1,908ms14.5% de moins
Tour d’agent à chaud2,226ms1,870ms16.0% de moins
RSS maximal agent649.0MB581.0MB10.5% de moins

Empreinte d’installation

MétriqueRéférencev2026.5.28Écart
Taille d’installation depuis le pic 2026.5.221,020.6MB361.7MiB64.6% de moins
Taille d’installation depuis la dernière version 2026.5.27767.1MiB361.7MiB52.8% de moins
Dépendances depuis le sommet mensuel 2026.2.2664530053.5% de moins
Dépendances depuis la dernière version 2026.5.2737130019.1% de moins
openclaw/node_modules imbriqué depuis 2026.5.22911.8MB259.7MiB71.5% de moins
openclaw/node_modules imbriqué depuis 2026.5.27656.1MiB259.7MiB60.4% de moins

Taille du paquet npm

VersionTarball compresséPaquet décompresséFichiersNotes
2026.1.3012.8MB33.5MB4,607paquet renommé initial
2026.2.2623.6MB82.9MB10,125croissance des fonctionnalités
2026.3.3143.3MB182.6MB21,037point haut de taille de paquet
2026.4.2922.9MB74.6MB9,309élagage du paquet visible
2026.5.1223.4MB80.1MB12,035séparation majeure des plugins externes
2026.5.2217.2MB76.9MB12,386docs/ressources exclues du paquet
2026.5.2717.8MB79.0MB12,509paquet stable précédent
2026.5.2817.9MB81.0MB9,082dernier paquet stable
2026.5.12 est le jalon visible d’extraction de plugins dans le changelog : Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix et WhatsApp ont quitté le chemin de dépendances du cœur afin que leurs cônes de dépendances s’installent avec ces plugins au lieu de chaque installation du cœur.

Résumé des tours d’agent Kova

La série stable d’avril contient deux histoires différentes. Le début avril était lent mais reconnaissable. La fin avril est devenue un précipice de régression. v2026.5.2 est le point où la voie avec fournisseur simulé descend pour la première fois dans la plage de 3 à 5 s et commence à réussir de façon constante dans le balayage fourni. Contexte publié antérieur :
VersionKovaTour à froidTour à chaudRSS maximal agent
v2026.4.10ÉCHEC11,031ms7,962ms679.0MB
v2026.4.12ÉCHEC11,965ms8,289ms713.5MB
v2026.4.14ÉCHEC9,819ms7,458ms686.2MB
v2026.4.20ÉCHEC22,314ms18,811ms810.8MB
v2026.4.22ÉCHEC9,630ms7,459ms743.0MB
Balayage fourni :
VersionKovaTour à froidTour à chaudRSS maximal agent
v2026.4.23ÉCHEC47,847ms8,010ms1,082.7MB
v2026.4.24ÉCHEC48,264ms25,483ms996.0MB
v2026.4.25ÉCHEC81,080ms59,172ms1,113.9MB
v2026.4.26ÉCHEC76,771ms54,941ms1,140.8MB
v2026.4.27ÉCHEC60,902ms33,699ms1,156.0MB
v2026.4.29ÉCHEC94,031ms57,334ms3,613.7MB
v2026.5.2RÉUSSITE3,897ms3,610ms613.7MB
v2026.5.7RÉUSSITE3,923ms3,693ms654.1MB
v2026.5.12RÉUSSITE7,248ms6,629ms834.8MB
v2026.5.18RÉUSSITE3,301ms2,913ms630.3MB
v2026.5.20RÉUSSITE3,413ms2,952ms643.2MB
v2026.5.22RÉUSSITE4,494ms4,093ms654.3MB
v2026.5.26RÉUSSITE2,626ms2,282ms660.4MB
v2026.5.27-beta.1RÉUSSITE2,575ms2,217ms635.3MB
v2026.5.27RÉUSSITE2,231ms2,226ms649.0MB
v2026.5.28RÉUSSITE1,908ms1,870ms581.0MB

Sondes source

Les sondes source ont été ignorées pour 17 anciennes références réussies, car ces arborescences source n’avaient pas encore les points d’entrée de sonde requis. Les métriques de tours d’agent existent toujours pour ces références. Points représentatifs de sonde source :
Versionreadyz p50 par défautreadyz p50 avec 50 pluginsSanté CLI p50RSS max 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
Le pic d’état de santé de la CLI v2026.5.22 est visible dans ce tableau, même si la voie agent-turn réussissait toujours. Conservez les sondes source lors de l’investigation des régressions ciblées de la CLI ou du Gateway.

Audit de l’empreinte d’installation

Les échantillons de dépendances utilisent une version stable par mois, plus l’événement d’introduction du shrinkwrap 2026.5.22 et la dernière version 2026.5.28.
PointDépendances installéesNouvelle installationPaquet OpenClawopenclaw/node_modules imbriquéShrinkwrap racineComportement d’installation de Canvas
Janv. 2026.1.30605438.4MB45.8MB2.4MBnonwrapper de premier niveau + darwin-arm64
Févr. 2026.2.26645575.7MB110.1MB3.5MBnonwrapper de premier niveau + darwin-arm64
Mars 2026.3.31438584.1MB234.8MB0MBnonwrapper de premier niveau + darwin-arm64
Avr. 2026.4.29392335.0MB97.4MB0MBnonaucun installé
2026.5.224011,020.6MB1,020.4MB911.8MBouiimbriqué : les 12 paquets @napi-rs/canvas
Mai 2026.5.26371767.5MB767.4MB656.4MBouiimbriqué : les 12 paquets @napi-rs/canvas
2026.5.27371767.1MiB766.9MiB656.1MiBouiimbriqué : les 12 paquets @napi-rs/canvas
Dernière 2026.5.28300361.7MiB361.6MiB259.7MiBouiaucun installé

Limite du shrinkwrap

Before shrinkwrap

2026.5.20 n’a pas de shrinkwrap racine ni de grand arbre de dépendances OpenClaw imbriqué.

Introduced

2026.5.22 ajoute le shrinkwrap racine et installe 911.8MB sous openclaw/node_modules imbriqué.

Latest stable

2026.5.28 conserve le shrinkwrap et installe encore 259.7MiB sous openclaw/node_modules imbriqué.

Canvas fanout fixed

2026.5.28 n’installe plus aucun paquet @napi-rs/canvas dans l’audit local de nouvelle installation.
L’inspection des tarballs publiés vérifie la limite :
VersionStable publiée ?npm-shrinkwrap.json racineNotes
2026.5.20ouinondernière version stable avant le shrinkwrap
2026.5.21nons.o.aucune version npm stable
2026.5.22ouiouishrinkwrap introduit
2026.5.23nons.o.aucune version npm stable
2026.5.24nons.o.aucune version npm stable
2026.5.25nons.o.aucune version npm stable
2026.5.26ouiouiarbre de dépendances imbriqué encore présent
2026.5.27ouiouiarbre de dépendances imbriqué encore présent
2026.5.28ouiouiarbre de dépendances imbriqué beaucoup plus petit
La distinction importante : le shrinkwrap lui-même n’est pas le problème. v2026.5.28 fournit toujours un shrinkwrap racine. Le problème était la forme du paquet qui amenait npm à matérialiser un grand arbre de dépendances OpenClaw imbriqué et les 12 paquets de plateforme @napi-rs/canvas. L’arbre imbriqué est plus petit dans v2026.5.28, et l’éventail des plateformes Canvas n’apparaît plus dans l’audit local. Pour une explication en langage clair du shrinkwrap et des vérifications de paquet au niveau mainteneur, consultez shrinkwrap npm.

Interprétation de la chaîne d’approvisionnement

Le nombre de dépendances est une métrique de sécurité opérationnelle, pas seulement une métrique de taille d’installation. Chaque paquet élargit l’ensemble des mainteneurs, des tarballs, des mises à jour transitives, des binaires natifs optionnels et des comportements au moment de l’installation auxquels les opérateurs doivent faire confiance. La direction du nettoyage est la suivante :
  • conserver les capacités lourdes et optionnelles hors de l’installation du cœur par défaut
  • faire en sorte que les paquets de Plugin possèdent leur propre graphe de dépendances d’exécution
  • éviter les réparations du gestionnaire de paquets à l’exécution pendant le démarrage du Gateway
  • préserver des installations déterministes sans provoquer la matérialisation de paquets natifs pour toutes les plateformes
  • garder les scripts d’installation désactivés dans les chemins d’acceptation et de mesure des paquets
  • détecter les arbres de dépendances imbriqués et les explosions de dépendances optionnelles natives avant publication
Documentation connexe :