CommunityProgramación y desarrollogithub.com

openclaw-performance

Trabajo de rendimiento en OpenClaw: flujo lento o pesado (latencia, CPU, memoria, SQL, RPC, renders), escribir o revisar un PR de rendimiento, o añadir una caché. Cuenta el trabajo, elimina primero el desperdicio, la caché al final.

¿Qué es openclaw-performance?

Esta habilidad guía a un agente de IA en la optimización del rendimiento del proyecto OpenClaw. Define un flujo de trabajo en cuatro pasos: medir, encontrar desperdicio, arreglar en orden y aterrizar. La filosofía principal es que las grandes mejoras provienen de eliminar trabajo innecesario (desperdicio), no de ejecutar el mismo trabajo más rápido. Las cachés se consideran el último recurso, ya que solo ocultan el desperdicio temporalmente. La habilidad proporciona directrices concretas sobre cómo medir el rendimiento con cargas de trabajo realistas, cómo identificar patrones comunes de desperdicio en OpenClaw, y el orden de prioridad para las soluciones: eliminar, optimizar una vez en el propietario, transportar hechos preparados, agrupar trabajo y solo al final añadir cachés. El 'aterrizaje' requiere evidencias medibles en el PR mismo.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/.agents/skills/openclaw-performance

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Rendimiento de OpenClaw

Desperdicio es el trabajo que una solicitud no necesita. Las grandes aceleraciones provienen de eliminar desperdicio, no de hacer el mismo trabajo más rápido. Una caché es el último recurso: oculta el desperdicio hasta que su clave, invalidación o tasa de aciertos se rompe, y el desperdicio regresa.

1. Medir

Escribe la regla de aceptación en el PR antes de la primera ejecución: flujo, carga de trabajo, métrica, frío o caliente, muestras, y el cambio que cuenta como una victoria o una regresión.

FlujoCarga de trabajo comprometida
Inicio de CLIpnpm test:startup:bench (:check mantiene el presupuesto)
Inicio / reinicio de Gatewayscripts/bench-gateway-startup.ts, scripts/bench-gateway-restart.ts, scripts/perf/post-restart-burst-measure.ts
Turno de chat, fotogramas por turnoscripts/bench-channel-turn.mts, scripts/perf/transcript-broadcast-measure.ts
Carga en frío de Control UIscripts/bench-control-ui-cold-load.ts, pnpm ui:check-performance (:base compara)
Lista de sesiones, forma multi-agentescripts/perf/team-shape-fixture.ts, src/gateway/session-list-viewers.perf.test.ts
Concurrencia, estado SQLitescripts/bench-gateway-concurrency.ts, pnpm test:sqlite:perf
  • Cuentas primero: operaciones por acción (sentencias SQL, RPCs y fotogramas, lecturas de archivos, cargas de catálogo o registro, inicios, renders) antes del tiempo de pared. Las cuentas se mantienen estables en un host cargado. Una cuenta que debería ser cero es el error.
  • Flujo real: un Gateway aislado en la cabeza bajo prueba, transporte real, incluida la ruta lenta. Un Gateway simulado, una compilación desactualizada o un servidor de desarrollo miden otra cosa.
  • Muestras: línea base y candidato intercalados (ABAB), al menos 5 cada uno, frío y caliente separados; mediana y p95 con dispersión, ejecutados en serie, carga del host registrada.
  • Repetible: solo cuentan los scripts comprometidos; extienda uno existente cuando ninguno se ajuste.
  • Perfil: node --cpu-prof por hilo, o un trace de rendimiento del navegador, en la ruta caliente.

Terminado cuando el flujo tiene una carga de trabajo comprometida, una tabla de línea base y una regla escrita.

2. Encontrar desperdicio

