Skip to main content
Esta página reúne as evidências por trás da limpeza de desempenho, tamanho do pacote, dependências e shrinkwrap do OpenClaw em maio de 2026. Ela é o complemento técnico da publicação no blog. Duas auditorias são combinadas aqui:
  • Varredura de desempenho das versões: GitHub Releases desde v2026.5.28 até a versão estável v2026.4.23, usando o fluxo de trabalho OpenClaw Performance, profile=smoke e a faixa do provedor simulado. A maioria das linhas de tags usa uma amostra; as linhas v2026.5.27 e v2026.5.28 usam os artefatos mais recentes com três repetições das branches de versão.
  • Contexto anterior de abril: linhas de base publicadas do provedor simulado em clawgrit-reports, de v2026.4.1 a v2026.5.2, usadas apenas para evitar que as versões com falhas do fim de abril sejam tratadas como a linha de base pública de desempenho.
  • Varredura da ocupação da instalação: instalações novas com npm install --ignore-scripts em pacotes temporários, usando du -sk node_modules para medir o tamanho e uma varredura de node_modules para contar as instâncias de pacotes.
  • Varredura do tamanho do pacote npm: npm pack openclaw@<version> --dry-run --json para as versões publicadas, registrando o tamanho do tarball compactado, o tamanho descompactado e a quantidade de arquivos.
A principal varredura de desempenho usa uma amostra smoke por tag, exceto nas linhas v2026.5.27 e v2026.5.28, que usam os artefatos mais recentes com três repetições das branches de versão. O contexto anterior de abril usa as medianas publicadas de três repetições em clawgrit-reports. Trate os números como evidências de tendências e sinais para investigação de regressões, não como estatísticas de critérios de aprovação de versões.

Visão geral

Cobertura de desempenho: 77 versões solicitadas, 74 pontos respaldados por artefatos e 3 execuções de CI indisponíveis. Ponto estável medido mais recente: v2026.5.28.

Turno estável do agente

Turno a frio 5,1 vezes mais rápido
  • v2026.4.14: 9,8s
  • v2026.5.28: 1,9s

Pacote publicado

Tarball de 17,9MBPacote estável mais recente, abaixo do pico de tamanho de 43,3MB registrado em março.

Instalação estável mais recente

Instalação nova de 361,7MiBReduz drasticamente a árvore aninhada de dependências do OpenClaw em relação ao pico da introdução do shrinkwrap em 2026.5.22, embora uma árvore aninhada menor, de 259,7MiB, ainda permaneça na auditoria da instalação local.

Grafo de dependências

300 pacotes instaladosMedidos como raízes únicas de nome/versão de pacote em uma instalação nova com scripts desativados; 71 raízes a menos que na versão estável anterior.

O que mudou na 5.28

A limpeza entre v2026.5.27 e v2026.5.28 reduziu o grafo da instalação padrão, em vez de remover as próprias funcionalidades.

Grafo raiz padrão

As raízes únicas de nome/versão de pacote caíram de 371 para 300. As instâncias de pacotes caíram de 372 para 301.

Árvore aninhada

O openclaw/node_modules aninhado caiu de 656,1MiB para 259,7MiB na mesma auditoria da instalação local.

Cones opcionais nativos

O cone de pacotes nativos de @napi-rs/canvas para todas as plataformas deixou de ser incluído na instalação padrão.

Superfície da cadeia de suprimentos

Menos pacotes padrão significam menos tarballs, mantenedores, binários nativos, comportamentos durante a instalação e caminhos de atualização transitivos nos quais confiar por padrão.
O shrinkwrap não era o problema por si só. O formato inadequado do pacote era. A v2026.5.28 ainda inclui o shrinkwrap, mas a árvore aninhada de dependências é muito menor e a expansão do canvas para todas as plataformas desapareceu na auditoria local.

Principais números

