- OpenClaw se conecta a Ollama a través del endpoint compatible con OpenAI en
http://127.0.0.1:11434/v1. - La clave de API puede ser cualquier cadena —Ollama no valida credenciales en local.
- Los modelos más recomendados para agentes son:
qwen2.5:14b,llama3.1:8bymistral:7b. - Privacidad total: ningún mensaje ni dato sale de tu máquina local.
- La latencia es mayor que con APIs de nube, especialmente en CPU sin GPU dedicada.
Cómo se conectan OpenClaw y Ollama
OpenClaw no tiene un cliente propio para Ollama. En su lugar, usa la compatibilidad de Ollama con la API de OpenAI para comunicarse como si Ollama fuera OpenAI.
Ollama expone por defecto dos APIs en el puerto 11434: su propia API nativa
(/api/generate, /api/chat) y una capa de compatibilidad con
OpenAI (/v1/chat/completions, /v1/models). OpenClaw usa esta
segunda capa, que convierte cualquier modelo de Ollama en un "proveedor OpenAI-compatible".
Este diseño tiene una ventaja importante: no necesitas ninguna clave de API real.
Ollama no autentica las peticiones locales, así que puedes poner cualquier cadena
como api_key en la configuración de OpenClaw. El tráfico nunca sale
de tu máquina.
Requisitos previos
Necesitas tener Ollama funcionando con al menos un modelo descargado antes de configurar OpenClaw.
1. Instalar y arrancar Ollama
Si aún no tienes Ollama, la guía de Ollama cubre la instalación completa en Linux, macOS y Windows. En resumen:
# Linux / macOS
curl -fsSL https://ollama.com/install.sh | sh
# Arrancar el servidor (queda en segundo plano)
ollama serve
# Descargar un modelo compatible
ollama pull llama3.1:8b
ollama pull qwen2.5:14b
ollama pull mistral:7b
# Verificar que el endpoint está accesible
curl http://localhost:11434/api/tags
2. Verificar el endpoint compatible con OpenAI
Ollama expone la API compatible con OpenAI en /v1. Verifica que funciona
antes de configurar OpenClaw:
# Listar modelos disponibles (formato OpenAI)
curl http://localhost:11434/v1/models
# Enviar una petición de prueba
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama3.1:8b",
"messages": [{"role": "user", "content": "Hola, responde en una frase."}]
}'
Si recibes una respuesta JSON con el campo choices, el endpoint funciona
correctamente y OpenClaw podrá conectarse.
Configuración del endpoint Ollama en OpenClaw
La configuración de Ollama en OpenClaw se hace en el archivo ~/.openclaw/openclaw.json
o mediante el CLI. El campo más importante es el baseUrl, que debe
incluir el sufijo /v1.
Método A: edición directa de openclaw.json
El archivo de configuración principal de OpenClaw está en ~/.openclaw/openclaw.json.
Para añadir Ollama como proveedor, edita la sección providers:
{
"gateway": {
"port": 18789
},
"providers": {
"ollama-local": {
"type": "openai-compatible",
"baseUrl": "http://127.0.0.1:11434/v1",
"apiKey": "ollama-local",
"models": ["llama3.1:8b", "qwen2.5:14b", "mistral:7b"]
}
},
"agents": {
"defaults": {
"provider": "ollama-local",
"model": "qwen2.5:14b"
}
}
}
- Olvidar el /v1:
http://127.0.0.1:11434es la API nativa de Ollama, no la compatible con OpenAI. Usa siemprehttp://127.0.0.1:11434/v1. - Usar 0.0.0.0: si Ollama escucha en
0.0.0.0, usa127.0.0.1para conectarte desde el mismo host. - Modelo no descargado: si específicas un modelo que no has descargado con
ollama pull, el gateway fallará con un error 404.
Método B: CLI de OpenClaw
# Añadir Ollama como proveedor vía CLI
openclaw config set providers.ollama-local.type openai-compatible
openclaw config set providers.ollama-local.baseUrl http://127.0.0.1:11434/v1
openclaw config set providers.ollama-local.apiKey ollama-local
# Establecer Ollama como proveedor por defecto
openclaw config set agents.defaults.provider ollama-local
openclaw config set agents.defaults.model qwen2.5:14b
# Verificar la configuración
openclaw config show
# Probar la conexión
openclaw test-provider ollama-local
Verificar la integración
# Arrancar el gateway con el nuevo proveedor
openclaw start
# En otra terminal, enviar un mensaje de prueba vía CLI
openclaw chat "Hola, ¿qué modelo eres?"
# El gateway debería responder indicando que usa el modelo de Ollama configurado
Modelos de Ollama recomendados para OpenClaw
No todos los modelos de Ollama funcionan igual como agente. Para OpenClaw, los más importantes son la capacidad de seguir instrucciones complejas y el function calling (necesario para la mayoría de las skills).
| Modelo | VRAM mín. | Function calling | Velocidad | Mejor para |
|---|---|---|---|---|
qwen2.5:14b |
8-10 GB | Sí | Media | Uso general, español, instrucciones complejas |
llama3.1:8b |
5-6 GB | Sí | Rápida | Equilibrio calidad/velocidad, skills estándar |
mistral:7b |
4-5 GB | Sí | Rápida | Tareas en inglés y francés, respuestas cortas |
qwen2.5:7b |
4-5 GB | Sí | Rápida | Opción ligera con buen soporte de español |
llama3.2:3b |
2-3 GB | Parcial | Muy rápida | Hardware limitado, respuestas simples |
llama3.3:70b |
40+ GB | Sí | Lenta | Máxima calidad si tienes hardware potente |
Descargar los modelos recomendados
# Descargar el modelo recomendado para uso general
ollama pull qwen2.5:14b
# Alternativa más ligera
ollama pull llama3.1:8b
# Ver todos los modelos descargados
ollama list
# Cambiar el modelo en OpenClaw sin reiniciar
openclaw config set agents.defaults.model llama3.1:8b
openclaw restart
Por qué el function calling es crítico para OpenClaw
Muchas skills de OpenClaw (búsqueda web, ejecución de código, gestión de archivos, llamadas a APIs) dependen de function calling: el modelo debe devolver una llamada estructurada en JSON indicando qué herramienta usar y con qué parámetros. Los modelos con soporte nativo de function calling (Qwen 2.5, Llama 3.1+, Mistral) funcionan significativamente mejor que los que lo intentan sin soporte explícito.
llama3.2:3b tiene soporte parcial de function calling, lo que significa
que las skills más simples funcionarán pero las que requieren llamadas encadenadas
o parámetros complejos pueden fallar. Para producción, usa modelos de 7B o más.
Ventajas de privacidad y coste
La combinación OpenClaw + Ollama ofrece ventajas reales frente a los proveedores de nube, más allá del ahorro económico.
Limitaciones de latencia y calidad
Los modelos locales tienen limitaciones reales frente a Claude o GPT-5. Conocerlas de antemano evita frustraciones.
Latencia: el principal inconveniente
Con una GPU dedicada moderna (RTX 3080 o superior), los modelos de 7-14B generan texto a 40-80 tokens por segundo, lo que se traduce en respuestas perceptibles en 1-3 segundos para mensajes cortos. En CPU sin GPU dedicada, la velocidad cae a 3-10 tokens por segundo, resultando en tiempos de respuesta de 10-30 segundos para respuestas medianas. Para uso como agente de mensajería, esto puede ser aceptable; para conversaciones rápidas, es un handicap notable.
| Hardware | Modelo | Tokens/seg | Respuesta típica |
|---|---|---|---|
| RTX 4090 (24 GB) | qwen2.5:14b | ~80 t/s | 1-2 segundos |
| RTX 3080 (10 GB) | llama3.1:8b | ~55 t/s | 2-3 segundos |
| RTX 3060 (12 GB) | mistral:7b | ~40 t/s | 3-5 segundos |
| CPU moderna (i7/Ryzen 7) | llama3.2:3b | ~8 t/s | 10-20 segundos |
| CPU moderna | llama3.1:8b | ~4 t/s | 20-40 segundos |
Otras limitaciones frente a Claude
- Ventana de contexto: la mayoría de modelos de Ollama tienen contextos de 8K-128K tokens. Claude Sonnet 4.6 y Opus 4.7 soportan hasta 1M tokens; Haiku 4.5 soporta 200K. Para conversaciones largas o documentos grandes, esto es una limitación real.
- Calidad del function calling: los modelos locales tienen mayor tasa de error en function calling complejo (múltiples herramientas encadenadas, parámetros anidados). OpenClaw implementa reintentos automáticos, pero la fiabilidad es menor.
- Razonamiento complejo: los modelos de 7-14B tienen capacidades de razonamiento significativamente inferiores a Claude Opus o GPT-5 para tareas que requieren múltiples pasos de lógica, código complejo o análisis profundo.
- Soporte de idiomas: el español tiene cobertura más irregular que el inglés en modelos como Llama. Qwen 2.5 es la mejor opción si necesitas soporte nativo de español.
Ollama en Docker con OpenClaw
Si ejecutas OpenClaw o Ollama en Docker, la configuración del endpoint
cambia porque 127.0.0.1 apunta al contenedor, no al host.
Escenario: ambos en el host (configuración más simple)
# Ollama en el host, OpenClaw en el host
# Configuración estándar — funciona sin cambios
baseUrl: "http://127.0.0.1:11434/v1"
Escenario: OpenClaw en Docker, Ollama en el host
# Docker Desktop (macOS o Windows)
baseUrl: "http://host.docker.internal:11434/v1"
# Linux con --network=host
# El contenedor usa la red del host directamente
docker run --network=host openclaw/openclaw
# Y entonces puedes usar:
baseUrl: "http://127.0.0.1:11434/v1"
Escenario: ambos en Docker con Compose
version: "3.9"
services:
ollama:
image: ollama/ollama
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
openclaw:
image: openclaw/openclaw:latest
ports:
- "18789:18789"
environment:
- OLLAMA_BASE_URL=http://ollama:11434/v1
depends_on:
- ollama
volumes:
ollama_data:
En el escenario de Docker Compose, los contenedores se comunican por nombre de servicio.
El baseUrl en la configuración de OpenClaw debe ser http://ollama:11434/v1
(usando el nombre del servicio ollama, no 127.0.0.1).
Ejemplo de configuración completa
Archivo openclaw.json completo con Ollama como proveedor principal y
Anthropic como fallback de respaldo para cuando el modelo local no sea suficiente.
{
"gateway": {
"port": 18789,
"host": "127.0.0.1"
},
"providers": {
"ollama-local": {
"type": "openai-compatible",
"baseUrl": "http://127.0.0.1:11434/v1",
"apiKey": "ollama-local",
"models": [
"qwen2.5:14b",
"llama3.1:8b",
"mistral:7b",
"llama3.2:3b"
],
"defaultModel": "qwen2.5:14b",
"timeout": 120000
},
"anthropic-fallback": {
"type": "anthropic",
"apiKey": "${ANTHROPIC_API_KEY}",
"defaultModel": "claude-haiku-4-5"
}
},
"agents": {
"defaults": {
"provider": "ollama-local",
"model": "qwen2.5:14b",
"workspace": "~/.openclaw/workspace",
"systemPrompt": "Eres un asistente personal. Responde siempre en español.",
"maxTokens": 4096,
"temperature": 0.7
}
},
"channels": {
"telegram": {
"enabled": true,
"token": "${TELEGRAM_BOT_TOKEN}"
},
"whatsapp": {
"enabled": false
}
}
}
Las variables de entorno (${ANTHROPIC_API_KEY}, ${TELEGRAM_BOT_TOKEN})
se leen del entorno del proceso o de un archivo .env en el directorio
de trabajo. Nunca pongas claves directamente en el JSON si el archivo va a estar
en un repositorio de control de versiones.
Arrancar y verificar
# Arrancar con la configuración completa
openclaw start
# Verificar que el proveedor Ollama está activo
openclaw status
# Enviar un mensaje de prueba
openclaw chat "¿Qué modelo estás usando ahora mismo?"
# Ver los logs del gateway en tiempo real
openclaw logs --follow
Preguntas frecuentes sobre OpenClaw y Ollama
OpenClaw se conecta al endpoint compatible con OpenAI que Ollama expone por
defecto en http://127.0.0.1:11434/v1. Es importante incluir el
sufijo /v1 — sin él la conexión falla. La clave de API puede ser
cualquier cadena arbitraria como "ollama-local", ya que Ollama no valida
credenciales cuando corre en local.
Para uso general como agente de IA, los mejores modelos en mayo de 2026 son:
qwen2.5:14b (el más equilibrado para español e inglés con 8 GB VRAM),
llama3.1:8b (excelente para instrucciones y herramientas con 6 GB VRAM)
y mistral:7b (rápido y preciso con buenas capacidades de function calling).
Para hardware más limitado, llama3.2:3b con 2-3 GB VRAM es funcional
aunque con respuestas menos elaboradas.
Depende del modelo elegido: llama3.2:3b requiere 2-3 GB VRAM,
llama3.1:8b y mistral:7b requieren 5-6 GB,
qwen2.5:14b requiere 8-10 GB y llama3.3:70b requiere
40 GB o más. Si no tienes GPU, Ollama puede ejecutar modelos cuantizados en CPU,
aunque la latencia será de varios segundos por respuesta.
Sí. Los modelos locales tienen ventanas de contexto más pequeñas (típicamente 8-128K tokens frente al 1M de Claude Sonnet 4.6 y Opus 4.7), menor capacidad de seguimiento de instrucciones complejas y latencia más alta en hardware moderado. El function calling es menos fiable que en Claude o GPT-5. La ventaja es privacidad total, cero coste por token y sin dependencia de servicios externos.
Sí, pero la configuración del endpoint cambia. Cuando OpenClaw corre en Docker,
127.0.0.1 apunta al contenedor, no al host. Debes usar
host.docker.internal (en Docker Desktop en macOS o Windows) o
--network=host (en Linux). Con Docker Compose, usa el nombre del
servicio de Ollama como hostname.
Sí. Si Ollama está en un servidor diferente al del gateway, puedes apuntar el
baseUrl a la IP o dominio de ese servidor:
http://192.168.1.x:11434/v1 en red local, o a una URL pública si
Ollama está expuesto. En ese caso, es fundamental proteger el acceso con
autenticación o restringir el acceso por firewall, ya que Ollama por defecto
no tiene autenticación.
¿Quieres desplegar OpenClaw en un servidor permanente?
Aprende a instalar OpenClaw en un VPS de Hostinger: SSH, Node.js 24, PM2, dominio con SSL y configuración de firewall. Servidor activo 24/7 por menos de 5 euros al mes.
Ver guía OpenClaw en Hostinger