Saltar al contenido principal
Respuestas rápidas y solución de problemas más profunda para configuraciones reales (desarrollo local, VPS, multiagente, OAuth/claves de API, conmutación por error de modelos). Para diagnósticos en tiempo de ejecución, consulta Solución de problemas. Para la referencia completa de configuración, consulta Configuración.

Primeros 60 segundos si algo está roto

1

Estado rápido

openclaw status
Resumen local rápido: SO + actualización, accesibilidad de gateway/servicio, agentes/sesiones, configuración del proveedor + problemas de tiempo de ejecución (cuando se puede acceder al gateway).
2

Informe pegable (seguro para compartir)

openclaw status --all
Diagnóstico de solo lectura con cola de logs (tokens redactados).
3

Estado del daemon + puerto

openclaw gateway status
Muestra el tiempo de ejecución del supervisor frente a la accesibilidad RPC, la URL de destino de la sonda y qué configuración probablemente usó el servicio.
4

Sondas profundas

openclaw status --deep
Sonda de estado del gateway en vivo, incluidas sondas de canales cuando son compatibles (requiere un gateway accesible). Consulta Estado.
5

Seguir el log más reciente

openclaw logs --follow
Si RPC está caído, recurre a:
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"
Los logs de archivos están separados de los logs del servicio; consulta Logging y Solución de problemas.
6

Ejecutar doctor (reparaciones)

openclaw doctor
Repara/migra la configuración y el estado, y luego ejecuta comprobaciones de salud. Consulta Doctor.
7

Instantánea del Gateway (solo WS)

openclaw health --json
openclaw health --verbose   # shows the target URL + config path on errors
Pide al gateway en ejecución una instantánea completa. Consulta Estado.

Inicio rápido y configuración de primera ejecución

Las preguntas y respuestas de primera ejecución - instalación, incorporación, rutas de autenticación, suscripciones, fallos iniciales - están en las Preguntas frecuentes de primera ejecución.

¿Qué es OpenClaw?

OpenClaw es un asistente personal de IA que ejecutas en tus propios dispositivos. Responde en las superficies de mensajería que ya usas (Discord, Google Chat, iMessage, Mattermost, Signal, Slack, Telegram, WebChat, WhatsApp y plugins de canal incluidos como QQ Bot) y también puede hacer voz además de un Canvas en vivo en plataformas compatibles. El Gateway es el plano de control siempre activo; el asistente es el producto.
OpenClaw no es “solo un envoltorio de Claude”. Es un plano de control local-first que ejecuta un asistente capaz en tu propio hardware, accesible desde las apps de chat que ya usas, con sesiones con estado, memoria y herramientas, sin entregar tus flujos de trabajo a un SaaS alojado.
  • Tus dispositivos, tus datos: ejecuta el Gateway donde quieras (Mac, Linux, VPS) y mantén el espacio de trabajo y el historial de sesiones en local.
  • Canales reales, no un sandbox web: Discord/iMessage/Signal/Slack/Telegram/WhatsApp/etc., además de voz móvil y Canvas en plataformas compatibles.
  • Independiente del modelo: usa Anthropic, MiniMax, OpenAI, OpenRouter, etc., con enrutamiento y conmutación por error por agente.
  • Opción solo local: ejecuta modelos locales para que todos los datos puedan permanecer en tu dispositivo.
  • Enrutamiento multiagente: agentes separados por canal, cuenta o tarea, cada uno con su propio espacio de trabajo y valores predeterminados.
  • Código abierto y modificable: inspecciona, amplía y autoaloja sin dependencia de proveedor.
Docs: Gateway, Canales, Multiagente, Memoria.
Buenos primeros proyectos: crear un sitio web (WordPress, Shopify o un sitio estático); prototipar una app móvil (esquema, pantallas, plan de API); organizar archivos y carpetas; conectar Gmail y automatizar resúmenes o seguimientos.Puede manejar tareas grandes, pero funciona mejor dividido en fases con subagentes para trabajo en paralelo.
  • Informes personales: resúmenes de bandeja de entrada, calendario y noticias que te interesan.
  • Investigación y redacción: investigación rápida, resúmenes y primeros borradores para correos o docs.
  • Recordatorios y seguimientos: avisos y listas de comprobación impulsados por Cron o Heartbeat.
  • Automatización del navegador: rellenar formularios, recopilar datos, repetir tareas web.
  • Coordinación entre dispositivos: envía una tarea desde tu teléfono, deja que el Gateway la ejecute en un servidor y recibe el resultado de vuelta en el chat.
Sí, para investigación, cualificación y redacción: escanear sitios, crear listas preliminares, resumir prospectos, redactar borradores de contacto o de textos publicitarios.Para campañas de contacto o anuncios, mantén a un humano en el circuito. Evita el spam, cumple las leyes locales y las políticas de la plataforma, y revisa cualquier cosa antes de enviarla. Deja que OpenClaw redacte; tú apruebas.Docs: Seguridad.
OpenClaw es un asistente personal y una capa de coordinación, no un reemplazo del IDE. Usa Claude Code o Codex para el ciclo de codificación directo más rápido dentro de un repo. Usa OpenClaw para memoria duradera, acceso entre dispositivos y orquestación de herramientas.
  • Memoria y espacio de trabajo persistentes entre sesiones.
  • Acceso multiplataforma (Telegram, WhatsApp, TUI, WebChat).
  • Orquestación de herramientas (navegador, archivos, programación, hooks).
  • Gateway siempre activo (ejecútalo en un VPS, interactúa desde cualquier lugar).
  • Nodos para navegador/pantalla/cámara/exec locales.
Muestra: https://openclaw.ai/showcase.

Skills y automatización

Usa sobrescrituras administradas en lugar de editar la copia del repo. Pon los cambios en ~/.openclaw/skills/<name>/SKILL.md (o añade una carpeta mediante skills.load.extraDirs en ~/.openclaw/openclaw.json). Precedencia: <workspace>/skills -> <workspace>/.agents/skills -> ~/.agents/skills -> ~/.openclaw/skills -> incluidas -> skills.load.extraDirs, por lo que las sobrescrituras administradas ganan frente a las skills incluidas sin tocar git. Para instalar globalmente pero limitar la visibilidad a algunos agentes, mantén la copia compartida en ~/.openclaw/skills y controla la visibilidad con agents.defaults.skills / agents.list[].skills. Solo las ediciones que merezcan ir upstream deberían salir como PRs contra la copia del repo.
Sí: añade directorios mediante skills.load.extraDirs en ~/.openclaw/openclaw.json (la precedencia más baja en el orden anterior). clawhub instala en ./skills de forma predeterminada, que OpenClaw trata como <workspace>/skills en la siguiente sesión. Para limitar la visibilidad a ciertos agentes, combínalo con agents.defaults.skills o agents.list[].skills.
Patrones compatibles:
  • Trabajos Cron: los trabajos aislados pueden establecer una sobrescritura de model por trabajo.
  • Agentes: enruta tareas a agentes separados con modelos predeterminados, niveles de razonamiento y parámetros de stream diferentes.
  • Cambio bajo demanda: /model cambia el modelo de la sesión actual en cualquier momento.
Ejemplo: mismo modelo, ajustes diferentes por agente:
{
  agents: {
    list: [
      {
        id: "coder",
        model: "xiaomi/mimo-v2.5-pro",
        thinkingDefault: "high",
        params: { temperature: 0.1 },
      },
      {
        id: "chat",
        model: "xiaomi/mimo-v2.5-pro",
        thinkingDefault: "off",
        params: { temperature: 0.8 },
      },
    ],
  },
}
Pon los valores predeterminados compartidos por modelo en agents.defaults.models["provider/model"].params y luego las sobrescrituras específicas del agente en agents.list[].params plano. No dupliques el mismo modelo bajo agents.list[].models["provider/model"].params anidado; esa ruta es para el catálogo de modelos por agente y sobrescrituras de tiempo de ejecución.Consulta Trabajos Cron, Enrutamiento multiagente, Configuración, Comandos slash.
Usa subagentes para tareas largas o paralelas: se ejecutan en su propia sesión, devuelven un resumen y mantienen tu chat principal receptivo. Pide al bot que “genere un subagente para esta tarea” o usa /subagents. Usa /status para ver si el Gateway está ocupado actualmente.Tanto las tareas largas como los subagentes consumen tokens; establece un modelo más barato para subagentes mediante agents.defaults.subagents.model si el coste importa.Docs: Subagentes, Tareas en segundo plano.
Vincula un hilo de Discord a un subagente o destino de sesión para que los mensajes de seguimiento allí permanezcan en esa sesión vinculada.
  • Genera con sessions_spawn usando thread: true (opcionalmente mode: "session" para seguimiento persistente).
  • O vincula manualmente con /focus <target>.
  • /agents inspecciona el estado de vinculación.
  • /session idle <duration|off> y /session max-age <duration|off> controlan el desenfoque automático.
  • /unfocus desvincula el hilo.
