Los plugins de backend CLI permiten que OpenClaw llame a una CLI de IA local como backend de inferencia de texto. El backend aparece como un prefijo de proveedor en las refs de modelo:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Si el servicio ascendente expone una API de modelos HTTP normal, escribe un
plugin de proveedor en su lugar. Si el runtime ascendente
controla sesiones completas de agente, eventos de herramientas, compaction o estado de
tareas en segundo plano, usa un arnés de agente.
Qué controla el plugin
Un plugin de backend CLI tiene tres contratos:| Contrato | Archivo | Propósito |
|---|---|---|
| Entrada de paquete | package.json | Apunta OpenClaw al módulo de runtime del plugin |
| Propiedad de manifiesto | openclaw.plugin.json | Declara el id del backend antes de cargar el runtime |
| Registro de runtime | index.ts | Llama a api.registerCliBackend(...) con valores predeterminados del comando |
api.registerCliBackend(...).
Plugin de backend mínimo
Crear metadatos del paquete
package.json
./src/index.ts, agrega openclaw.runtimeExtensions que apunte al par JavaScript compilado. Consulta Puntos de entrada.Declarar la propiedad del backend
openclaw.plugin.json
cliBackends es la lista de propiedad de runtime. Permite que OpenClaw cargue automáticamente el plugin cuando la configuración o la selección de modelo mencione acme-cli/....setup.cliBackends es la superficie de configuración basada primero en descriptores. Agrégala cuando el descubrimiento de modelos, la incorporación o el estado deban reconocer el backend sin cargar el runtime del plugin. Usa requiresRuntime: false solo cuando esos descriptores estáticos basten para la configuración.Forma de la configuración
CliBackendConfig describe cómo OpenClaw debe iniciar y analizar la CLI:
| Campo | Uso |
|---|---|
command | Nombre del binario o ruta absoluta del comando |
args | argv base para ejecuciones nuevas |
resumeArgs | argv alternativo para sesiones reanudadas; admite {sessionId} |
output / resumeOutput | Analizador: json, jsonl o text |
input | Transporte del prompt: arg o stdin |
modelArg | Marca usada antes del id del modelo |
modelAliases | Asigna ids de modelo de OpenClaw a ids nativos de la CLI |
sessionArg / sessionArgs | Cómo pasar un id de sesión |
sessionMode | always, existing o none |
sessionIdFields | Campos JSON que OpenClaw lee de la salida de la CLI |
systemPromptArg / systemPromptFileArg | Transporte del prompt del sistema |
systemPromptWhen | first, always o never |
imageArg / imageMode | Compatibilidad con rutas de imagen |
serialize | Mantiene ordenadas las ejecuciones del mismo backend |
reliability.watchdog | Ajuste de tiempo de espera sin salida |
Hooks avanzados de backend
CliBackendPlugin también puede definir:
| Hook | Uso |
|---|---|
normalizeConfig(config, context) | Reescribe configuración de usuario heredada tras la fusión |
resolveExecutionArgs(ctx) | Agrega marcas con alcance de solicitud, como esfuerzo de razonamiento |
prepareExecution(ctx) | Crea puentes temporales de autenticación o configuración antes del inicio |
transformSystemPrompt(ctx) | Aplica una transformación final del prompt del sistema específica de la CLI |
textTransforms | Reemplazos bidireccionales de prompt/salida |
defaultAuthProfileId | Prefiere un perfil de autenticación específico de OpenClaw |
authEpochMode | Decide cómo los cambios de autenticación invalidan sesiones CLI almacenadas |
nativeToolMode | Declara si la CLI tiene herramientas nativas siempre activas |
bundleMcp / bundleMcpMode | Opta por el puente de herramientas MCP de loopback de OpenClaw |
Puente de herramientas MCP
Los backends CLI no reciben herramientas de OpenClaw de forma predeterminada. Si la CLI puede consumir una configuración MCP, opta por ella explícitamente:| Modo | Uso |
|---|---|
claude-config-file | CLI que aceptan un archivo de configuración MCP |
codex-config-overrides | CLI que aceptan sobrescrituras de configuración en argv |
gemini-system-settings | CLI que leen configuración MCP desde su directorio de configuración del sistema |
nativeToolMode: "always-on" para que OpenClaw pueda fallar en modo cerrado cuando un llamador requiera no usar herramientas nativas.
Configuración de usuario
Los usuarios pueden sobrescribir cualquier valor predeterminado del backend:command cuando el binario está fuera de PATH.
Verificación
Para plugins incluidos, agrega una prueba enfocada alrededor del constructor y el registro de configuración, y luego ejecuta el carril de pruebas dirigido del plugin:Lista de verificación
package.json tiene openclaw.extensions y entradas de runtime compiladas para paquetes publicadosopenclaw.plugin.json declara cliBackends y activation.onStartup intencionalsetup.cliBackends está presente cuando la configuración o el descubrimiento de modelos debe ver el backend en fríoapi.registerCliBackend(...) usa el mismo id de backend que el manifiestoLas sobrescrituras de usuario en
agents.defaults.cliBackends.<id> siguen teniendo prioridadLa configuración de sesión, prompt del sistema, imagen y analizador de salida coincide con el contrato real de la CLI
Las pruebas dirigidas y al menos una prueba smoke de CLI en vivo demuestran la ruta del backend
Relacionado
- Backends CLI - configuración de usuario y comportamiento de runtime
- Crear plugins - conceptos básicos de paquete y manifiesto
- Resumen del SDK de Plugin - referencia de la API de registro
- Manifiesto de Plugin -
cliBackendsy descriptores de configuración - Arnés de agente - runtimes completos de agentes externos