/api/chat), no con el endpoint compatible con OpenAI
/v1. Se admiten tres modos:
ollama-cloud, consulte
Ollama Cloud. Use referencias ollama-cloud/<model> cuando
quiera mantener el enrutamiento en la nube separado de un proveedor local ollama.
La clave de configuración canónica es baseUrl. También se acepta baseURL para
ejemplos con el estilo del SDK de OpenAI, pero las configuraciones nuevas deben usar baseUrl.
Reglas de autenticación
Hosts locales y de LAN
Hosts locales y de LAN
.local y nombre de host simple no necesitan un token de portador real. OpenClaw usa el marcador ollama-local para ellas.Hosts remotos y de Ollama Cloud
Hosts remotos y de Ollama Cloud
https://ollama.com requieren una credencial real: OLLAMA_API_KEY, un perfil de autenticación o el apiKey del proveedor. Para el uso alojado directo, se recomienda el proveedor ollama-cloud.Ids de proveedor personalizados
Ids de proveedor personalizados
api: "ollama" sigue las mismas reglas. Por ejemplo, un proveedor ollama-remote que apunte a un host de LAN privado puede usar apiKey: "ollama-local"; los subagentes resuelven ese marcador mediante el hook del proveedor de Ollama en lugar de tratarlo como una credencial ausente. memory.search.provider también puede apuntar a un id de proveedor personalizado para que las incrustaciones usen ese endpoint de Ollama.Perfiles de autenticación
Perfiles de autenticación
auth-profiles.json almacena la credencial de un id de proveedor; coloque la configuración del endpoint (baseUrl, api, modelos, encabezados y tiempos de espera) en models.providers.<id>. Los archivos planos antiguos como { "ollama-windows": { "apiKey": "ollama-local" } } no son un formato de tiempo de ejecución; openclaw doctor --fix los reescribe como un perfil canónico de clave de API ollama-windows:default con una copia de seguridad. Un valor baseUrl en ese archivo heredado es irrelevante y debe trasladarse a la configuración del proveedor.Ámbito de las incrustaciones de memoria
Ámbito de las incrustaciones de memoria
- Una clave de nivel de proveedor se envía únicamente al host de ese proveedor.
memory.search.remote.apiKeyy las anulaciones por agente se envían únicamente a su host remoto de incrustaciones.- Un valor de entorno
OLLAMA_API_KEYpuro se trata como la convención de Ollama Cloud y no se envía de forma predeterminada a hosts locales o autoalojados.
Primeros pasos
- Incorporación (recomendada)
- Configuración manual
Ejecutar la incorporación
/api/show confirma la compatibilidad con herramientas y
una ventana de contexto de al menos 16K; si faltan los metadatos de contexto o
indican un tamaño menor, se mantiene la ruta de configuración manual. La secuencia
de configuración compartida de CLI/macOS sigue verificando la ruta seleccionada
mediante una finalización real antes de guardarla. Esta comprobación automática
nunca descarga un modelo; si no existe ningún modelo instalado adecuado, la
incorporación continúa con el selector normal de Ollama.Seleccionar un modelo
Cloud only solicita OLLAMA_API_KEY y sugiere valores predeterminados alojados en la nube. Cloud + Local y Local only solicitan una URL base de Ollama, detectan los modelos disponibles y descargan automáticamente el modelo local seleccionado si falta. Una etiqueta :latest instalada, como gemma4:latest, se muestra una sola vez en lugar de duplicar gemma4. Cloud + Local también comprueba si se ha iniciado sesión en el host para acceder a la nube.Verificar
--custom-base-url y --custom-model-id son opcionales; si se omiten, se utilizan el host local predeterminado y el modelo sugerido gemma4.Modelos en la nube mediante un host local
Cloud + Local enruta tanto los modelos locales como los modelos :cloud mediante un único host de
Ollama accesible; este es el flujo híbrido de Ollama y el modo que se debe elegir durante la configuración
cuando se desean ambos.
OpenClaw solicita la URL base, detecta los modelos locales y comprueba el
estado de ollama signin. Cuando se ha iniciado sesión, sugiere valores predeterminados alojados
(kimi-k2.5:cloud, minimax-m2.7:cloud, glm-5.1:cloud, glm-5.2:cloud). Si
no se ha iniciado sesión, la configuración permanece en modo exclusivamente local hasta que se ejecuta ollama signin.
Para acceder únicamente a la nube sin un daemon local, use openclaw onboard --auth-choice ollama-cloud y consulte Ollama Cloud; esa ruta no necesita ollama signin ni un servidor en ejecución:
openclaw onboard se obtiene en tiempo real de
https://ollama.com/api/tags y está limitada a 500 entradas, por lo que el selector refleja
el catálogo alojado actual. Si no se puede acceder a ollama.com o no devuelve
modelos durante la configuración, OpenClaw recurre a su lista codificada de sugerencias para que
la incorporación pueda completarse.
Detección de modelos (proveedor implícito)
Cuando se estableceOLLAMA_API_KEY (o un perfil de autenticación) y no se ha
definido ni models.providers.ollama ni otro proveedor personalizado con api: "ollama",
OpenClaw detecta los modelos desde http://127.0.0.1:11434:
models.providers.ollama con una matriz models explícita, o un
proveedor personalizado con api: "ollama" y un baseUrl que no sea de bucle invertido, desactiva
la detección automática; en ese caso, los modelos deben definirse manualmente (consulte
Configuración). Una entrada models.providers.ollama que apunte al
https://ollama.com alojado también omite la detección, ya que los modelos de Ollama Cloud
los administra el proveedor. Los proveedores personalizados de bucle invertido, como
http://127.0.0.2:11434, siguen considerándose locales y mantienen la detección automática.
Se puede usar una referencia completa como ollama/<pulled-model>:latest sin una
entrada models.json escrita manualmente; OpenClaw la resuelve en tiempo real. En los hosts
con sesión iniciada, seleccionar una referencia ollama/<model>:cloud que no figure en la lista valida ese
modelo exacto mediante /api/show y lo añade al catálogo de tiempo de ejecución únicamente si Ollama
confirma los metadatos; los errores tipográficos siguen produciendo un error de modelo desconocido.
Pruebas de humo
Para una prueba de texto específica que omita toda la superficie de herramientas del agente:--file con una imagen para realizar una prueba ligera de un modelo de visión (admite PNG/JPEG/WebP;
los archivos que no sean imágenes se rechazan antes de llamar a Ollama; use
openclaw infer audio transcribe para audio):
/model ollama/<model> es una elección exacta del usuario: si no se puede acceder al
baseUrl configurado, la siguiente respuesta falla con el error del proveedor
en lugar de recurrir silenciosamente a otro modelo configurado.
Los trabajos Cron aislados añaden una comprobación de seguridad local antes de iniciar el turno del agente:
si el modelo seleccionado se resuelve como un proveedor Ollama de red local/privada/.local
y no se puede acceder a /api/tags, OpenClaw registra esa ejecución como
skipped con el modelo en el texto del error. Esta comprobación del endpoint se almacena en caché durante
5 minutos por host, para que los trabajos Cron repetidos contra un daemon detenido no
inicien todos solicitudes que fallen.
Verificación en vivo:
OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1, ya que una
clave de la nube puede no autorizar /api/embed):
Inferencia local en el Node
Los agentes pueden delegar una tarea breve a un modelo de Ollama en un equipo de escritorio o Node de servidor emparejado. El prompt y la respuesta atraviesan la conexión autenticada existente entre el Gateway y el Node; la solicitud se ejecuta en el endpoint Ollama de bucle invertido del propio Node (http://127.0.0.1:11434).
Iniciar Ollama en el Node
Conectar el host del Node
ollama.models y ollama.chat, vuelva a comprobar openclaw nodes pending.Usarlo desde un agente
node_inference. Los agentes llaman
primero a action: "discover" y, después, a action: "run" con un Node y un modelo del
resultado (run puede omitir el Node cuando hay exactamente un Node compatible
conectado). Por ejemplo: «Detecta los modelos de Ollama en mis Nodes y, después, usa
el modelo cargado más rápido para resumir este texto»./api/tags, comprueba las capacidades de /api/show y usa
/api/ps cuando está disponible para priorizar los modelos ya cargados. Solo devuelve
los modelos locales que Ollama indica que admiten chat (capacidad completion) —
se excluyen las filas de Ollama Cloud y los modelos exclusivos para embeddings. Cada ejecución desactiva
el razonamiento del modelo y limita de forma predeterminada la salida a 512 tokens (límite estricto de 8192), salvo que la
llamada a la herramienta solicite un maxTokens diferente; algunos modelos (por ejemplo, GPT-OSS)
no permiten desactivar el razonamiento y pueden seguir emitiendo tokens de razonamiento.
Para mantener Ollama en ejecución en un Node sin exponerlo a los agentes:
openclaw node restart, o detenga y vuelva a ejecutar openclaw node run
para una sesión en primer plano). El Node deja de anunciar ollama.models y
ollama.chat; Ollama y el proveedor Ollama del Gateway no se ven afectados.
Vuelva a establecer el valor en true y reinicie para reactivarlo; puede ser necesario
volver a aprobar con openclaw nodes pending una superficie de comandos modificada tras reconectarse.
Verifique directamente los comandos del Node, sin un turno del agente:
--invoke-timeout limita el tiempo que tiene el Node para ejecutar el comando;
--timeout limita la llamada global al Gateway y debe ser mayor.
La inferencia local en el Node siempre usa el endpoint de bucle invertido del propio Node; no
reutiliza un models.providers.ollama.baseUrl remoto o en la nube configurado. Los
comandos del Node están disponibles de forma predeterminada en hosts de Node macOS, Linux y Windows
y siguen sujetos a la política normal de emparejamiento y comandos del Node.
Visión y descripción de imágenes
El plugin Ollama incluido registra Ollama como proveedor de comprensión de medios compatible con imágenes, por lo que OpenClaw puede enrutar las solicitudes explícitas de descripción de imágenes y los valores predeterminados configurados del modelo de imágenes a través de modelos de visión de Ollama locales o alojados.--model debe ser una referencia <provider/model> completa; cuando se establece, infer image describe prueba primero ese modelo en lugar de omitir la descripción para los modelos
que ya admiten visión nativa. Si la llamada falla, OpenClaw puede continuar
mediante agents.defaults.imageModel.fallbacks; los errores de preparación de archivos o URL
fallan antes de intentar el fallback. Use infer image describe para el
flujo de comprensión de imágenes de OpenClaw y el imageModel configurado; use infer model run --file para una prueba multimodal directa con un prompt personalizado.
Para convertir Ollama en el proveedor predeterminado de comprensión de imágenes para medios entrantes:
ollama/<model> completa. Una referencia imageModel simple como
qwen2.5vl:7b se normaliza a ollama/qwen2.5vl:7b solo cuando ese modelo exacto
aparece en models.providers.ollama.models con
input: ["text", "image"] y ningún otro proveedor de imágenes configurado expone el
mismo identificador simple; de lo contrario, use explícitamente el prefijo del proveedor.
Los modelos de visión locales lentos pueden necesitar un tiempo de espera de comprensión de imágenes más largo que
los modelos en la nube y pueden bloquearse en hardware con recursos limitados si Ollama intenta
asignar el contexto de visión anunciado completo del modelo. Establezca un tiempo de espera de
capacidad y limite num_ctx:
image. models.providers.ollama.timeoutSeconds sigue controlando la
protección de la solicitud HTTP subyacente de Ollama para las llamadas normales al modelo.
Verificación en vivo:
models.providers.ollama.models manualmente, marque explícitamente
los modelos de visión:
/api/show.
Configuración
- Básica (detección implícita)
- Explícita (modelos manuales)
- URL base personalizada
Recetas habituales
Sustituya los identificadores de modelo por los nombres exactos deollama list o
openclaw models list --provider ollama.
Modelo local con detección automática
Modelo local con detección automática
models.providers.ollama a menos que necesite modelos manuales.Host de Ollama en la LAN con modelos manuales
Host de Ollama en la LAN con modelos manuales
contextWindow es el presupuesto de contexto de OpenClaw; params.num_ctx se envía a
Ollama. Manténgalos alineados cuando el hardware no pueda ejecutar todo el
contexto anunciado del modelo.Solo Ollama Cloud
Solo Ollama Cloud
ollama-cloud en lugar de esta estructura, consulte
Ollama Cloud.Nube y entorno local mediante un daemon con sesión iniciada
Nube y entorno local mediante un daemon con sesión iniciada
Varios hosts de Ollama
Varios hosts de Ollama
ollama/ simple) antes de llamar a Ollama, por lo que ollama-large/qwen3.5:27b
llega a Ollama como qwen3.5:27b.Perfil ligero de modelo local
Perfil ligero de modelo local
compat.supportsTools: false únicamente cuando el modelo o el servidor falle de forma
sistemática con los esquemas de herramientas; esto sacrifica capacidad del agente a cambio de estabilidad.
localModelLean elimina las herramientas pesadas de navegador, Cron, mensajería, generación
de contenido multimedia, voz y PDF de la superficie directa del agente, salvo que se requieran explícitamente,
y coloca los catálogos más grandes detrás de la búsqueda de herramientas. No cambia el
contexto de ejecución ni el modo de razonamiento de Ollama. Combínelo con params.num_ctx y
params.thinking: false para modelos pequeños de razonamiento al estilo Qwen que entran en bucle o
consumen su presupuesto en razonamiento oculto.Selección de modelos
ollama-spark/qwen3:32b, OpenClaw elimina ese prefijo antes de
llamar a Ollama y envía qwen3:32b.
Para modelos locales lentos, es preferible ajustar el proveedor antes de aumentar el tiempo de
espera de todo el entorno de ejecución del agente:
timeoutSeconds abarca la solicitud HTTP del modelo: establecimiento de la conexión, encabezados,
transmisión del cuerpo y cancelación total de la solicitud protegida. params.keep_alive se
reenvía como keep_alive de nivel superior en las solicitudes nativas /api/chat; configúrelo por
modelo cuando el tiempo de carga del primer turno sea el cuello de botella.
Verificación rápida
127.0.0.1 por el host baseUrl. Si curl
funciona, pero OpenClaw no, compruebe si el Gateway se ejecuta en otra
máquina, contenedor o cuenta de servicio.
Búsqueda web de Ollama
OpenClaw incluye Búsqueda web de Ollama como proveedorweb_search.
openclaw onboard o openclaw configure --section web, o establezca:
/api/experimental/web_search
y, a continuación, recurre a la ruta alojada /api/web_search del mismo host; normalmente, un
daemon local con sesión iniciada responde mediante el proxy local. Las llamadas directas a
https://ollama.com siempre usan el endpoint alojado /api/web_search.
Configuración avanzada
Modo heredado compatible con OpenAI
Modo heredado compatible con OpenAI
api: "openai-completions" explícitamente para un proxy detrás de
/v1/chat/completions:params: { streaming: false } en el modelo.OpenClaw inyecta options.num_ctx de forma predeterminada en este modo para que Ollama no
recurra silenciosamente a un contexto de 4096 tokens. Si el proxy rechaza
campos options desconocidos, desactívelo:Ventanas de contexto
Ventanas de contexto
/api/show
notifica, incluidos los valores PARAMETER num_ctx más grandes de Modelfiles
personalizados; de lo contrario, recurre a la ventana de contexto predeterminada de Ollama en OpenClaw.Los valores contextWindow, contextTokens y maxTokens del proveedor establecen
los valores predeterminados de todos los modelos de ese proveedor y pueden sobrescribirse para cada
modelo. contextWindow es el presupuesto de instrucciones y Compaction propio de OpenClaw. Las solicitudes
nativas /api/chat dejan options.num_ctx sin establecer, salvo que se configure
params.num_ctx explícitamente, por lo que Ollama aplica su propio valor predeterminado basado
en el modelo, OLLAMA_CONTEXT_LENGTH o la VRAM; se ignoran los valores params.num_ctx
no válidos, iguales a cero, negativos o no finitos. Si una configuración anterior usaba
únicamente contextWindow/maxTokens para forzar el contexto de la solicitud nativa, ejecute
openclaw doctor --fix para copiarlos en params.num_ctx. El
adaptador compatible con OpenAI sigue inyectando options.num_ctx de forma predeterminada a partir
de los valores configurados params.num_ctx o contextWindow; desactívelo con
injectNumCtxForOpenAICompat: false si el servicio de origen rechaza options.Las entradas de modelos nativos también aceptan opciones habituales del entorno de ejecución de Ollama en
params, que se reenvían como /api/chat options nativos: num_keep, seed,
num_predict, top_k, top_p, min_p, typical_p, repeat_last_n,
temperature, repeat_penalty, presence_penalty, frequency_penalty,
stop, num_batch, num_gpu, main_gpu, use_mmap y num_thread.
Algunas claves (format, keep_alive, truncate, shift) se reenvían como
campos de solicitud de nivel superior en lugar de estar anidadas en options. OpenClaw solo
reenvía estas claves de solicitud de Ollama, por lo que los parámetros exclusivos del entorno de ejecución, como
streaming, nunca se envían a Ollama. Use params.think (o
params.thinking) para establecer think en el nivel superior; false desactiva el
razonamiento en el nivel de la API para los modelos de razonamiento al estilo Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx también
funciona; la entrada explícita del modelo del proveedor prevalece si se configuran ambas.Control del razonamiento
Control del razonamiento
think en el nivel superior, no
options.think. Los modelos detectados automáticamente cuyo /api/show informa de una
capacidad thinking exponen /think low, /think medium, /think high
y /think max; los modelos sin razonamiento solo exponen /think off.params.think/params.thinking puede desactivar o forzar el
razonamiento de la API para un modelo específico. OpenClaw conserva esa configuración explícita
cuando la ejecución activa solo tiene el valor predeterminado implícito off; un comando
de ejecución distinto de «desactivado», como /think medium, sigue prevaleciendo. Nunca se envía
una solicitud de razonamiento verdadera a un modelo marcado explícitamente como
reasoning: false; una solicitud think: false se envía siempre.Modelos de razonamiento
Modelos de razonamiento
deepseek-r1, reasoning, reason o think se consideran
compatibles con el razonamiento de forma predeterminada; no se necesita ninguna configuración adicional:Costes de los modelos
Costes de los modelos
0, tanto para
los modelos detectados automáticamente como para los definidos manualmente.Embeddings de memoria
Embeddings de memoria
/api/embed y agrupa varios fragmentos de memoria en
una solicitud input cuando es posible.Cuando proxy.enabled=true, las solicitudes de embeddings al origen de bucle invertido
local del host exacto derivado de baseUrl configurado utilizan la ruta directa
protegida de OpenClaw en lugar del proxy de reenvío administrado. El nombre de host
configurado debe ser localhost o un literal de IP de bucle invertido; los nombres DNS
que simplemente se resuelven a bucle invertido siguen utilizando la ruta del proxy administrado.
Los hosts de Ollama de la LAN, tailnet, redes privadas y públicas siempre permanecen en la
ruta del proxy administrado, y las redirecciones a otro host o puerto no heredan
la confianza. proxy.loopbackMode: "proxy" enruta de todos modos el tráfico de bucle invertido a través del
proxy; proxy.loopbackMode: "block" lo deniega antes de conectarse;
consulte Proxy administrado.nomic-embed-text, qwen3-embedding y
mxbai-embed-large. Los lotes de documentos permanecen sin procesar, por lo que los índices existentes
no necesitan migrar su formato.Configuración de streaming
Configuración de streaming
/api/chat), que admite
conjuntamente streaming y llamadas a herramientas; no se necesita ninguna configuración especial.En las solicitudes nativas, el control del razonamiento se reenvía directamente: /think off
y openclaw agent --thinking off envían think: false en el nivel superior, salvo que
se configure explícitamente params.think/params.thinking; /think low|medium|high envía la cadena de esfuerzo correspondiente; /think max se asigna al
máximo esfuerzo de Ollama, think: "high".Solución de problemas
Bucle de fallos de WSL2 (reinicios repetidos)
Bucle de fallos de WSL2 (reinicios repetidos)
ollama.service con Restart=always. Si ese servicio
se inicia automáticamente y carga un modelo respaldado por GPU durante el arranque de WSL2, Ollama puede fijar
memoria del host durante la carga; la recuperación de memoria de Hyper-V no siempre puede recuperar
esas páginas, por lo que Windows puede finalizar la máquina virtual de WSL2, systemd reinicia
Ollama y el bucle se repite.Indicios: reinicios o finalizaciones repetidos de WSL2, uso elevado de CPU en app.slice o
ollama.service justo después del inicio de WSL2 y SIGTERM de systemd en lugar
del eliminador por memoria insuficiente de Linux.OpenClaw registra una advertencia de inicio cuando detecta WSL2, ollama.service
habilitado con Restart=always y marcadores CUDA visibles.Mitigación:%USERPROFILE%\.wslconfig y, a continuación, ejecute
wsl --shutdown:Ollama no se detecta
Ollama no se detecta
OLLAMA_API_KEY (o un perfil de autenticación) esté configurado
y que models.providers.ollama no esté definido explícitamente:No hay modelos disponibles
No hay modelos disponibles
models.providers.ollama:Conexión rechazada
Conexión rechazada
El host remoto funciona con curl, pero no con OpenClaw
El host remoto funciona con curl, pero no con OpenClaw
baseUrlapunta alocalhost, pero el Gateway se ejecuta en Docker o en otro host.- La URL utiliza
/v1, lo que selecciona el comportamiento compatible con OpenAI en lugar del comportamiento nativo de Ollama. - El host remoto requiere cambios en el cortafuegos o en la vinculación a la LAN.
- El modelo está en el daemon del equipo portátil, pero no en el remoto.
El modelo genera el JSON de las herramientas como texto
El modelo genera el JSON de las herramientas como texto
compat.supportsTools: false en la entrada de ese modelo y vuelva a probarlo.Kimi o GLM devuelve símbolos ilegibles
Kimi o GLM devuelve símbolos ilegibles
Cloud + Local o Cloud only; a continuación, pruebe con una sesión
nueva y un modelo alternativo:El modelo local en frío agota el tiempo de espera
El modelo local en frío agota el tiempo de espera
timeoutSeconds también
amplía el tiempo de espera protegido de conexión para este proveedor.El modelo de contexto grande es demasiado lento o se queda sin memoria
El modelo de contexto grande es demasiado lento o se queda sin memoria
params.num_ctx. Limite tanto el presupuesto de OpenClaw como el contexto de solicitud
de Ollama para obtener una latencia predecible hasta el primer token:contextWindow si OpenClaw envía demasiado contenido en el prompt. Reduzca
params.num_ctx si el contexto de ejecución de Ollama es demasiado grande para la máquina.
Reduzca maxTokens si la generación tarda demasiado.Temas relacionados
Ollama Cloud
ollama-cloud dedicado.