OpenClaw si integra con l’API nativa di Ollama (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.
/api/chat) per modelli cloud ospitati e server Ollama locali/autogestiti. Puoi usare Ollama in tre modalità: Cloud + Local tramite un host Ollama raggiungibile, Cloud only verso https://ollama.com, oppure Local only verso un host Ollama raggiungibile.
La configurazione del provider Ollama usa baseUrl come chiave canonica. OpenClaw accetta anche baseURL per compatibilità con esempi in stile OpenAI SDK, ma le nuove configurazioni dovrebbero preferire baseUrl.
Regole di autenticazione
Host locali e LAN
Host locali e LAN
ollama-local solo per URL di base Ollama loopback, di rete privata, .local e con nome host semplice.Host remoti e Ollama Cloud
Host remoti e Ollama Cloud
https://ollama.com) richiedono una credenziale reale tramite OLLAMA_API_KEY, un profilo di autenticazione o apiKey del provider.ID provider personalizzati
ID provider personalizzati
api: "ollama" seguono le stesse regole. Per esempio, un provider ollama-remote che punta a un host Ollama su LAN privata può usare apiKey: "ollama-local" e i sub-agent risolveranno quel marcatore tramite l’hook del provider Ollama invece di trattarlo come una credenziale mancante. Anche la ricerca in memoria può impostare agents.defaults.memorySearch.provider su quell’ID provider personalizzato, così gli embedding usano l’endpoint Ollama corrispondente.Profili di autenticazione
Profili di autenticazione
auth-profiles.json archivia la credenziale per un ID provider. Inserisci le impostazioni dell’endpoint (baseUrl, api, ID modello, intestazioni, timeout) in models.providers.<id>. I vecchi file di profilo di autenticazione piatti, come { "ollama-windows": { "apiKey": "ollama-local" } }, non sono un formato runtime; esegui openclaw doctor --fix per riscriverli nel profilo canonico con chiave API ollama-windows:default con un backup. baseUrl in quel file è rumore di compatibilità e dovrebbe essere spostato nella configurazione del provider.Ambito degli embedding di memoria
Ambito degli embedding di memoria
- Una chiave a livello di provider viene inviata solo all’host Ollama di quel provider.
agents.*.memorySearch.remote.apiKeyviene inviata solo al relativo host di embedding remoto.- Un valore env puro
OLLAMA_API_KEYviene trattato come convenzione di Ollama Cloud, e per impostazione predefinita non viene inviato a host locali o autogestiti.
Per iniziare
Scegli il metodo di configurazione e la modalità che preferisci.- Onboarding (consigliato)
- Configurazione manuale
Scegli la modalità
- Cloud + Local — host Ollama locale più modelli cloud instradati tramite quell’host
- Cloud only — modelli Ollama ospitati tramite
https://ollama.com - Local only — solo modelli locali
Seleziona un modello
Cloud only richiede OLLAMA_API_KEY e suggerisce valori predefiniti cloud ospitati. Cloud + Local e Local only chiedono un URL di base Ollama, rilevano i modelli disponibili e scaricano automaticamente il modello locale selezionato se non è ancora disponibile. Quando Ollama segnala un tag :latest installato, come gemma4:latest, la configurazione mostra quel modello installato una sola volta invece di mostrare sia gemma4 sia gemma4:latest o scaricare di nuovo l’alias senza tag. Cloud + Local verifica anche se quell’host Ollama ha eseguito l’accesso per l’accesso cloud.Modalità non interattiva
Modelli cloud
- Cloud + Local
- Cloud only
- Local only
Cloud + Local usa un host Ollama raggiungibile come punto di controllo sia per i modelli locali sia per quelli cloud. Questo è il flusso ibrido preferito da Ollama.Usa Cloud + Local durante la configurazione. OpenClaw richiede l’URL di base Ollama, rileva i modelli locali da quell’host e verifica se l’host ha eseguito l’accesso per l’accesso cloud con ollama signin. Quando l’host ha eseguito l’accesso, OpenClaw suggerisce anche valori predefiniti cloud ospitati come kimi-k2.5:cloud, minimax-m2.7:cloud e glm-5.1:cloud.Se l’host non ha ancora eseguito l’accesso, OpenClaw mantiene la configurazione solo locale finché non esegui ollama signin.Rilevamento dei modelli (provider implicito)
Quando impostiOLLAMA_API_KEY (o un profilo di autenticazione) e non definisci models.providers.ollama o un altro provider remoto personalizzato con api: "ollama", OpenClaw rileva i modelli dall’istanza Ollama locale su http://127.0.0.1:11434.
| Comportamento | Dettaglio |
|---|---|
| Query catalogo | Interroga /api/tags |
| Rilevamento capacità | Usa lookup /api/show best-effort per leggere contextWindow, i parametri Modelfile num_ctx espansi e capacità incluse visione/strumenti |
| Modelli visione | I modelli con una capacità vision segnalata da /api/show vengono contrassegnati come capaci di immagini (input: ["text", "image"]), quindi OpenClaw inietta automaticamente immagini nel prompt |
| Rilevamento ragionamento | Usa le capacità di /api/show quando disponibili, incluso thinking; ripiega su un’euristica basata sul nome del modello (r1, reasoning, think) quando Ollama omette le capacità |
| Limiti token | Imposta maxTokens sul limite massimo di token predefinito di Ollama usato da OpenClaw |
| Costi | Imposta tutti i costi a 0 |
ollama/<pulled-model>:latest in infer model run locale; OpenClaw risolve quel modello installato dal catalogo live di Ollama senza richiedere una voce models.json scritta a mano.
Per gli host Ollama con accesso effettuato, alcuni modelli :cloud potrebbero essere utilizzabili tramite /api/chat
e /api/show prima di comparire in /api/tags. Quando selezioni esplicitamente un
riferimento completo ollama/<model>:cloud, OpenClaw valida quel modello mancante esatto con
/api/show e lo aggiunge al catalogo runtime solo se Ollama conferma i metadati
del modello. Gli errori di battitura continuano a fallire come modelli sconosciuti invece di essere creati automaticamente.
infer model run locale con un riferimento completo a un modello Ollama:
infer model run. Questo invia prompt e immagine direttamente al
modello visione Ollama selezionato senza caricare strumenti chat, memoria o contesto
di sessione precedente:
model run --file accetta file rilevati come image/*, inclusi input comuni PNG,
JPEG e WebP. I file non immagine vengono rifiutati prima che Ollama venga chiamato.
Per il riconoscimento vocale, usa invece openclaw infer audio transcribe.
Quando cambi una conversazione con /model ollama/<model>, OpenClaw tratta
questa come una selezione utente esatta. Se il baseUrl Ollama configurato non è
raggiungibile, la risposta successiva fallisce con l’errore del provider invece di rispondere silenziosamente
da un altro modello di fallback configurato.
I processi Cron isolati eseguono un controllo di sicurezza locale aggiuntivo prima di avviare il
turno dell’agente. Se il modello selezionato si risolve in un provider Ollama locale, di rete privata o .local
e /api/tags non è raggiungibile, OpenClaw registra quell’esecuzione Cron
come skipped con il ollama/<model> selezionato nel testo dell’errore. Il preflight
dell’endpoint viene memorizzato nella cache per 5 minuti, quindi più processi Cron puntati allo stesso
daemon Ollama arrestato non avviano tutti richieste di modello destinate a fallire.
Verifica live il percorso di testo locale, il percorso di stream nativo e gli embeddings rispetto a
Ollama locale con:
models.providers.ollama, o configuri un provider remoto personalizzato come models.providers.ollama-cloud con api: "ollama", il rilevamento automatico viene saltato e devi definire i modelli manualmente. I provider personalizzati loopback come http://127.0.0.2:11434 vengono comunque trattati come locali. Vedi la sezione di configurazione esplicita qui sotto.Visione e descrizione delle immagini
Il plugin Ollama incluso registra Ollama come provider di comprensione multimediale con supporto per immagini. Questo consente a OpenClaw di instradare richieste esplicite di descrizione immagini e valori predefiniti configurati per modelli immagine tramite modelli di visione Ollama locali o ospitati. Per la visione locale, scarica un modello che supporta le immagini:--model deve essere un riferimento completo <provider/model>. Quando è impostato, openclaw infer image describe esegue direttamente quel modello invece di saltare la descrizione perché il modello supporta la visione nativa.
Usa infer image describe quando vuoi il flusso del provider di comprensione immagini di OpenClaw, agents.defaults.imageModel configurato e la forma dell’output di descrizione immagini. Usa infer model run --file quando vuoi una prova grezza di modello multimodale con un prompt personalizzato e una o più immagini.
Per rendere Ollama il modello predefinito di comprensione immagini per i contenuti multimediali in ingresso, configura agents.defaults.imageModel:
ollama/<model>. Se lo stesso modello è elencato sotto models.providers.ollama.models con input: ["text", "image"] e nessun altro provider di immagini configurato espone quell’ID modello senza prefisso, OpenClaw normalizza anche un riferimento imageModel senza prefisso come qwen2.5vl:7b in ollama/qwen2.5vl:7b. Se più di un provider di immagini configurato ha lo stesso ID senza prefisso, usa esplicitamente il prefisso del provider.
I modelli di visione locali lenti possono richiedere un timeout di comprensione immagini più lungo rispetto ai modelli cloud. Possono anche andare in crash o arrestarsi quando Ollama tenta di allocare l’intero contesto di visione dichiarato su hardware limitato. Imposta un timeout di capability e limita num_ctx nella voce del modello quando ti serve solo un normale turno di descrizione immagini:
image che l’agente può chiamare durante un turno. models.providers.ollama.timeoutSeconds a livello di provider controlla comunque la protezione della richiesta HTTP Ollama sottostante per le normali chiamate al modello.
Verifica live lo strumento esplicito per immagini rispetto a Ollama locale con:
models.providers.ollama.models, contrassegna i modelli di visione con il supporto per input immagine:
/api/show segnala una capability di visione.
Configurazione
- Di base (rilevamento implicito)
- Esplicita (modelli manuali)
- URL di base personalizzato
Ricette comuni
Usa questi esempi come punti di partenza e sostituisci gli ID modello con i nomi esatti daollama list o openclaw models list --provider ollama.
Modello locale con rilevamento automatico
Modello locale con rilevamento automatico
models.providers.ollama a meno che tu non voglia definire i modelli manualmente.Host Ollama LAN con modelli manuali
Host Ollama LAN con modelli manuali
/v1.contextWindow è il budget di contesto lato OpenClaw. params.num_ctx viene inviato a Ollama per la richiesta. Mantienili allineati quando il tuo hardware non può eseguire l’intero contesto dichiarato del modello.Solo Ollama Cloud
Solo Ollama Cloud
Cloud più locale tramite un daemon autenticato
Cloud più locale tramite un daemon autenticato
ollama signin e deve servire sia modelli locali sia modelli :cloud.Più host Ollama
Più host Ollama
ollama-large/qwen3.5:27b arriva a Ollama come qwen3.5:27b.Profilo di modello locale leggero
Profilo di modello locale leggero
compat.supportsTools: false solo quando il modello o il server fallisce in modo affidabile sugli schemi degli strumenti. Scambia capacità dell’agente con stabilità.
localModelLean rimuove gli strumenti browser, Cron e messaggi dalla superficie dell’agente, ma non modifica il contesto di runtime o la modalità di pensiero di Ollama. Abbinalo a params.num_ctx esplicito e params.thinking: false per piccoli modelli di pensiero in stile Qwen che entrano in loop o consumano il budget di risposta nel ragionamento nascosto.Selezione del modello
Una volta configurati, tutti i tuoi modelli Ollama sono disponibili:ollama-spark/qwen3:32b, OpenClaw rimuove solo quel prefisso prima di chiamare Ollama, così il server riceve qwen3:32b.
Per modelli locali lenti, preferisci la regolazione delle richieste con ambito provider prima di aumentare il timeout di runtime dell’intero agente:
timeoutSeconds si applica alla richiesta HTTP del modello, inclusi configurazione della connessione, header, streaming del body e interruzione totale della fetch protetta. params.keep_alive viene inoltrato a Ollama come keep_alive di primo livello nelle richieste native /api/chat; impostalo per modello quando il tempo di caricamento del primo turno è il collo di bottiglia.
Verifica rapida
127.0.0.1 con l’host usato in baseUrl. Se curl funziona ma OpenClaw no, controlla se il Gateway viene eseguito su una macchina, un contenitore o un account di servizio diverso.
Ricerca web Ollama
OpenClaw supporta Ricerca web Ollama come providerweb_search integrato.
| Proprietà | Dettaglio |
|---|---|
| Host | Usa il tuo host Ollama configurato (models.providers.ollama.baseUrl quando impostato, altrimenti http://127.0.0.1:11434); https://ollama.com usa direttamente l’API ospitata |
| Auth | Senza chiave per host Ollama locali con accesso effettuato; OLLAMA_API_KEY o auth del provider configurata per la ricerca diretta su https://ollama.com o host protetti da auth |
| Requisito | Gli host locali/self-hosted devono essere in esecuzione e con accesso effettuato tramite ollama signin; la ricerca ospitata diretta richiede baseUrl: "https://ollama.com" più una vera chiave API Ollama |
openclaw onboard o openclaw configure --section web, oppure imposta:
/api/experimental/web_search del daemon. Per https://ollama.com, chiama direttamente l’endpoint ospitato /api/web_search.
Configurazione avanzata
Legacy OpenAI-compatible mode
Legacy OpenAI-compatible mode
api: "openai-completions":params: { streaming: false } nella configurazione del modello.Quando api: "openai-completions" viene usato con Ollama, OpenClaw inserisce options.num_ctx per impostazione predefinita, così Ollama non ripiega silenziosamente su una finestra di contesto 4096. Se il tuo proxy/upstream rifiuta campi options sconosciuti, disabilita questo comportamento:Context windows
Context windows
PARAMETER num_ctx più grandi dai Modelfile personalizzati. Altrimenti ripiega sulla finestra di contesto Ollama predefinita usata da OpenClaw.Puoi impostare valori predefiniti a livello di provider per contextWindow, contextTokens e maxTokens per ogni modello sotto quel provider Ollama, quindi sovrascriverli per modello quando necessario. contextWindow è il budget di prompt e Compaction di OpenClaw. Le richieste native Ollama lasciano options.num_ctx non impostato a meno che tu non configuri esplicitamente params.num_ctx, così Ollama può applicare il proprio modello, OLLAMA_CONTEXT_LENGTH o il valore predefinito basato sulla VRAM. Per limitare o forzare il contesto di runtime per richiesta di Ollama senza ricostruire un Modelfile, imposta params.num_ctx; i valori non validi, zero, negativi e non finiti vengono ignorati. L’adattatore Ollama compatibile con OpenAI inserisce ancora options.num_ctx per impostazione predefinita da params.num_ctx o contextWindow configurati; disabilitalo con injectNumCtxForOpenAICompat: false se il tuo upstream rifiuta options.Le voci dei modelli Ollama nativi accettano anche le opzioni comuni di runtime Ollama sotto params, incluse temperature, top_p, top_k, min_p, num_predict, stop, repeat_penalty, num_batch, num_thread e use_mmap. OpenClaw inoltra solo chiavi di richiesta Ollama, quindi i parametri di runtime OpenClaw come streaming non vengono passati a Ollama. Usa params.think o params.thinking per inviare think Ollama di primo livello; false disabilita il pensiero a livello API per modelli di pensiero in stile Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx per modello. Se sono configurati entrambi, la voce esplicita del modello del provider prevale sul valore predefinito dell’agente.Thinking control
Thinking control
think di primo livello, non options.think. I modelli scoperti automaticamente la cui risposta /api/show include la capacità thinking espongono /think low, /think medium, /think high e /think max; i modelli senza pensiero espongono solo /think off.params.think o params.thinking per modello può disabilitare o forzare il pensiero API Ollama per uno specifico modello configurato. OpenClaw preserva quei parametri espliciti del modello quando l’esecuzione attiva ha solo il valore predefinito implicito off; i comandi di runtime diversi da off, come /think medium, sovrascrivono comunque l’esecuzione attiva.Reasoning models
Reasoning models
deepseek-r1, reasoning o think come capaci di ragionamento per impostazione predefinita.Model costs
Model costs
Memory embeddings
Memory embeddings
/api/embed di Ollama e raggruppa
più frammenti di memoria in un’unica richiesta input quando possibile.| Proprietà | Valore |
|---|---|
| Modello predefinito | nomic-embed-text |
| Pull automatico | Sì — il modello di embedding viene scaricato automaticamente se non è presente localmente |
nomic-embed-text, qwen3-embedding e mxbai-embed-large. I batch di documenti di memoria restano grezzi, così gli indici esistenti non richiedono una migrazione di formato.Per selezionare Ollama come provider di embedding per la ricerca in memoria:Configurazione dello streaming
Configurazione dello streaming
/api/chat), che supporta pienamente streaming e chiamata agli strumenti contemporaneamente. Non è necessaria alcuna configurazione speciale.Per le richieste native /api/chat, OpenClaw inoltra anche il controllo del ragionamento direttamente a Ollama: /think off e openclaw agent --thinking off inviano think: false al livello principale, a meno che non sia configurato un valore esplicito del modello params.think/params.thinking, mentre /think low|medium|high invia la stringa di impegno think corrispondente al livello principale. /think max viene mappato al massimo impegno nativo di Ollama, think: "high".Risoluzione dei problemi
Ciclo di arresti anomali WSL2 (riavvii ripetuti)
Ciclo di arresti anomali WSL2 (riavvii ripetuti)
ollama.service con Restart=always. Se quel servizio si avvia automaticamente e carica un modello con GPU durante l’avvio di WSL2, Ollama può bloccare la memoria dell’host mentre il modello viene caricato. Il recupero della memoria di Hyper-V non riesce sempre a recuperare quelle pagine bloccate, quindi Windows può terminare la VM WSL2, systemd avvia di nuovo Ollama e il ciclo si ripete.Prove comuni:- riavvii o terminazioni ripetute di WSL2 dal lato Windows
- CPU elevata in
app.sliceoollama.servicepoco dopo l’avvio di WSL2 - SIGTERM da systemd invece di un evento OOM-killer Linux
ollama.service abilitato con Restart=always e marcatori CUDA visibili.Mitigazione:%USERPROFILE%\.wslconfig sul lato Windows, quindi esegui wsl --shutdown:Ollama non rilevato
Ollama non rilevato
OLLAMA_API_KEY (o un profilo di autenticazione) e di non aver definito una voce esplicita models.providers.ollama:Nessun modello disponibile
Nessun modello disponibile
models.providers.ollama.Connessione rifiutata
Connessione rifiutata
L'host remoto funziona con curl ma non con OpenClaw
L'host remoto funziona con curl ma non con OpenClaw
baseUrlpunta alocalhost, ma il Gateway viene eseguito in Docker o su un altro host.- L’URL usa
/v1, che seleziona il comportamento compatibile con OpenAI invece di Ollama nativo. - L’host remoto richiede modifiche al firewall o al binding LAN sul lato Ollama.
- Il modello è presente sul daemon del tuo laptop ma non sul daemon remoto.
Il modello restituisce il JSON degli strumenti come testo
Il modello restituisce il JSON degli strumenti come testo
compat.supportsTools: false su quella voce del modello e riprova.Kimi o GLM restituisce simboli illeggibili
Kimi o GLM restituisce simboli illeggibili
Cloud + Local o Cloud only, quindi prova una nuova sessione e un modello di fallback:Il modello locale a freddo va in timeout
Il modello locale a freddo va in timeout
timeoutSeconds estende anche il timeout di connessione Undici protetto per questo provider.Il modello con contesto ampio è troppo lento o esaurisce la memoria
Il modello con contesto ampio è troppo lento o esaurisce la memoria
params.num_ctx. Limita sia il budget di OpenClaw sia il contesto della richiesta Ollama quando vuoi una latenza prevedibile del primo token:contextWindow se OpenClaw sta inviando troppo prompt. Abbassa params.num_ctx se Ollama sta caricando un contesto runtime troppo grande per la macchina. Abbassa maxTokens se la generazione dura troppo a lungo.