Pregunte por cada operación contada: ¿esta solicitud la necesita? Desperdicio recurrente en OpenClaw:

  • Trabajo anticipado en la ruta crítica: una búsqueda en el registro importó el cargador de plugins (#133518, 47.07 s → 10.36 s); tiempos de ejecución opcionales cargados al inicio (#119374).
  • Recomputación por fila o por llamada: una lectura síncrona por fila archivada (#156665, 56,700 lecturas → 0); patrones de log resueltos por fotograma (#150042, 539 → 17 ms por 10,000 fotogramas).
  • Re-verificación del estado admitido: comprobaciones de esquema, admisión o frescura en handles calientes (#166102, #172676; 14 PRs en la cadena de admisión SQLite).
  • Re-escaneo completo por delta transmitido: cada token reprocesó toda la respuesta (#158526, 5,342 → 1 ms CPU a 256 KiB).
  • Releer tu propia escritura: dos copias de seguridad de base de datos por búsqueda (#161551, 772.8 → 7.7 ms); Doctor re-escaneó y respaldó lo que acababa de comprobar (#174665, ~26 → 3.0 s).
  • Construcciones repetidas de catálogo o registro: una reconstrucción de catálogo por agente al inicio (#116261, 24.9 → 5.0 s); reconstrucciones por fallo o TTL (#127178, #167008).
  • Espera de datos opcionales: la página de Uso esperó los planes del proveedor y reintentó lecturas no relacionadas (#176358).
  • Copias defensivas y envoltorios: structuredClone por turno (#172940, 1.685 MiB → 0); envoltorio por valor en el límite (#163818, 11,571 → 500 ns/evento).
  • Inicio o fan-out por llamada: un proceso hijo por resolución (#155779, 100 → 0).
  • Cascadas de render y cargas útiles completas: un render por actualización (#159400, 250 → 79); filas completas reenviadas para un delta (#165404, 21.75 → 0.95 MB).

Terminado cuando cada cuenta dominante se rastrea hasta el código que la emite, con un sí o no sobre "necesario".

3. Arreglar en este orden

  1. Eliminar el desperdicio. Las eliminaciones rara vez vuelven; una eliminación fallida eliminó una protección, así que mantenga toda verificación que proteja un contrato y demuestre que el contrato aún se cumple.
  2. Una vez en el propietario: los llamantes consumen el hecho registrado del propietario.
  3. Llevar el hecho preparado a través de la ruta caliente.
  4. Agrupar trabajo independiente, y demostrar que el lote mantiene estables los fotogramas, las colas de latencia y el arranque en frío: la coalescencia fue revertida tres veces (#162560, #173901, #175092).
  5. Caché, con una razón escrita de por qué los pasos 1–4 no aplican. Siga la raíz "Identidad de caché", invalide desde las escrituras del propietario, limite el tamaño, y añada una prueba de conteo de trabajo intercalado. Tres de cuatro reparaciones de caché fueron fallos silenciosos: lectores desalojándose entre sí (#115369 → #174741), un presupuesto que oscilaba (#149773 → #149879).

Un movimiento de worker o un aplazamiento reubica el costo; cuente tanto el trabajo del hilo principal como el total.

Terminado cuando el desperdicio ha desaparecido de los conteos, o el PR dice qué paso detuvo y por qué.

4. Aterrizar

  • Re-ejecute la carga de trabajo del paso 1 en línea base y candidato bajo la misma regla.
  • Cada métrica orientada al usuario se mantiene o mejora: latencia, p95/p99, fotogramas, arranque en frío, CPU, memoria, conteos. Una métrica peor necesita la aceptación explícita del propietario en el PR. Un movimiento del 20% en una celda es una parada, nunca "dentro de la dispersión": cinco de seis PRs de rendimiento revertidos mostraron su regresión en su propio cuerpo.
  • Revierta cambios sin una ganancia medible.
  • La evidencia vive en el PR, no en nuevas pruebas: los conteos antes/después son la evidencia. Extienda la prueba de conteo de trabajo existente de un flujo solo cuando este desperdicio haya regresado antes; test-audit es dueño del valor de la prueba.
  • Evidencia del PR: comando de carga de trabajo, regla de aceptación, tabla antes/después (conteos y tiempos, mediana y p95, muestras), desperdicio eliminado, y cualquier métrica que se movió en la dirección equivocada.

Terminado cuando la tabla cumple la regla escrita en el paso 1.

Relacionado

Velocidad del conjunto de pruebas: openclaw-test-performance. Crecimiento del heap de pruebas: openclaw-test-heap-leaks. Capacidad de CI: openclaw-ci-limits.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

canvas

Present HTML on connected OpenClaw node canvases, navigate/eval/snapshot, and debug canvas host URLs.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills when explicitly requested; install, verify, update, uninstall, publish, or sync skills.

Skills relacionados