Vai al contenuto principale
Questa pagina raccoglie le prove alla base della pulizia di maggio 2026 di prestazioni, dimensione del pacchetto, dipendenze e shrinkwrap di OpenClaw. È il complemento tecnico al post pubblico del blog. Qui sono combinati due audit:
  • Analisi delle prestazioni di release: GitHub Releases da v2026.5.28 fino alla stabile v2026.4.23, usando il workflow OpenClaw Performance, profile=smoke, corsia mock-provider. La maggior parte delle righe dei tag è un campione; le righe v2026.5.27 e v2026.5.28 usano gli ultimi artefatti repeat-3 del ramo di release.
  • Contesto precedente di aprile: baseline mock-provider pubblicate in clawgrit-reports da v2026.4.1 a v2026.5.2, usate solo per evitare di trattare le release problematiche di fine aprile come baseline pubblica delle prestazioni.
  • Analisi dell’impronta di installazione: installazioni fresche con npm install --ignore-scripts in pacchetti temporanei, con du -sk node_modules per la dimensione e una scansione di node_modules per i conteggi delle istanze di pacchetto.
  • Analisi della dimensione del pacchetto npm: npm pack openclaw@<version> --dry-run --json per le release pubblicate, registrando la dimensione del tarball compresso, la dimensione decompressa e il conteggio dei file.
L’analisi principale delle prestazioni usa un campione smoke per tag, tranne le righe v2026.5.27 e v2026.5.28, che usano gli ultimi artefatti repeat-3 del ramo di release. Il contesto precedente di aprile usa le mediane repeat-3 pubblicate da clawgrit-reports. Considera i numeri come prova di tendenza e segnale per la ricerca di regressioni, non come statistiche di gate di release.

Istantanea

Copertura delle prestazioni: 77 release richieste, 74 punti basati su artefatti e 3 esecuzioni CI non disponibili. Ultimo punto stabile misurato: v2026.5.28.

Stable agent turn

Turn cold 5,1x più veloce
  • v2026.4.14: 9,8s
  • v2026.5.28: 1,9s

Published package

Tarball da 17,9MBUltimo pacchetto stabile, in calo rispetto al picco di dimensione del pacchetto di marzo di 43,3MB.

Latest stable install

Installazione fresca da 361,7MiBv2026.5.28 riduce drasticamente l’albero di dipendenze annidato di OpenClaw, ma nell’audit dell’installazione locale rimane ancora un albero annidato più piccolo da 259,7MiB.

Dependency graph

300 pacchetti installatiUltima release stabile, misurata come radici uniche nome/versione di pacchetto in una installazione fresca con script disabilitati.

Cronologia dell’impronta di installazione

Monthly high

645 dipendenze2026.2.26 è stato il massimo mensile del conteggio delle dipendenze in questo campione.

Shrinkwrap introduced

Installazione da 1.020,6MB2026.5.22 ha aggiunto lo shrinkwrap radice e ha esposto un problema di forma del pacchetto: 911,8MB sono finiti sotto openclaw/node_modules annidato.

Latest stable

Installazione da 361,7MiB2026.5.28 riduce la dimensione dell’installazione fresca del 52,8% rispetto a 2026.5.27, ma installa ancora un albero OpenClaw annidato da 259,7MiB.

Dependency graph

300 radici di pacchetto2026.5.28 installa 71 radici uniche nome/versione di pacchetto in meno rispetto a 2026.5.27.
Lo shrinkwrap non era il problema di per sé. Lo era la forma errata del pacchetto. v2026.5.28 distribuisce ancora lo shrinkwrap, ma l’albero di dipendenze annidato è molto più piccolo e il fanout canvas per tutte le piattaforme è sparito nell’audit locale.

Cosa è cambiato nella 5.28

La pulizia tra v2026.5.27 e v2026.5.28 ha ridotto il grafo dell’installazione predefinita invece di rimuovere le capacità stesse.

Grafo radice predefinito

Le radici univoche nome/versione dei pacchetti sono scese da 371 a 300. Le istanze dei pacchetti sono scese da 372 a 301.

Albero annidato

openclaw/node_modules annidato è sceso da 656.1MiB a 259.7MiB nello stesso audit dell’installazione locale.

Coni nativi opzionali

Il cono di pacchetti nativi multipiattaforma @napi-rs/canvas ha smesso di finire nell’installazione predefinita.

Superficie della catena di fornitura

Meno pacchetti predefiniti significano meno tarball, maintainer, binari nativi, comportamenti in fase di installazione e percorsi di aggiornamento transitivi da considerare affidabili per impostazione predefinita.

Numeri principali

