Skip to main content
Configuración de claves con ámbito de agente en agents.*, multiAgent.*, session.*, messages.* y talk.*. Para canales, herramientas, el entorno de ejecución del Gateway y otras claves de nivel superior, consulte la referencia de configuración.

Valores predeterminados de los agentes

agents.defaults.workspace

Valor predeterminado: OPENCLAW_WORKSPACE_DIR cuando está establecido; de lo contrario, ~/.openclaw/workspace (o ~/.openclaw/workspace-<profile> cuando OPENCLAW_PROFILE está establecido en un perfil no predeterminado).
Un valor explícito de agents.defaults.workspace tiene prioridad sobre OPENCLAW_WORKSPACE_DIR. Utilice la variable de entorno para dirigir los agentes predeterminados a un espacio de trabajo montado cuando no se desee escribir esa ruta en la configuración.

agents.defaults.repoRoot

Raíz opcional del repositorio que se muestra en la línea Runtime del prompt del sistema. Si no se establece, OpenClaw la detecta automáticamente recorriendo los directorios hacia arriba desde el espacio de trabajo.

agents.defaults.skills

Lista de permitidos predeterminada opcional de Skills para los agentes que no establecen agents.entries.*.skills.
  • Omita agents.defaults.skills para permitir de forma predeterminada Skills sin restricciones.
  • Omita agents.entries.*.skills para heredar los valores predeterminados.
  • Establezca agents.entries.*.skills: [] para no disponer de Skills.
  • Una lista no vacía de agents.entries.*.skills es el conjunto final de ese agente; no se combina con los valores predeterminados.

agents.defaults.skipBootstrap

Deshabilita la creación automática de archivos de arranque del espacio de trabajo (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, BOOTSTRAP.md).

agents.defaults.skipOptionalBootstrapFiles

Omite la creación de determinados archivos opcionales del espacio de trabajo, pero sigue escribiendo los archivos de arranque obligatorios (AGENTS.md, TOOLS.md, BOOTSTRAP.md). Valores válidos: SOUL.md, USER.md y IDENTITY.md (HEARTBEAT.md se acepta, pero no realiza ninguna operación porque el contexto de Heartbeat se trasladó al espacio temporal del monitor de Cron).

agents.defaults.contextInjection

Controla cuándo se inyectan los archivos de arranque del espacio de trabajo en el prompt del sistema. Valor predeterminado: "always".
  • "continuation-skip": los turnos de continuación seguros (después de una respuesta completada del asistente) omiten volver a inyectar el arranque del espacio de trabajo, lo que reduce el tamaño del prompt. Las ejecuciones de Heartbeat y los reintentos posteriores a Compaction siguen reconstruyendo el contexto.
  • "never": deshabilita la inyección del arranque del espacio de trabajo y de archivos de contexto en cada turno. Utilice esta opción únicamente para agentes que controlen por completo el ciclo de vida de su prompt (motores de contexto personalizados, entornos de ejecución nativos que construyen su propio contexto o flujos de trabajo especializados sin arranque). Los turnos de Heartbeat y de recuperación de Compaction también omiten la inyección.
Anulación por agente: agents.entries.*.contextInjection. Los valores omitidos heredan agents.defaults.contextInjection.

agents.defaults.bootstrapMaxChars

Máximo de caracteres por archivo de arranque del espacio de trabajo antes de truncarlo. Valor predeterminado: 20000.
Anulación por agente: agents.entries.*.bootstrapMaxChars. Los valores omitidos heredan agents.defaults.bootstrapMaxChars.

agents.defaults.bootstrapTotalMaxChars

Máximo total de caracteres inyectados entre todos los archivos de arranque del espacio de trabajo. Valor predeterminado: 60000.
Anulación por agente: agents.entries.*.bootstrapTotalMaxChars. Los valores omitidos heredan agents.defaults.bootstrapTotalMaxChars.

Anulaciones del perfil de arranque por agente

Utilice anulaciones del perfil de arranque por agente cuando uno de ellos necesite un comportamiento de inyección del prompt diferente de los valores predeterminados compartidos. Los campos omitidos heredan de agents.defaults.

agents.defaults.bootstrapPromptTruncationWarning

Controla el aviso visible para el agente en el prompt del sistema cuando se trunca el contexto de arranque. Valor predeterminado: "always".
  • "off": nunca inyecta el texto del aviso de truncamiento en el prompt del sistema.
  • "once": inyecta un aviso conciso una vez por cada firma de truncamiento única.
  • "always": inyecta un aviso conciso en cada ejecución cuando existe truncamiento (recomendado).
Los recuentos detallados sin procesar e inyectados y los campos de ajuste de configuración permanecen en diagnósticos como los informes y registros de contexto/estado; el contexto rutinario de usuario/entorno de ejecución de WebChat solo recibe el aviso conciso de recuperación.

Mapa de propiedad de presupuestos de contexto

OpenClaw tiene varios presupuestos de gran volumen para prompts y contexto, y están divididos deliberadamente por subsistema en lugar de pasar todos por un único parámetro genérico. Anulaciones correspondientes por agente:
  • agents.entries.*.skillsLimits.maxSkillsPromptChars
  • agents.entries.*.contextInjection
  • agents.entries.*.bootstrapMaxChars
  • agents.entries.*.bootstrapTotalMaxChars
  • agents.entries.*.contextLimits.*

agents.defaults.startupContext

Controla el preludio de inicio del primer turno que se inyecta en las ejecuciones del modelo al restablecer/iniciar. Los comandos de chat simples /new y /reset confirman el restablecimiento sin invocar el modelo, por lo que no cargan este preludio.

agents.defaults.contextLimits

Valores predeterminados compartidos para las superficies acotadas de contexto del entorno de ejecución.
  • memoryGetMaxChars: límite predeterminado del extracto memory_get antes de añadir los metadatos de truncamiento y el aviso de continuación.
  • Cuando memory_get omite lines, OpenClaw utiliza una ventana integrada de 120 líneas y después aplica memoryGetMaxChars.
  • Los resultados de herramientas en vivo utilizan un límite automático de contexto del modelo: 16000 caracteres por debajo de 100K tokens, 32000 caracteres con 100K+ tokens y 64000 caracteres con 200K+ tokens.
  • postCompactionMaxChars: límite del extracto de AGENTS.md utilizado durante la inyección de actualización posterior a Compaction.

agents.entries.*.contextLimits

Anulación por agente para los parámetros compartidos de contextLimits. Los campos omitidos heredan de agents.defaults.contextLimits.

skills.limits.maxSkillsPromptChars

Límite global de la lista compacta de Skills inyectada en el prompt del sistema. Esto no afecta a la lectura bajo demanda de los archivos SKILL.md.

agents.entries.*.skillsLimits.maxSkillsPromptChars

Anulación por agente del presupuesto del prompt de Skills.

agents.defaults.imageMaxDimensionPx

Tamaño máximo en píxeles del lado más largo de la imagen en los bloques de imágenes de transcripciones/herramientas antes de las llamadas al proveedor. Valor predeterminado: 1200. Los valores inferiores suelen reducir el uso de tokens de visión y el tamaño de la carga útil de las solicitudes en ejecuciones con muchas capturas de pantalla. Los valores superiores conservan más detalle visual.

agents.defaults.imageQuality

Preferencia de compresión/detalle de la herramienta de imágenes para las imágenes cargadas desde rutas de archivo, URL y referencias multimedia. Valor predeterminado: auto. OpenClaw adapta la escala de redimensionamiento al modelo de imagen seleccionado. Por ejemplo, Claude Opus 4.8, OpenAI GPT-5.6 Sol, Qwen VL y los modelos de visión Llama 4 alojados pueden utilizar imágenes más grandes que las rutas de visión de alto detalle antiguas/predeterminadas, mientras que los turnos con varias imágenes se comprimen de forma más agresiva en el modo auto para controlar el coste de tokens y latencia. Valores:
  • auto: se adapta a los límites del modelo y a la cantidad de imágenes.
  • efficient: prioriza imágenes más pequeñas para reducir el uso de tokens y bytes.
  • balanced: utiliza la escala intermedia estándar.
  • high: conserva más detalle en capturas de pantalla, diagramas e imágenes de documentos.

agents.defaults.userTimezone

Zona horaria para el contexto del prompt del sistema (no para las marcas de tiempo de los mensajes). Si no se especifica, utiliza la zona horaria del host.

agents.defaults.timeFormat

Formato de hora en el prompt del sistema. Valor predeterminado: auto (preferencia del sistema operativo).

