openclaw doctor es la herramienta de reparación y migración de OpenClaw. Corrige configuraciones y estados obsoletos, comprueba el estado del sistema y proporciona pasos de reparación prácticos.
Inicio rápido
Modos sin interfaz y de automatización
- --yes
- --fix
- --lint
- --fix --force
- --non-interactive
- --deep
Modo de análisis de solo lectura
openclaw doctor --lint es la variante orientada a la automatización de
openclaw doctor --fix. Comparten el mismo registro de reglas de Doctor, pero no
seleccionan ni aplican las reglas del mismo modo:
doctor --lint ejecuta el perfil amplio y seguro de automatización: comprobaciones
estáticas, locales y útiles para la salida de la Pipeline de CI o de las comprobaciones previas. Omite las comprobaciones opcionales
que son informativas, dependen del entorno o de servicios activos, inventarían cuentas o espacios de trabajo,
o realizan limpieza histórica. Usa doctor --lint --all para ejecutar la
auditoría completa de análisis registrada, incluidas esas comprobaciones opcionales, o --only <id> para
una comprobación específica.
doctor --fix no utiliza el perfil de análisis predeterminado y no acepta
--all. Ejecuta la ruta de reparación ordenada de Doctor: las comprobaciones de estado modernas pueden proporcionar
una implementación opcional de repair(), mientras que las áreas más antiguas siguen utilizando su flujo de reparación
heredado de Doctor. Algunos hallazgos del análisis son deliberadamente solo diagnósticos, por lo que
la aparición de una comprobación en --lint --all no implica que --fix vaya a modificar esa área.
El contrato separa detect() (informa de hallazgos) de repair() (informa de
cambios, diferencias y efectos secundarios), lo que deja abierta la posibilidad de un futuro
doctor --fix --dry-run sin convertir las comprobaciones de análisis en planificadores de modificaciones.
Algunas comprobaciones integradas están desactivadas internamente de forma predeterminada para que sigan disponibles para
--all, --only y los flujos de reparación de Doctor sin formar parte del perfil de automatización
predeterminado de doctor --lint. La gravedad de cada hallazgo se sigue emitiendo
individualmente (info, warning o error); la selección predeterminada no es un nivel de
gravedad.
ok: indica si algún hallazgo alcanzó el umbral de gravedad seleccionadochecksRun/checksSkipped: recuentos (omitidos por el perfil,--onlyo--skip)findings: diagnósticos estructurados concheckId,severity,messagey, opcionalmente,path,line,column,ocPath,source,target,requirement,fixHint
--severity-min info|warning|error(valor predeterminado:warning): controla tanto lo que se muestra como lo que produce una salida distinta de cero.--all: ejecuta todas las comprobaciones de análisis registradas, incluidas las opcionales excluidas del conjunto de automatización predeterminado.--only <id>(repetible): ejecuta únicamente los identificadores de comprobación indicados; un identificador desconocido se notifica como un hallazgo de error.--skip <id>(repetible): excluye una comprobación y mantiene activo el resto de la ejecución.--json,--severity-min,--all,--onlyy--skiprequieren--lint; las ejecuciones simples deopenclaw doctory--fixlas rechazan.
Qué hace (resumen)
Estado, interfaz y actualizaciones
Estado, interfaz y actualizaciones
- Actualización previa opcional para instalaciones mediante git (solo en modo interactivo).
- Comprobación de vigencia del protocolo de la interfaz (recompila la interfaz de control cuando el esquema del protocolo es más reciente).
- Comprobación de estado y solicitud de reinicio.
- Notas sobre Skills y plugins solo cuando hay problemas; el inventario sin problemas permanece en
openclaw skills checkyopenclaw plugins list.
Configuración y migraciones
Configuración y migraciones
- Normalización de la configuración para formatos de valores heredados.
- Migración de la configuración de conversación desde los campos planos heredados de
talk.*atalk.provider+talk.providers.<provider>. - Comprobaciones de migración del navegador para configuraciones heredadas de la extensión de Chrome y la preparación de Chrome MCP.
- Advertencias de sustitución del proveedor OpenCode (
models.providers.opencode/opencode-zen/opencode-go). - Migración del proveedor y perfil heredados de OpenAI Codex (
openai-codex→openai) y advertencias de ocultación pormodels.providers.openai-codexobsoletos. - Comprobación de los requisitos previos de TLS para perfiles OAuth de OpenAI Codex.
- Advertencias sobre listas de permitidos de plugins y herramientas cuando
plugins.allowes restrictivo, pero la política de herramientas sigue solicitando comodines o herramientas pertenecientes a plugins. - Migración del estado heredado en disco (sesiones, directorio del agente y autenticación de WhatsApp).
- Migración de claves heredadas del contrato del manifiesto del plugin (
speechProviders,realtimeTranscriptionProviders,realtimeVoiceProviders,mediaUnderstandingProviders,imageGenerationProviders,videoGenerationProviders,webFetchProviders,webSearchProviders→contracts). - Migración del almacén de Cron heredado (
jobId,schedule.cron, campos de entrega y carga útil de nivel superior,providerde la carga útil y tareas de Webhook de reserva denotify: true). - Reparación de la fijación del entorno de ejecución de la CLI de Codex (
agentRuntime.id: "codex-cli"→"codex") enagents.defaults,agents.entries.*ymodels.providers.*(incluidas las entradas por modelo). - Limpieza de la configuración obsoleta de plugins cuando estos están habilitados; con
plugins.enabled=false, las referencias obsoletas a plugins se conservan como configuración de contención inerte.
Estado e integridad
Estado e integridad
- Inspección de archivos de bloqueo de sesiones y limpieza de bloqueos obsoletos.
- Reparación de transcripciones de sesiones con ramas duplicadas de reescritura de instrucciones creadas por las compilaciones afectadas de 2026.4.24.
- Detección de marcadores de recuperación tras reinicio para sesiones principales y subagentes bloqueados. Doctor informa de las sesiones bloqueadas y solo repara las marcas de interrupción obsoletas que entran en conflicto con un marcador existente; no vuelve a habilitar la recuperación automática.
- Comprobaciones de integridad del estado y permisos (sesiones, transcripciones y directorio de estado).
- Comprobaciones de permisos del archivo de configuración (chmod 600) cuando se ejecuta localmente.
- Estado de la autenticación de modelos: comprueba la caducidad de OAuth, puede renovar los tokens próximos a caducar e informa de los estados de espera o desactivación de los perfiles de autenticación.
Gateway, servicios y supervisores
Gateway, servicios y supervisores
- Reparación de la imagen del entorno aislado cuando este está habilitado.
- Migración de servicios heredados y detección de Gateways adicionales.
- Migración del estado heredado del canal Matrix (en modo
--fix/--repair). - Comprobaciones del entorno de ejecución del Gateway (servicio instalado pero no iniciado; etiqueta de launchd almacenada en caché).
- Advertencias sobre el estado de los canales (consultado desde el Gateway en ejecución).
- Las comprobaciones de permisos específicas de cada canal se encuentran en
openclaw channels capabilities; por ejemplo, los permisos de los canales de voz de Discord se auditan conopenclaw channels capabilities --channel discord --target channel:<channel-id>. - Comprobaciones de capacidad de respuesta de WhatsApp ante un estado degradado del bucle de eventos del Gateway mientras siguen ejecutándose clientes TUI locales;
--fixdetiene únicamente los clientes TUI locales verificados. - Reparación de rutas de Codex para referencias heredadas de modelos
openai-codex/*en modelos principales, alternativas, modelos de generación de imágenes y vídeos, sustituciones de Heartbeat, subagente y Compaction, hooks, sustituciones de modelos de canales y fijaciones de rutas de sesión;--fixlas reescribe comoopenai/*, migra los perfiles y el orden de autenticación deopenai-codex:*aopenai:*, elimina las fijaciones obsoletas del entorno de ejecución de sesiones y agentes completos, y permite que la ruta efectiva reparada determine si Codex es compatible. - Auditoría de la configuración del supervisor (launchd/systemd/schtasks) con reparación opcional.
- Limpieza del entorno de proxy incorporado para servicios del Gateway que capturaron valores de shell
HTTP_PROXY/HTTPS_PROXY/NO_PROXYdurante la instalación o actualización. - Comprobaciones del entorno de ejecución del Gateway (servicios heredados de Bun no compatibles y rutas de gestores de versiones).
- Diagnósticos de colisión de puertos del Gateway (valor predeterminado:
18789).
Autenticación, seguridad y emparejamiento
Autenticación, seguridad y emparejamiento
- Advertencias de seguridad para políticas de mensajes directos abiertas.
- Comprobaciones de autenticación del Gateway para el modo de token local (ofrece generar un token cuando no existe ninguna fuente de tokens; no sobrescribe configuraciones SecretRef de tokens).
- Detección de problemas de emparejamiento de dispositivos (solicitudes pendientes de primer emparejamiento, mejoras pendientes de rol o ámbito, divergencias obsoletas en la caché local de tokens de dispositivo y divergencias de autenticación en registros emparejados).
Espacio de trabajo y shell
Espacio de trabajo y shell
- Comprobación de persistencia de systemd en Linux.
- Comprobación del tamaño de los archivos de inicialización del espacio de trabajo (advertencias de truncamiento o proximidad al límite para archivos de contexto).
- Comprobación de preparación de Skills para el agente predeterminado; informa de las Skills permitidas a las que les faltan binarios, variables de entorno, configuración o requisitos del sistema operativo, y
--fixpuede deshabilitar las Skills no disponibles enskills.entries. - Comprobación del estado del completado de shell e instalación o actualización automática.
- Comprobación de preparación del proveedor de incrustaciones para la búsqueda en memoria (modelo local, clave de API remota o binario QMD).
- Comprobaciones de instalaciones desde el código fuente (discrepancia del espacio de trabajo de pnpm, recursos de interfaz ausentes y binario tsx ausente).
- Escribe la configuración actualizada y los metadatos del asistente.
Restauración y restablecimiento de la interfaz de Dreams
La escena Dreams de la interfaz de control incluye las acciones Rellenar, Restablecer y Borrar Grounded para el flujo de trabajo de Dreaming fundamentado. Estas utilizan métodos RPC del Gateway al estilo de doctor, pero no forman parte de la reparación/migración de la CLIopenclaw doctor.
MEMORY.md, ejecuta migraciones completas de doctor ni incorpora por sí sola candidatos fundamentados al almacén activo de promoción a corto plazo. Para introducir la reproducción histórica fundamentada en la vía normal de promoción profunda, utilice en su lugar el flujo de la CLI:
DREAMS.md sigue siendo la superficie de revisión.
Comportamiento detallado y justificación
0. Actualización opcional (instalaciones mediante git)
0. Actualización opcional (instalaciones mediante git)
1. Normalización de la configuración
1. Normalización de la configuración
talk.provider + talk.providers.<provider>, con la configuración de voz en tiempo real en talk.realtime.*. Doctor reescribe las estructuras antiguas talk.voiceId / talk.voiceAliases / talk.modelId / talk.outputFormat / talk.apiKey en el mapa de proveedores y reescribe los selectores heredados de nivel superior para tiempo real (talk.mode, talk.transport, talk.brain, talk.model, talk.voice) en talk.realtime.Doctor también advierte cuando plugins.allow no está vacío y la política de herramientas utiliza entradas con comodines o pertenecientes a plugins. tools.allow: ["*"] solo coincide con herramientas de plugins que realmente se cargan; no omite la lista de permitidos exclusiva de plugins.2. Migraciones de claves de configuración heredadas
2. Migraciones de claves de configuración heredadas
openclaw doctor. Doctor explica qué claves heredadas se encontraron, muestra la migración aplicada y reescribe ~/.openclaw/openclaw.json con el esquema actualizado. El inicio del Gateway rechaza los formatos de configuración heredados y solicita que se ejecute openclaw doctor --fix; no reescribe openclaw.json durante el inicio. openclaw doctor --fix también gestiona las migraciones del almacén de tareas de Cron.routing.queue, routing.bindings,
routing.agents/defaultAgentId, routing.transcribeAudio, la
agent.* de nivel superior o la identity de nivel
superior de la estructura de configuración anterior a los múltiples
agentes) ya no disponen de una ruta de migración; ahora la configuración
que las utiliza no supera la validación en lugar de reescribirse. Corrija
esas claves manualmente conforme a la referencia de configuración actual
antes de que doctor pueda continuar.plugins.entries.voice-call.config.* anteriores son normalizadas por
el propio plugin Voice Call en cada carga de configuración, no por openclaw doctor. El plugin también registra una advertencia de inicio que señala a openclaw doctor --fix, pero doctor no reescribe actualmente
openclaw.json para estas claves; la propia normalización del plugin es la que
aplica el cambio en tiempo de ejecución.- Si se configuran dos o más entradas
channels.<channel>.accountssinchannels.<channel>.defaultAccountniaccounts.default, doctor advierte que el enrutamiento alternativo puede elegir una cuenta inesperada. - Si
channels.<channel>.defaultAccountse establece en un ID de cuenta desconocido, doctor muestra una advertencia y enumera los ID de cuenta configurados.
2b. Sustituciones del proveedor OpenCode
2b. Sustituciones del proveedor OpenCode
models.providers.opencode, opencode-zen o opencode-go, se sustituye el catálogo integrado de OpenCode de openclaw/plugin-sdk/llm. Esto puede forzar a los modelos a usar la API incorrecta o reducir los costes a cero. Doctor muestra una advertencia para que se pueda eliminar la sustitución y restaurar el enrutamiento de API y los costes por modelo.2d. Requisitos previos de TLS para OAuth
2d. Requisitos previos de TLS para OAuth
UNABLE_TO_GET_ISSUER_CERT_LOCALLY, un certificado caducado o un certificado autofirmado), doctor muestra instrucciones de corrección específicas de la plataforma. En macOS con un Node de Homebrew, la solución suele ser brew postinstall ca-certificates. Con --deep, el sondeo se ejecuta incluso si el Gateway funciona correctamente.2e. Sustituciones del proveedor OAuth de Codex
2e. Sustituciones del proveedor OAuth de Codex
models.providers.openai-codex, estas pueden ocultar la ruta integrada del proveedor OAuth de Codex. Doctor muestra una advertencia cuando detecta esas opciones de transporte antiguas junto con OAuth de Codex, para que se pueda eliminar o reescribir la sustitución de transporte obsoleta y restaurar el comportamiento de enrutamiento actual. Los proxies personalizados y las sustituciones únicamente de encabezados siguen siendo compatibles y no activan esta advertencia, pero esas rutas de solicitud definidas por el usuario no son aptas para la selección implícita de Codex.2f. Reparación de rutas de Codex
2f. Reparación de rutas de Codex
openai-codex/* heredadas. El enrutamiento del entorno nativo de Codex usa referencias de modelos openai/* canónicas, pero el prefijo por sí solo nunca selecciona Codex. Si la política de tiempo de ejecución no está establecida o es auto, solo es apta una ruta oficial exacta de HTTPS Platform Responses o ChatGPT Responses sin ninguna sustitución de solicitud definida por el usuario. Consulte el tiempo de ejecución implícito de agentes de OpenAI.En el modo --fix / --repair, doctor reescribe las referencias afectadas del agente predeterminado y de cada agente, incluidos los modelos principales, las alternativas, los modelos de generación de imágenes/vídeos, las sustituciones de heartbeat/subagente/compaction, los hooks, las sustituciones de modelos de canales y el estado obsoleto de rutas de sesión persistido:openai-codex/gpt-*se convierte enopenai/gpt-*.- La intención de Codex se traslada a entradas
agentRuntime.id: "codex"limitadas por proveedor/modelo para las referencias de modelos de agentes reparadas. - Se eliminan la configuración obsoleta de tiempo de ejecución del agente completo y las fijaciones persistidas del tiempo de ejecución de la sesión porque la selección del tiempo de ejecución está limitada por proveedor/modelo.
- La política existente de tiempo de ejecución del proveedor/modelo se conserva, salvo que la referencia del modelo heredado reparada necesite el enrutamiento de Codex para mantener la ruta de autenticación anterior.
- Las listas existentes de modelos alternativos se conservan con sus entradas heredadas reescritas; las opciones por modelo copiadas se trasladan de la clave heredada a la clave canónica
openai/*. - Los valores persistidos de sesión
modelProvider/providerOverride,model/modelOverride, los avisos de uso de alternativas y las fijaciones de perfiles de autenticación se reparan en todos los almacenes de sesiones de agentes detectados. - Doctor repara por separado las fijaciones obsoletas
agentRuntime.id: "codex-cli"(un ID de tiempo de ejecución heredado distinto) a"codex"enagents.defaults,agents.entries.*y las entradas de modelosmodels.providers.*. /codex ...significa «controlar o vincular una conversación nativa de Codex desde el chat»./acp ...oruntime: "acp"significa «usar el adaptador externo ACP/acpx».
2g. Limpieza de rutas de sesión
2g. Limpieza de rutas de sesión
openclaw doctor --fix puede borrar estados obsoletos creados automáticamente, como fijaciones de modelos modelOverrideSource: "auto", metadatos de modelos de tiempo de ejecución, ID fijados del entorno, vinculaciones de sesiones de CLI y sustituciones automáticas de perfiles de autenticación cuando su ruta propietaria deja de estar configurada. Las elecciones explícitas del usuario o las elecciones heredadas del modelo de sesión se notifican para su revisión manual y no se modifican; cámbielas con /model ..., /new o restablezca la sesión cuando esa ruta ya no se necesite.3. Migraciones de estado heredado (distribución en disco)
3. Migraciones de estado heredado (distribución en disco)
- Almacén de sesiones y transcripciones: de
~/.openclaw/sessions/a~/.openclaw/agents/<agentId>/sessions/ - Directorio del agente: de
~/.openclaw/agent/a~/.openclaw/agents/<agentId>/agent/ - Estado de autenticación de WhatsApp (Baileys): del
~/.openclaw/credentials/*.jsonheredado (exceptooauth.json) a~/.openclaw/credentials/whatsapp/<accountId>/...(ID de cuenta predeterminado:default) - Identidad firmada del dispositivo: de
~/.openclaw/identity/device.jsona la filadevice_identitiesdeprimaryenstate/openclaw.sqlite; el archivo independiente de autenticación del dispositivo no se modifica
openclaw doctor. La normalización de proveedores/mapas de proveedores de conversación realiza comparaciones mediante igualdad estructural, por lo que las diferencias debidas únicamente al orden de las claves ya no activan cambios doctor --fix repetidos sin efecto.3a. Migraciones de manifiestos de plugins heredados
3a. Migraciones de manifiestos de plugins heredados
speechProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, mediaUnderstandingProviders, imageGenerationProviders, videoGenerationProviders, webFetchProviders, webSearchProviders). Cuando las encuentra, ofrece trasladarlas al objeto contracts y reescribir el archivo de manifiesto en el mismo lugar. Esta migración es idempotente; si contracts ya contiene los mismos valores, la clave heredada se elimina sin duplicar los datos.3b. Migraciones del almacén de Cron heredado
3b. Migraciones del almacén de Cron heredado
~/.openclaw/cron/jobs.json) en busca de formatos de trabajos antiguos antes de importar las filas canónicas a SQLite.Las limpiezas actuales de Cron incluyen:jobId→idschedule.cron→schedule.expr- campos de carga útil de nivel superior (
message,model,thinking, …) →payload - campos de entrega de nivel superior (
deliver,channel,to,provider, …) →delivery - alias de entrega
providerde la carga útil →delivery.channelexplícito - trabajos heredados de Webhook alternativo
notify: true→ entrega explícita mediante Webhook a partir del valor sin procesar retiradocron.webhookcuando sea válido; los trabajos de anuncio conservan su entrega por chat y recibendelivery.completionDestination. Después, doctor elimina la clave de configuración antigua. Sin un Webhook heredado utilizable, se elimina el marcador de nivel superior inertenotifypara los trabajos sin destino (se conserva la entrega existente, incluidos los anuncios), ya que la entrega en tiempo de ejecución nunca lo lee.
jobs-quarantine.json, junto al almacén activo, antes de eliminarlas de jobs.json; doctor informa de las filas en cuarentena para que se puedan revisar o reparar manualmente.Al iniciarse, el Gateway normaliza la proyección de tiempo de ejecución e ignora el marcador de nivel superior notify, pero deja el estado persistido de Cron para que doctor lo repare. Doctor elimina los marcadores inertes de los trabajos sin un destino de migración (delivery.mode ninguno/ausente, un destino de Webhook heredado inutilizable o una entrega existente por anuncio/chat), sin modificar la entrega existente, de modo que las ejecuciones repetidas de doctor --fix ya no vuelvan a advertir sobre el mismo trabajo.En Linux, doctor también muestra una advertencia cuando el crontab del usuario aún invoca el ~/.openclaw/bin/ensure-whatsapp.sh heredado. Este script local al host no recibe mantenimiento en la versión actual de OpenClaw y puede escribir mensajes Gateway inactive falsos en ~/.openclaw/logs/whatsapp-health.log cuando Cron no puede acceder al bus de usuario de systemd. Elimine la entrada obsoleta del crontab con crontab -e; use openclaw channels status --probe, openclaw doctor y openclaw gateway status para las comprobaciones de estado actuales.3c. Limpieza de bloqueos de sesión
3c. Limpieza de bloqueos de sesión
--fix / --repair, elimina automáticamente los bloqueos cuyos propietarios estén inactivos, huérfanos, reciclados, tengan metadatos incorrectos y antiguos, o no pertenezcan a OpenClaw. Los bloqueos antiguos que sigan perteneciendo a un proceso activo de OpenClaw se notifican, pero se mantienen para que doctor no interrumpa un proceso activo de escritura de transcripciones.3d. Reparación de ramas de transcripciones de sesión
3d. Reparación de ramas de transcripciones de sesión
--fix / --repair, doctor crea junto al original una copia de seguridad de cada archivo afectado y reescribe la transcripción para que corresponda a la rama activa, de modo que el historial del gateway y los lectores de memoria dejen de ver turnos duplicados.4. Comprobaciones de integridad del estado (persistencia de sesiones, enrutamiento y seguridad)
4. Comprobaciones de integridad del estado (persistencia de sesiones, enrutamiento y seguridad)
- Directorio de estado ausente: advierte de una pérdida catastrófica del estado, solicita volver a crear el directorio y recuerda que no puede recuperar los datos ausentes.
- Permisos del directorio de estado: verifica que se pueda escribir en él; ofrece reparar los permisos (y muestra una sugerencia
chowncuando detecta que el propietario o el grupo no coinciden). - Directorio de estado sincronizado con la nube en macOS: advierte cuando el estado se resuelve dentro de iCloud Drive (
~/Library/Mobile Documents/com~apple~CloudDocs/...) o~/Library/CloudStorage/..., porque las rutas respaldadas por sincronización pueden provocar operaciones de E/S más lentas y conflictos entre bloqueos y sincronización. - Directorio de estado en SD o eMMC en Linux: advierte cuando el estado se resuelve en una fuente de montaje
mmcblk*, porque las operaciones de E/S aleatorias respaldadas por SD/eMMC pueden ser más lentas y desgastar el soporte con mayor rapidez al escribir sesiones y credenciales. - Directorio de estado volátil en Linux: advierte cuando el estado se resuelve en
tmpfsoramfs, porque las sesiones, las credenciales, la configuración y el estado de SQLite (con archivos auxiliares WAL/de diario) desaparecen al reiniciar. Los montajesoverlayde Docker no se marcan deliberadamente porque sus capas con capacidad de escritura persisten entre reinicios del host mientras se mantenga el contenedor. - Directorios de sesiones ausentes:
sessions/y el directorio del almacén de sesiones son necesarios para conservar el historial y evitar fallos deENOENT. - Discordancia de transcripciones: advierte cuando las entradas de sesiones recientes no tienen sus archivos de transcripción.
- Sesión principal «JSONL de 1 línea»: señala cuando la transcripción principal solo contiene una línea (el historial no se está acumulando).
- Varios directorios de estado: advierte cuando existen varias carpetas
~/.openclawen distintos directorios personales o cuandoOPENCLAW_STATE_DIRapunta a otro lugar (el historial puede dividirse entre instalaciones). - Recordatorio del modo remoto: si
gateway.mode=remote, doctor recuerda que debe ejecutarse en el host remoto (el estado reside allí). - Permisos del archivo de configuración: advierte si
~/.openclaw/openclaw.jsonpermite la lectura al grupo o a todo el mundo y ofrece restringir los permisos a600.
5. Estado de la autenticación del modelo (caducidad de OAuth)
5. Estado de la autenticación del modelo (caducidad de OAuth)
--non-interactive omite los intentos de renovación.Cuando una renovación de OAuth falla de forma permanente (por ejemplo, refresh_token_reused, invalid_grant o cuando un proveedor indica que es necesario volver a iniciar sesión), doctor informa de que se requiere volver a autenticarse y muestra el comando openclaw models auth login --provider ... exacto que debe ejecutarse.Doctor también informa de los perfiles de autenticación que no pueden utilizarse temporalmente debido a periodos breves de espera (límites de frecuencia, tiempos de espera o fallos de autenticación) o a desactivaciones más prolongadas (fallos de facturación o crédito).Los perfiles antiguos de OAuth de Codex cuyos tokens residen en el llavero de macOS (incorporaciones anteriores al diseño de archivos auxiliares) solo los repara doctor. Ejecute openclaw doctor --fix una vez desde un terminal interactivo para migrar directamente los tokens antiguos respaldados por el llavero a auth-profiles.json; después, los turnos integrados (Telegram, cron y delegación a subagentes) los resuelven como perfiles canónicos de OAuth de OpenAI.6. Validación del modelo de hooks
6. Validación del modelo de hooks
hooks.gmail.model, doctor valida la referencia del modelo con respecto al catálogo y la lista de permitidos, y advierte cuando no podrá resolverse o no esté permitida.7. Reparación de imágenes del sandbox
7. Reparación de imágenes del sandbox
7b. Limpieza de instalaciones de plugins
7b. Limpieza de instalaciones de plugins
openclaw doctor --fix / openclaw doctor --repair, doctor elimina el estado antiguo de preparación de dependencias de plugins generado por OpenClaw: raíces de dependencias generadas obsoletas, directorios antiguos de preparación de instalaciones, residuos locales de paquetes procedentes del código anterior de reparación de dependencias de plugins incluidos y copias npm administradas huérfanas o recuperadas de plugins @openclaw/* incluidos que pueden ocultar el manifiesto incluido actual. Doctor también vuelve a enlazar el paquete openclaw del host con los plugins npm administrados que declaran peerDependencies.openclaw, para que las importaciones locales del paquete en tiempo de ejecución, como openclaw/plugin-sdk/*, sigan resolviéndose después de actualizaciones o reparaciones de npm.Doctor también puede reinstalar plugins descargables ausentes cuando la configuración hace referencia a ellos, pero el registro local de plugins no puede encontrarlos (plugins.entries material, configuración de canales/proveedores/búsquedas y tiempos de ejecución de agentes configurados). Durante las actualizaciones de paquetes, doctor evita reinstalar paquetes de plugins mientras se sustituye el paquete principal; vuelva a ejecutar openclaw doctor --fix después de la actualización si un plugin configurado aún necesita recuperarse. Fuera de la excepción de inicio de imágenes de contenedor descrita a continuación, ni el inicio del gateway ni la recarga de la configuración ejecutan reparaciones de paquetes; las instalaciones de plugins siguen siendo operaciones explícitas de doctor, instalación o actualización.El inicio del gateway en contenedores tiene una excepción limitada para actualizaciones: cuando openclaw gateway run se inicia con una nueva versión de OpenClaw, ejecuta migraciones seguras del estado y la convergencia existente de plugins posterior al núcleo antes de quedar listo, y después registra un punto de control por versión. Este proceso de inicio puede limpiar registros obsoletos de plugins incluidos, reparar enlaces locales de plugins, reinstalar paquetes de plugins configurados cuando la ruta de convergencia lo requiera y comprobar las cargas útiles de los plugins activos. Si el inicio no puede realizar la reparación de forma segura, ejecute una vez la misma imagen con openclaw doctor --fix sobre el mismo estado y configuración montados antes de reiniciar el contenedor con normalidad.8. Migraciones del servicio Gateway y sugerencias de limpieza
8. Migraciones del servicio Gateway y sugerencias de limpieza
openclaw gateway status --deep o openclaw doctor --deep y, después, elimine el duplicado o establezca OPENCLAW_SERVICE_REPAIR_POLICY=external cuando un supervisor del sistema gestione el ciclo de vida del gateway.8b. Migración de Matrix al iniciar
8b. Migración de Matrix al iniciar
--fix / --repair) crea una instantánea previa a la migración y, después, ejecuta los pasos de migración con el máximo esfuerzo posible: la migración del estado antiguo de Matrix y la preparación del estado cifrado antiguo. Ninguno de los pasos es fatal; los errores se registran y el inicio continúa. En el modo de solo lectura (openclaw doctor sin --fix), esta comprobación se omite por completo.8c. Vinculación de dispositivos y divergencias de autenticación
8c. Vinculación de dispositivos y divergencias de autenticación
- solicitudes pendientes de vinculación inicial
- actualizaciones pendientes de rol o ámbito para dispositivos ya vinculados
- reparaciones de discordancias de claves públicas en las que el id. del dispositivo sigue coincidiendo, pero la identidad del dispositivo ya no coincide con el registro aprobado
- registros vinculados sin un token activo para un rol aprobado
- tokens vinculados cuyos ámbitos se desvían de la referencia de vinculación aprobada
- entradas locales almacenadas en caché de tokens de dispositivo para el equipo actual anteriores a una rotación del token en el gateway o que contienen metadatos de ámbito obsoletos
- inspeccionar las solicitudes pendientes con
openclaw devices list - aprobar la solicitud exacta con
openclaw devices approve <requestId> - rotar un token nuevo con
openclaw devices rotate --device <deviceId> --role <role> - eliminar y volver a aprobar un registro obsoleto con
openclaw devices remove <deviceId>
9. Advertencias de seguridad
9. Advertencias de seguridad
openclaw security audit para consultar el inventario de seguridad completo.10. Permanencia de systemd (Linux)
10. Permanencia de systemd (Linux)
11. Estado del espacio de trabajo (Skills, plugins y TaskFlows)
11. Estado del espacio de trabajo (Skills, plugins y TaskFlows)
- Skills: enumera los nombres de Skills permitidos pero no utilizables; use
openclaw skills checkpara consultar los detalles de los requisitos y los recuentos completos. - Plugins: informa únicamente de los identificadores de plugins con errores; use
openclaw plugins listpara consultar el inventario de plugins cargados, importados, deshabilitados e incluidos. - Advertencias de compatibilidad de plugins: señala los plugins que tienen problemas de compatibilidad con el tiempo de ejecución actual.
- Diagnósticos de plugins: muestra todas las advertencias o errores emitidos por el registro de plugins durante la carga.
- Recuperación de TaskFlow: muestra los TaskFlows administrados sospechosos que requieren inspección manual o cancelación.
- CLI de Claude: informa únicamente de problemas con el binario, la autenticación, el perfil, el espacio de trabajo o el directorio del proyecto; se omiten los detalles de las comprobaciones correctas.
11b. Tamaño de los archivos de arranque
11b. Tamaño de los archivos de arranque
AGENTS.md, CLAUDE.md u otros archivos de contexto inyectados) se acercan al presupuesto de caracteres configurado o lo superan. Informa, por archivo, del número de caracteres sin procesar frente a los inyectados, el porcentaje de truncamiento, la causa del truncamiento (max/file o max/total) y el total de caracteres inyectados como fracción del presupuesto total. Cuando los archivos están truncados o cerca del límite, doctor muestra sugerencias para ajustar agents.defaults.bootstrapMaxChars y agents.defaults.bootstrapTotalMaxChars.11c. Autocompletado del shell
11c. Autocompletado del shell
- Si el perfil del shell usa un patrón de completado dinámico lento (
source <(openclaw completion ...)), doctor lo actualiza a la variante más rápida con archivo en caché. - Si el completado está configurado en el perfil, pero falta el archivo de caché, doctor regenera la caché automáticamente.
- Si no hay ningún completado configurado, doctor solicita instalarlo (solo en modo interactivo; se omite con
--non-interactive).
openclaw completion --write-state para regenerar la caché manualmente.11d. Limpieza de plugins de canal obsoletos
11d. Limpieza de plugins de canal obsoletos
openclaw doctor --fix elimina un plugin de canal ausente, también elimina la configuración huérfana con ámbito de canal que hacía referencia a ese plugin: entradas channels.<id>, destinos de Heartbeat que nombraban el canal y anulaciones agents.*.models["<channel>/*"]. Esto evita bucles de arranque del Gateway en los que el runtime del canal ya no existe, pero la configuración aún solicita al Gateway que se vincule a él.12. Comprobaciones de autenticación del Gateway (token local)
12. Comprobaciones de autenticación del Gateway (token local)
- Si el modo de token necesita un token y no existe ninguna fuente de tokens, doctor ofrece generar uno.
- Si
gateway.auth.tokenestá gestionado mediante SecretRef, pero no está disponible, doctor muestra una advertencia y no lo sobrescribe con texto sin formato. openclaw doctor --generate-gateway-tokenfuerza la generación solo cuando no hay ningún SecretRef de token configurado.
12b. Reparaciones de solo lectura compatibles con SecretRef
12b. Reparaciones de solo lectura compatibles con SecretRef
openclaw doctor --fixusa el mismo modelo de resumen de SecretRef de solo lectura que los comandos de la familia de estado para realizar reparaciones de configuración específicas.- Ejemplo: la reparación de
allowFrom/groupAllowFrom@usernamede Telegram intenta usar las credenciales configuradas del bot cuando están disponibles. - Si el token del bot de Telegram está configurado mediante SecretRef, pero no está disponible en la ruta del comando actual, doctor informa de que la credencial está configurada, pero no disponible, y omite la resolución automática en lugar de fallar o informar erróneamente de que falta el token.
13. Comprobación de estado y reinicio del Gateway
13. Comprobación de estado y reinicio del Gateway
13b. Disponibilidad de la búsqueda en memoria
13b. Disponibilidad de la búsqueda en memoria
- Backend QMD: comprueba si el binario
qmdestá disponible y puede iniciarse. De no ser así, muestra instrucciones para solucionarlo, incluidonpm install -g @tobilu/qmd(o el equivalente de Bun), y una opción para indicar manualmente la ruta del binario. - Proveedor local explícito: comprueba si existe un archivo de modelo local o una URL reconocida de un modelo remoto o descargable. Si falta, sugiere cambiar a un proveedor remoto.
- Proveedor remoto explícito (
openai,voyage, etc.): verifica que haya una clave de API en el entorno o en el almacén de autenticación. Si falta, muestra indicaciones prácticas para solucionarlo. - Proveedor automático heredado: trata
memorySearch.provider: "auto"como OpenAI, comprueba la disponibilidad de OpenAI ydoctor --fixlo reescribe comoprovider: "openai".
openclaw memory status --deep para verificar la disponibilidad de los embeddings durante el runtime.14. Advertencias de estado de los canales
14. Advertencias de estado de los canales
15. Auditoría y reparación de la configuración del supervisor
15. Auditoría y reparación de la configuración del supervisor
openclaw doctorsolicita confirmación antes de reescribir la configuración del supervisor.openclaw doctor --yesacepta las solicitudes de reparación predeterminadas.openclaw doctor --fixaplica las correcciones recomendadas sin solicitar confirmación (--repaires un alias).openclaw doctor --fix --forcesobrescribe las configuraciones personalizadas del supervisor.OPENCLAW_SERVICE_REPAIR_POLICY=externalmantiene doctor en modo de solo lectura para el ciclo de vida del servicio del Gateway. Sigue informando del estado del servicio y ejecutando reparaciones no relacionadas con el servicio, pero omite la instalación, el inicio, el reinicio y el arranque inicial del servicio, las reescrituras de la configuración del supervisor y la limpieza de servicios heredados, porque un supervisor externo controla ese ciclo de vida.- En Linux, doctor no reescribe los metadatos del comando o del punto de entrada mientras la unidad systemd correspondiente del Gateway esté activa. También ignora las unidades adicionales inactivas, no heredadas y similares al Gateway durante el análisis de servicios duplicados, para que los archivos de servicios complementarios no generen avisos innecesarios de limpieza.
- Si la autenticación mediante token requiere un token y
gateway.auth.tokenestá gestionado mediante SecretRef, la instalación o reparación del servicio por parte de doctor valida el SecretRef, pero no conserva los valores resueltos del token en texto sin formato en los metadatos del entorno del servicio del supervisor. - Doctor detecta los valores gestionados de
.envo respaldados por SecretRef que las instalaciones anteriores de LaunchAgent, systemd o las tareas programadas de Windows incorporaron directamente en el entorno del servicio, y reescribe los metadatos del servicio para que esos valores se carguen desde la fuente del runtime en lugar de la definición del supervisor. - Doctor detecta cuando el comando del servicio sigue fijado a un
--portanterior después de que cambiegateway.port, y reescribe los metadatos del servicio con el puerto actual. - Si la autenticación mediante token requiere un token y el SecretRef del token configurado no se puede resolver, doctor bloquea la ruta de instalación o reparación y proporciona instrucciones prácticas.
- Si tanto
gateway.auth.tokencomogateway.auth.passwordestán configurados ygateway.auth.modeno está definido, doctor bloquea la instalación o reparación hasta que se establezca el modo explícitamente. - Para las unidades systemd de usuario de Linux, las comprobaciones de discrepancias de tokens de doctor incluyen las fuentes
Environment=yEnvironmentFile=al comparar los metadatos de autenticación del servicio. - Las reparaciones de servicios de doctor se niegan a reescribir, detener o reiniciar un servicio del Gateway desde un binario anterior de OpenClaw cuando la configuración fue escrita por última vez por una versión más reciente. Consulte Solución de problemas del Gateway.
- Siempre se puede forzar una reescritura completa mediante
openclaw gateway install --force.
16. Diagnósticos del runtime y del puerto del Gateway
16. Diagnósticos del runtime y del puerto del Gateway
18789) e informa de las causas probables (el Gateway ya está en ejecución o existe un túnel SSH).17. Prácticas recomendadas para el runtime del Gateway
17. Prácticas recomendadas para el runtime del Gateway
nvm, fnm, volta, asdf, etc.). Bun no puede abrir el almacén de estado node:sqlite de OpenClaw, por lo que las reparaciones migran los servicios Bun heredados a Node. Las rutas de los gestores de versiones pueden dejar de funcionar después de las actualizaciones porque el servicio no carga la inicialización del shell. Doctor ofrece migrar a una instalación de Node del sistema cuando está disponible (Homebrew/apt/choco).Los LaunchAgents de macOS recién instalados o reparados usan una PATH canónica del sistema (/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin) en lugar de copiar la PATH del shell interactivo, de modo que los binarios del sistema gestionados por Homebrew permanezcan disponibles, mientras que Volta, asdf, fnm, pnpm y otros directorios de gestores de versiones no cambien el Node que resuelven los procesos secundarios. Los servicios de Linux siguen conservando raíces de entorno explícitas (NVM_DIR, FNM_DIR, VOLTA_HOME, ASDF_DATA_DIR, BUN_INSTALL, PNPM_HOME) y directorios estables de binarios del usuario, pero los directorios alternativos inferidos de gestores de versiones solo se escriben en la PATH del servicio cuando existen en el disco.18. Escritura de la configuración y metadatos del asistente
18. Escritura de la configuración y metadatos del asistente
19. Consejos para el espacio de trabajo (copia de seguridad y sistema de memoria)
19. Consejos para el espacio de trabajo (copia de seguridad y sistema de memoria)