Non usare le righe rotte di fine aprile come baseline pubbliche delle prestazioni. v2026.4.23 e v2026.4.29 sono utili come prova di regressione, ma i grandi delta in stile 14x descrivono soprattutto il recupero da una linea di release problematica. Per la narrazione del blog, usa come scala la baseline pubblicata di inizio aprile:
MetricaBaseline di inizio aprilev2026.5.28Delta
Turno agente a freddo9,819ms1,908ms80.6% in meno, 5.1x più veloce
Turno agente a caldo7,458ms1,870ms74.9% in meno, 4.0x più veloce
RSS di picco agente686.2MB581.0MB15.3% in meno
La baseline di inizio aprile è v2026.4.14 dalla run mock-provider pubblicata in clawgrit-reports. Quella run usava repeat 3 ed è fallita solo perché la timeline diagnostica non è stata emessa; le mediane a freddo, a caldo e RSS restano utili come scala approssimativa. Considerala contesto narrativo, non una statistica da gate di release. All’interno dello sweep di maggio, l’ultima riga del branch di release si è spostata in modo materiale da v2026.5.2:
Metricav2026.5.2v2026.5.28Delta
Turno agente a freddo3,897ms1,908ms51.0% in meno
Turno agente a caldo3,610ms1,870ms48.2% in meno
RSS di picco agente613.7MB581.0MB5.3% in meno
Rispetto alla release stabile precedente:
Metricav2026.5.27v2026.5.28Delta
Turno agente a freddo2,231ms1,908ms14.5% in meno
Turno agente a caldo2,226ms1,870ms16.0% in meno
RSS di picco agente649.0MB581.0MB10.5% in meno

Impronta dell’installazione

MetricaBaselinev2026.5.28Delta
Dimensione dell’installazione dal picco 2026.5.221,020.6MB361.7MiB64.6% in meno
Dimensione dell’installazione dall’ultima release 2026.5.27767.1MiB361.7MiB52.8% in meno
Dipendenze dal massimo mensile 2026.2.2664530053.5% in meno
Dipendenze dall’ultima release 2026.5.2737130019.1% in meno
openclaw/node_modules annidato da 2026.5.22911.8MB259.7MiB71.5% in meno
openclaw/node_modules annidato da 2026.5.27656.1MiB259.7MiB60.4% in meno

Dimensione del pacchetto npm

VersioneTarball compressoPacchetto decompressoFileNote
2026.1.3012.8MB33.5MB4,607pacchetto iniziale con nuovo brand
2026.2.2623.6MB82.9MB10,125crescita delle funzionalità
2026.3.3143.3MB182.6MB21,037massimo della dimensione del pacchetto
2026.4.2922.9MB74.6MB9,309potatura del pacchetto visibile
2026.5.1223.4MB80.1MB12,035grande separazione dei plugin esterni
2026.5.2217.2MB76.9MB12,386docs/asset esclusi dal pacchetto
2026.5.2717.8MB79.0MB12,509pacchetto stabile precedente
2026.5.2817.9MB81.0MB9,082ultimo pacchetto stabile
2026.5.12 è il milestone visibile dell’estrazione dei plugin nel changelog: Amazon Bedrock, Bedrock Mantle, Slack, OpenShell sandbox, Anthropic Vertex, Matrix e WhatsApp sono usciti dal percorso delle dipendenze core, così i loro coni di dipendenze vengono installati con quei plugin invece che con ogni installazione core.

Riepilogo dei turni agente Kova

La linea stabile di aprile contiene due storie diverse. L’inizio di aprile era lento ma riconoscibile. La fine di aprile è diventata un precipizio di regressione. v2026.5.2 è il punto in cui la lane mock-provider scende per la prima volta nell’intervallo 3-5s e inizia a passare in modo costante nello sweep fornito. Contesto pubblicato precedente:
ReleaseKovaTurno a freddoTurno a caldoRSS di picco agente
v2026.4.10FAIL11,031ms7,962ms679.0MB
v2026.4.12FAIL11,965ms8,289ms713.5MB
v2026.4.14FAIL9,819ms7,458ms686.2MB
v2026.4.20FAIL22,314ms18,811ms810.8MB
v2026.4.22FAIL9,630ms7,459ms743.0MB
Sweep fornito:
ReleaseKovaTurno a freddoTurno a caldoRSS di picco agente
v2026.4.23FAIL47,847ms8,010ms1,082.7MB
v2026.4.24FAIL48,264ms25,483ms996.0MB
v2026.4.25FAIL81,080ms59,172ms1,113.9MB
v2026.4.26FAIL76,771ms54,941ms1,140.8MB
v2026.4.27FAIL60,902ms33,699ms1,156.0MB
v2026.4.29FAIL94,031ms57,334ms3,613.7MB
v2026.5.2PASS3,897ms3,610ms613.7MB
v2026.5.7PASS3,923ms3,693ms654.1MB
v2026.5.12PASS7,248ms6,629ms834.8MB
v2026.5.18PASS3,301ms2,913ms630.3MB
v2026.5.20PASS3,413ms2,952ms643.2MB
v2026.5.22PASS4,494ms4,093ms654.3MB
v2026.5.26PASS2,626ms2,282ms660.4MB
v2026.5.27-beta.1PASS2,575ms2,217ms635.3MB
v2026.5.27PASS2,231ms2,226ms649.0MB
v2026.5.28PASS1,908ms1,870ms581.0MB