Configuración: session.threadBindings.enabled (interruptor global), session.threadBindings.idleHours (predeterminado 24, 0 desactiva), session.threadBindings.maxAgeHours (predeterminado 0 = sin límite estricto) y sobrescrituras por canal channels.discord.threadBindings.{enabled,idleHours,maxAgeHours}. channels.discord.threadBindings.spawnSessions controla la vinculación automática al generar (predeterminado true).Docs: Subagentes, Discord, Referencia de configuración, Comandos slash.
Comprueba la ruta del solicitante resuelta:
  • La entrega de subagente en modo de finalización prefiere un hilo vinculado o una ruta de conversación cuando existe.
  • Si el origen de finalización solo lleva un canal, OpenClaw recurre a la ruta almacenada de la sesión solicitante (lastChannel / lastTo / lastAccountId) para que la entrega directa aún pueda tener éxito.
  • Sin ruta vinculada y sin ruta almacenada utilizable: la entrega directa puede fallar y el resultado recurre a la entrega de sesión en cola en lugar de publicarse inmediatamente.
  • Los destinos no válidos u obsoletos también pueden forzar el fallback a cola o un fallo de entrega final.
  • Si la última respuesta visible del asistente hijo es exactamente NO_REPLY / no_reply o ANNOUNCE_SKIP, OpenClaw suprime intencionalmente el anuncio en lugar de publicar progreso anterior obsoleto.
Depuración: openclaw tasks show <lookup>, donde <lookup> es un id de tarea, id de ejecución o clave de sesión.Docs: Subagentes, Tareas en segundo plano, Herramientas de sesión.
Cron se ejecuta dentro del proceso del Gateway; no se dispara si el Gateway no está ejecutándose continuamente.
  • Confirma que cron está habilitado (cron.enabled) y que OPENCLAW_SKIP_CRON no está establecido.
  • Confirma que el Gateway se ejecuta 24/7 (sin suspensión/reinicios).
  • Verifica la zona horaria del trabajo (--tz frente a la zona horaria del host).
Depuración:
openclaw cron run <jobId>
openclaw cron runs --id <jobId> --limit 50
Docs: Trabajos Cron, Automatización.
Comprueba el modo de entrega:
  • --no-deliver / delivery.mode: "none": no se espera ningún envío de reserva del ejecutor.
  • Destino de anuncio ausente o no válido (channel / to): el ejecutor omitió la entrega saliente.
  • Fallos de autenticación del canal (unauthorized, Forbidden): el ejecutor intentó entregar, pero las credenciales lo bloquearon.
  • Un resultado aislado silencioso (solo NO_REPLY / no_reply) se trata como intencionadamente no entregable, así que la entrega de reserva en cola también se suprime.
Para trabajos Cron aislados, el agente aún puede enviar directamente con la herramienta message cuando hay una ruta de chat disponible. --announce solo controla la entrega de reserva del ejecutor para el texto final que el agente no haya enviado ya por sí mismo.Depuración:
openclaw cron runs --id <jobId> --limit 50
openclaw tasks show <lookup>
Documentación: Trabajos Cron, Tareas en segundo plano.
Esa es la ruta de cambio de modelo en vivo, no una programación duplicada. Cron aislado persiste una transferencia de modelo en tiempo de ejecución y reintenta cuando la ejecución activa lanza LiveSessionModelSwitchError, conservando el proveedor/modelo cambiado (y cualquier anulación de perfil de autenticación cambiado) antes de reintentar.Precedencia de selección de modelo: primero la anulación de modelo del hook de Gmail (hooks.gmail.model), luego model por trabajo, luego cualquier anulación de modelo de sesión Cron almacenada y, después, la selección normal de modelo del agente/predeterminado.El bucle de reintento está limitado al intento inicial más 2 reintentos por cambio; después, Cron aborta en lugar de entrar en un bucle infinito.Depuración:
openclaw cron runs --id <jobId> --limit 50
Documentación: Trabajos Cron, CLI de Cron.
Usa comandos nativos de openclaw skills o coloca Skills en tu espacio de trabajo; la interfaz de Skills de macOS no está disponible en Linux. Explora Skills en https://clawhub.ai.
openclaw skills search "calendar"
openclaw skills search --limit 20
openclaw skills install @owner/<skill-slug>
openclaw skills install @owner/<skill-slug> --version <version>
openclaw skills install @owner/<skill-slug> --force
openclaw skills install @owner/<skill-slug> --global
openclaw skills update --all
openclaw skills update --all --global
openclaw skills list --eligible
openclaw skills check
openclaw skills install nativo escribe en el directorio skills/ del espacio de trabajo activo de forma predeterminada. Añade --global para instalar en el directorio compartido de Skills administradas para todos los agentes locales. Instala la CLI clawhub separada solo para publicar o sincronizar tus propias Skills. Usa agents.defaults.skills o agents.list[].skills para restringir qué agentes ven las Skills compartidas.
Sí, mediante el programador del Gateway:
  • Trabajos Cron para tareas programadas o recurrentes (persisten entre reinicios).
  • Heartbeat para comprobaciones periódicas de la sesión principal.
  • Trabajos aislados para agentes autónomos que publican resúmenes o entregan en chats.
Documentación: Trabajos Cron, Automatización, Heartbeat.
No directamente. Las Skills de macOS están controladas por metadata.openclaw.os más los binarios requeridos, y solo se cargan cuando son elegibles en el host del Gateway. En Linux, las Skills solo para darwin (apple-notes, apple-reminders, things-mac) no se cargarán a menos que anules el control.Tres patrones compatibles:Opción A: ejecuta el Gateway en un Mac (lo más sencillo). Ejecuta el Gateway donde existan los binarios de macOS y luego conéctate desde Linux en modo remoto o mediante Tailscale. Las Skills se cargan normalmente porque el host del Gateway es macOS.Opción B: usa un Node de macOS (sin SSH). Ejecuta el Gateway en Linux, empareja un Node de macOS (aplicación de barra de menús) y configura Comandos de ejecución de Node como “Preguntar siempre” o “Permitir siempre” en el Mac. OpenClaw trata las Skills exclusivas de macOS como elegibles cuando los binarios requeridos existen en el Node; el agente las ejecuta mediante la herramienta nodes. Con “Preguntar siempre”, aprobar “Permitir siempre” en el aviso añade ese comando a la lista de permitidos.Opción C: proxy de binarios de macOS mediante SSH (avanzado). Mantén el Gateway en Linux, pero haz que los binarios de CLI requeridos se resuelvan a envoltorios SSH que se ejecutan en un Mac y luego anula la Skill para permitir Linux, de modo que siga siendo elegible.
  1. Crea un envoltorio SSH para el binario (ejemplo: memo para Apple Notes):
    #!/usr/bin/env bash
    set -euo pipefail
    exec ssh -T user@mac-host /opt/homebrew/bin/memo "$@"
    
  2. Coloca el envoltorio en PATH en el host Linux (por ejemplo, ~/bin/memo).
  3. Anula los metadatos de la Skill (espacio de trabajo o ~/.openclaw/skills) para permitir Linux:
    ---
    name: apple-notes
    description: Manage Apple Notes via the memo CLI on macOS.
    metadata: { "openclaw": { "os": ["darwin", "linux"], "requires": { "bins": ["memo"] } } }
    ---
    
  4. Inicia una sesión nueva para que la instantánea de Skills se actualice.
No integrada hoy. Opciones:
  • Skill / Plugin personalizado: lo mejor para acceso fiable a la API (ambos tienen APIs).
  • Automatización del navegador: funciona sin código, pero es más lenta y más frágil.
Para contexto por cliente al estilo de una agencia: mantén una página de Notion por cliente (contexto + preferencias + trabajo activo) y pide al agente que obtenga esa página al inicio de una sesión.Para una integración nativa, abre una solicitud de función o crea una Skill contra esas APIs.
openclaw skills install @owner/<skill-slug>
openclaw skills update --all
Las instalaciones nativas llegan al directorio skills/ del espacio de trabajo activo; usa --global para todos los agentes locales, o configura agents.defaults.skills / agents.list[].skills para limitar la visibilidad. Algunas Skills esperan binarios instalados con Homebrew; en Linux eso significa Linuxbrew.Consulta Skills, Configuración de Skills, ClawHub.
Usa el perfil de navegador user integrado, que se adjunta mediante Chrome DevTools MCP:
openclaw browser --browser-profile user tabs
openclaw browser --browser-profile user snapshot
Para un nombre personalizado, crea un perfil MCP explícito:
openclaw browser create-profile --name chrome-live --driver existing-session
openclaw browser --browser-profile chrome-live tabs
Esto puede usar el navegador del host local o un Node de navegador conectado. Si el Gateway se ejecuta en otro lugar, ejecuta un host de Node en la máquina del navegador o usa CDP remoto en su lugar.Límites actuales de los perfiles existing-session / user frente al perfil administrado openclaw:
  • click, type, hover, scrollIntoView, drag y select requieren referencias de instantánea, no selectores CSS.
  • Los hooks de carga requieren ref o inputRef, un archivo a la vez, sin element CSS.
  • responsebody, la exportación de PDF, la interceptación de descargas y las acciones por lotes aún requieren la ruta del navegador administrado.
Consulta Navegador para ver la comparación completa.

Aislamiento y memoria

Sí: Aislamiento. Para configuración específica de Docker (Gateway completo en Docker o imágenes de aislamiento), consulta Docker.
La imagen predeterminada prioriza la seguridad y se ejecuta como el usuario node, por lo que excluye paquetes del sistema, Homebrew y navegadores incluidos. Para una configuración más completa:
  • Persiste /home/node con OPENCLAW_HOME_VOLUME para que las cachés sobrevivan.
  • Incorpora dependencias del sistema en la imagen con OPENCLAW_IMAGE_APT_PACKAGES.
  • Instala navegadores de Playwright mediante la CLI incluida: node /app/node_modules/playwright-core/cli.js install chromium.
  • Configura PLAYWRIGHT_BROWSERS_PATH y persiste esa ruta.
