Backends de CLI (entorno de ejecución de respaldo)
OpenClaw puede ejecutar CLIs de IA locales como una alternativa solo de texto cuando los proveedores de API están caídos, limitados por tasa o se comportan mal temporalmente. Esto es intencionalmente conservador:- Las herramientas están deshabilitadas (sin llamadas a herramientas).
- Texto entra → texto sale (confiable).
- Se admiten sesiones (para que los turnos de seguimiento se mantengan coherentes).
- Las imágenes pueden pasarse si la CLI acepta rutas de imágenes.
Inicio rápido para principiantes
Puede usar Claude Code CLI sin ninguna configuración (OpenClaw incluye un valor predeterminado integrado):Uso como respaldo
Agregue un backend de CLI a su lista de fallback para que solo se ejecute cuando fallen los modelos primarios:- Si usa
agents.defaults.models(lista de permitidos), debe incluirclaude-cli/.... - Si el proveedor principal falla (autenticación, límites de tasa, tiempos de espera), OpenClaw intentará el backend de CLI a continuación.
Descripción general de la configuración
Todos los backends de CLI viven en:claude-cli, my-cli).
El id del proveedor se convierte en el lado izquierdo de su referencia de modelo:
Configuración de ejemplo
Cómo funciona
- Selecciona un backend según el prefijo del proveedor (
claude-cli/...). - Construye un prompt del sistema usando el mismo prompt de OpenClaw + el contexto del espacio de trabajo.
- Ejecuta la CLI con un id de sesión (si se admite) para que el historial se mantenga consistente.
- Analiza la salida (JSON o texto plano) y devuelve el texto final.
- Persiste los ids de sesión por backend, para que los seguimientos reutilicen la misma sesión de la CLI.
Sesiones
- Si la CLI admite sesiones, establezca
sessionArg(p. ej.,--session-id) osessionArgs(marcador de posición{sessionId}) cuando el ID deba insertarse en múltiples flags. - Si la CLI usa un subcomando de reanudación con flags diferentes, establezca
resumeArgs(reemplazaargsal reanudar) y, de forma opcional,resumeOutput(para reanudaciones no JSON). sessionMode:always: siempre envía un id de sesión (nuevo UUID si no hay uno almacenado).existing: solo envía un id de sesión si se almacenó uno previamente.none: nunca envía un id de sesión.
Imágenes (paso directo)
Si su CLI acepta rutas de imágenes, establezcaimageArg:
imageArg, esas
rutas se pasan como argumentos de la CLI. Si falta imageArg, OpenClaw agrega las
rutas de archivo al prompt (inyección de rutas), lo cual es suficiente para CLIs que cargan
automáticamente archivos locales desde rutas simples (comportamiento de Claude Code CLI).
Entradas / salidas
output: "json"(predeterminado) intenta analizar JSON y extraer texto + id de sesión.output: "jsonl"analiza streams JSONL (Codex CLI--json) y extrae el último mensaje del agente másthread_idcuando está presente.output: "text"trata stdout como la respuesta final.
input: "arg"(predeterminado) pasa el prompt como el último argumento de la CLI.input: "stdin"envía el prompt vía stdin.- Si el prompt es muy largo y se establece
maxPromptArgChars, se usa stdin.
Valores predeterminados (integrados)
OpenClaw incluye un valor predeterminado paraclaude-cli:
command: "claude"args: ["-p", "--output-format", "json", "--dangerously-skip-permissions"]resumeArgs: ["-p", "--output-format", "json", "--dangerously-skip-permissions", "--resume", "{sessionId}"]modelArg: "--model"systemPromptArg: "--append-system-prompt"sessionArg: "--session-id"systemPromptWhen: "first"sessionMode: "always"
codex-cli:
command: "codex"args: ["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]resumeArgs: ["exec","resume","{sessionId}","--color","never","--sandbox","read-only","--skip-git-repo-check"]output: "jsonl"resumeOutput: "text"modelArg: "--model"imageArg: "--image"sessionMode: "existing"
command).
Limitaciones
- Sin herramientas de OpenClaw (el backend de CLI nunca recibe llamadas de herramientas). Algunas CLIs aún pueden ejecutar su propio tooling de agente.
- Sin streaming (la salida de la CLI se recopila y luego se devuelve).
- Salidas estructuradas dependen del formato JSON de la CLI.
- Sesiones de Codex CLI se reanudan mediante salida de texto (sin JSONL), lo que es menos
estructurado que la ejecución inicial
--json. Las sesiones de OpenClaw siguen funcionando con normalidad.
Solución de problemas
- CLI no encontrada: establezca
commanden una ruta completa. - Nombre de modelo incorrecto: use
modelAliasespara mapearprovider/model→ modelo de la CLI. - Sin continuidad de sesión: asegúrese de que
sessionArgesté establecido y quesessionModeno seanone(Codex CLI actualmente no puede reanudar con salida JSON). - Imágenes ignoradas: establezca
imageArg(y verifique que la CLI admita rutas de archivos).