Probe sorgente

Le probe sorgente sono state saltate per 17 ref precedenti riuscite perché quegli alberi sorgente non avevano ancora gli entry point di probe richiesti. Le metriche dei turni agente esistono comunque per quelle ref. Punti rappresentativi delle probe sorgente:
Releasereadyz predefinito p5050 plugin readyz p50Health CLI p50RSS massimo 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
Il picco di salute della CLI v2026.5.22 è visibile in questa tabella anche se la lane agent-turn è comunque passata. Conserva le sonde sorgente quando indaghi regressioni mirate della CLI o del Gateway.

Audit dell’impronta di installazione

I campioni delle dipendenze usano una release stabile per mese, più l’evento di introduzione dello shrinkwrap 2026.5.22 e l’ultima release 2026.5.28.
PuntoDipendenze installateInstallazione frescaPacchetto OpenClawopenclaw/node_modules annidatoShrinkwrap rootComportamento di installazione di Canvas
Gen 2026.1.30605438.4MB45.8MB2.4MBnowrapper di primo livello + darwin-arm64
Feb 2026.2.26645575.7MB110.1MB3.5MBnowrapper di primo livello + darwin-arm64
Mar 2026.3.31438584.1MB234.8MB0MBnowrapper di primo livello + darwin-arm64
Apr 2026.4.29392335.0MB97.4MB0MBnonessuno installato
2026.5.224011,020.6MB1,020.4MB911.8MBannidati: tutti i 12 pacchetti @napi-rs/canvas
Mag 2026.5.26371767.5MB767.4MB656.4MBannidati: tutti i 12 pacchetti @napi-rs/canvas
2026.5.27371767.1MiB766.9MiB656.1MiBannidati: tutti i 12 pacchetti @napi-rs/canvas
Ultima 2026.5.28300361.7MiB361.6MiB259.7MiBnessuno installato

Confine dello shrinkwrap

Prima dello shrinkwrap

2026.5.20 non ha uno shrinkwrap root né un grande albero annidato di dipendenze OpenClaw.

Introdotto

2026.5.22 aggiunge lo shrinkwrap root e installa 911.8MB sotto openclaw/node_modules annidato.

Ultima stabile

2026.5.28 mantiene lo shrinkwrap e installa ancora 259.7MiB sotto openclaw/node_modules annidato.

Fanout di Canvas corretto

2026.5.28 non installa più alcun pacchetto @napi-rs/canvas nell’audit locale di installazione fresca.
L’ispezione dei tarball pubblicati verifica il confine:
VersioneStabile pubblicata?npm-shrinkwrap.json rootNote
2026.5.20noultima release stabile prima dello shrinkwrap
2026.5.21non/dnessuna release npm stabile
2026.5.22shrinkwrap introdotto
2026.5.23non/dnessuna release npm stabile
2026.5.24non/dnessuna release npm stabile
2026.5.25non/dnessuna release npm stabile
2026.5.26albero di dipendenze annidato ancora presente
2026.5.27albero di dipendenze annidato ancora presente
2026.5.28albero di dipendenze annidato molto più piccolo
La distinzione importante: lo shrinkwrap in sé non è il problema. v2026.5.28 distribuisce ancora lo shrinkwrap root. Il problema era la forma del pacchetto che faceva materializzare a npm un grande albero annidato di dipendenze OpenClaw e tutti i 12 pacchetti di piattaforma @napi-rs/canvas. L’albero annidato è più piccolo in v2026.5.28 e il fanout delle piattaforme canvas non compare più nell’audit locale. Per una spiegazione in linguaggio semplice dello shrinkwrap e dei controlli dei pacchetti a livello di manutentore, consulta npm shrinkwrap.

Interpretazione della supply chain

Il conteggio delle dipendenze è una metrica di sicurezza operativa, non solo una metrica della dimensione di installazione. Ogni pacchetto espande l’insieme di manutentori, tarball, aggiornamenti transitivi, binari nativi opzionali e comportamenti in fase di installazione di cui gli operatori devono fidarsi. La direzione della pulizia è:
  • mantenere le capacità pesanti e opzionali fuori dall’installazione core predefinita
  • fare in modo che i pacchetti Plugin possiedano il proprio grafo di dipendenze di runtime
  • evitare riparazioni del gestore pacchetti a runtime durante l’avvio del Gateway
  • preservare installazioni deterministiche senza causare la materializzazione di pacchetti nativi per tutte le piattaforme
  • mantenere gli script di installazione disabilitati nei percorsi di accettazione e misurazione dei pacchetti
  • intercettare alberi di dipendenze annidati ed esplosioni di dipendenze opzionali native prima della pubblicazione
Documentazione correlata: