Overrides de depuración en tiempo de ejecución
/debug establece overrides de configuración solo en tiempo de ejecución (memoria, no disco). Deshabilitado de forma predeterminada; habilítalo con commands.debug: true.
/debug reset borra todos los overrides y vuelve a la configuración en disco.
Salida de traza de sesión
/trace muestra líneas de traza/depuración propiedad del Plugin para una sesión sin habilitar el modo detallado completo. Úsalo para diagnósticos de Plugin, como resúmenes de depuración de Active Memory; usa /verbose para la salida normal de estado/herramientas.
Traza del ciclo de vida del Plugin
EstableceOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 para obtener un desglose fase por fase de metadatos del Plugin, descubrimiento, registro, espejo de tiempo de ejecución, mutación de configuración y trabajo de actualización. Escribe en stderr, por lo que la salida JSON de comandos sigue siendo analizable.
node dist/entry.js ... después de pnpm build; pnpm openclaw ... también mide la sobrecarga del ejecutor desde código fuente.
Arranque de CLI y perfilado de comandos
Benchmarks de arranque incluidos en el repositorio:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile para el comando. Usa esto antes de agregar instrumentación temporal al código de comandos.
Para bloqueos de arranque que parecen trabajo síncrono del sistema de archivos o del cargador de módulos, agrega el flag de traza de E/S síncrona de Node mediante el ejecutor desde código fuente:
pnpm gateway:watch deja este flag deshabilitado de forma predeterminada para el proceso hijo observado del Gateway; establece OPENCLAW_TRACE_SYNC_IO=1 cuando también quieras salida de traza de E/S síncrona en modo de observación.
Modo de observación del Gateway
openclaw-gateway-watch-<profile> (por ejemplo, openclaw-gateway-watch-main), con un sufijo de puerto como openclaw-gateway-watch-dev-19001 agregado solo cuando OPENCLAW_GATEWAY_PORT difiere del puerto predeterminado 18789. Se adjunta automáticamente desde terminales interactivas; shells no interactivas, CI y llamadas de ejecución de agentes permanecen separadas e imprimen instrucciones de adjunción en su lugar:
--benchmark antes de invocar el Gateway y escribe un .cpuprofile de V8 por cada salida del proceso hijo del Gateway bajo .artifacts/gateway-watch-profiles/. Detén o reinicia el gateway observado para vaciar el perfil actual y luego ábrelo con Chrome DevTools o Speedscope:
--benchmark-dir <path>: escribe perfiles en otro lugar.--benchmark-no-force: omite la limpieza de puerto predeterminada de--forcey falla rápido si el puerto del Gateway ya está en uso.
OPENCLAW_TRACE_SYNC_IO=1 con --benchmark para obtener tanto perfiles de CPU como trazas de pila de E/S síncrona; en modo benchmark, esos bloques de traza van a gateway-watch-output.log bajo el directorio de benchmark (filtrados del panel de terminal), mientras que los logs normales del Gateway permanecen visibles.
El wrapper de tmux transporta al panel selectores comunes de runtime que no son secretos, incluidos OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT y OPENCLAW_SKIP_CHANNELS. Coloca las credenciales de proveedores en tu perfil/configuración normal, o usa el modo bruto en primer plano para secretos efímeros puntuales.
Si el Gateway observado sale durante el arranque, el observador ejecuta openclaw doctor --fix --non-interactive una vez y reinicia el proceso hijo del Gateway. Establece OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 para ver el fallo de arranque original sin la pasada de reparación solo para desarrollo.
El panel tmux gestionado usa logs de Gateway con color de forma predeterminada; establece FORCE_COLOR=0 al iniciar pnpm gateway:watch para deshabilitar la salida ANSI.
El observador reinicia ante archivos relevantes para la compilación bajo src/, archivos fuente de extensiones, metadatos package.json y openclaw.plugin.json de extensiones, tsconfig.json, package.json y tsdown.config.ts. Los cambios de metadatos de extensiones reinician el gateway sin forzar una recompilación; los cambios de código fuente y configuración siguen recompilando dist primero.
Agrega flags de CLI del gateway después de gateway:watch y se transmitirán en cada reinicio. Volver a ejecutar el mismo comando de observación recrea el panel tmux nombrado; el observador bruto mantiene un bloqueo de observador único para que los procesos padre de observadores duplicados se reemplacen en lugar de acumularse.
Perfil de desarrollo + gateway de desarrollo (—dev)
Dos flags--dev separados:
--devglobal (perfil): aísla el estado bajo~/.openclaw-devy establece de forma predeterminada el puerto del gateway en19001(los puertos derivados se desplazan con él).gateway --dev: indica al Gateway que cree automáticamente una configuración + espacio de trabajo predeterminados cuando falten (y que omita bootstrap).
pnpm openclaw ....
Lo que hace esto:
-
Aislamiento de perfil (
--devglobal)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(los puertos de navegador/canvas se desplazan en consecuencia)
-
Bootstrap de desarrollo (
gateway --dev)- Escribe una configuración mínima si falta (
gateway.mode=local, enlace loopback). - Establece
agents.defaults.workspaceen el espacio de trabajo de desarrollo yagents.defaults.skipBootstrap=true. - Si faltan, inicializa los archivos del espacio de trabajo:
AGENTS.md,SOUL.md,TOOLS.md,IDENTITY.md,USER.md. - Identidad predeterminada: C3-PO (droide de protocolo).
pnpm gateway:devtambién estableceOPENCLAW_SKIP_CHANNELS=1para omitir proveedores de canales.
- Escribe una configuración mínima si falta (
--dev es un flag de perfil global y algunos ejecutores lo consumen. Si necesitas escribirlo explícitamente, usa la forma de variable de entorno:--reset borra configuración, credenciales, sesiones y el espacio de trabajo de desarrollo (movido a la papelera, no eliminado), y luego recrea la configuración de desarrollo predeterminada.
Registro del flujo bruto
OpenClaw puede registrar el flujo bruto del asistente antes de cualquier filtrado/formato. Esta es la mejor manera de ver si el razonamiento llega como deltas de texto plano (o como bloques de pensamiento separados). Habilítalo mediante CLI:~/.openclaw/logs/raw-stream.jsonl
Notas de seguridad
- Los logs del flujo bruto pueden incluir prompts completos, salida de herramientas y datos de usuario.
- Mantén los logs locales y elimínalos después de depurar.
- Si compartes logs, elimina primero secretos y PII.
Depuración en VSCode
Los mapas de código fuente son necesarios porque la compilación aplica hashes a los nombres de archivo generados. Ellaunch.json incluido apunta al servicio Gateway:
- Recompilar y depurar Gateway - elimina
/disty recompila con la depuración habilitada antes de iniciar el Gateway. - Depurar Gateway - depura una compilación existente sin tocar
/dist.
Configuración
- Abre Ejecutar y depurar (barra de actividad, o
Ctrl+Shift+D). - Selecciona Recompilar y depurar Gateway y presiona Iniciar depuración.
- Habilita los mapas de código fuente en una terminal:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- Recompila:
pnpm clean:dist && pnpm build - Selecciona Depurar Gateway y presiona Iniciar depuración.
src/; el depurador los asigna al JavaScript compilado mediante mapas de código fuente.
Notas
- Recompilar y depurar Gateway elimina
/disty ejecuta unpnpm buildcompleto con mapas de código fuente en cada inicio. - Depurar Gateway puede iniciar/detener sin afectar
/dist, pero tú gestionas el ciclo de compilación en una terminal separada. - Edita
argsdelaunch.jsonpara depurar otros subcomandos de CLI. - Para usar la CLI compilada en otras tareas (por ejemplo,
dashboard --no-opensi tu sesión de depuración genera un nuevo token de autenticación), ejecútala desde otra terminal:node ./openclaw.mjso un alias comoalias openclaw-build="node $(pwd)/openclaw.mjs".