Documentación: Docker, Navegador.
Sí, si el tráfico privado son DM y el tráfico público son grupos. Configura agents.defaults.sandbox.mode: "non-main" para que las sesiones de grupo/canal (claves no principales) se ejecuten en el backend de aislamiento configurado mientras la sesión principal de DM permanece en el host. Docker es el backend predeterminado una vez habilitado el aislamiento. Restringe las herramientas disponibles en sesiones aisladas mediante tools.sandbox.tools.Guía de configuración: Grupos: DM personales + grupos públicos. Referencia clave: Configuración del Gateway.
Configura agents.defaults.sandbox.docker.binds como ["host:container:mode"] (por ejemplo, "/home/user/src:/src:ro"). Los enlaces globales y por agente se combinan; los enlaces por agente se ignoran cuando scope: "shared". Usa :ro para cualquier cosa sensible; los enlaces eluden las barreras del sistema de archivos del aislamiento.OpenClaw valida las fuentes de enlace contra la ruta normalizada y la ruta canónica resuelta a través del ancestro existente más profundo, por lo que las fugas por padres de symlink fallan de forma cerrada incluso cuando el segmento de ruta final aún no existe.Consulta Aislamiento y Aislamiento vs. política de herramientas vs. elevado.
La memoria de OpenClaw son archivos Markdown en el espacio de trabajo del agente: notas diarias en memory/YYYY-MM-DD.md, notas seleccionadas a largo plazo en MEMORY.md (solo sesiones principales/privadas).OpenClaw también ejecuta un vaciado de memoria previo a Compaction silencioso antes de que Compaction resuma la conversación, recordando al modelo que escriba primero notas duraderas. Solo se ejecuta cuando el espacio de trabajo permite escritura (los aislamientos de solo lectura lo omiten); desactívalo con agents.defaults.compaction.memoryFlush.enabled: false. Consulta Memoria.
Pide al bot que escriba el dato en la memoria: las notas a largo plazo van en MEMORY.md, el contexto a corto plazo en memory/YYYY-MM-DD.md. Recordarle al modelo que guarde recuerdos normalmente lo resuelve. Si sigue olvidando, verifica que el Gateway use el mismo espacio de trabajo en cada ejecución.Documentación: Memoria, Espacio de trabajo del agente.
Los archivos de memoria viven en el disco y persisten hasta que se eliminan; el límite es tu almacenamiento, no el modelo. El contexto de sesión sigue limitado por la ventana de contexto del modelo, por lo que las conversaciones largas pueden compactarse o truncarse; por eso existe la búsqueda en memoria, que devuelve al contexto solo las partes relevantes.Documentación: Memoria, Contexto.
Solo si usas embeddings de OpenAI, que es el proveedor predeterminado. Codex OAuth cubre chat/completions y no concede acceso a embeddings, así que iniciar sesión con Codex (OAuth o el inicio de sesión de la CLI de Codex) no habilita la búsqueda semántica en memoria. Los embeddings de OpenAI aún necesitan una clave de API real (OPENAI_API_KEY o models.providers.openai.apiKey).Para permanecer local, establece agents.defaults.memorySearch.provider: "local" (GGUF/llama.cpp). Otros proveedores compatibles: Bedrock, DeepInfra, Gemini (GEMINI_API_KEY o memorySearch.remote.apiKey), GitHub Copilot, LM Studio, Mistral, Ollama, compatible con OpenAI y Voyage. Consulta Memoria y Búsqueda de memoria para ver los detalles de configuración.

Dónde viven las cosas en el disco

No: el estado propio de OpenClaw es local, pero los servicios externos siguen viendo lo que les envías.
  • Local de forma predeterminada: las sesiones, los archivos de memoria, la configuración y el espacio de trabajo viven en el host del Gateway (~/.openclaw más el directorio de tu espacio de trabajo).
  • Remoto por necesidad: los mensajes enviados a proveedores de modelos (Anthropic/OpenAI/etc.) van a sus APIs, y las plataformas de chat (Slack/Telegram/WhatsApp/etc.) almacenan datos de mensajes en sus servidores.
  • Tú controlas la huella: los modelos locales mantienen los prompts en tu máquina, pero el tráfico del canal sigue pasando por los servidores del canal.