Não use as linhas com falhas do fim de abril como linhas de base públicas de desempenho. v2026.4.23 e v2026.4.29 são evidências úteis de regressão, mas as grandes diferenças no estilo de 14x descrevem principalmente a recuperação de uma sequência problemática de versões. Para a narrativa do blog, use como escala a linha de base publicada no início de abril. A linha de base é a v2026.4.14 da execução publicada do provedor simulado em clawgrit-reports (três repetições; essa execução falhou apenas porque a linha do tempo de diagnóstico não foi emitida, portanto as medianas a frio, a quente e de RSS ainda são úteis como escala aproximada). Trate isso como contexto narrativo, não como estatística de critério de aprovação de versão. Na varredura de maio, a linha mais recente da branch de versão apresentou uma mudança significativa em relação à v2026.5.2: Em comparação com a versão estável anterior:

Ocupação da instalação

Tamanho do pacote npm

2026.5.12 é o marco visível da extração de plugins no changelog: Amazon Bedrock, Bedrock Mantle, Slack, sandbox OpenShell, Anthropic Vertex, Matrix e WhatsApp saíram do caminho de dependências do núcleo, para que seus cones de dependências sejam instalados com esses plugins, em vez de em todas as instalações do núcleo.

Resumo dos turnos do agente Kova

A sequência estável de abril contém duas histórias diferentes. O início de abril era lento, mas reconhecível. O fim de abril se tornou um precipício de regressões. A v2026.5.2 é o ponto em que a faixa do provedor simulado entra pela primeira vez no intervalo de 3 a 5 segundos e começa a passar consistentemente na varredura fornecida. Contexto publicado anteriormente: Varredura fornecida:

Sondagens de código-fonte

As sondagens de código-fonte foram ignoradas em 17 referências antigas bem-sucedidas porque essas árvores de código-fonte ainda não tinham os pontos de entrada de sondagem necessários. As métricas dos turnos do agente ainda existem para essas referências. Pontos representativos das sondagens de código-fonte: O pico de saúde da CLI na v2026.5.22 é visível nesta tabela, embora a faixa de turnos do agente ainda tenha passado. Mantenha as sondagens de código-fonte ao investigar regressões específicas da CLI ou do Gateway.

Auditoria da ocupação da instalação

As amostras de dependências usam uma versão estável por mês, além do evento de introdução do shrinkwrap em 2026.5.22 e da versão mais recente, 2026.5.28.

Limite do shrinkwrap

A versão 2026.5.20 foi lançada sem shrinkwrap raiz e sem uma grande árvore de dependências aninhada do OpenClaw. A versão 2026.5.22 introduziu o shrinkwrap raiz e instalou 911.8MB no openclaw/node_modules aninhado. A versão 2026.5.28 mantém o shrinkwrap e ainda instala 259.7MiB no openclaw/node_modules aninhado, mas não instala mais nenhum pacote @napi-rs/canvas na auditoria local de instalação nova. A inspeção do tarball publicado confirma o limite: A distinção importante: o shrinkwrap em si não é o problema. A v2026.5.28 ainda inclui o shrinkwrap raiz. O problema era a estrutura do pacote que fazia o npm materializar uma grande árvore de dependências aninhada do OpenClaw e todos os 12 pacotes de plataforma @napi-rs/canvas. A árvore aninhada é menor na v2026.5.28, e a distribuição do Canvas para todas as plataformas não aparece mais na auditoria local. Para uma explicação em linguagem simples sobre shrinkwrap e as verificações de pacotes destinadas a mantenedores, consulte shrinkwrap do npm.

Interpretação da cadeia de suprimentos

A contagem de dependências é uma métrica de segurança operacional, não apenas uma métrica de tamanho da instalação. Cada pacote amplia o conjunto de mantenedores, tarballs, atualizações transitivas, binários nativos opcionais e comportamentos durante a instalação nos quais os operadores precisam confiar. A direção da limpeza é:
  • manter recursos pesados e opcionais fora da instalação padrão do núcleo
  • fazer com que os pacotes de plugins sejam responsáveis por seu próprio grafo de dependências de runtime
  • evitar reparos do gerenciador de pacotes durante o runtime na inicialização do Gateway
  • preservar instalações determinísticas sem provocar a materialização de pacotes nativos para todas as plataformas
  • manter scripts de instalação desativados nos fluxos de aceitação e medição de pacotes
  • detectar árvores de dependências aninhadas e explosões de dependências nativas opcionais antes da publicação
Documentação relacionada: