Modelos locales
Lo local es viable, pero OpenClaw espera un contexto amplio y defensas sólidas contra la inyección de prompts. Las tarjetas pequeñas truncan el contexto y debilitan la seguridad. Apunta alto: ≥2 Mac Studios al máximo o un equipo GPU equivalente (~$30k+). Una sola GPU de 24 GB solo funciona para prompts más ligeros con mayor latencia. Usa la variante de modelo más grande o de tamaño completo que puedas ejecutar; los checkpoints cuantizados agresivamente o “small” aumentan el riesgo de inyección de prompts (consulta Security). Si quieres la configuración local con menos fricción, empieza con LM Studio o Ollama yopenclaw onboard. Esta página es la guía con criterio para stacks locales de gama más alta y servidores locales personalizados compatibles con OpenAI.
Recomendado: LM Studio + modelo local grande (API de Responses)
La mejor stack local actual. Carga un modelo grande en LM Studio (por ejemplo, una compilación de tamaño completo de Qwen, DeepSeek o Llama), habilita el servidor local (por defectohttp://127.0.0.1:1234) y usa la API de Responses para mantener el razonamiento separado del texto final.
- Instala LM Studio: https://lmstudio.ai
- En LM Studio, descarga la compilación de modelo más grande disponible (evita variantes “small” o muy cuantizadas), inicia el servidor y confirma que
http://127.0.0.1:1234/v1/modelslo lista. - Sustituye
my-local-modelpor el ID real del modelo que muestra LM Studio. - Mantén el modelo cargado; la carga en frío añade latencia de inicio.
- Ajusta
contextWindow/maxTokenssi tu compilación de LM Studio es distinta. - Para WhatsApp, usa la API de Responses para que solo se envíe el texto final.
models.mode: "merge" para que las alternativas sigan disponibles.
Configuración híbrida: primario alojado, alternativa local
Prioridad a local con red de seguridad alojada
Intercambia el orden del primario y la alternativa; mantén el mismo bloqueproviders y models.mode: "merge" para poder recurrir a Sonnet u Opus cuando el equipo local no esté disponible.
Alojamiento regional / enrutamiento de datos
- Las variantes alojadas de MiniMax/Kimi/GLM también existen en OpenRouter con endpoints fijados por región (por ejemplo, alojados en EE. UU.). Elige allí la variante regional para mantener el tráfico dentro de tu jurisdicción elegida mientras sigues usando
models.mode: "merge"para alternativas de Anthropic/OpenAI. - Solo local sigue siendo la vía más sólida para la privacidad; el enrutamiento regional alojado es el punto intermedio cuando necesitas funciones del proveedor pero quieres controlar el flujo de datos.
Otros proxies locales compatibles con OpenAI
vLLM, LiteLLM, OAI-proxy o gateways personalizados funcionan si exponen un endpoint/v1 de estilo OpenAI. Sustituye el bloque de proveedor anterior por tu endpoint y tu ID de modelo:
models.mode: "merge" para que los modelos alojados sigan disponibles como alternativas.
Nota de comportamiento para backends locales o con proxy /v1:
- OpenClaw los trata como rutas proxy compatibles con OpenAI, no como endpoints nativos de OpenAI
- el formateo de solicitudes exclusivo de OpenAI nativo no se aplica aquí: sin
service_tier, sin Responsesstore, sin formateo de payload de compatibilidad de razonamiento de OpenAI y sin sugerencias de caché de prompts - los encabezados ocultos de atribución de OpenClaw (
originator,version,User-Agent) no se inyectan en estas URL de proxy personalizadas
- Algunos servidores solo aceptan
messages[].contentcomo cadena en Chat Completions, no arreglos estructurados de partes de contenido. Establecemodels.providers.<provider>.models[].compat.requiresStringContent: truepara esos endpoints. - Algunos backends locales más pequeños o estrictos son inestables con la forma completa del prompt del runtime de agente de OpenClaw, especialmente cuando se incluyen esquemas de herramientas. Si el backend funciona para llamadas directas pequeñas a
/v1/chat/completionspero falla en turnos normales del agente de OpenClaw, primero pruebaagents.defaults.experimental.localModelLean: truepara quitar herramientas predeterminadas pesadas comobrowser,cronymessage; esta es una bandera experimental, no una configuración estable del modo predeterminado. Consulta Experimental Features. Si eso sigue fallando, pruebamodels.providers.<provider>.models[].compat.supportsTools: false. - Si el backend sigue fallando solo en ejecuciones más grandes de OpenClaw, el problema restante suele ser la capacidad del modelo/servidor upstream o un error del backend, no la capa de transporte de OpenClaw.
Solución de problemas
- ¿Gateway puede alcanzar el proxy?
curl http://127.0.0.1:1234/v1/models. - ¿El modelo de LM Studio se descargó de memoria? Vuelve a cargarlo; el arranque en frío es una causa común de “bloqueo”.
- OpenClaw advierte cuando la ventana de contexto detectada está por debajo de 32k y bloquea por debajo de 16k. Si llegas a esa verificación previa, aumenta el límite de contexto del servidor/modelo o elige un modelo más grande.
- ¿Errores de contexto? Reduce
contextWindowo aumenta el límite de tu servidor. - ¿El servidor compatible con OpenAI devuelve
messages[].content ... expected a string? Añadecompat.requiresStringContent: trueen esa entrada del modelo. - ¿Las llamadas directas pequeñas a
/v1/chat/completionsfuncionan, peroopenclaw infer model runfalla con Gemma u otro modelo local? Primero desactiva los esquemas de herramientas concompat.supportsTools: false, y luego vuelve a probar. Si el servidor sigue fallando solo con prompts más grandes de OpenClaw, trátalo como una limitación del servidor/modelo upstream. - Seguridad: los modelos locales omiten los filtros del proveedor; mantén los agentes limitados y Compaction activado para limitar el radio de impacto de la inyección de prompts.