Relacionado: Espacio de trabajo del agente, Memoria.
Todo vive bajo $OPENCLAW_STATE_DIR (valor predeterminado: ~/.openclaw):
RutaPropósito
$OPENCLAW_STATE_DIR/openclaw.jsonConfiguración principal (JSON5)
$OPENCLAW_STATE_DIR/credentials/oauth.jsonImportación OAuth heredada (se copia en los perfiles de autenticación en el primer uso)
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth-profiles.jsonPerfiles de autenticación (OAuth, claves de API, keyRef/tokenRef opcionales)
$OPENCLAW_STATE_DIR/secrets.jsonCarga útil secreta opcional respaldada por archivo para proveedores SecretRef de file
$OPENCLAW_STATE_DIR/agents/<agentId>/agent/auth.jsonArchivo de compatibilidad heredado (entradas estáticas api_key depuradas)
$OPENCLAW_STATE_DIR/credentials/Estado del proveedor (por ejemplo whatsapp/<accountId>/creds.json)
$OPENCLAW_STATE_DIR/agents/Estado por agente (agentDir + sesiones)
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/Historial y estado de conversaciones (por agente)
$OPENCLAW_STATE_DIR/agents/<agentId>/sessions/sessions.jsonMetadatos de sesión (por agente)
La ruta heredada de agente único ~/.openclaw/agent/* se migra mediante openclaw doctor.Tu espacio de trabajo (AGENTS.md, archivos de memoria, Skills, etc.) está separado y se configura mediante agents.defaults.workspace (valor predeterminado: ~/.openclaw/workspace).
Estos viven en el espacio de trabajo del agente, no en ~/.openclaw.
  • Espacio de trabajo (por agente): AGENTS.md, SOUL.md, IDENTITY.md, USER.md, MEMORY.md, memory/YYYY-MM-DD.md, HEARTBEAT.md opcional. La raíz en minúsculas memory.md es solo entrada de reparación heredada; openclaw doctor --fix puede fusionarla en MEMORY.md cuando ambos existen.
  • Directorio de estado (~/.openclaw): configuración, estado de canal/proveedor, perfiles de autenticación, sesiones, registros, Skills compartidas (~/.openclaw/skills).
El espacio de trabajo predeterminado es ~/.openclaw/workspace, configurable:
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
}
Si el bot “olvida” después de reiniciar, confirma que el Gateway use el mismo espacio de trabajo en cada lanzamiento (el modo remoto usa el espacio de trabajo del host del gateway, no tu portátil local).Consejo: para comportamiento o preferencias duraderas, pídele al bot que lo escriba en AGENTS.md o MEMORY.md en lugar de depender del historial de chat.Consulta Espacio de trabajo del agente y Memoria.
Sí. SOUL.md es uno de los archivos de arranque del espacio de trabajo inyectados en el contexto del agente. El límite predeterminado de inyección por archivo es de 20000 caracteres; el presupuesto total de arranque entre archivos es de 60000 caracteres.Cambia los valores predeterminados compartidos:
{
  agents: {
    defaults: {
      bootstrapMaxChars: 50000,
      bootstrapTotalMaxChars: 300000,
    },
  },
}
O sobrescribe un agente bajo agents.list[].bootstrapMaxChars / bootstrapTotalMaxChars.Usa /context para comprobar los tamaños sin procesar frente a los inyectados y si hubo truncamiento. Mantén SOUL.md centrado en voz, postura y personalidad; pon las reglas operativas en AGENTS.md y los hechos duraderos en la memoria.Consulta Contexto y Configuración de agente.
Pon tu espacio de trabajo del agente en un repositorio git privado y haz una copia de seguridad en algún lugar privado (por ejemplo, GitHub privado). Esto captura la memoria más los archivos AGENTS/SOUL/USER y te permite restaurar la “mente” del asistente más adelante.No confirmes nada bajo ~/.openclaw (credenciales, sesiones, tokens, cargas útiles de secretos cifrados). Para una restauración completa, haz copias de seguridad del espacio de trabajo y del directorio de estado por separado.Documentación: Espacio de trabajo del agente.
Consulta Desinstalar.
Sí. El espacio de trabajo es el cwd predeterminado y el ancla de memoria, no un sandbox estricto. Las rutas relativas se resuelven dentro del espacio de trabajo; las rutas absolutas pueden acceder a otras ubicaciones del host salvo que el sandboxing esté habilitado. Para aislamiento, usa agents.defaults.sandbox o configuraciones de sandbox por agente. Para convertir un repositorio en el directorio de trabajo predeterminado, apunta el workspace de ese agente a la raíz del repositorio; el repositorio de OpenClaw en sí es solo código fuente, así que mantén separado el espacio de trabajo salvo que quieras intencionalmente que el agente trabaje dentro de él.
{
  agents: {
    defaults: {
      workspace: "~/Projects/my-repo",
    },
  },
}
El estado de sesión pertenece al host del gateway. En modo remoto, el almacén de sesiones que te importa está en la máquina remota, no en tu portátil local. Consulta Gestión de sesiones.

Conceptos básicos de configuración

OpenClaw lee una configuración JSON5 opcional desde $OPENCLAW_CONFIG_PATH (valor predeterminado: ~/.openclaw/openclaw.json). Si falta el archivo, usa valores predeterminados relativamente seguros, incluido un espacio de trabajo predeterminado de ~/.openclaw/workspace.
Los enlaces que no son loopback requieren una ruta válida de autenticación del gateway: autenticación con secreto compartido (token o contraseña), o gateway.auth.mode: "trusted-proxy" detrás de un proxy inverso consciente de identidad configurado correctamente.
{
  gateway: {
    bind: "lan",
    auth: {
      mode: "token",
      token: "replace-me",
    },
  },
}
  • gateway.remote.token / .password no habilitan por sí solos la autenticación del gateway local; las rutas de llamada locales pueden usar gateway.remote.* como fallback solo cuando gateway.auth.* no está configurado.
  • Para autenticación con contraseña, establece gateway.auth.mode: "password" más gateway.auth.password (o OPENCLAW_GATEWAY_PASSWORD).
  • Si gateway.auth.token / .password está configurado explícitamente mediante SecretRef y no se resuelve, la resolución falla cerrada (sin enmascaramiento mediante fallback remoto).
  • Las configuraciones de Control UI con secreto compartido se autentican mediante connect.params.auth.token o connect.params.auth.password (almacenados en la configuración de la app/UI). Los modos con identidad, como Tailscale Serve o trusted-proxy, usan encabezados de solicitud en su lugar; evita poner secretos compartidos en URLs.
  • Con gateway.auth.mode: "trusted-proxy", los proxies inversos loopback del mismo host requieren gateway.auth.trustedProxy.allowLoopback = true explícito y una entrada loopback en gateway.trustedProxies.
OpenClaw exige autenticación del gateway de forma predeterminada, incluido loopback. Si no hay una ruta de autenticación explícita configurada, el inicio se resuelve en modo token y genera un token solo de ejecución para ese inicio, por lo que los clientes WS locales deben autenticarse. Esto bloquea que otros procesos locales llamen al Gateway.Configura gateway.auth.token, gateway.auth.password, OPENCLAW_GATEWAY_TOKEN o OPENCLAW_GATEWAY_PASSWORD explícitamente cuando los clientes necesiten un secreto estable entre reinicios. También puedes elegir el modo contraseña, o trusted-proxy para proxies inversos conscientes de identidad. Para loopback abierto, establece gateway.auth.mode: "none" explícitamente. openclaw doctor --generate-gateway-token genera un token en cualquier momento.
El Gateway observa la configuración y admite recarga en caliente: gateway.reload.mode: "hybrid" (valor predeterminado) aplica en caliente los cambios seguros y reinicia para los críticos. También se admiten hot, restart y off. La mayoría de los cambios en tools.*, políticas de agents.*, session.* y messages.* se aplican de inmediato sin ninguna acción de recarga; los cambios de enlace/puerto de gateway.* requieren un reinicio.
Establece cli.banner.taglineMode:
{
  cli: {
    banner: {
      taglineMode: "off", // random | default | off
    },
  },
}
  • off: oculta el texto del lema pero conserva la línea de título/versión del banner.
  • default: siempre usa All your chats, one OpenClaw..
  • random: lemas divertidos/estacionales rotativos (comportamiento predeterminado).
  • Para no mostrar ningún banner, establece la variable de entorno OPENCLAW_HIDE_BANNER=1.
web_fetch funciona sin una clave de API. web_search depende del proveedor seleccionado:
ProveedorSin claveVariable(s) de entorno
BraveNoBRAVE_API_KEY
DuckDuckGoSí (no oficial, basado en HTML)-
ExaNoEXA_API_KEY
FirecrawlNoFIRECRAWL_API_KEY
GeminiNoGEMINI_API_KEY
GrokNo (OAuth o clave de xAI)XAI_API_KEY
KimiNoKIMI_API_KEY o MOONSHOT_API_KEY
MiniMax SearchNoMINIMAX_CODE_PLAN_KEY, MINIMAX_CODING_API_KEY o MINIMAX_API_KEY
Ollama Web SearchSí (requiere ollama signin)-
PerplexityNoPERPLEXITY_API_KEY o OPENROUTER_API_KEY
SearXNGSí (autohospedado)SEARXNG_BASE_URL
TavilyNoTAVILY_API_KEY
Grok también puede reutilizar OAuth de xAI de la autenticación del modelo (openclaw onboard --auth-choice xai-oauth).Recomendado: openclaw configure --section web y elige un proveedor.
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "BRAVE_API_KEY_HERE",
          },
        },
      },
    },
  },
  tools: {
    web: {
      search: {
        enabled: true,
        provider: "brave",
        maxResults: 5,
      },
      fetch: {
        enabled: true,
        provider: "firecrawl", // optional; omit for auto-detect
      },
    },
  },
}
La configuración de búsqueda web específica del proveedor reside en plugins.entries.<plugin>.config.webSearch.*. Las rutas de proveedor heredadas tools.web.search.* todavía se cargan por compatibilidad, pero no deben usarse en configuraciones nuevas. La configuración de alternativa de obtención web de Firecrawl reside en plugins.entries.firecrawl.config.webFetch.*.
  • Listas de permitidos: agrega web_search/web_fetch/x_search, o group:web para los tres.
  • web_fetch está habilitado de forma predeterminada.
  • Si se omite tools.web.fetch.provider, OpenClaw detecta automáticamente el primer proveedor alternativo de obtención listo a partir de las credenciales disponibles; el Plugin oficial de Firecrawl proporciona esa alternativa.
  • Los demonios leen variables de entorno desde ~/.openclaw/.env (o desde el entorno del servicio).
Docs: Herramientas web.
config.apply reemplaza la configuración completa; un objeto parcial elimina todo lo demás.OpenClaw actual protege contra la mayoría de sobrescrituras accidentales:
  • Las escrituras de configuración propiedad de OpenClaw validan toda la configuración posterior al cambio antes de escribir.
  • Las escrituras inválidas o destructivas propiedad de OpenClaw se rechazan y se guardan como openclaw.json.rejected.*.
  • Una edición directa que rompe el arranque o la recarga en caliente hace que el Gateway falle en modo cerrado u omita la recarga; no reescribe openclaw.json.
  • openclaw doctor --fix es responsable de la reparación, puede restaurar la última configuración correcta conocida y guarda el archivo rechazado como openclaw.json.clobbered.*.
Recuperación:
  • Revisa openclaw logs --follow para buscar Invalid config at, Config write rejected: o config reload skipped (invalid config).
  • Inspecciona el openclaw.json.clobbered.* o openclaw.json.rejected.* más reciente junto a la configuración activa.
  • Ejecuta openclaw config validate y openclaw doctor --fix.
  • Copia de vuelta solo las claves previstas con openclaw config set o config.patch.
  • Sin una última configuración correcta conocida ni una carga útil rechazada: restaura desde una copia de seguridad, o vuelve a ejecutar openclaw doctor y reconfigura canales/modelos.
  • Pérdida inesperada: informa un error con tu última configuración conocida o una copia de seguridad. Un agente de programación local a menudo puede reconstruir una configuración funcional a partir de registros o historial.
Evítalo: usa openclaw config set para cambios pequeños, openclaw configure para ediciones interactivas, config.schema.lookup para inspeccionar una ruta desconocida (devuelve un nodo de esquema superficial más resúmenes de hijos inmediatos) y config.patch para ediciones RPC parciales; reserva config.apply para el reemplazo de la configuración completa. La herramienta de runtime gateway orientada al agente se niega a reescribir tools.exec.ask / tools.exec.security incluso mediante alias heredados tools.bash.*.Docs: Configuración, Configurar, Solución de problemas del Gateway, Doctor.
Patrón común: un Gateway (por ejemplo, una Raspberry Pi) más nodos y agentes.
  • Gateway (central): posee canales (Signal/WhatsApp), enrutamiento y sesiones.
  • Nodos (dispositivos): Macs/iOS/Android se conectan como periféricos y exponen herramientas locales (system.run, canvas, camera).
  • Agentes (trabajadores): cerebros/espacios de trabajo separados para roles especiales (por ejemplo, operaciones frente a datos personales).
  • Subagentes: generan trabajo en segundo plano desde un agente principal para paralelismo.
  • TUI: conéctate al Gateway y cambia de agentes/sesiones.
Docs: Nodos, Acceso remoto, Enrutamiento multiagente, Subagentes, TUI.
Sí:
{
  browser: { headless: true },
  agents: {
    defaults: {
      sandbox: { browser: { headless: true } },
    },
  },
}
El valor predeterminado es false (con interfaz visible). El modo sin interfaz tiene más probabilidades de activar comprobaciones antibot en algunos sitios (X/Twitter a menudo bloquea sesiones sin interfaz). Usa el mismo motor Chromium y funciona para la mayoría de automatizaciones; la diferencia principal es que no hay una ventana de navegador visible (usa capturas de pantalla para lo visual). Consulta Navegador.
Configura browser.executablePath con tu binario de Brave (o cualquier navegador basado en Chromium) y reinicia el Gateway. Consulta Navegador.

Gateways y nodos remotos

Los mensajes de Telegram los gestiona el gateway, que ejecuta el agente y solo después llama a los nodos mediante el WebSocket del Gateway cuando se necesita una herramienta de nodo:Telegram -> Gateway -> Agente -> node.* -> Nodo -> Gateway -> TelegramLos nodos no ven tráfico entrante del proveedor; solo reciben llamadas RPC de nodo.
Empareja tu computadora como un nodo. El Gateway se ejecuta en otro lugar, pero puede llamar a herramientas node.* (pantalla, cámara, sistema) en tu máquina local mediante el WebSocket del Gateway.
  1. Ejecuta el Gateway en el host siempre activo (VPS/servidor doméstico).
  2. Pon el host del Gateway y tu computadora en la misma tailnet.
  3. Asegúrate de que el WS del Gateway sea accesible (enlace de tailnet o túnel SSH).
  4. Abre la app de macOS localmente y conéctate en modo Remoto por SSH (o tailnet directa) para que se registre como nodo.
  5. Aprueba el nodo:
    openclaw devices list
    openclaw devices approve <requestId>
    
No se requiere un puente TCP separado; los nodos se conectan mediante el WebSocket del Gateway.Recordatorio de seguridad: emparejar un nodo macOS permite system.run en esa máquina. Empareja solo dispositivos en los que confíes; revisa Seguridad.Docs: Nodos, Protocolo del Gateway, Modo remoto de macOS, Seguridad.
Comprueba lo básico:
openclaw gateway status
openclaw status
openclaw channels status
Luego verifica la autenticación y el enrutamiento: si usas Tailscale Serve, confirma que gateway.auth.allowTailscale esté configurado correctamente; si te conectas mediante un túnel SSH, confirma que el túnel esté activo y apunte al puerto correcto; confirma que las listas de permitidos de tus DM/grupos incluyan tu cuenta.Docs: Tailscale, Acceso remoto, Canales.
Sí, aunque no hay un puente bot a bot integrado.Lo más simple: usa un canal de chat normal al que ambos bots puedan acceder (Slack/Telegram/WhatsApp). Haz que el Bot A envíe un mensaje al Bot B y luego deja que el Bot B responda como de costumbre.Puente CLI (genérico): ejecuta un script que llame al otro Gateway con openclaw agent --message ... --deliver, apuntando a un chat donde el otro bot escuche. Si un bot está en un VPS remoto, apunta tu CLI a ese Gateway remoto mediante SSH/Tailscale (consulta Acceso remoto):
openclaw agent --message "Hello from local bot" --deliver --channel telegram --reply-to <chat-id>
Añade una protección para que los dos bots no entren en un bucle infinito (solo menciones, listas de permitidos de canales o una regla de “no responder a mensajes de bots”).Docs: Acceso remoto, CLI del agente, Envío del agente.
No. Un Gateway aloja varios agentes, cada uno con su propio workspace, valores predeterminados de modelo y enrutamiento; esta es la configuración normal y es mucho más barata/simple que un VPS por agente. Usa VPS separados solo para aislamiento estricto (límites de seguridad) o configuraciones muy diferentes que no quieras compartir.
Sí: los nodos son la forma principal de llegar a tu laptop desde un Gateway remoto y desbloquean más que el acceso al shell. El Gateway se ejecuta en macOS/Linux (Windows mediante WSL2) y es ligero (un VPS pequeño o una máquina de clase Raspberry Pi funciona bien; 4 GB de RAM es suficiente), así que una configuración común es un host siempre activo más tu laptop como nodo.
  • No se requiere SSH entrante - los nodos se conectan hacia el Gateway WebSocket mediante emparejamiento de dispositivos.
  • Controles de ejecución más seguros - system.run está protegido por listas de permitidos/aprobaciones de nodos en esa laptop.
  • Más herramientas del dispositivo - los nodos exponen canvas, camera y screen además de system.run.
  • Automatización del navegador local - mantén el Gateway en un VPS, pero ejecuta Chrome localmente mediante un host de nodo, o conéctate a Chrome local mediante Chrome MCP.
SSH está bien para acceso ad hoc al shell; los nodos son más simples para flujos de trabajo continuos de agentes y automatización de dispositivos.Docs: Nodos, CLI de nodos, Navegador.
No. Solo un gateway debe ejecutarse por host, a menos que ejecutes perfiles aislados intencionalmente (consulta Múltiples gateways). Los nodos son periféricos que se conectan al gateway (nodos iOS/Android, o “modo nodo” de macOS en la app de la barra de menús). Para hosts de nodos sin interfaz y control por CLI, consulta CLI del host Node.Se requiere un reinicio completo para cambios en gateway, discovery y superficies de plugins alojados.
Sí:
  • config.schema.lookup: inspecciona un subárbol de configuración con su nodo de esquema superficial, la sugerencia de UI coincidente y resúmenes de hijos inmediatos antes de escribir.
  • config.get: obtiene la instantánea actual más el hash.
  • config.patch: actualización parcial segura (preferida para la mayoría de ediciones RPC); recarga en caliente cuando es posible, reinicia cuando es necesario.
  • config.apply: valida y reemplaza la configuración completa; recarga en caliente cuando es posible, reinicia cuando es necesario.
  • La herramienta de runtime gateway orientada al agente todavía se niega a reescribir tools.exec.ask / tools.exec.security; los alias heredados tools.bash.* se normalizan a las mismas rutas protegidas.
{
  agents: { defaults: { workspace: "~/.openclaw/workspace" } },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}
Define tu workspace y restringe quién puede activar el bot.
  1. Instala + inicia sesión en el VPS:
    curl -fsSL https://tailscale.com/install.sh | sh
    sudo tailscale up
    
  2. Instala + inicia sesión en tu Mac usando la app de Tailscale, en la misma tailnet.
  3. Activa MagicDNS en la consola de administración de Tailscale para que el VPS tenga un nombre estable.
  4. Usa el nombre de host de la tailnet: SSH ssh user@your-vps.tailnet-xxxx.ts.net; Gateway WS ws://your-vps.tailnet-xxxx.ts.net:18789.
Para la Control UI sin SSH, usa Tailscale Serve en el VPS:
openclaw gateway --tailscale serve
Esto mantiene el gateway vinculado a loopback y expone HTTPS mediante Tailscale. Consulta Tailscale.
Serve expone la interfaz de control del Gateway + WS; los nodos se conectan mediante el mismo endpoint WS del Gateway.
  1. Asegúrate de que el VPS y el Mac estén en la misma tailnet.
  2. Usa la app de macOS en modo remoto (el destino SSH puede ser el nombre de host de la tailnet): crea un túnel al puerto del Gateway y se conecta como nodo.
  3. Aprueba el nodo:
    openclaw devices list
    openclaw devices approve <requestId>
    
Documentación: Protocolo del Gateway, Descubrimiento, modo remoto de macOS.
Para herramientas locales únicamente (pantalla/cámara/exec) en la segunda laptop, agrégala como nodo: un solo Gateway, sin configuración duplicada. Actualmente, las herramientas de nodo local solo están disponibles en macOS. Instala un segundo Gateway solo para aislamiento estricto o para dos bots completamente separados.Documentación: Nodos, CLI de nodos, Múltiples gateways.

Variables de entorno y carga de .env

OpenClaw lee variables de entorno del proceso padre (shell, launchd/systemd, CI, etc.) y además carga:
  • .env desde el directorio de trabajo actual.
  • una .env global de respaldo desde ~/.openclaw/.env ($OPENCLAW_STATE_DIR/.env).
Ningún archivo .env sobrescribe las variables de entorno existentes. Las claves de credenciales de proveedores son una excepción para el .env del espacio de trabajo: claves como GEMINI_API_KEY, XAI_API_KEY o MISTRAL_API_KEY (y otras variables de entorno de autenticación de proveedores incluidos) se ignoran desde el .env del espacio de trabajo y deberían vivir en el entorno del proceso, ~/.openclaw/.env o la configuración env.Las variables de entorno en línea en la configuración se aplican solo si faltan en el entorno del proceso:
{
  env: {
    OPENROUTER_API_KEY: "sk-or-...",
    vars: { GROQ_API_KEY: "gsk-..." },
  },
}
Consulta /environment para ver la precedencia y las fuentes completas.
Dos soluciones:
  1. Coloca las claves faltantes en ~/.openclaw/.env para que se carguen incluso cuando el servicio no herede el entorno de tu shell.
  2. Habilita la importación del shell (comodidad opcional):
    {
      env: {
        shellEnv: {
          enabled: true,
          timeoutMs: 15000,
        },
      },
    }
    
    Esto ejecuta tu shell de inicio de sesión e importa solo las claves esperadas que falten (nunca sobrescribe). Equivalentes de variables de entorno: OPENCLAW_LOAD_SHELL_ENV=1, OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000.
openclaw models status informa si la importación del entorno del shell está habilitada. “Shell env: off” no significa que falten tus variables de entorno: solo significa que OpenClaw no cargará tu shell de inicio de sesión automáticamente.Si el Gateway se ejecuta como servicio (launchd/systemd), no heredará el entorno de tu shell. Soluciónalo colocando el token en ~/.openclaw/.env, habilitando env.shellEnv.enabled: true o agregándolo a la configuración env (se aplica solo si falta), luego reinicia el gateway y vuelve a comprobar:
openclaw models status
Los tokens de Copilot se resuelven en este orden: OPENCLAW_GITHUB_TOKEN, luego COPILOT_GITHUB_TOKEN, luego GH_TOKEN, luego GITHUB_TOKEN.Consulta /concepts/model-providers y /environment.

Sesiones y múltiples chats

Envía /new o /reset como mensaje independiente. Consulta Gestión de sesiones.
Sí. La política de restablecimiento predeterminada es diaria: una sesión pasa a una nueva al llegar a una hora local configurada en el host del gateway (session.reset.atHour, valor predeterminado 4, 0-23), según cuándo comenzó la sesión actual. Cambia a un restablecimiento basado en inactividad con mode: "idle" y session.reset.idleMinutes, que expira una sesión después de un período de inactividad (según la última interacción real, no eventos del sistema de heartbeat/cron/exec).
{
  session: {
    reset: { mode: "daily", atHour: 4 },
    resetByType: {
      group: { mode: "idle", idleMinutes: 120 },
      thread: { mode: "daily", atHour: 6 },
    },
    resetByChannel: {
      discord: { mode: "idle", idleMinutes: 10080 },
    },
  },
}
resetByType admite direct (alias heredado dm), group y thread. El session.idleMinutes de nivel superior heredado sigue funcionando como alias de compatibilidad para un valor predeterminado en modo inactivo cuando no se define ningún bloque session.reset/resetByType. Las sesiones con una sesión de CLI activa propiedad del proveedor no se cortan por el valor predeterminado diario implícito. Consulta Gestión de sesiones para ver el ciclo de vida completo.
Sí, mediante enrutamiento multiagente y subagentes: un agente coordinador más varios agentes trabajadores con sus propios espacios de trabajo y modelos.Es mejor verlo como un experimento divertido: consume muchos tokens y a menudo es menos eficiente que un bot con sesiones separadas. El modelo típico es un bot con el que hablas, con distintas sesiones para trabajo paralelo, que genera subagentes cuando hace falta.Documentación: Enrutamiento multiagente, Subagentes, CLI de agentes.
El contexto de la sesión está limitado por la ventana del modelo. Chats largos, salidas grandes de herramientas o muchos archivos pueden activar Compaction o truncamiento.
  • Pide al bot que resuma el estado actual y lo escriba en un archivo.
  • Usa /compact antes de tareas largas, /new al cambiar de tema.
  • Mantén el contexto importante en el espacio de trabajo y pide al bot que lo vuelva a leer.
  • Usa subagentes para trabajos largos o paralelos, de modo que el chat principal siga siendo más pequeño.
  • Elige un modelo con una ventana de contexto mayor si esto ocurre con frecuencia.
openclaw reset
Restablecimiento completo no interactivo:
openclaw reset --scope full --yes --non-interactive
Luego vuelve a ejecutar la configuración:
openclaw onboard --install-daemon
Onboarding también ofrece Restablecer si detecta una configuración existente; consulta Onboarding (CLI). Si usaste perfiles (--profile / OPENCLAW_PROFILE), restablece cada directorio de estado (predeterminado ~/.openclaw-<profile>). Restablecimiento solo para desarrollo: openclaw gateway --dev --reset borra la configuración de desarrollo, las credenciales, las sesiones y el espacio de trabajo.
  • Compactar (mantiene la conversación, resume turnos antiguos): /compact o /compact <instructions> para orientar el resumen.
  • Restablecer (ID de sesión nuevo para la misma clave de chat): /new o /reset.
Si sigue ocurriendo, ajusta la poda de sesiones (agents.defaults.contextPruning) para recortar salidas antiguas de herramientas, o usa un modelo con una ventana de contexto mayor.Documentación: Compaction, Poda de sesiones, Gestión de sesiones.
Error de validación del proveedor: el modelo emitió un bloque tool_use sin el input requerido. Por lo general significa que el historial de la sesión está obsoleto o dañado (a menudo después de hilos largos o un cambio de herramienta/esquema).Solución: inicia una sesión nueva con /new (mensaje independiente).
Los Heartbeats se ejecutan cada 30m de forma predeterminada, o cada 1h cuando el modo de autenticación resuelto es autenticación Anthropic OAuth/token (incluida la reutilización de Claude CLI) y heartbeat.every no está configurado. Ajusta o deshabilita:
{
  agents: {
    defaults: {
      heartbeat: {
        every: "2h", // or "0m" to disable
      },
    },
  },
}
Si HEARTBEAT.md existe pero está efectivamente vacío (solo líneas en blanco, comentarios Markdown/HTML, encabezados ATX, marcadores de bloque cercado o stubs de elementos de lista vacíos), OpenClaw omite la ejecución de heartbeat para ahorrar llamadas de API. Si falta el archivo, el heartbeat sigue ejecutándose y el modelo decide qué hacer.Las anulaciones por agente usan agents.list[].heartbeat. Documentación: Heartbeat.
No. OpenClaw se ejecuta en tu propia cuenta: si estás en el grupo, OpenClaw puede verlo. De forma predeterminada, las respuestas en grupos están bloqueadas hasta que permitas remitentes (groupPolicy: "allowlist").Para restringir las respuestas en grupos solo a ti:
{
  channels: {
    whatsapp: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["+15551234567"],
    },
  },
}
Lo más rápido: sigue los logs y envía un mensaje de prueba en el grupo.
openclaw logs --follow --json
Busca chatId (o from) que termine en @g.us, como 1234567890-1234567890@g.us.Si ya está configurado/en allowlist, lista los grupos desde la configuración:
openclaw directory groups list --channel whatsapp
Documentación: WhatsApp, Directorio, Logs.
Dos causas comunes: el filtrado por mención está activado de forma predeterminada (debes @mencionar al bot, o coincidir con mentionPatterns), o configuraste channels.whatsapp.groups sin "*" y el grupo no está en allowlist.Consulta Grupos y Mensajes de grupo.
Los chats directos se agrupan en la sesión principal de forma predeterminada. Los grupos/canales tienen sus propias claves de sesión, y los temas de Telegram / hilos de Discord son sesiones separadas. Consulta Grupos y Mensajes de grupo.
No hay límites estrictos: docenas o incluso cientos están bien, pero vigila:
  • Crecimiento del disco: las sesiones y transcripciones viven en ~/.openclaw/agents/<agentId>/sessions/.
  • Costo de tokens: más agentes implican más uso concurrente de modelos.
  • Sobrecarga operativa: perfiles de autenticación, espacios de trabajo y enrutamiento de canales por agente.
Mantén un espacio de trabajo activo por agente (agents.defaults.workspace), poda sesiones antiguas si el disco crece y usa openclaw doctor para detectar espacios de trabajo sueltos y discrepancias de perfiles.
Sí, mediante Enrutamiento Multiagente: ejecuta varios agentes aislados y enruta los mensajes entrantes por canal/cuenta/par. Slack está admitido como canal y se puede vincular a agentes específicos.El acceso al navegador es potente, pero no “puede hacer cualquier cosa que una persona pueda”: anti-bot, CAPTCHAs y MFA aún pueden bloquear la automatización. Para el control más fiable, usa Chrome MCP local en el host, o CDP en la máquina que realmente ejecuta el navegador.Configuración recomendada: host de Gateway siempre activo (VPS/Mac mini), un agente por rol (vinculaciones), canales de Slack vinculados a esos agentes y navegador local mediante Chrome MCP o un nodo cuando haga falta.Docs: Enrutamiento multiagente, Slack, Navegador, Nodes.

Modelos, conmutación por error y perfiles de autenticación

Las preguntas y respuestas sobre modelos (valores predeterminados, selección, alias, cambio, conmutación por error y perfiles de autenticación) están en las preguntas frecuentes sobre modelos.

Gateway: puertos, “ya está en ejecución” y modo remoto

gateway.port controla el único puerto multiplexado para WebSocket + HTTP (interfaz de control, hooks, etc.). Precedencia:
--port > OPENCLAW_GATEWAY_PORT > gateway.port > default 18789
“Running” es la vista del supervisor (launchd/systemd/schtasks); la sonda de conectividad es la CLI conectándose realmente al WebSocket del gateway. Confía en estas líneas de openclaw gateway status: Probe target: (la URL que usó la sonda), Listening: (lo que realmente está enlazado en el puerto), Last gateway error: (causa raíz común cuando el proceso está activo pero el puerto no escucha).
Estás editando un archivo de configuración mientras el servicio ejecuta otro (a menudo por una discrepancia de --profile / OPENCLAW_STATE_DIR).Solución: ejecútalo desde el mismo --profile / entorno que quieres que use el servicio:
openclaw gateway install --force
OpenClaw aplica un bloqueo de runtime enlazando el listener WebSocket inmediatamente al iniciar (predeterminado: ws://127.0.0.1:18789). Si el enlace falla con EADDRINUSE, lanza GatewayLockError (“another gateway instance is already listening”).Solución: detén la otra instancia, libera el puerto o ejecútalo con openclaw gateway --port <port>.
Define gateway.mode: "remote" y apunta a una URL WebSocket remota, opcionalmente con credenciales remotas de secreto compartido:
{
  gateway: {
    mode: "remote",
    remote: {
      url: "ws://gateway.tailnet:18789",
      token: "your-token",
      password: "your-password",
    },
  },
}
  • openclaw gateway solo se inicia cuando gateway.mode es local (o pasas una marca de anulación).
  • La app de macOS observa el archivo de configuración y cambia de modo en vivo cuando estos valores cambian.
  • gateway.remote.token / .password son solo credenciales remotas del lado del cliente; no habilitan por sí mismas la autenticación del gateway local.
La ruta de autenticación de tu gateway y el método de autenticación de la interfaz no coinciden.Hechos (desde el código):
  • La interfaz de control conserva el token en sessionStorage, acotado a la pestaña actual del navegador y a la URL de gateway seleccionada, por lo que las recargas en la misma pestaña siguen funcionando sin persistencia de token de larga duración en localStorage.
  • En AUTH_TOKEN_MISMATCH, los clientes de confianza pueden intentar un reintento acotado con un token de dispositivo en caché cuando el gateway devuelve sugerencias de reintento (canRetryWithDeviceToken=true, recommendedNextStep=retry_with_device_token).
  • Ese reintento con token en caché reutiliza los alcances aprobados en caché almacenados con el token de dispositivo; los llamadores con deviceToken explícito / scopes explícitos mantienen el conjunto de alcances solicitado en lugar de heredar los alcances en caché.
  • Fuera de esa ruta de reintento, la precedencia de autenticación de conexión es primero token/contraseña compartidos explícitos, luego deviceToken explícito, luego token de dispositivo almacenado y luego token de arranque.
  • El arranque integrado con código de configuración devuelve un token de dispositivo de nodo con scopes: [] más un token acotado de transferencia al operador para incorporación móvil de confianza. La transferencia al operador puede leer la configuración nativa de tiempo de configuración, pero no concede alcances de mutación de emparejamiento ni operator.admin.
Solución:
  • Más rápido: openclaw dashboard (imprime y copia la URL del panel, intenta abrirla; muestra una sugerencia de SSH si no hay interfaz gráfica).
  • Aún no hay token: openclaw doctor --generate-gateway-token.
  • Remoto: primero crea un túnel con ssh -N -L 18789:127.0.0.1:18789 user@host, luego abre http://127.0.0.1:18789/.
  • Modo de secreto compartido: define gateway.auth.token / OPENCLAW_GATEWAY_TOKEN o gateway.auth.password / OPENCLAW_GATEWAY_PASSWORD, luego pega el secreto correspondiente en los ajustes de la interfaz de control.
  • Modo Tailscale Serve: confirma que gateway.auth.allowTailscale esté habilitado y que estás abriendo la URL de Serve, no una URL sin procesar de loopback/tailnet que omite los encabezados de identidad de Tailscale.
  • Modo de proxy de confianza: confirma que estás entrando a través del proxy configurado con identidad. Los proxies de loopback en el mismo host también necesitan gateway.auth.trustedProxy.allowLoopback = true.
  • La discrepancia persiste después del único reintento: rota/vuelve a aprobar el token del dispositivo emparejado:
    openclaw devices list
    openclaw devices rotate --device <id> --role operator
    
  • Rotación denegada: las sesiones de dispositivo emparejado solo pueden rotar su propio dispositivo, salvo que también tengan operator.admin, y los valores explícitos de --scope no pueden superar los alcances de operador actuales del llamador.
  • Sigue bloqueado: openclaw status --all más Solución de problemas. Consulta Panel para detalles de autenticación.
El enlace tailnet elige una IP de Tailscale desde tus interfaces de red (100.64.0.0/10). Si la máquina no está en Tailscale (o la interfaz está caída), no hay nada a lo que enlazar.Solución: inicia Tailscale en ese host o cambia a gateway.bind: "loopback" / "lan".tailnet es explícito; auto prefiere loopback. Usa gateway.bind: "tailnet" para un enlace solo de tailnet.
Normalmente no: un Gateway puede ejecutar varios canales de mensajería y agentes. Usa varios Gateways solo para redundancia (por ejemplo, un bot de rescate) o aislamiento estricto, y aísla cada uno con su propio OPENCLAW_CONFIG_PATH, OPENCLAW_STATE_DIR, agents.defaults.workspace y gateway.port único.Recomendado: openclaw --profile <name> ... por instancia (crea automáticamente ~/.openclaw-<name>), un gateway.port único por configuración de perfil (o --port para ejecuciones manuales) y un servicio por perfil con openclaw --profile <name> gateway install.Los perfiles también añaden sufijos a los nombres de servicio: launchd ai.openclaw.<profile>, systemd openclaw-gateway-<profile>.service, Windows OpenClaw Gateway (<profile>). La unidad systemd sin calificador openclaw-gateway solo existe para el perfil predeterminado; el nombre de unidad systemd heredado anterior al cambio de nombre clawdbot-gateway se migra automáticamente.Guía completa: Varios gateways.
El Gateway es un servidor WebSocket y espera que el primer mensaje sea una trama connect. Cualquier otra cosa cierra la conexión con código 1008 (infracción de política).Causas comunes: abriste la URL HTTP en un navegador en lugar de un cliente WS, usaste el puerto/ruta incorrectos o un proxy/túnel eliminó los encabezados de autenticación o envió una solicitud que no era de Gateway.Solución: usa la URL WS (ws://<host>:18789, o wss://... sobre HTTPS), no abras el puerto WS en una pestaña normal del navegador e incluye el token/contraseña en la trama connect cuando la autenticación esté activada. Ejemplo de CLI/TUI:
openclaw tui --url ws://<host>:18789 --token <token>
Detalles del protocolo: protocolo de Gateway.

Registro y depuración

Registros de archivo (estructurados): /tmp/openclaw/openclaw-YYYY-MM-DD.log. Define una ruta estable mediante logging.file; el nivel de registro de archivo mediante logging.level; la verbosidad de consola mediante --verbose y logging.consoleLevel.Seguimiento más rápido:
openclaw logs --follow
Registros de servicio/supervisor (cuando el gateway se ejecuta mediante launchd/systemd):
  • stdout de launchd en macOS: ~/Library/Logs/openclaw/gateway.log (los perfiles usan gateway-<profile>.log; stderr se suprime).
  • Linux: journalctl --user -u openclaw-gateway[-<profile>].service -n 200 --no-pager.
  • Windows: schtasks /Query /TN "OpenClaw Gateway (<profile>)" /V /FO LIST.
Consulta Solución de problemas para más información.
openclaw gateway status
openclaw gateway restart
Si ejecutas el gateway manualmente, openclaw gateway --force puede recuperar el puerto. Consulta Gateway.
Tres modos de instalación en Windows:1) Configuración local de Windows Hub: la app nativa gestiona un Gateway WSL local propiedad de la app. Abre OpenClaw Companion desde el menú Inicio o la bandeja, luego usa Configuración de Gateway o la pestaña Conexiones.2) Gateway WSL2 manual: el Gateway se ejecuta dentro de Linux.
wsl
openclaw gateway status
openclaw gateway restart
Si nunca instalaste el servicio, inícialo en primer plano: openclaw gateway run.3) CLI/Gateway nativo de Windows: se ejecuta directamente en Windows.
openclaw gateway status
openclaw gateway restart
Si lo ejecutas manualmente (sin servicio): openclaw gateway run.Docs: Windows, runbook del servicio Gateway.
Revisión rápida de salud:
openclaw status
openclaw models status
openclaw channels status
openclaw logs --follow
Causas comunes: autenticación del modelo no cargada en el host del gateway (revisa models status), emparejamiento/lista de permitidos del canal bloqueando respuestas (revisa la configuración y los registros del canal), o WebChat/Panel abierto sin el token correcto. Si es remoto, confirma que la conexión de túnel/Tailscale esté activa y que el WebSocket del Gateway sea accesible.Docs: Canales, Solución de problemas, Acceso remoto.
Normalmente significa que la interfaz perdió la conexión WebSocket. Revisa: ¿está en ejecución el Gateway (openclaw gateway status)? ¿Está sano (openclaw status)? ¿Tiene la interfaz el token correcto (openclaw dashboard)? Si es remoto, ¿está activo el enlace de túnel/Tailscale?Luego sigue los registros:
openclaw logs --follow
Docs: Panel, Acceso remoto, Solución de problemas.
openclaw channels status
openclaw channels logs --channel telegram
Luego compara el error:
  • BOT_COMMANDS_TOO_MUCH: el menú de Telegram tiene demasiadas entradas. OpenClaw ya recorta al límite de Telegram y reintenta con menos comandos, pero algunas entradas del menú aún pueden descartarse. Reduce los comandos de plugin/skill/personalizados, o deshabilita channels.telegram.commands.native si no necesitas el menú.
  • TypeError: fetch failed, Network request for 'setMyCommands' failed!, o errores de red similares: en un VPS o detrás de un proxy, confirma que HTTPS saliente esté permitido y que DNS funcione para api.telegram.org.
Si el Gateway es remoto, revisa los registros en el host del Gateway.Docs: Telegram, Solución de problemas de canales.
openclaw status
openclaw models status
openclaw logs --follow
En la TUI, usa /status para ver el estado actual. Si esperas respuestas en un canal de chat, confirma que la entrega esté habilitada (/deliver on).Docs: TUI, comandos de barra.
Si instalaste el servicio (launchd en macOS, systemd en Linux):
openclaw gateway stop
openclaw gateway start
En primer plano, detén con Ctrl-C y luego openclaw gateway run.Docs: runbook del servicio Gateway.
openclaw gateway restart reinicia el servicio en segundo plano (launchd/systemd). openclaw gateway ejecuta el gateway en primer plano para esta sesión de terminal. Usa los subcomandos de gateway si instalaste el servicio; usa la ejecución en primer plano sin argumentos para una ejecución puntual.
Inicia el Gateway con --verbose para obtener más detalle en la consola y luego inspecciona el archivo de registro para ver errores de autenticación de canales, enrutamiento de modelos y RPC.

Medios y archivos adjuntos

Los archivos adjuntos salientes del agente deben usar campos de medios estructurados como media, mediaUrl, path o filePath. Consulta configuración del asistente OpenClaw y envío del agente.
openclaw message send --target +15555550123 --message "Here you go" --media /path/to/file.png
Comprueba también: el canal de destino admite medios salientes y no está bloqueado por listas de permitidos; el archivo está dentro de los límites de tamaño del proveedor (las imágenes se redimensionan a un lado máximo de 2048px); tools.fs.workspaceOnly=true limita los envíos de rutas locales al espacio de trabajo, temp/media-store y archivos validados por sandbox; tools.fs.workspaceOnly=false (predeterminado) permite que los envíos de medios locales estructurados usen archivos locales del host que el agente ya puede leer, para medios y tipos de documentos seguros (imágenes, audio, video, PDF, documentos de Office y documentos de texto validados como Markdown/MD, TXT, JSON, YAML/YML). Esto no es un escáner de secretos: un secret.txt o config.json legible por el agente se puede adjuntar cuando coincidan la validación de la extensión y del contenido. Mantén los archivos sensibles fuera de las rutas legibles por el agente, o conserva tools.fs.workspaceOnly=true para envíos de rutas locales más estrictos.Consulta imágenes.

Seguridad y control de acceso

Trata los mensajes directos entrantes como entrada no confiable. Los valores predeterminados reducen el riesgo:
  • El comportamiento predeterminado en canales que admiten mensajes directos es emparejamiento: los remitentes desconocidos reciben un código de emparejamiento y su mensaje no se procesa. Aprueba con openclaw pairing approve --channel <channel> [--account <id>] <code>. Las solicitudes pendientes tienen un límite de 3 por canal; comprueba openclaw pairing list --channel <channel> [--account <id>] si no llegó un código.
  • Abrir los mensajes directos públicamente requiere una aceptación explícita (dmPolicy: "open" y lista de permitidos "*").
Ejecuta openclaw doctor para mostrar políticas de mensajes directos riesgosas.
No. La inyección de prompts trata sobre contenido no confiable, no solo sobre quién puede enviar mensajes directos al bot. Si tu asistente lee contenido externo (búsqueda/obtención web, páginas del navegador, correos electrónicos, docs, archivos adjuntos, registros pegados), ese contenido puede llevar instrucciones que intenten secuestrar el modelo, incluso si tú eres el único remitente.El mayor riesgo aparece cuando las herramientas están habilitadas: el modelo puede ser engañado para exfiltrar contexto o invocar herramientas en tu nombre. Reduce el radio de impacto:
  • usa un agente “lector” de solo lectura o con herramientas deshabilitadas para resumir contenido no confiable
  • mantén web_search / web_fetch / browser desactivados para agentes con herramientas habilitadas
  • trata también el texto decodificado de archivos/documentos como no confiable: OpenResponses input_file y la extracción de adjuntos multimedia envuelven el texto extraído en marcadores explícitos de límite de contenido externo en lugar de pasar texto de archivo sin procesar
  • usa sandbox y listas estrictas de herramientas permitidas
Detalles: seguridad.
El lenguaje y el runtime importan, pero no son el riesgo principal para un agente personal. Los riesgos prácticos son la exposición del gateway, quién puede enviar mensajes al bot, la inyección de prompts, el alcance de las herramientas, el manejo de credenciales, el acceso al navegador, el acceso exec y la confianza en skills/plugins de terceros.Rust y WASM pueden ofrecer un aislamiento más fuerte para algunas clases de código, pero no resuelven la inyección de prompts, las listas de permitidos deficientes, la exposición pública del gateway, herramientas demasiado amplias ni un perfil de navegador que ya haya iniciado sesión en cuentas sensibles. Trata estos como los controles principales: mantén el Gateway privado o autenticado, usa emparejamiento y listas de permitidos para mensajes directos/grupos, deniega o aísla con sandbox las herramientas riesgosas para entradas no confiables, instala solo plugins y skills de confianza, y ejecuta openclaw security audit --deep después de cambios de configuración.Detalles: seguridad, sandboxing.
openclaw security audit --deep
openclaw gateway status
Una base más segura: Gateway vinculado a loopback, o expuesto solo mediante acceso privado autenticado (tailnet, túnel SSH, autenticación con token/contraseña o un proxy de confianza correctamente configurado); mensajes directos en modo pairing o allowlist; grupos en lista de permitidos y con requerimiento de mención salvo que todos los miembros sean de confianza; herramientas de alto riesgo (exec, browser, gateway, cron) denegadas o con alcance muy restringido para agentes que leen contenido no confiable; sandboxing habilitado donde la ejecución de herramientas necesite un radio de impacto menor.Los hallazgos que debes corregir primero son enlaces públicos sin autenticación, mensajes directos/grupos abiertos con herramientas y control de navegador expuesto. Detalles: openclaw security audit.
Trata las Skills y los plugins de terceros como código en el que decides confiar. Las páginas de Skills de ClawHub muestran el estado del análisis antes de la instalación, pero los análisis no son un límite de seguridad completo. OpenClaw no ejecuta bloqueo local integrado de código peligroso durante la instalación o actualización de plugins/Skills; usa security.installPolicy, propiedad del operador, para decisiones locales de permitir/bloquear.Patrón más seguro: prefiere autores de confianza y versiones fijadas, lee la Skill/plugin antes de habilitarla, mantén listas de permitidos de plugins/Skills reducidas, ejecuta flujos de trabajo con entradas no confiables en un sandbox con herramientas mínimas y evita dar al código de terceros acceso amplio al sistema de archivos, exec, navegador o secretos.Detalles: Skills, Plugins, Seguridad.
Sí, para la mayoría de las configuraciones. Aislar el bot con cuentas y números de teléfono separados reduce el radio de impacto si algo sale mal, y facilita rotar credenciales o revocar el acceso sin afectar tus cuentas personales.Empieza con poco: da acceso solo a las herramientas y cuentas que realmente necesitas, y amplíalo más adelante si hace falta.Documentación: Seguridad, Emparejamiento.
No recomendamos autonomía completa sobre tus mensajes personales. Patrón más seguro: mantén los DM en modo de emparejamiento o con una lista de permitidos estricta, usa un número o cuenta separados si debe enviar mensajes en tu nombre, y deja que redacte mientras tú apruebas antes de enviar.Para experimentar, hazlo en una cuenta dedicada y aislada. Consulta Seguridad.
Sí, si el agente es solo de chat y la entrada es de confianza. Los niveles más pequeños son más susceptibles al secuestro de instrucciones, así que evítalos para agentes con herramientas habilitadas o al leer contenido no confiable. Si tienes que usar un modelo más pequeño, restringe las herramientas y ejecútalo dentro de un sandbox. Consulta Seguridad.
Los códigos de emparejamiento se envían solo cuando un remitente desconocido envía un mensaje al bot y dmPolicy: "pairing" está habilitado; /start por sí solo no genera un código.Revisa las solicitudes pendientes:
openclaw pairing list telegram
Para acceso inmediato, añade el id de tu remitente a la lista de permitidos o establece dmPolicy: "open" para esa cuenta.
No. La política de DM predeterminada de WhatsApp es emparejamiento. Los remitentes desconocidos solo reciben un código de emparejamiento; su mensaje no se procesa. OpenClaw solo responde a chats que recibe o a envíos explícitos que tú activas.
openclaw pairing approve whatsapp <code>
openclaw pairing list whatsapp
La solicitud de número de teléfono del asistente configura tu lista de permitidos/propietario para que tus propios DM estén permitidos; no se usa para envíos automáticos. En tu número personal de WhatsApp, usa ese número y habilita channels.whatsapp.selfChatMode.

Comandos de chat, cancelación de tareas y “no se detiene”

La mayoría de los mensajes internos/de herramientas solo aparecen cuando verbose, trace o reasoning están habilitados para esa sesión.Corrígelo en el chat donde lo ves:
/verbose off
/trace off
/reasoning off
Si sigue habiendo demasiado ruido: revisa la configuración de la sesión en la Control UI y establece verbose en inherit; confirma que no estás usando un perfil de bot con verboseDefault: "on" en la configuración.Documentación: Pensamiento y verbose, Seguridad.
Envía cualquiera de estos como mensaje independiente (sin barra) para activar una cancelación: stop, stop action, stop current action, stop run, stop current run, stop agent, stop the agent, stop openclaw, openclaw stop, stop don't do anything, stop do not do anything, stop doing anything, do not do that, please stop, stop please, abort, esc, wait, exit, interrupt, halt. También funcionan activadores comunes en idiomas distintos del inglés (francés, alemán, español, chino, japonés, hindi, árabe, ruso).Para procesos en segundo plano iniciados por la herramienta exec, pide al agente que ejecute:
process action:kill sessionId:XXX
La mayoría de los comandos con barra deben enviarse como un mensaje independiente que empiece por /, pero algunos atajos (como /status) también funcionan en línea para remitentes en lista de permitidos. Consulta Comandos con barra.
OpenClaw bloquea la mensajería entre proveedores de forma predeterminada. Si una llamada de herramienta está vinculada a Telegram, no enviará a Discord a menos que lo permitas explícitamente, y esto entra en vigor de inmediato, sin necesidad de reiniciar el Gateway:
{
  tools: {
    message: {
      crossContext: {
        allowAcrossProviders: true,
        marker: { enabled: true, prefix: "[from {channel}] " },
      },
    },
  },
}
De forma predeterminada, las indicaciones durante una ejecución se dirigen a la ejecución activa. Usa /queue para elegir el comportamiento de la ejecución activa:
  • steer (predeterminado) - guía la ejecución activa en el siguiente límite del modelo.
  • followup - pone los mensajes en cola y los ejecuta uno por uno después de que termine la ejecución actual.
  • collect - pone en cola los mensajes compatibles y responde una vez después de que termine la ejecución actual.
  • interrupt - cancela la ejecución actual y empieza de nuevo.
Agrega opciones a los modos en cola como debounce:0.5s cap:25 drop:summarize. Consulta Cola de comandos y Cola de dirección.

Varios

Las credenciales y la selección de modelo son independientes. Configurar ANTHROPIC_API_KEY (o guardar una clave de API de Anthropic en perfiles de autenticación) habilita la autenticación, pero el modelo predeterminado real es el que configures en agents.defaults.model.primary (por ejemplo, anthropic/claude-sonnet-4-6 o anthropic/claude-opus-4-6). No credentials found for profile "anthropic:default" significa que el Gateway no pudo encontrar credenciales de Anthropic en el auth-profiles.json esperado para el agente en ejecución.

¿Aún tienes problemas? Pregunta en Discord o abre una discusión de GitHub.

Relacionado