agents.defaults.model

  • model: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • La forma de cadena establece solo el modelo principal.
    • La forma de objeto establece el modelo principal y los modelos de conmutación por error ordenados.
  • utilityModel: referencia o alias provider/model opcional para tareas internas breves. Actualmente se utiliza para generar los títulos de sesión de la interfaz de control, los títulos de temas de mensajes directos de Telegram, los títulos automáticos de hilos de Discord y la narración de borradores de progreso. Cuando no se establece, OpenClaw obtiene el modelo pequeño predeterminado declarado por el proveedor principal, si existe (OpenAI → gpt-5.6-luna, Anthropic → claude-haiku-4-5); de lo contrario, las tareas de creación de títulos usan el modelo principal del agente y la narración permanece desactivada. Si un modelo auxiliar distinto no puede preparar o completar un título generado, OpenClaw vuelve a intentar generar ese título una vez con el modelo principal. Para los títulos del panel, la derivación automática del modelo auxiliar y la alternativa habitual usan el proveedor y el perfil de autenticación efectivos de la sesión; un modelo auxiliar explícito conserva el proveedor y la autenticación configurados. Establezca utilityModel: "" para omitir la ruta auxiliar alternativa; la generación de títulos del panel continúa directamente con el modelo habitual de la sesión. agents.entries.*.utilityModel sustituye el valor predeterminado y una sustitución de modelo específica de la operación prevalece sobre ambos. Las tareas auxiliares realizan llamadas independientes al modelo y envían contenido específico de la tarea al proveedor del modelo seleccionado. La generación de títulos del panel envía como máximo los primeros 1.000 caracteres del primer mensaje que no sea un comando; la narración envía la solicitud entrante junto con resúmenes compactos y expurgados de las herramientas. Elija un proveedor que se ajuste a sus requisitos de coste y tratamiento de datos.
  • imageModel: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • La ruta de la herramienta image lo usa como configuración del modelo de visión cuando el modelo activo no admite imágenes. En cambio, los modelos con visión nativa reciben directamente los bytes de las imágenes cargadas.
    • También se usa como ruta alternativa cuando el modelo seleccionado o predeterminado no admite entradas de imagen.
    • Se recomienda usar referencias provider/model explícitas. Se aceptan identificadores sin calificar por compatibilidad; si un identificador sin calificar coincide de forma única con una entrada configurada que admite imágenes en models.providers.*.models, OpenClaw lo califica con ese proveedor. Las coincidencias configuradas ambiguas requieren un prefijo de proveedor explícito.
  • mediaModels.image: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • Lo usan la capacidad compartida de generación de imágenes y cualquier futura superficie de herramienta o Plugin que genere imágenes.
    • Valores habituales: google/gemini-3.1-flash-image para la generación nativa de imágenes de Gemini, fal/fal-ai/flux/dev para fal, openai/gpt-image-2 para OpenAI Images o openai/gpt-image-1.5 para la salida PNG/WebP de OpenAI con fondo transparente.
    • Si selecciona directamente un proveedor o modelo, configure también la autenticación correspondiente del proveedor (por ejemplo, GEMINI_API_KEY o GOOGLE_API_KEY para google/*, OPENAI_API_KEY u OAuth de OpenAI Codex para openai/gpt-image-2 / openai/gpt-image-1.5, FAL_KEY para fal/*).
    • Si se omite, image_generate aún puede inferir un proveedor predeterminado respaldado por autenticación. Primero prueba el proveedor predeterminado actual y, después, los demás proveedores registrados de generación de imágenes, ordenados por identificador de proveedor.
  • mediaModels.music: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • Lo usan la capacidad compartida de generación de música y la herramienta integrada music_generate.
    • Valores habituales: google/lyria-3-clip-preview, google/lyria-3-pro-preview o minimax/music-2.6.
    • Si se omite, music_generate aún puede inferir un proveedor predeterminado respaldado por autenticación. Primero prueba el proveedor predeterminado actual y, después, los demás proveedores registrados de generación de música, ordenados por identificador de proveedor.
    • Si selecciona directamente un proveedor o modelo, configure también la autenticación o clave de API correspondiente del proveedor.
  • mediaModels.video: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • Lo usan la capacidad compartida de generación de vídeo y la herramienta integrada video_generate.
    • Valores habituales: qwen/wan2.6-t2v, qwen/wan2.6-i2v, qwen/wan2.6-r2v, qwen/wan2.6-r2v-flash o qwen/wan2.7-r2v.
    • Si se omite, video_generate aún puede inferir un proveedor predeterminado respaldado por autenticación. Primero prueba el proveedor predeterminado actual y, después, los demás proveedores registrados de generación de vídeo, ordenados por identificador de proveedor.
    • Si selecciona directamente un proveedor o modelo, configure también la autenticación o clave de API correspondiente del proveedor.
    • El Plugin oficial de generación de vídeo de Qwen admite hasta 1 vídeo de salida, 1 imagen de entrada, 4 vídeos de entrada, una duración de 10 segundos y las opciones de proveedor size, aspectRatio, resolution, audio y watermark.
  • pdfModel: acepta una cadena ("provider/model") o un objeto ({ primary, fallbacks }).
    • La herramienta pdf lo usa para el enrutamiento de modelos.
    • Si se omite, la herramienta de PDF recurre a imageModel y, después, al modelo resuelto de la sesión o predeterminado.
  • pdfMaxMb: límite predeterminado de tamaño de PDF para la herramienta pdf cuando no se pasa maxBytesMb al realizar la llamada.
  • pdfMaxPages: número máximo predeterminado de páginas que se tienen en cuenta en el modo alternativo de extracción de la herramienta pdf.
  • verboseDefault: nivel de detalle predeterminado de los agentes. Valores: "off", "on", "full". Valor predeterminado: "off".
  • toolProgressDetail: modo de detalle para los resúmenes de herramientas de /verbose y las líneas de herramientas de borradores de progreso. Valores: "explain" (predeterminado, etiquetas humanas compactas) o "raw" (añade el comando o detalle sin procesar cuando está disponible). El valor agents.entries.*.toolProgressDetail de cada agente sustituye este valor predeterminado.
  • reasoningDefault: visibilidad predeterminada del razonamiento de los agentes. Valores: "off", "on", "stream". El valor agents.entries.*.reasoningDefault de cada agente sustituye este valor predeterminado. Los valores predeterminados de razonamiento configurados solo se aplican a propietarios, remitentes autorizados o contextos de administrador-operador del Gateway cuando no se ha establecido una sustitución de razonamiento por mensaje o sesión.
  • elevatedDefault: nivel predeterminado de salida elevada de los agentes. Valores: "off", "on", "ask", "full". Valor predeterminado: "on".
  • model.primary: formato provider/model (p. ej., openai/gpt-5.6-sol para el acceso OAuth de Codex). Si omite el proveedor, OpenClaw prueba primero un alias, después una coincidencia única de proveedor configurado para ese identificador exacto de modelo y, solo entonces, recurre al proveedor predeterminado configurado (comportamiento de compatibilidad obsoleto, por lo que se recomienda usar un provider/model explícito). Si ese proveedor ya no ofrece el modelo predeterminado configurado, OpenClaw recurre al primer proveedor y modelo configurados en lugar de mostrar un valor predeterminado obsoleto de un proveedor eliminado.
  • contextTokens: límite máximo opcional para todo el agente. Puede reducir el presupuesto efectivo de un modelo más grande, pero no puede aumentarlo por encima de su contextTokens configurado o detectado. Para habilitar la ventana nativa más grande de un modelo directo de OpenAI, establezca models.providers.openai.models[].contextWindow y contextTokens para ese modelo; consulte Valores predeterminados de la ventana de contexto de OpenAI.
  • models: alias configurados y ajustes por modelo. Cada entrada puede incluir alias (acceso directo) y params (específico del proveedor, por ejemplo, temperature, maxTokens, cacheRetention, context1m, responsesServerCompaction, responsesCompactThreshold, enrutamiento provider de OpenRouter, chat_template_kwargs, extra_body/extraBody). Añadir entradas no restringe las sustituciones de modelos.
    • Use entradas provider/*, como "openai/*": {} o "vllm/*": {}, para mostrar todos los modelos detectados de los proveedores seleccionados sin enumerar manualmente cada identificador de modelo.
    • Añada agentRuntime a una entrada provider/* cuando todos los modelos detectados dinámicamente para ese proveedor deban usar el mismo entorno de ejecución. La política exacta de entorno de ejecución provider/model sigue prevaleciendo sobre el comodín.
    • Ediciones seguras de metadatos: use openclaw config set agents.defaults.models '<json>' --strict-json --merge para añadir entradas. config set rechaza las sustituciones que eliminarían entradas existentes, salvo que se pase --replace.
  • modelPolicy.allow: lista explícita de sustituciones permitidas. Acepta alias, referencias provider/model exactas y comodines de prefijo al final, como openai/* o clawrouter/anthropic/*. Omítala o use [] para permitir cualquier modelo. agents.entries.*.modelPolicy.allow sustituye la política predeterminada de ese agente; una lista vacía explícita permite cualquier modelo para ese agente.
    • Los flujos de configuración e incorporación específicos del proveedor combinan en este mapa los modelos seleccionados del proveedor y conservan los proveedores no relacionados que ya estén configurados.
    • Para los modelos directos de OpenAI Responses, la Compaction del lado del servidor se activa automáticamente. Use params.responsesServerCompaction: false para dejar de insertar context_management o params.responsesCompactThreshold para sustituir el umbral. Consulte Compaction de OpenAI del lado del servidor.
  • params: parámetros globales predeterminados del proveedor que se aplican a todos los modelos. Se establecen en agents.defaults.params (p. ej., { cacheRetention: "long" }).
  • Precedencia de combinación de params (configuración): agents.defaults.params (base global) se sustituye por agents.defaults.models["provider/model"].params (por modelo) y, después, agents.entries.*.params (identificador de agente coincidente) sustituye los valores por clave. Consulte Almacenamiento en caché de prompts para obtener más información.
  • models.providers.openrouter.params.provider: política predeterminada de enrutamiento de proveedores para todo OpenRouter. OpenClaw la reenvía al objeto provider de la solicitud de OpenRouter; los valores agents.defaults.models["openrouter/<model>"].params.provider por modelo y los parámetros del agente prevalecen por clave. Consulte Enrutamiento de proveedores de OpenRouter.
  • params.extra_body/params.extraBody: JSON avanzado transferido directamente que se combina en los cuerpos de solicitud api: "openai-completions" para proxies compatibles con OpenAI. Si entra en conflicto con claves de solicitud generadas, prevalece el cuerpo adicional; posteriormente, las rutas de finalización no nativas siguen eliminando store, que es exclusivo de OpenAI.
  • params.chat_template_kwargs: argumentos de plantilla de chat compatibles con vLLM/OpenAI que se combinan en los cuerpos de solicitud api: "openai-completions" de nivel superior. Para vllm/nemotron-3-* con el pensamiento desactivado, el Plugin de vLLM incluido envía automáticamente enable_thinking: false y force_nonempty_content: true; los valores chat_template_kwargs explícitos sustituyen los valores predeterminados generados y extra_body.chat_template_kwargs conserva la precedencia final. Los modelos de pensamiento Qwen y Nemotron de vLLM configurados ofrecen opciones binarias /think (off, on) en lugar de la escala de esfuerzo de varios niveles.
  • compat.thinkingFormat: estilo de carga útil de pensamiento compatible con OpenAI. Use "together" para reasoning.enabled al estilo de Together, "qwen" para enable_thinking de nivel superior al estilo de Qwen o "qwen-chat-template" para chat_template_kwargs.enable_thinking en backends de la familia Qwen que admitan argumentos de palabra clave de plantilla de chat en el nivel de solicitud, como vLLM. OpenClaw asigna el pensamiento desactivado a false y el pensamiento activado a true, y los modelos Qwen de vLLM configurados ofrecen opciones binarias /think para estos formatos.
  • compat.supportedReasoningEfforts: lista de niveles de esfuerzo de razonamiento compatibles con OpenAI por modelo. Incluya "xhigh" para los endpoints personalizados que realmente lo acepten; OpenClaw mostrará entonces /think xhigh en los menús de comandos, las filas de sesiones del Gateway, la validación de parches de sesión, la validación de la CLI del agente y la validación de llm-task para ese proveedor/modelo configurado. Use compat.reasoningEffortMap cuando el backend requiera un valor específico del proveedor para un nivel canónico.
  • params.preserveThinking: activación opcional exclusiva de Z.AI para conservar el razonamiento. Cuando está habilitada y el razonamiento está activo, OpenClaw envía thinking.clear_thinking: false y reproduce los reasoning_content anteriores; consulte Razonamiento y razonamiento conservado de Z.AI.
  • localService: gestor de procesos opcional a nivel de proveedor para servidores de modelos locales o autoalojados. Cuando el modelo seleccionado pertenece a ese proveedor, OpenClaw comprueba healthUrl (o baseUrl + "/models"), inicia command con args si el endpoint no está disponible, espera hasta readyTimeoutMs y, a continuación, envía la solicitud al modelo. command debe ser una ruta absoluta. idleStopMs: 0 mantiene el proceso activo hasta que OpenClaw finaliza; un valor positivo detiene el proceso iniciado por OpenClaw después de esa cantidad de milisegundos de inactividad. Consulte Servicios de modelos locales.
  • La política de tiempo de ejecución corresponde a los proveedores o modelos, no a agents.defaults. Use models.providers.<provider>.agentRuntime para reglas aplicables a todo el proveedor o agents.defaults.models["provider/model"].agentRuntime / agents.entries.*.models["provider/model"].agentRuntime para reglas específicas del modelo. Un prefijo de proveedor/modelo por sí solo nunca selecciona un entorno de ejecución. Si el tiempo de ejecución no está establecido o es auto, OpenAI puede seleccionar Codex implícitamente solo para una ruta oficial HTTPS exacta de Platform Responses o ChatGPT Responses sin ninguna anulación explícita de la solicitud. Consulte Tiempo de ejecución implícito del agente de OpenAI.
  • Los escritores de configuración que modifican estos campos (por ejemplo, /models set, /models set-image y los comandos para añadir o eliminar alternativas) guardan la forma de objeto canónica y conservan las listas de alternativas existentes cuando es posible.
  • maxConcurrent: número máximo de ejecuciones paralelas de agentes entre sesiones (cada sesión sigue ejecutándose de forma serializada). Valor predeterminado: 4.

Política del runtime

  • id: "auto", "openclaw", un id de arnés de Plugin registrado o un alias de backend de CLI compatible. El Plugin Codex incluido registra codex; el Plugin Anthropic incluido proporciona el backend de CLI claude-cli.
  • id: "auto" permite que los arneses de Plugin registrados asuman rutas efectivas que declaren o satisfagan de otro modo su contrato de compatibilidad, y utiliza OpenClaw cuando ningún arnés coincide. Un runtime de Plugin explícito como id: "codex" requiere ese arnés y una ruta efectiva compatible; aplica un cierre seguro si alguno no está disponible o si la ejecución falla.
  • id: "pi" solo se acepta como alias obsoleto de openclaw para preservar las configuraciones publicadas de v2026.5.22 y versiones anteriores. Las configuraciones nuevas deben usar openclaw.
  • La precedencia del runtime es: primero la política de modelo exacta (agents.entries.*.models["provider/model"], agents.defaults.models["provider/model"] o models.providers.<provider>.models[]), después agents.entries.* / agents.defaults.models["provider/*"] y, por último, la política para todo el proveedor en models.providers.<provider>.agentRuntime.
  • Las claves de runtime para todo el agente son heredadas. agents.defaults.agentRuntime, agents.entries.*.agentRuntime, las fijaciones de runtime de sesión y OPENCLAW_AGENT_RUNTIME se ignoran al seleccionar el runtime. Ejecute openclaw doctor --fix para eliminar los valores obsoletos.
  • Las rutas oficiales HTTPS exactas de OpenAI Responses/ChatGPT que sean aptas y no tengan una sustitución de solicitud definida pueden usar implícitamente el arnés Codex. El agentRuntime.id: "codex" del proveedor/modelo convierte Codex en un requisito de cierre seguro, pero no hace compatible una ruta incompatible.
  • Para implementaciones de Claude CLI, se recomienda model: "anthropic/claude-opus-5" junto con agentRuntime.id: "claude-cli" con ámbito de modelo. Las referencias heredadas claude-cli/<model> siguen funcionando por compatibilidad, pero las configuraciones nuevas deben mantener canónica la selección de proveedor/modelo y colocar el backend de ejecución en la política de runtime del proveedor/modelo.
  • Esto solo controla la ejecución de turnos de agente de texto. La generación multimedia, la visión, los PDF, la música, el vídeo y TTS siguen utilizando sus ajustes de proveedor/modelo.
Abreviaturas de alias integradas (solo se aplican cuando el modelo está en agents.defaults.models): Los alias configurados siempre tienen prioridad sobre los valores predeterminados. Los modelos Z.AI GLM-4.x activan automáticamente el modo de razonamiento, salvo que se establezca --thinking off o se defina agents.defaults.models["zai/<model>"].params.thinking. Los modelos Z.AI activan tool_stream de forma predeterminada para la transmisión de llamadas a herramientas. Establezca agents.defaults.models["zai/<model>"].params.tool_stream en false para desactivarla. Anthropic Claude Opus 4.8 mantiene el razonamiento desactivado de forma predeterminada en OpenClaw; cuando el razonamiento adaptativo se activa explícitamente, el valor predeterminado de esfuerzo gestionado por el proveedor Anthropic es high. Los modelos Claude 4.6 usan de forma predeterminada adaptive cuando no se establece un nivel de razonamiento explícito.

Selección del backend de CLI

Los mecanismos del adaptador de CLI los registran los Plugins y no se configuran en los valores predeterminados del agente. Seleccione un backend de CLI registrado con agentRuntime.id con ámbito de modelo, como se muestra arriba. Consulte backends de CLI para conocer las operaciones y creación de Plugins de backend de CLI para el registro de comandos, sesiones, imágenes y analizadores.

agents.defaults.promptOverlays

Superposiciones de instrucciones independientes del proveedor que se aplican por familia de modelos en las superficies de instrucciones ensambladas por OpenClaw. Los ids de modelos de la familia GPT-5 reciben el contrato de comportamiento compartido en las rutas de OpenClaw/proveedor; personality controla únicamente la capa de estilo de interacción cordial. Las rutas nativas del servidor de aplicaciones de Codex conservan las instrucciones base y de modelo gestionadas por Codex en lugar de esta superposición GPT-5 de OpenClaw, y OpenClaw desactiva la personalidad integrada de Codex para los hilos nativos.
  • "friendly" (valor predeterminado) y "on" activan la capa de estilo de interacción cordial.
  • "off" desactiva únicamente la capa cordial; el contrato de comportamiento GPT-5 etiquetado permanece activado.
  • El valor heredado plugins.entries.openai.config.personality todavía se lee cuando este ajuste compartido no está establecido.

agents.defaults.heartbeat

Ejecuciones periódicas de Heartbeat.
  • every: cadena de duración (ms/s/m/h). Valor predeterminado: 30m (autenticación mediante clave de API) o 1h (autenticación OAuth). Establézcalo en 0m para desactivarlo.
  • La cadencia se escribe en una fila de monitor Cron gestionada por el sistema. Ejecute openclaw doctor --fix para materializar una fila ausente u obsoleta. Si Cron está desactivado, los Heartbeats programados no se ejecutan y el Gateway registra una advertencia de inicio.
  • includeSystemPromptSection: cuando es false, omite la sección Heartbeat de las instrucciones del sistema. Valor predeterminado: true.
  • suppressToolErrorWarnings: cuando es true, suprime las cargas de advertencia de errores de herramientas durante las ejecuciones de Heartbeat.
  • timeoutSeconds: tiempo máximo permitido, en segundos, para un turno de agente de Heartbeat antes de que se cancele. Déjelo sin establecer para usar agents.defaults.timeoutSeconds cuando esté establecido; de lo contrario, se usa la cadencia de Heartbeat con un límite de 600 segundos.
  • directPolicy: política de entrega directa/por mensaje directo. allow (valor predeterminado) permite la entrega a destinos directos. block suprime la entrega a destinos directos y emite reason=dm-blocked.
  • lightContext: cuando es true, las ejecuciones de Heartbeat utilizan un contexto de arranque ligero y omiten los archivos de arranque del espacio de trabajo. El ejecutor de Heartbeat inyecta el contexto provisional del monitor en ambos casos.
  • isolatedSession: cuando es true, cada Heartbeat se ejecuta en una sesión nueva sin historial de conversación previo. Sigue el mismo patrón de aislamiento que sessionTarget: "isolated" de Cron. Reduce el coste de tokens por Heartbeat de ~100K a ~2-5K tokens.
  • skipWhenBusy: cuando es true, las ejecuciones de Heartbeat se aplazan mientras estén ocupados los canales adicionales de ese agente: el trabajo de sus propios subagentes vinculado a la clave de sesión o el trabajo de comandos anidados. Los canales de Cron siempre aplazan los Heartbeats, incluso sin esta opción.
  • Por agente: establezca agents.entries.*.heartbeat. Cuando algún agente define heartbeat, solo esos agentes ejecutan Heartbeats.
  • Los Heartbeats ejecutan turnos completos del agente: los intervalos más cortos consumen más tokens.

agents.defaults.compaction

  • mode: default o safeguard (resumen por fragmentos para historiales largos). Véase Compaction.
  • provider: id de un plugin proveedor de Compaction registrado. Cuando se establece, se llama a summarize() del proveedor en lugar de usar el resumen integrado mediante LLM. Si falla, se recurre al mecanismo integrado. Establecer un proveedor fuerza mode: "safeguard". Véase Compaction.
  • thinkingLevel: nivel de razonamiento opcional utilizado únicamente para los resúmenes de Compaction integrados de OpenClaw (off, minimal, low, medium, high, xhigh, adaptive, max o ultra). Anula el nivel de razonamiento actual de la sesión y se limita según el modelo o runtime de Compaction seleccionado. Déjelo sin establecer para heredar el nivel de la sesión. La Compaction nativa del servidor de aplicaciones de Codex ignora esta opción porque la solicitud nativa de compactación no permite anular el razonamiento por operación; OpenClaw registra una advertencia cuando está configurada.
  • timeoutSeconds: cantidad máxima de segundos permitida para una sola operación de Compaction antes de que OpenClaw la cancele. Valor predeterminado: 180.
  • keepRecentTokens: presupuesto del punto de corte del agente para conservar literalmente la parte final más reciente de la transcripción. La ejecución manual de /compact lo respeta cuando se establece explícitamente; de lo contrario, la Compaction manual es un punto de control estricto.
  • recentTurnsPreserve: número de turnos más recientes de usuario/asistente que se conservan literalmente fuera del resumen de protección. Valor predeterminado: 3.
  • identifierPolicy: strict (predeterminado) o off. strict antepone instrucciones integradas para conservar identificadores opacos durante el resumen de Compaction.
  • qualityGuard: comprobaciones con reintento ante resultados con formato incorrecto en los resúmenes de protección. Activadas de forma predeterminada en el modo de protección; establezca enabled: false para omitir la auditoría.
  • midTurnPrecheck: comprobación opcional de presión del bucle de herramientas. Cuando enabled: true, OpenClaw comprueba la presión del contexto después de añadir los resultados de las herramientas y antes de la siguiente llamada al modelo. Si el contexto ya no cabe, cancela el intento actual antes de enviar el prompt y reutiliza la ruta existente de recuperación previa para truncar los resultados de herramientas o ejecutar Compaction y volver a intentarlo. Funciona con los modos de Compaction default y safeguard. Valor predeterminado: desactivado.
  • postIndexSync: modo de reindexación de la memoria de sesión posterior a Compaction. Valor predeterminado: "async". Use "await" para obtener la máxima actualización, "async" para reducir la latencia de Compaction o "off" únicamente cuando la sincronización de la memoria de sesión se gestione en otro lugar.
  • postCompactionSections: nombres opcionales de secciones H2/H3 de AGENTS.md que se volverán a inyectar después de Compaction. Déjelo sin establecer o use [] para desactivarlo.
  • model: provider/model-id opcional o alias simple de agents.defaults.models únicamente para el resumen de Compaction. Los alias simples se resuelven antes del envío; los identificadores literales de modelo configurados conservan la prioridad en caso de colisión. Use esta opción cuando la sesión principal deba conservar un modelo, pero los resúmenes de Compaction deban ejecutarse en otro; cuando no se establece, Compaction usa el modelo principal de la sesión.
  • truncateAfterCompaction: rota la transcripción de la sesión activa después de Compaction para que los turnos futuros carguen únicamente el resumen y la parte final sin resumir, mientras la transcripción completa anterior permanece archivada. Evita el crecimiento ilimitado de la transcripción activa en sesiones de larga duración. Valor predeterminado: false.
  • maxActiveTranscriptBytes: umbral opcional en bytes (number o cadenas como "20mb") que activa la Compaction local normal antes de una ejecución cuando el historial de la transcripción supera el umbral. Requiere truncateAfterCompaction para que una Compaction correcta pueda rotar a una transcripción sucesora más pequeña. Se desactiva cuando no se establece o cuando es 0.
  • notifyUser: cuando true, envía al usuario breves avisos de mantenimiento del contexto: cuando Compaction comienza y termina (por ejemplo, «Compactando el contexto…» y «Compaction completada»), y cuando se agota un vaciado de memoria previo a Compaction, por lo que la respuesta continúa en un estado degradado (por ejemplo, «El mantenimiento de la memoria ha fallado temporalmente; se continuará con la respuesta»). Se desactiva de forma predeterminada para mantener estos avisos ocultos.
  • memoryFlush: turno agéntico silencioso antes de la Compaction automática para almacenar recuerdos duraderos. Establezca model en un proveedor/modelo exacto, como ollama/qwen3:8b, cuando este turno de mantenimiento deba permanecer en un modelo local; la anulación no hereda la cadena de alternativas de la sesión activa. forceFlushTranscriptBytes fuerza el vaciado cuando el tamaño de la transcripción alcanza el umbral, incluso si los contadores de tokens están desactualizados. Se omite cuando el espacio de trabajo es de solo lectura.
Las instrucciones personalizadas de Compaction son propiedad del código. Implemente un plugin proveedor de Compaction con summarize() para crear resúmenes personalizados y use before_prompt_build cuando sea necesario inyectar el contexto posterior a Compaction en prompts posteriores del modelo. Doctor elimina los campos de instrucciones retirados y remite a estos puntos de integración.

agents.defaults.contextPruning

Elimina los resultados antiguos de herramientas del contexto en memoria antes de enviarlo al LLM. No modifica el historial de la sesión en disco. Está desactivado de forma predeterminada; establezca mode: "cache-ttl" para activarlo.
  • mode: "cache-ttl" activa las pasadas de poda.
  • La poda primero recorta parcialmente los resultados de herramientas demasiado grandes y, después, elimina por completo los resultados de herramientas anteriores si es necesario.
El recorte parcial conserva el principio y el final e inserta ... en el centro.La eliminación completa sustituye todo el resultado de la herramienta por el marcador de posición.Notas:
  • Los bloques de imágenes nunca se recortan ni eliminan.
  • Las proporciones se basan en caracteres (son aproximadas), no en recuentos exactos de tokens.
  • Se conservan los mensajes más recientes del asistente.
Consulte Poda de sesiones para obtener detalles sobre el comportamiento.

Transmisión por bloques

  • Los canales distintos de Telegram requieren *.streaming.block.enabled: true explícito para activar las respuestas por bloques. QQ Bot es la excepción: no tiene claves streaming.block y transmite respuestas por bloques salvo que channels.qqbot.streaming.mode sea "off".
  • Anulaciones por canal: channels.<channel>.streaming.block.coalesce (y variantes por cuenta). Discord, Google Chat, Mattermost, MS Teams, Signal y Slack usan de forma predeterminada minChars: 1500 / idleMs: 1000.
  • blockStreamingChunk.breakPreference: límite de fragmento preferido ("paragraph" | "newline" | "sentence").
  • humanDelay: pausa aleatoria entre respuestas por bloques. Valor predeterminado: off. natural = 800-2500ms. custom usa minMs/maxMs (recurre al intervalo natural para cualquier límite sin establecer). Anulación por agente: agents.entries.*.humanDelay.
Consulte Transmisión para obtener detalles sobre el comportamiento y la fragmentación.

Indicadores de escritura

  • Valores predeterminados: instant para chats directos/menciones y message para chats grupales sin mención.
  • Valor predeterminado de typingIntervalSeconds: 6.
  • Anulación por agente: agents.entries.*.typingMode.
Consulte Indicadores de escritura.

agents.defaults.sandbox

Aislamiento opcional para el agente integrado. Consulte Aislamiento para ver la guía completa.
Los valores predeterminados mostrados anteriormente (imagen off/docker/agent/none/bookworm-slim, red none, etc.) son los valores predeterminados reales de OpenClaw, no meros valores ilustrativos.
Backend:
  • docker: runtime de Docker local (predeterminado)
  • ssh: runtime remoto genérico basado en SSH
  • openshell: runtime de OpenShell
Cuando se selecciona backend: "openshell", las opciones específicas del runtime se trasladan a plugins.entries.openshell.config.Configuración del backend SSH:
  • target: destino SSH con el formato user@host[:port]
  • command: comando del cliente SSH (valor predeterminado: ssh)
  • workspaceRoot: raíz remota absoluta utilizada para los espacios de trabajo por ámbito (valor predeterminado: /tmp/openclaw-sandboxes)
  • identityFile / certificateFile / knownHostsFile: archivos locales existentes proporcionados a OpenSSH
  • identityData / certificateData / knownHostsData: contenido insertado o SecretRefs que OpenClaw materializa en archivos temporales durante la ejecución
  • strictHostKeyChecking / updateHostKeys: opciones de la política de claves de host de OpenSSH (ambas tienen como valor predeterminado true)
Precedencia de autenticación SSH:
  • identityData tiene prioridad sobre identityFile
  • certificateData tiene prioridad sobre certificateFile
  • knownHostsData tiene prioridad sobre knownHostsFile
  • Los valores de *Data respaldados por SecretRef se resuelven a partir de la instantánea activa del entorno de ejecución de secretos antes de que se inicie la sesión de entorno aislado
Comportamiento del backend SSH:
  • inicializa el espacio de trabajo remoto una vez después de crearlo o volver a crearlo
  • después mantiene como canónico el espacio de trabajo SSH remoto
  • enruta exec, las herramientas de archivos y las rutas de contenido multimedia mediante SSH
  • no sincroniza automáticamente los cambios remotos con el host
  • no admite contenedores de navegador del entorno aislado
Acceso al espacio de trabajo:
  • none: espacio de trabajo del entorno aislado por ámbito en ~/.openclaw/sandboxes (valor predeterminado)
  • ro: espacio de trabajo del entorno aislado en /workspace, con el espacio de trabajo del agente montado como solo lectura en /agent
  • rw: espacio de trabajo del agente montado con acceso de lectura y escritura en /workspace
Ámbito:
  • session: contenedor y espacio de trabajo por sesión
  • agent: un contenedor y un espacio de trabajo por agente (valor predeterminado)
  • shared: contenedor y espacio de trabajo compartidos (sin aislamiento entre sesiones)
Configuración del Plugin OpenShell:
Modo de OpenShell:
  • mirror: inicializa el entorno remoto desde el local antes de ejecutar y sincroniza los cambios después de la ejecución; el espacio de trabajo local permanece como canónico
  • remote: inicializa el entorno remoto una vez cuando se crea el entorno aislado y después mantiene como canónico el espacio de trabajo remoto
En el modo remote, las modificaciones locales del host realizadas fuera de OpenClaw no se sincronizan automáticamente con el entorno aislado después del paso de inicialización. El transporte se realiza mediante SSH hacia el entorno aislado de OpenShell, pero el Plugin controla el ciclo de vida del entorno aislado y la sincronización reflejada opcional.setupCommand se ejecuta una vez después de crear el contenedor (mediante sh -lc). Requiere acceso de salida a la red, raíz con permisos de escritura y usuario raíz.El valor predeterminado de los contenedores es network: "none"; establézcalo en "bridge" (o en una red puente personalizada) si el agente necesita acceso saliente. "host" está bloqueado. "container:<id>" está bloqueado de forma predeterminada, salvo que se establezca explícitamente sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (medida de emergencia). Los turnos del servidor de aplicaciones de Codex en un entorno aislado activo de OpenClaw utilizan esta misma configuración de salida para su acceso de red nativo en modo de código.Los archivos adjuntos entrantes se almacenan provisionalmente en media/inbound/* dentro del espacio de trabajo activo.docker.binds monta directorios adicionales del host; los enlaces globales y por agente se combinan.Navegador en entorno aislado (sandbox.browser.enabled, valor predeterminado: false): Chromium + CDP en un contenedor. La URL de noVNC se inserta en el mensaje del sistema. No requiere browser.enabled en openclaw.json. El acceso de observador de noVNC utiliza autenticación VNC de forma predeterminada y OpenClaw emite una URL con un token de corta duración (en lugar de exponer la contraseña en la URL compartida).
  • allowHostControl: false (valor predeterminado) impide que las sesiones en entornos aislados se dirijan al navegador del host.
  • El valor predeterminado de network es openclaw-sandbox-browser (red puente dedicada). Establézcalo en bridge solo cuando se desee explícitamente conectividad global mediante puente. "host" también está bloqueado aquí.
  • cdpSourceRange restringe opcionalmente la entrada de CDP en el límite del contenedor a un intervalo CIDR (por ejemplo, 172.21.0.1/32).
  • sandbox.browser.binds monta directorios adicionales del host únicamente en el contenedor del navegador del entorno aislado. Cuando se establece (incluido []), sustituye a docker.binds para el contenedor del navegador.
  • Chromium siempre se inicia con --no-sandbox --disable-setuid-sandbox en el contenedor del navegador del entorno aislado (los contenedores no disponen de las primitivas del kernel que necesita el propio entorno aislado de Chrome); no existe ninguna opción de configuración para cambiarlo.
  • Los valores predeterminados de inicio se definen en scripts/sandbox-browser-entrypoint.sh y están ajustados para hosts de contenedores:
    • --remote-debugging-address=127.0.0.1
    • --remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>
    • --user-data-dir=${HOME}/.chrome
    • --no-first-run
    • --no-default-browser-check
    • --disable-dev-shm-usage
    • --disable-background-networking
    • --disable-breakpad
    • --disable-crash-reporter
    • --no-zygote
    • --metrics-recording-only
    • --password-store=basic
    • --use-mock-keychain
    • --disable-3d-apis, --disable-gpu y --disable-software-rasterizer están habilitados de forma predeterminada y pueden deshabilitarse con OPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0 si el uso de WebGL/3D lo requiere.
    • --disable-extensions (habilitado de forma predeterminada); OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0 vuelve a habilitar las extensiones si el flujo de trabajo depende de ellas.
    • --renderer-process-limit=2 de forma predeterminada; cámbielo con OPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N> o establezca 0 para utilizar el límite de procesos predeterminado de Chromium.
    • --headless=new solo cuando headless está habilitado.
    • Los valores predeterminados corresponden a la configuración base de la imagen del contenedor; utilice una imagen de navegador personalizada con un punto de entrada personalizado para cambiar los valores predeterminados del contenedor.
El aislamiento del navegador y sandbox.docker.binds solo están disponibles con Docker. Compile las imágenes (desde un checkout del código fuente):
Para instalaciones de npm sin un checkout del código fuente, consulte Aislamiento § Imágenes y configuración para ver comandos insertados de docker build.

agents.entries (configuraciones por agente)

Utilice agents.entries.*.tts para proporcionar a un agente su propio proveedor, voz, modelo, estilo o modo de TTS automático. El bloque del agente se combina en profundidad sobre la configuración global tts, por lo que las credenciales compartidas pueden permanecer en un único lugar mientras cada agente sobrescribe únicamente los campos de voz o proveedor que necesita. La configuración del agente activo se aplica a las respuestas habladas automáticas, /tts audio, /tts status y la herramienta de agente tts. Consulte Texto a voz para ver ejemplos de proveedores y la precedencia.
  • id: id estable del agente (obligatorio).
  • default: cuando se establecen varios, prevalece el primero (se registra una advertencia). Si no se establece ninguno, la primera entrada de la lista es la predeterminada.
  • model: la forma de cadena establece un modelo principal estricto por agente sin respaldo de modelo; la forma de objeto { primary } también es estricta, a menos que se añada fallbacks. Use { primary, fallbacks: [...] } para permitir que ese agente use respaldo, o { primary, fallbacks: [] } para hacer explícito el comportamiento estricto. Los trabajos de Cron que solo sobrescriben primary siguen heredando los respaldos predeterminados, salvo que se establezca fallbacks: [].
  • utilityModel: sobrescritura opcional por agente para tareas internas breves, como los títulos generados de sesiones e hilos. Recurre a agents.defaults.utilityModel y, después, al modelo pequeño predeterminado declarado por el proveedor efectivo de la sesión. Los títulos del panel de control vuelven a intentarlo una vez con el modelo normal efectivo de la sesión. Una cadena vacía omite la ruta de utilidad alternativa para este agente sin deshabilitar la generación de títulos del panel de control.
  • params: parámetros de transmisión por agente combinados sobre la entrada de modelo seleccionada en agents.defaults.models. Use esta opción para sobrescrituras específicas del agente, como cacheRetention, temperature o maxTokens, sin duplicar todo el catálogo de modelos.
  • tts: sobrescrituras opcionales de texto a voz por agente. El bloque se combina en profundidad sobre tts, por lo que las credenciales compartidas del proveedor y la política de respaldo deben mantenerse en tts, y aquí solo deben establecerse valores específicos de la personalidad, como el proveedor, la voz, el modelo, el estilo o el modo automático.
  • skills: lista de Skills permitidas opcional por agente. Si se omite, el agente hereda agents.defaults.skills cuando está establecido; una lista explícita reemplaza los valores predeterminados en lugar de combinarlos, y [] significa que no hay Skills.
  • thinkingDefault: nivel de razonamiento predeterminado opcional por agente (off | minimal | low | medium | high | xhigh | adaptive | max). Sobrescribe agents.defaults.thinkingDefault para este agente cuando no se ha establecido una sobrescritura por mensaje o sesión. El perfil de proveedor/modelo seleccionado controla qué valores son válidos; para Google Gemini, adaptive mantiene el razonamiento dinámico gestionado por el proveedor (thinkingLevel omitido en Gemini 3/3.1, thinkingBudget: -1 en Gemini 2.5).
  • reasoningDefault: visibilidad predeterminada opcional del razonamiento por agente (on | off | stream). Sobrescribe agents.defaults.reasoningDefault para este agente cuando no se ha establecido una sobrescritura de razonamiento por mensaje o sesión.
  • fastModeDefault: valor predeterminado opcional por agente para el modo rápido ("auto" | true | false). Se aplica cuando no se ha establecido una sobrescritura del modo rápido por mensaje o sesión.
  • models: sobrescrituras opcionales del catálogo de modelos o del entorno de ejecución por agente, indexadas por los ids completos de provider/model. Use models["provider/model"].agentRuntime para excepciones del entorno de ejecución por agente.
  • runtime: descriptor opcional del entorno de ejecución por agente. Use type: "acp" con los valores predeterminados de runtime.acp (agent, backend, mode, cwd) cuando el agente deba usar de forma predeterminada sesiones del entorno ACP.
  • identity.avatar: ruta relativa al espacio de trabajo, URL de http(s) o URI de data:.
  • Los archivos de imagen identity.avatar locales con rutas relativas al espacio de trabajo están limitados a 2 MB. Las URL de http(s) y los URI de data: no se comprueban con respecto al límite de tamaño de los archivos locales.
  • identity deriva los valores predeterminados: ackReaction de emoji, y mentionPatterns de name/emoji.
  • subagents.allowAgents: lista de ids de agentes configurados permitidos para destinos sessions_spawn.agentId explícitos (["*"] = cualquier destino configurado; valor predeterminado: solo el mismo agente). Incluya el id del solicitante cuando deban permitirse llamadas agentId dirigidas a sí mismo. Las entradas obsoletas cuya configuración de agente se haya eliminado son rechazadas por sessions_spawn y se omiten de agents_list; ejecute openclaw doctor --fix para limpiarlas, o añada una entrada agents.entries.* mínima si ese destino debe seguir pudiendo generarse mientras hereda los valores predeterminados.
  • Protección de herencia del entorno aislado: si la sesión solicitante está aislada, sessions_spawn rechaza los destinos que se ejecutarían sin aislamiento.
  • subagents.requireAgentId: cuando es verdadero, bloquea las llamadas sessions_spawn que omitan agentId (fuerza la selección explícita del perfil; valor predeterminado: falso).
  • subagents.maxConcurrent: máximo de ejecuciones simultáneas de agentes secundarios en toda la ejecución de subagentes. Valor predeterminado: 8.
  • subagents.maxChildrenPerAgent: máximo de agentes secundarios activos que puede generar una sola sesión de agente. Valor predeterminado: 5.
  • subagents.maxSpawnDepth: profundidad máxima de anidamiento para la generación de subagentes (1-5). Valor predeterminado: 1 (sin anidamiento).
  • subagents.archiveAfterMinutes: tiempo que debe transcurrir antes de archivar el estado de un subagente completado. Valor predeterminado: 60.

Enrutamiento multiagente

Ejecute varios agentes aislados dentro de un Gateway. Consulte Multiagente.

Campos de coincidencia de vinculaciones

  • type (opcional): route para el enrutamiento normal (si falta el tipo, el valor predeterminado es route), acp para vinculaciones persistentes de conversaciones ACP.
  • match.channel (obligatorio)
  • match.accountId (opcional; * = cualquier cuenta; omitido = cuenta predeterminada)
  • match.peer (opcional; { kind: direct|group|channel, id })
  • match.guildId / match.teamId (opcional; específico del canal)
  • acp (opcional; solo para type: "acp"): { mode, label, cwd, backend }
Orden de coincidencia determinista:
  1. match.peer
  2. match.guildId
  3. match.teamId
  4. match.accountId (exacto, sin par/gremio/equipo)
  5. match.accountId: "*" (en todo el canal)
  6. Agente predeterminado
Dentro de cada nivel, prevalece la primera entrada bindings coincidente. Para las entradas type: "acp", OpenClaw resuelve por identidad exacta de la conversación (match.channel + cuenta + match.peer.id) y no utiliza el orden de niveles de vinculación de rutas indicado anteriormente.

Perfiles de acceso por agente

Consulte Entorno aislado y herramientas multiagente para obtener información sobre la precedencia.

Sesión

  • scope: estrategia base de agrupación de sesiones para contextos de chat grupal.
    • per-sender (predeterminado): cada remitente obtiene una sesión aislada dentro del contexto de un canal.
    • global: todos los participantes de un contexto de canal comparten una única sesión (úsese solo cuando se pretenda compartir el contexto).
  • dmScope: cómo se agrupan los mensajes directos.
    • main: todos los mensajes directos comparten la sesión principal.
    • per-peer: aísla por id. de remitente entre canales.
    • per-channel-peer: aísla por canal y remitente (recomendado para bandejas de entrada multiusuario).
    • per-account-channel-peer: aísla por cuenta, canal y remitente (recomendado para varias cuentas).
  • identityLinks: asigna identificadores canónicos a pares con prefijo de proveedor para compartir sesiones entre canales. Los comandos de acoplamiento, como /dock_discord, usan la misma asignación para cambiar la ruta de respuesta de la sesión activa a otro par de canal vinculado; véase Acoplamiento de canales.
  • reset: política principal de restablecimiento. none desactiva el restablecimiento automático y es el valor predeterminado; Compaction limita en su lugar el contexto activo. daily restablece a la hora local atHour; idle restablece después de idleMinutes. Cuando ambos están configurados, prevalece el que venza primero. /new y /reset siguen disponibles en todos los modos. La vigencia del restablecimiento diario usa el campo sessionStartedAt de la fila de sesión; la vigencia del restablecimiento por inactividad usa lastInteractionAt. Las escrituras de eventos en segundo plano o del sistema, como Heartbeat, activaciones de Cron, notificaciones de ejecución y mantenimiento de registros del Gateway, pueden actualizar updatedAt, pero no mantienen vigentes las sesiones diarias o por inactividad.
    • resetByType: anulaciones por tipo (direct, group, thread). Doctor migra las entradas antiguas dm a direct; el esquema rechaza dm.
  • resetByChannel: anulaciones de restablecimiento por canal, indexadas por identificador de proveedor/canal. Cuando el canal de la sesión tiene una entrada coincidente, esta prevalece por completo sobre resetByType/reset para esa sesión. Úsese solo cuando un canal necesite un comportamiento de restablecimiento distinto de la política del tipo.
  • mainKey: campo antiguo. En tiempo de ejecución siempre se usa "main" para el grupo principal de chats directos.
  • sendPolicy: busca coincidencias por channel, chatType (direct|group|channel, con el alias antiguo dm), keyPrefix o rawKeyPrefix. La primera denegación prevalece.
  • maintenance: controles de limpieza y retención del almacén de sesiones.
    • mode: enforce aplica la limpieza y es el valor predeterminado; warn solo emite advertencias.
    • pruneAfter: límite de antigüedad para entradas obsoletas (valor predeterminado: 30d).
    • maxEntries: número máximo de entradas de sesión de SQLite (valor predeterminado: 500). En tiempo de ejecución, las escrituras realizan la limpieza por lotes con un pequeño margen superior para límites de tamaño de producción; openclaw sessions cleanup --enforce aplica el límite de inmediato.
    • Las sesiones efímeras de sondeo de ejecuciones de modelos del Gateway usan una retención fija de 24h, pero la limpieza está condicionada por la presión: solo elimina las filas obsoletas de sondeos estrictos de ejecuciones de modelos cuando se alcanza la presión de mantenimiento o del límite de entradas de sesión. Solo son aptas las claves de sondeo explícitas estrictas que coincidan con agent:*:explicit:model-run-<uuid>; las sesiones normales directas, grupales, de hilos, Cron, hooks, Heartbeat, ACP y de subagentes no heredan esta retención de 24 h. Cuando se ejecuta la limpieza de ejecuciones de modelos, se realiza antes que la limpieza más amplia de entradas obsoletas pruneAfter y el límite maxEntries.
    • El esquema actual rechaza el campo antiguo rotateBytes; openclaw doctor --fix lo elimina de las configuraciones anteriores.
    • resetArchiveRetention: retención basada en antigüedad para archivos de transcripciones restablecidas o eliminadas. De forma predeterminada, los archivos se conservan hasta que los expulsa el presupuesto de disco; defina una duración para habilitar la eliminación según el tiempo transcurrido, o false para desactivarla explícitamente.
    • maxDiskBytes: presupuesto de disco opcional para el directorio de sesiones. En el modo warn registra advertencias; en el modo enforce elimina primero los artefactos o sesiones más antiguos.
    • highWaterBytes: objetivo opcional tras la limpieza del presupuesto. El valor predeterminado es 80% de maxDiskBytes.
  • threadBindings: valores predeterminados globales para las funciones de sesiones vinculadas a hilos.
    • enabled: interruptor principal para las vinculaciones de hilos de canales compatibles
    • idleHours: pérdida automática del foco por inactividad predeterminada en horas (0 la desactiva; los proveedores pueden anularla)
    • maxAgeHours: antigüedad máxima absoluta predeterminada en horas (0 la desactiva; los proveedores pueden anularla)
    • spawnSessions: condición predeterminada para crear sesiones de trabajo vinculadas a hilos desde sessions_spawn y generaciones de hilos ACP. El valor predeterminado es true cuando las vinculaciones de hilos están habilitadas; los proveedores y las cuentas pueden anularlo.
    • defaultSpawnContext: contexto nativo predeterminado de subagente para generaciones vinculadas a hilos ("fork" o "isolated"). El valor predeterminado es "fork".
  • sharing: controla qué modos de colaboración por sesión pueden seleccionar los propietarios y las conexiones operator.admin. Todos los indicadores tienen como valor predeterminado true; establecer uno en false elimina esa opción de la interfaz de control y hace que la visibilidad en el momento de la creación o session.visibility.set la rechacen. Las sesiones nuevas se inician como shared, salvo que la interfaz de control inicie una como borrador.
    • readOnly: permite read-only, donde quienes no son miembros pueden observar, pero no enviar, orientar, abortar, aprobar ni modificar el estado de la sesión.
    • suggest: permite suggest. En esta fase, aplica el mismo comportamiento de admisión que read-only; la cola de sugerencias es una función posterior.
    • drafts: permite draft, que oculta la sesión de las listas de sesiones y las difusiones de eventos para quienes no sean administradores ni propietarios.
Los cambios de pertenencia y visibilidad se escriben en la transcripción de la sesión como notas del sistema. Estos controles coordinan a los operadores que comparten un agente; no constituyen un límite de seguridad entre inquilinos. Use Gateways o agentes separados cuando el trabajo requiera aislamiento.

Mensajes

Prefijo de respuesta

Anulaciones por canal/cuenta: channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix. Resolución (prevalece el más específico): cuenta → canal → global. "" desactiva y detiene la cascada. "auto" deriva [{identity.name}]. Variables de plantilla: Las variables no distinguen entre mayúsculas y minúsculas. {think} es un alias de {thinkingLevel}.

Reacción de confirmación

  • El valor predeterminado es identity.emoji del agente activo o, en su defecto, "👀". Establezca "" para desactivarla.
  • Anulaciones por canal: channels.<channel>.ackReaction, channels.<channel>.accounts.<id>.ackReaction.
  • Orden de resolución: cuenta → canal → messages.ackReaction → alternativa de identidad.
  • Ámbito: group-mentions (predeterminado), group-all, direct, all o off/none (desactiva por completo las reacciones de confirmación).
  • messages.statusReactions.enabled: habilita reacciones de estado del ciclo de vida en Slack, Discord, Signal, Telegram y WhatsApp. En Discord, si no se establece, las reacciones de estado permanecen habilitadas cuando las reacciones de confirmación están activas. En Slack, Signal, Telegram y WhatsApp, establézcalo explícitamente en true para habilitar las reacciones de estado del ciclo de vida. Slack usa de forma predeterminada el estado nativo de hilos del asistente y mensajes de carga rotatorios para mostrar el progreso, mientras mantiene estática la reacción de confirmación configurada.

Cola

  • mode: estrategia de cola para mensajes entrantes que llegan mientras está activa la ejecución de una sesión. Valor predeterminado: "steer".
    • steer: inserta la nueva solicitud en la ejecución activa.
    • followup: ejecuta la nueva solicitud cuando finaliza la ejecución activa.
    • collect: agrupa los mensajes compatibles y los ejecuta juntos más adelante.
    • interrupt: aborta la ejecución activa antes de iniciar la solicitud más reciente.
  • debounceMs: retraso antes de despachar un mensaje en cola o redirigido. Valor predeterminado: 500.
  • cap: cantidad máxima de mensajes en cola antes de aplicar la política de descarte. Valor predeterminado: 20.
  • drop: estrategia cuando se supera el límite. "summarize" (predeterminado) descarta las entradas más antiguas, pero conserva resúmenes compactos; "old" descarta las más antiguas sin resúmenes; "new" rechaza el elemento más reciente.
  • byChannel: anulaciones de mode por canal, indexadas por identificador de proveedor.
  • debounceMsByChannel: anulaciones de debounceMs por canal, indexadas por identificador de proveedor.

Antirrebote de entrada

Agrupa los mensajes rápidos que solo contienen texto y proceden del mismo remitente en un único turno del agente. Los elementos multimedia y archivos adjuntos provocan el envío inmediato. Los comandos de control omiten el antirrebote. Valor predeterminado de debounceMs: 2000.

Otras claves de mensajes

  • channels.whatsapp.responsePrefix: prefijo de las respuestas salientes de WhatsApp. Doctor mueve aquí el valor retirado de entrada messagePrefix solo cuando este valor canónico no está establecido.
  • messages.visibleReplies: controla las respuestas de origen visibles en conversaciones directas, grupales y de canal ("message_tool" requiere message(action=send) para producir una salida visible; "automatic" publica las respuestas normales como antes).
  • messages.usageTemplate / messages.responseUsage: plantilla personalizada de pie de página /usage y modo predeterminado de uso por respuesta (off | tokens | full, además del alias antiguo on para tokens).
  • messages.groupChat.mentionPatterns / historyLimit: activadores de menciones en mensajes grupales y tamaño de la ventana del historial.
  • messages.suppressToolErrors: cuando es true, suprime las advertencias de errores de herramientas ⚠️ que se muestran al usuario (el agente sigue viendo los errores en el contexto y puede volver a intentarlo). Valor predeterminado: false.

TTS (texto a voz)

La ruta de preferencias globales forma parte del estado de la máquina (valor predeterminado: ~/.openclaw/settings/tts.json; se puede sobrescribir con OPENCLAW_TTS_PREFS). Las configuraciones multiagente avanzadas pueden establecer agents.entries.<id>.tts.prefsPath para disponer de almacenes de preferencias distintos para cada agente.
  • auto controla el modo predeterminado de TTS automático: off, always, inbound o tagged. /tts on|off puede sobrescribir las preferencias locales y /tts status muestra el estado efectivo.
  • summaryModel sobrescribe agents.defaults.model.primary para el resumen automático.
  • modelOverrides está habilitado de forma predeterminada (enabled !== false); modelOverrides.allowProvider es opcional.
  • Las claves de API recurren a ELEVENLABS_API_KEY/XI_API_KEY y OPENAI_API_KEY como alternativa.
  • Los proveedores de voz incluidos pertenecen a sus plugins. Si se establece plugins.allow, incluya cada plugin de proveedor de TTS que desee utilizar; por ejemplo, microsoft para Edge TTS. El identificador de proveedor heredado edge se acepta como alias de microsoft.
  • providers.openai.baseUrl sobrescribe el endpoint de TTS de OpenAI. El orden de resolución es la configuración, después OPENAI_TTS_BASE_URL y, por último, https://api.openai.com/v1.
  • Cuando providers.openai.baseUrl apunta a un endpoint ajeno a OpenAI, OpenClaw lo trata como un servidor de TTS compatible con OpenAI y flexibiliza la validación del modelo y de la voz.

Conversación

Valores predeterminados del modo Conversación (macOS/iOS/Android y la interfaz de control del navegador).
  • talk.provider debe coincidir con una clave de talk.providers cuando se configuran varios proveedores de Conversación.
  • Las claves planas heredadas de Conversación (talk.voiceId, talk.voiceAliases, talk.modelId, talk.outputFormat, talk.apiKey) solo existen por compatibilidad. Ejecute openclaw doctor --fix para reescribir la configuración persistente en talk.providers.<provider>.
  • Los identificadores de voz recurren a ELEVENLABS_VOICE_ID o SAG_VOICE_ID como alternativa (comportamiento del cliente de Conversación de macOS).
  • providers.*.apiKey acepta cadenas de texto sin formato u objetos SecretRef.
  • La alternativa ELEVENLABS_API_KEY solo se aplica cuando no se configura ninguna clave de API de Conversación.
  • providers.*.voiceAliases permite utilizar nombres descriptivos en las directivas de Conversación.
  • providers.mlx.modelId selecciona el repositorio de Hugging Face que utiliza el asistente local de MLX de macOS. Si se omite, macOS utiliza mlx-community/Soprano-80M-bf16.
  • La reproducción de MLX en macOS se realiza mediante el asistente incluido openclaw-mlx-tts, si está presente, o mediante un ejecutable disponible en PATH; OPENCLAW_MLX_TTS_BIN sobrescribe la ruta del asistente para el desarrollo.
  • consultThinkingLevel controla el nivel de razonamiento de la ejecución completa del agente de OpenClaw que respalda las llamadas openclaw_agent_consult de Conversación en tiempo real de la interfaz de control. Déjelo sin establecer para conservar el comportamiento normal de la sesión y del modelo.
  • consultFastMode establece una sobrescritura puntual del modo rápido para las consultas de Conversación en tiempo real de la interfaz de control sin cambiar la configuración normal del modo rápido de la sesión.
  • speechLocale establece el identificador de configuración regional BCP 47 que utiliza el reconocimiento de voz de Conversación en Android, iOS y macOS. Android también utiliza su componente de idioma para orientar la transcripción de entrada en tiempo real. Déjelo sin establecer para utilizar el valor predeterminado del dispositivo.
  • silenceTimeoutMs controla cuánto tiempo espera el modo Conversación tras el silencio del usuario antes de enviar la transcripción. Si no se establece, se mantiene el intervalo de pausa predeterminado de la plataforma (700 ms on macOS and Android, 900 ms on iOS).
  • realtime.instructions añade instrucciones del sistema dirigidas al proveedor al prompt integrado en tiempo real de OpenClaw, lo que permite configurar el estilo de voz sin perder las indicaciones predeterminadas de openclaw_agent_consult.
  • realtime.vadThreshold establece el umbral de actividad de voz del proveedor entre 0 (máxima sensibilidad) y 1 (mínima sensibilidad). Si no se establece, se mantiene el valor predeterminado del proveedor.
  • realtime.silenceDurationMs establece el intervalo de silencio como número entero positivo antes de que el proveedor confirme un turno del usuario en tiempo real. Si no se establece, se mantiene el valor predeterminado del proveedor.
  • realtime.prefixPaddingMs establece como número entero no negativo la cantidad de audio que se conserva antes del inicio de la voz detectada. Si no se establece, se mantiene el valor predeterminado del proveedor.
  • realtime.reasoningEffort establece el nivel de razonamiento específico del proveedor para las sesiones en tiempo real. Si no se establece, se mantiene el valor predeterminado del proveedor.
  • realtime.consultRouting: "provider-direct" (valor predeterminado) conserva las respuestas directas del proveedor cuando el proveedor en tiempo real genera una transcripción final del usuario sin openclaw_agent_consult. En cambio, "force-agent-consult" encamina la solicitud finalizada a través de OpenClaw.

Contenido relacionado