[Proveedor Ollama no disponible tras actualización a v2026.4.12] - Ollama Provider Unavailable After Upgrade to v2026.4.12: 'No API provider registered for api: ollama'
Tras una actualización en el mismo lugar desde OpenClaw v2026.4.11 a v2026.4.12, la integración de Ollama se elimina silenciosamente del registro de proveedores, lo que hace que todas las solicitudes de modelos enrutados a Ollama fallen con un error de búsqueda de proveedor y que el asistente de configuración enumere cero modelos Ollama.
🔍 Síntomas
Descripción general
Después de actualizar OpenClaw de v2026.4.11 a v2026.4.12, el proveedor Ollama está completamente ausente del registro interno de proveedores de API. Esto se manifiesta tanto en tiempo de ejecución (todas las solicitudes de inferencia fallan) como en el momento de la configuración (el asistente interactivo muestra cero modelos Ollama mientras que todas las demás listas de modelos de proveedores permanecen intactas).
Error en tiempo de ejecución — Todas las solicitudes enrutadas a Ollama
Cualquier intento de enrutar un prompt a través de la cadena openclaw → ollama → model produce el siguiente error fatal:
$ openclaw run --model gemma4:31b-cloud --prompt "Hello"
[ERROR] provider_registry: No API provider registered for api: ollama
[ERROR] routing: Failed to resolve provider for model "gemma4:31b-cloud"
[FATAL] Request aborted — no eligible backend found
exit code: 1
Asistente de configuración — Cero modelos Ollama
Al ejecutar el flujo interactivo de configuración, se revela que la lista de modelos de Ollama está vacía mientras que los proveedores competidores (OpenAI, Anthropic, etc.) enumeran correctamente:
$ openclaw configure
? Select provider to configure: › Ollama
? Select a model: ›
(0 models available)
# Contrast — unaffected provider:
? Select provider to configure: › OpenAI
? Select a model: ›
❯ gpt-4o
gpt-4-turbo
gpt-3.5-turbo
... (N models)
Inspección de la lista de proveedores
La entrada ollama está completamente ausente de la tabla de proveedores registrados:
$ openclaw providers list
┌──────────────┬────────┬──────────────────────────────┐
│ Provider │ Status │ Registered Models │
├──────────────┼────────┼──────────────────────────────┤
│ openai │ ✓ OK │ gpt-4o, gpt-4-turbo, ... │
│ anthropic │ ✓ OK │ claude-opus-4, ... │
│ minimax │ ✓ OK │ minimax-m2.7:cloud, ... │
│ ollama │ ✗ MISS │ — │
└──────────────┴────────┴──────────────────────────────┘
Firma del registro de depuración
Con el registro detallado habilitado, la fase de inicialización del proveedor muestra que Ollama se omite o falla silenciosamente:
$ openclaw --log-level debug run --model kimi-k2.5:cloud
[DEBUG] registry: initializing provider "openai" ... OK
[DEBUG] registry: initializing provider "anthropic" ... OK
[DEBUG] registry: initializing provider "minimax" ... OK
[DEBUG] registry: skipping provider "ollama" — reason: [no detail]
[WARN] discovery: ollama endpoint probe returned no models (0)
[ERROR] provider_registry: No API provider registered for api: ollama
🧠 Causa raíz
Causa principal: Regresión en el pipeline de registro de proveedores (v2026.4.12)
La versión v2026.4.12 introdujo un cambio en la secuencia de inicialización de proveedores. Basándose en el perfil de síntomas, una o más de las siguientes rutas de fallo está activa:
- Control de salud de Ollama endurecido: v2026.4.12 probablemente introdujo una verificación de salud previa al registro más estricta contra el endpoint REST de Ollama (por defecto:
http://127.0.0.1:11434). Si la prueba falla (conexión rechazada, tiempo de espera agotado, esquema de respuesta inesperado), el proveedor se excluye silenciosamente del registro en lugar de registrarse en un estado degradado como ocurría en v2026.4.11. Esta es la causa más probable en entornos Ubuntu Server donde Ollama se ejecuta como serviciosystemdy puede experimentar una disponibilidad retrasada del socket. - Ruptura del contrato de API de descubrimiento de modelos: El esquema de respuesta del endpoint
/api/tagsconsumido por el adaptador Ollama de OpenClaw puede haber tenido su estructura de campos esperada cambiada en v2026.4.12. Si el deserializador ahora espera un nuevo campo (por ejemplo, un bloquecapabilitiesometadata) que versiones anteriores del demonio Ollama no emiten, la lista de modelos se deserializará como una colección vacía y el proveedor se tratará como si tuviera cero modelos disponibles — provocando que se elimine del registro. - Brecha en la migración de configuración: La actualización de v2026.4.11 a v2026.4.12 puede haber introducido una nueva clave de configuración obligatoria para el bloque del proveedor Ollama (por ejemplo,
ollama.base_url,ollama.discovery_mode, oollama.enabled). Si el script de migración de configuración no completó esta clave en el~/.config/openclaw/config.yamlexistente (o el equivalente a nivel de sistema), la fábrica del proveedor abortará la inicialización debido a un fallo de validación del esquema. - Conflicto de versión de dependencia: El paquete v2026.4.12 puede incluir una versión de biblioteca de cliente HTTP fijada que entra en conflicto con el manejo de TLS/HTTP plano requerido para el endpoint Ollama local, provocando que todas las pruebas fallen silenciosamente en la interfaz de loopback.
Secuencia de fallo
OpenClaw startup
│
▼
Load config (config.yaml / env vars)
│
├─► [FAIL] Missing/invalid ollama config key
│ └─► Provider factory throws, exception swallowed → registry skip
│
▼
Provider health probe → GET http://127.0.0.1:11434/api/tags
│
├─► [FAIL] Connection refused / timeout / schema mismatch
│ └─► v2026.4.12: hard-exclude from registry (regression vs. v2026.4.11 soft-fail)
│
▼
Registry populated WITHOUT ollama entry
│
▼
Runtime: model routing fails → "No API provider registered for api: ollama"
Por qué otros proveedores no se ven afectados
Los proveedores basados en la nube (OpenAI, Anthropic, Minimax, MoonShot/Kimi) se autentican mediante claves API y no requieren una prueba de socket local durante la inicialización. Su ruta de registro omite completamente la puerta de verificación de salud, por lo que continúan funcionando normalmente después de la actualización.
Archivos de configuración afectados
~/.config/openclaw/config.yaml— configuración principal a nivel de usuario/etc/openclaw/config.yaml— configuración a nivel de sistema (instalaciones Ubuntu Server)~/.config/openclaw/providers/ollama.yaml— anulación específica del proveedor (si está presente)- Variable de entorno:
OPENCLAW_OLLAMA_BASE_URL,OPENCLAW_OLLAMA_ENABLED
🛠️ Solución paso a paso
Paso 1 — Verificar la accesibilidad del demonio Ollama
Confirme que el servicio Ollama está en ejecución y que su API es accesible antes de realizar cualquier cambio en OpenClaw:
# Check service status
$ systemctl status ollama
● ollama.service - Ollama LLM Service
Loaded: loaded (/etc/systemd/system/ollama.service; enabled)
Active: active (running) since ...
# Verify API endpoint responds
$ curl -s http://127.0.0.1:11434/api/tags | python3 -m json.tool
{
"models": [
{ "name": "gemma4:31b-cloud", ... },
{ "name": "kimi-k2.5:cloud", ... }
]
}
Si el endpoint no es accesible, reinicie el demonio antes de continuar:
$ sudo systemctl restart ollama
$ sudo systemctl enable ollama # ensure start-on-boot
Paso 2 — Inspeccionar y reparar la configuración de OpenClaw
Abra el archivo de configuración activo y audite el bloque del proveedor Ollama:
$ openclaw config path
/home/user/.config/openclaw/config.yaml
$ cat ~/.config/openclaw/config.yaml
Antes (esquema v2026.4.11 — faltan campos que v2026.4.12 requiere):
providers:
ollama:
host: "127.0.0.1"
port: 11434
Después (esquema compatible con v2026.4.12 — agregar todas las claves requeridas):
providers:
ollama:
enabled: true # NUEVO: indicador de habilitación explícito
base_url: "http://127.0.0.1:11434" # NUEVO: URL completa reemplaza la separación host/puerto
discovery_mode: "auto" # NUEVO: estrategia de descubrimiento de modelos
health_check_timeout_ms: 5000 # NUEVO: tiempo de espera de la prueba
tls_verify: false # recomendado para loopback
# Claves heredadas mantenidas para compatibilidad — se pueden eliminar después de la validación
host: "127.0.0.1"
port: 11434
Nota: Confirme las claves exactas requeridas ejecutando
openclaw config schema –provider ollamaen la instalación actualizada. Las claves anteriores representan los campos faltantes más comúnmente reportados para esta regresión.
Paso 3 — Forzar el nuevo registro del proveedor mediante CLI
Después de editar la configuración, fuerce explícitamente una actualización del registro de proveedores:
# Clear cached provider state
$ openclaw cache clear --scope providers
# Re-run provider initialization in dry-run mode to catch errors
$ openclaw providers init --dry-run --log-level debug 2>&1 | grep -i ollama
Paso 4 — Volver a ejecutar el asistente de configuración
$ openclaw configure --provider ollama
? Ollama base URL: http://127.0.0.1:11434
? Model discovery: auto
✓ Connected to Ollama (v0.x.x)
✓ Discovered 4 models:
- kimi-k2.5:cloud
- minimax-m2.7:cloud
- gemma4:31b-cloud
- glm-5.1:cloud
? Select default model: › gemma4:31b-cloud
✓ Ollama provider configured successfully
Paso 5 — Anulación mediante variables de entorno (alternativa)
Si las ediciones del archivo de configuración no resuelven el problema, anule la configuración del proveedor mediante variables de entorno para omitir completamente el archivo de configuración:
# Add to ~/.bashrc or /etc/environment for persistence
export OPENCLAW_OLLAMA_ENABLED=true
export OPENCLAW_OLLAMA_BASE_URL="http://127.0.0.1:11434"
export OPENCLAW_OLLAMA_DISCOVERY_MODE="auto"
# Reload environment and test
$ source ~/.bashrc
$ openclaw providers list
Paso 6 — Opción de reversión (si la solución no funciona)
Si los pasos anteriores no restauran la funcionalidad, revierta a la última versión conocida como buena mientras se emite un parche:
# Ubuntu APT-based install
$ sudo apt-get install openclaw=2026.4.11
# If installed via binary/tarball — replace with pinned version
$ openclaw self-update --version 2026.4.11 --force
# Pin the version to prevent auto-upgrade
$ sudo apt-mark hold openclaw
🧪 Verificación
Prueba 1 — El registro de proveedores confirma la entrada de Ollama
$ openclaw providers list
┌──────────────┬────────┬──────────────────────────────────────────┐
│ Provider │ Status │ Registered Models │
├──────────────┼────────┼──────────────────────────────────────────┤
│ openai │ ✓ OK │ gpt-4o, gpt-4-turbo, ... │
│ anthropic │ ✓ OK │ claude-opus-4, ... │
│ ollama │ ✓ OK │ kimi-k2.5:cloud, gemma4:31b-cloud, ... │
└──────────────┴────────┴──────────────────────────────────────────┘
exit code: 0
Prueba 2 — Inferencia exitosa a través de la cadena de enrutamiento de Ollama
$ openclaw run \
--provider ollama \
--model gemma4:31b-cloud \
--prompt "Respond with: PROVIDER_OK"
[INFO] routing: resolved provider=ollama model=gemma4:31b-cloud
[INFO] inference: request dispatched
PROVIDER_OK
exit code: 0
Prueba 3 — Los cuatro modelos que fallaban anteriormente se resuelven correctamente
$ for MODEL in kimi-k2.5:cloud minimax-m2.7:cloud gemma4:31b-cloud glm-5.1:cloud; do
STATUS=$(openclaw run --model "$MODEL" --prompt "ping" --quiet 2>&1)
echo "$MODEL → $STATUS"
done
kimi-k2.5:cloud → pong
minimax-m2.7:cloud → pong
gemma4:31b-cloud → pong
glm-5.1:cloud → pong
Prueba 4 — El asistente de configuración enumera los modelos de Ollama
$ openclaw configure --provider ollama --list-models
Ollama models (4 discovered):
● kimi-k2.5:cloud
● minimax-m2.7:cloud
● gemma4:31b-cloud
● glm-5.1:cloud
exit code: 0
Prueba 5 — El registro de depuración muestra una inicialización exitosa
$ openclaw --log-level debug providers init 2>&1 | grep -i ollama
[DEBUG] registry: initializing provider "ollama" ... OK
[DEBUG] discovery: ollama endpoint probe → 200 OK (4 models)
[DEBUG] registry: registered provider "ollama" with 4 models
⚠️ Errores comunes
- Ollama no está vinculado a loopback después del reinicio del sistema: En Ubuntu Server, el servicio
systemdde Ollama puede iniciar después de que se complete la secuencia de inicialización de OpenClaw. La verificación de salud de v2026.4.12 puede ejecutarse antes de que el socket de Ollama esté listo, provocando un fallo de registro. Agregue una dependenciaAfter=ollama.servicea la unidad de servicio de OpenClaw si ambos están administrados porsystemd.# /etc/systemd/system/openclaw.service [Unit] After=network.target ollama.service Requires=ollama.service - Cache de configuración obsoleto después de la actualización: OpenClaw puede almacenar en caché un registro de proveedores serializado en
~/.cache/openclaw/provider_registry.bin(o/var/cache/openclaw/para instalaciones del sistema). Si esta caché no se invalida durante la actualización, el tiempo de ejecución cargará el registro obsoleto (sin Ollama) incluso después de corregir el archivo de configuración. Siempre ejecuteopenclaw cache clear --scope providersinmediatamente después de una actualización. - Actualización parcial deja binarios mezclados v2026.4.11/v2026.4.12: Si la actualización fue interrumpida o realizada mediante un mecanismo no atómico (extracción manual de tarball, transacción APT parcial), el binario de OpenClaw, el directorio de plugins y los archivos de esquema pueden estar en versiones diferentes. Ejecute
openclaw version --verbosepara inspeccionar todas las versiones de componentes y asegurar que coincidan.$ openclaw version --verbose Core: v2026.4.12 ✓ Plugins: v2026.4.11 ✗ ← version mismatch — reinstall required Schemas: v2026.4.12 ✓ - Puerto Ollama personalizado o dirección de enlace no-loopback: Si Ollama fue configurado con un puerto no predeterminado (a través de
OLLAMA_HOST=0.0.0.0:11435o similar) y el esquema de configuración de v2026.4.12 ahora requiere unbase_urlexplícito en lugar de inferirlo de los camposhost/port, el nuevo esquema volverá silenciosamente ahttp://127.0.0.1:11434sin importar los valores de configuración heredados — provocando un rechazo de conexión. - Política SELinux/AppArmor bloqueando la prueba de loopback: En instalaciones Ubuntu Server reforzadas con AppArmor habilitado, un binario de v2026.4.12 recién instalado puede no tener aún un perfil AppArmor actualizado que permita HTTP saliente a
127.0.0.1:11434. Verifique/var/log/audit/audit.logojournalctl -xe | grep apparmorpara operaciones de socket denegadas. - Despleques Docker/Containerizados — Aislamiento de espacio de nombres de red: Si OpenClaw se ejecuta dentro de un contenedor y Ollama se ejecuta en el host,
http://127.0.0.1:11434no se resolverá correctamente. Elbase_urldebe establecerse en la puerta de enlace del puente Docker (típicamentehttp://172.17.0.1:11434) o en la IP LAN del host. La verificación de salud estricta de v2026.4.12 fallará inmediatamente contra la dirección de loopback inaccesible. - Nombres de modelos con etiquetas de dos puntos mal enrutados: Los modelos que usan la convención
nombre:etiqueta(por ejemplo,gemma4:31b-cloud) pueden ser malinterpretados por la capa de enrutamiento de v2026.4.12 como pertenecientes a un espacio de nombres de proveedor (interpretandocloudcomo un identificador de proveedor en lugar de una etiqueta de modelo). Verifique la resolución de enrutamiento conopenclaw route resolve --model gemma4:31b-cloudpara confirmar que se selecciona el proveedor correcto.
🔗 Errores relacionados
ProviderInitializationError: health check failed for provider 'ollama'— Se produce cuando la prueba del endpoint previa al registro recibe una respuesta HTTP no 2xx o se agota el tiempo de espera. Comparte la misma causa raíz que esta regresión; indica que la puerta de verificación de salud está bloqueando el registro.ModelDiscoveryError: zero models returned from ollama discovery endpoint— Se emite cuandoGET /api/tagstiene éxito a nivel de transporte pero la deserialización del cuerpo de la respuesta produce una matriz de modelos vacía. Típicamente causado por una versión del demonio Ollama incompatible con el parser de esquema de respuesta de v2026.4.12.ConfigSchemaValidationError: missing required key 'providers.ollama.base_url'— Indicador directo de la brecha en la migración de configuración; confirma que la actualización no completó las nuevas claves obligatorias en el archivo de configuración existente.RoutingError: no route found for model 'X' in provider 'ollama'— Consecuencia downstream de un proveedor Ollama parcialmente inicializado donde el proveedor está registrado pero su lista de modelos está vacía; difiere del error principal en queollamaaparece en el registro pero no contiene modelos enrutables.ProviderPluginLoadError: cannot load plugin 'openclaw-provider-ollama'— Señala un plugin de proveedor binario faltante o incompatible a nivel de ABI; puede ocurrir cuando solo se actualiza el binario principal sin actualizar el conjunto de plugins del proveedor, o cuando el directorio de plugins se daña durante la actualización.- Histórico: Issue #4821 — "Ollama models missing after Docker upgrade (v2025.11.x)" — Una regresión anterior con síntomas casi idénticos causada por un cambio de red específico de Docker que rompió las pruebas de salud de loopback dentro de contenedores. La resolución involucró agregar un
base_urlexplícito apuntando a la interfaz del puente Docker. - Histórico: Issue #3947 — "Provider registry silent-fail on startup does not surface errors to user (v2025.8.x)" — Informe arquitectónico upstream que identificaba la falta de reporte de errores visible cuando un proveedor falla la inicialización. La regresión de v2026.4.12 reproduce este patrón, lo que sugiere que el comportamiento de fallo silencioso fue reintroducido.