Modificaciones de depuración del entorno de ejecución
/debug establece modificaciones de configuración solo para el entorno de ejecución (en memoria, no en disco). Está deshabilitado de forma predeterminada; habilítelo con commands.debug: true.
/debug reset borra todas las modificaciones y vuelve a la configuración almacenada en disco.
Salida de seguimiento de sesión
/trace muestra las líneas de seguimiento y depuración gestionadas por el plugin para una sesión sin habilitar el modo detallado completo. Úselo para diagnósticos de plugins, como los resúmenes de depuración de Active Memory; use /verbose para la salida normal de estado y herramientas.
Seguimiento del ciclo de vida de los plugins
EstablezcaOPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 para obtener un desglose fase por fase de los metadatos, la detección, el registro y el espejo del entorno de ejecución de los plugins, así como de la mutación y actualización de la configuración. Escribe en stderr para que la salida JSON del comando siga siendo analizable.
Los errores de carga de plugins incluyen su seguimiento de pila mientras este seguimiento está habilitado.
node dist/entry.js ... después de pnpm build; pnpm openclaw ... también mide la sobrecarga del ejecutor desde el código fuente.
Para medir los tiempos de carga síncrona de módulos, use la superficie de diagnóstico compartida en lugar de una variable de entorno independiente exclusiva para plugins:
Creación de perfiles del inicio y los comandos de la CLI
Pruebas de rendimiento de inicio incluidas en el repositorio:OPENCLAW_RUN_NODE_CPU_PROF_DIR:
.cpuprofile para el comando. Use esto antes de añadir instrumentación temporal al código del comando.
Para bloqueos del inicio que parezcan deberse al sistema de archivos síncrono o al cargador de módulos, añada el indicador de seguimiento de E/S síncrona de Node mediante el ejecutor desde el código fuente:
pnpm gateway:watch mantiene este indicador deshabilitado de forma predeterminada para el proceso secundario supervisado del Gateway; establezca OPENCLAW_TRACE_SYNC_IO=1 si también desea la salida de seguimiento de E/S síncrona en el modo de supervisión.
Modo de supervisión del Gateway
openclaw-gateway-watch-<profile> (por ejemplo, openclaw-gateway-watch-main), con un sufijo de puerto como openclaw-gateway-watch-dev-19001 añadido solo cuando OPENCLAW_GATEWAY_PORT difiere del puerto predeterminado 18789. Se conecta automáticamente desde terminales interactivos; los shells no interactivos, la CI y las llamadas de ejecución de agentes permanecen desconectados e imprimen instrucciones de conexión:
remain-on-exit de tmux, por lo que los errores de inicio siguen disponibles para conectarse o capturarlos en lugar de eliminar la sesión. Volver a ejecutar pnpm gateway:watch reinicia ese panel.
El panel de tmux ejecuta el supervisor sin procesar:
--port o OPENCLAW_GATEWAY_PORT explícito difiere del puerto efectivo del servicio instalado, el contenedor deja el servicio en ejecución para que ambos Gateways puedan ejecutarse en paralelo.
Modo en primer plano sin tmux:
pnpm openclaw gateway stop cuando use el mismo puerto.
Mantenga la gestión mediante tmux, pero deshabilite la conexión automática:
--benchmark antes de invocar el Gateway y escribe un .cpuprofile de V8 por cada salida del proceso secundario del Gateway en .artifacts/gateway-watch-profiles/. Detenga o reinicie el Gateway supervisado para volcar el perfil actual y, a continuación, ábralo con Chrome DevTools o Speedscope:
--benchmark-dir <path>: escriba los perfiles en otra ubicación.--benchmark-no-force: omita la limpieza predeterminada del puerto--forcey falle inmediatamente si el puerto del Gateway ya está en uso.
OPENCLAW_TRACE_SYNC_IO=1 con --benchmark para obtener tanto perfiles de CPU como seguimientos de pila de E/S síncrona; en el modo de prueba de rendimiento, esos bloques de seguimiento se envían a gateway-watch-output.log dentro del directorio de la prueba de rendimiento (se filtran del panel del terminal), mientras que los registros normales del Gateway siguen visibles.
El contenedor de tmux transfiere al panel los selectores habituales no secretos del entorno de ejecución, incluidos OPENCLAW_PROFILE, OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, OPENCLAW_GATEWAY_PORT y OPENCLAW_SKIP_CHANNELS. Coloque las credenciales del proveedor en su perfil o configuración habituales, o use el modo sin procesar en primer plano para secretos efímeros puntuales.
Si el Gateway supervisado termina durante el inicio, el supervisor ejecuta openclaw doctor --fix --non-interactive una vez y reinicia el proceso secundario del Gateway. Establezca OPENCLAW_GATEWAY_WATCH_AUTO_DOCTOR=0 para ver el error de inicio original sin el intento de reparación exclusivo para desarrollo.
El panel de tmux gestionado usa de forma predeterminada registros del Gateway con colores; establezca FORCE_COLOR=0 al iniciar pnpm gateway:watch para deshabilitar la salida ANSI.
El supervisor reinicia ante cambios en los archivos relevantes para la compilación dentro de src/, los archivos fuente de extensiones, los metadatos package.json y openclaw.plugin.json de las extensiones, tsconfig.json, package.json y tsdown.config.ts. Los cambios en los metadatos de las extensiones reinician el Gateway sin forzar una recompilación; los cambios en el código fuente y la configuración siguen recompilando primero dist.
Añada indicadores de la CLI del Gateway después de gateway:watch y se transferirán en cada reinicio. Volver a ejecutar el mismo comando de supervisión reinicia el panel de tmux con ese nombre; el supervisor sin procesar mantiene un bloqueo de supervisor único para sustituir los procesos principales de supervisión duplicados en lugar de acumularlos.
Perfil de desarrollo + Gateway de desarrollo (—dev)
Dos indicadores--dev independientes:
--devglobal (perfil): aísla el estado en~/.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 y un espacio de trabajo predeterminados cuando falten (y que omita el arranque inicial).
pnpm openclaw ....
Funcionamiento:
-
Aislamiento del perfil (
--devglobal)OPENCLAW_PROFILE=devOPENCLAW_STATE_DIR=~/.openclaw-devOPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.jsonOPENCLAW_GATEWAY_PORT=19001(los puertos del navegador y del lienzo se desplazan en consecuencia)
-
Arranque inicial de desarrollo (
gateway --dev)- Escribe una configuración mínima si falta (
gateway.mode=local, enlazada a la interfaz de bucle invertido). - Establece
agents.defaults.workspaceen el espacio de trabajo de desarrollo yagents.defaults.skipBootstrap=true. - Crea los archivos iniciales del espacio de trabajo si faltan:
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 los proveedores de canales.
- Escribe una configuración mínima si falta (
channels.<id> sigue funcionando. Pase --dev-ambient-channels con --dev para restaurar la configuración automática de canales basada en el entorno durante esa ejecución.
Flujo de restablecimiento (inicio desde cero):
--dev es un indicador de perfil global y algunos ejecutores lo consumen. Si necesita indicarlo explícitamente, use la forma de variable de entorno:--reset borra la configuración, las credenciales, las sesiones y el espacio de trabajo de desarrollo (se mueven a la papelera, no se eliminan) y, a continuación, vuelve a crear la configuración de desarrollo predeterminada.
Registro del flujo sin procesar
OpenClaw puede registrar el flujo sin procesar del asistente antes de cualquier filtrado o formato. Esta es la mejor forma de comprobar si el razonamiento llega como deltas de texto sin formato (o como bloques de pensamiento independientes). Habilítelo mediante la CLI:~/.openclaw/logs/raw-stream.jsonl
Notas de seguridad
- Los registros del flujo sin procesar pueden incluir prompts completos, resultados de herramientas y datos de usuarios.
- Mantenga los registros localmente y elimínelos después de la depuración.
- Si comparte registros, elimine primero los secretos y la información de identificación personal.
Depuración en VSCode
Los mapas de código fuente son necesarios porque la compilación aplica hashes a los nombres de archivo generados. El archivolaunch.json incluido tiene como objetivo el servicio Gateway:
- Recompilar y depurar el Gateway: elimina
/disty recompila con la depuración habilitada antes de iniciar el Gateway. - Depurar el Gateway: depura una compilación existente sin modificar
/dist.
Configuración
- Abra Run and Debug (en la barra de actividades o con
Ctrl+Shift+D). - Seleccione Rebuild and Debug Gateway y pulse Start Debugging.
- Habilite los mapas de código fuente en un terminal:
- Linux/macOS:
export OUTPUT_SOURCE_MAPS=1 - Windows (PowerShell):
$env:OUTPUT_SOURCE_MAPS="1" - Windows (CMD):
set OUTPUT_SOURCE_MAPS=1
- Linux/macOS:
- Recompile:
pnpm clean:dist && pnpm build - Seleccione Debug Gateway y pulse Start Debugging.
src/; el depurador los asigna al JavaScript compilado mediante mapas de código fuente.
Notas
- Rebuild and Debug Gateway elimina
/disty ejecuta una compilación completa mediantepnpm buildcon mapas de código fuente en cada inicio. - Debug Gateway puede iniciarse y detenerse sin afectar a
/dist, pero el ciclo de compilación debe gestionarse en un terminal independiente. - Edite
launch.jsonargspara depurar otros subcomandos de la CLI. - Para usar la CLI compilada en otras tareas (por ejemplo,
dashboard --no-opensi la sesión de depuración genera un nuevo token de autenticación), ejecútela desde otro terminal:node ./openclaw.mjso un alias comoalias openclaw-build="node $(pwd)/openclaw.mjs".