CLI de Modelos
Consulta /concepts/model-failover para la rotación de perfiles de autenticación, cooldowns y cómo interactúa con los fallbacks. Visión general rápida de providers + ejemplos: /concepts/model-providers.
Cómo funciona la selección de modelos
OpenClaw selecciona modelos en este orden:
- Modelo primario (
agents.defaults.model.primaryoagents.defaults.model). - Fallbacks en
agents.defaults.model.fallbacks(en orden). - El failover de autenticación del provider ocurre dentro de un provider antes de pasar al siguiente modelo.
Relacionado:
agents.defaults.modelses la lista permitida/catálogo de modelos que OpenClaw puede usar (más aliases).agents.defaults.imageModelse usa solo cuando el modelo primario no puede aceptar imágenes.- Los valores por defecto por agente pueden sobrescribir
agents.defaults.modelvíaagents.list[].modelmás bindings (consulta /concepts/multi-agent).
Política rápida de modelos
- Configura tu modelo primario como el modelo de última generación más potente disponible para ti.
- Usa fallbacks para tareas sensibles a costo/latencia y chats de menor importancia.
- Para agentes con herramientas habilitadas o entradas no confiables, evita modelos de niveles antiguos/débiles.
Asistente de configuración (recomendado)
Si no quieres editar la configuración a mano, ejecuta el asistente de onboarding:
openclaw onboard
Puede configurar modelo + autenticación para providers comunes, incluyendo la suscripción a OpenAI Code (Codex)
(OAuth) y Anthropic (clave API o claude setup-token).
Claves de configuración (visión general)
agents.defaults.model.primaryyagents.defaults.model.fallbacksagents.defaults.imageModel.primaryyagents.defaults.imageModel.fallbacksagents.defaults.models(lista permitida + aliases + parámetros de provider)models.providers(providers personalizados escritos enmodels.json)
Las referencias de modelo se normalizan a minúsculas. Los aliases de provider como z.ai/* se normalizan
a zai/*.
Los ejemplos de configuración de providers (incluyendo OpenCode) se encuentran en /gateway/configuration.
”Model is not allowed” (y por qué las respuestas se detienen)
Si agents.defaults.models está configurado, se convierte en la lista permitida para /model y para
sobrescrituras de sesión. Cuando un usuario selecciona un modelo que no está en esa lista permitida,
OpenClaw devuelve:
Model "provider/model" is not allowed. Use /model to list available models.
Esto ocurre antes de generar una respuesta normal, por lo que el mensaje puede parecer que “no respondió.” La solución es:
- Agregar el modelo a
agents.defaults.models, o - Limpiar la lista permitida (eliminar
agents.defaults.models), o - Elegir un modelo de
/model list.
Ejemplo de configuración de lista permitida:
{
agent: {
model: { primary: "anthropic/claude-sonnet-4-5" },
models: {
"anthropic/claude-sonnet-4-5": { alias: "Sonnet" },
"anthropic/claude-opus-4-6": { alias: "Opus" },
},
},
}
Cambiar modelos en el chat (/model)
Puedes cambiar de modelo para la sesión actual sin reiniciar:
/model
/model list
/model 3
/model openai/gpt-5.2
/model status
Notas:
/model(y/model list) es un selector compacto y numerado (familia de modelo + providers disponibles).- En Discord,
/modely/modelsabren un selector interactivo con desplegables de provider y modelo más un paso de Submit. /model <#>selecciona de ese selector./model statuses la vista detallada (candidatos de autenticación y, cuando está configurado,baseUrl+ modoapidel endpoint del provider).- Las referencias de modelo se parsean dividiendo en la primera
/. Usaprovider/modelal escribir/model <ref>. - Si el ID del modelo contiene
/(estilo OpenRouter), debes incluir el prefijo del provider (ejemplo:/model openrouter/moonshotai/kimi-k2). - Si omites el provider, OpenClaw trata la entrada como un alias o un modelo para el provider por defecto (solo funciona cuando no hay
/en el ID del modelo).
Comportamiento completo del comando/configuración: Comandos slash.
Comandos CLI
openclaw models list
openclaw models status
openclaw models set <provider/model>
openclaw models set-image <provider/model>
openclaw models aliases list
openclaw models aliases add <alias> <provider/model>
openclaw models aliases remove <alias>
openclaw models fallbacks list
openclaw models fallbacks add <provider/model>
openclaw models fallbacks remove <provider/model>
openclaw models fallbacks clear
openclaw models image-fallbacks list
openclaw models image-fallbacks add <provider/model>
openclaw models image-fallbacks remove <provider/model>
openclaw models image-fallbacks clear
openclaw models (sin subcomando) es un atajo para models status.
models list
Muestra los modelos configurados por defecto. Flags útiles:
--all: catálogo completo--local: solo providers locales--provider <name>: filtrar por provider--plain: un modelo por línea--json: salida legible por máquina
models status
Muestra el modelo primario resuelto, fallbacks, modelo de imagen y una visión general de autenticación
de los providers configurados. También muestra el estado de expiración de OAuth para perfiles encontrados
en el almacén de autenticación (avisa dentro de las 24h por defecto). --plain imprime solo el
modelo primario resuelto.
El estado de OAuth siempre se muestra (e incluye en la salida --json). Si un provider configurado
no tiene credenciales, models status imprime una sección Missing auth.
JSON incluye auth.oauth (ventana de aviso + perfiles) y auth.providers
(autenticación efectiva por provider).
Usa --check para automatización (exit 1 cuando falta/expirado, 2 cuando está por expirar).
La elección de autenticación depende del provider/cuenta. Para hosts de gateway siempre activos, las claves API suelen ser las más predecibles; los flujos de token de suscripción también están soportados.
Ejemplo (setup-token de Anthropic):
claude setup-token
openclaw models status
Escaneo (modelos gratuitos de OpenRouter)
openclaw models scan inspecciona el catálogo de modelos gratuitos de OpenRouter y puede
opcionalmente probar modelos para soporte de herramientas e imágenes.
Flags principales:
--no-probe: omitir pruebas en vivo (solo metadatos)--min-params <b>: tamaño mínimo de parámetros (miles de millones)--max-age-days <days>: omitir modelos más antiguos--provider <name>: filtro de prefijo de provider--max-candidates <n>: tamaño de la lista de fallback--set-default: configuraragents.defaults.model.primaryal primer seleccionado--set-image: configuraragents.defaults.imageModel.primarya la primera selección de imagen
La prueba requiere una clave API de OpenRouter (desde perfiles de autenticación o
OPENROUTER_API_KEY). Sin clave, usa --no-probe para listar solo candidatos.
Los resultados del escaneo se rankean por:
- Soporte de imágenes
- Latencia de herramientas
- Tamaño de contexto
- Cantidad de parámetros
Entrada
- Lista
/modelsde OpenRouter (filtro:free) - Requiere clave API de OpenRouter desde perfiles de autenticación o
OPENROUTER_API_KEY(consulta /environment) - Filtros opcionales:
--max-age-days,--min-params,--provider,--max-candidates - Controles de prueba:
--timeout,--concurrency
Cuando se ejecuta en una TTY, puedes seleccionar fallbacks interactivamente. En modo no
interactivo, pasa --yes para aceptar los valores por defecto.
Registro de modelos (models.json)
Los providers personalizados en models.providers se escriben en models.json bajo el
directorio del agente (por defecto ~/.openclaw/agents/<agentId>/agent/models.json). Este archivo
se fusiona por defecto a menos que models.mode esté configurado como replace.
Precedencia del modo merge para IDs de provider coincidentes:
- El
baseUrlno vacío ya presente en elmodels.jsondel agente gana. - El
apiKeyno vacío en elmodels.jsondel agente gana solo cuando ese provider no está gestionado por SecretRef en el contexto actual de config/auth-profile. - Los valores de
apiKeyde providers gestionados por SecretRef se refrescan desde marcadores de origen (ENV_VAR_NAMEpara refs de env,secretref-managedpara refs de archivo/exec) en lugar de persistir secretos resueltos. - Los valores de cabeceras de providers gestionados por SecretRef se refrescan desde marcadores de origen (
secretref-env:ENV_VAR_NAMEpara refs de env,secretref-managedpara refs de archivo/exec). apiKey/baseUrlvacíos o faltantes del agente recurren a la configuración demodels.providers.- Otros campos del provider se refrescan desde la configuración y datos normalizados del catálogo.
La persistencia de marcadores es autoritativa desde la fuente: OpenClaw escribe marcadores desde el snapshot de configuración de origen activa (pre-resolución), no desde valores de secretos resueltos en runtime.
Esto aplica siempre que OpenClaw regenera models.json, incluyendo rutas dirigidas por comandos como openclaw agent.