/api/chat) per modelli cloud ospitati e server Ollama locali/self-hosted. 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.
OpenClaw registra anche ollama-cloud come id provider ospitato di prima classe per
l’uso diretto di Ollama Cloud. Usa ref come ollama-cloud/kimi-k2.5:cloud quando
vuoi il routing solo cloud senza condividere l’id provider locale ollama.
Per la pagina di configurazione dedicata solo cloud, consulta Ollama Cloud.
La configurazione del provider Ollama usa baseUrl come chiave canonica. OpenClaw accetta anche baseURL per compatibilità con esempi in stile SDK OpenAI, ma la nuova configurazione dovrebbe 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 hostname semplici.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. Per l’uso ospitato diretto, preferisci il provider ollama-cloud.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 una LAN privata può usare apiKey: "ollama-local" e i sotto-agenti risolveranno quel marcatore tramite l’hook del provider Ollama invece di trattarlo come una credenziale mancante. La ricerca in memoria può anche 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, header, timeout) in models.providers.<id>. I vecchi file di profili di autenticazione piatti, come { "ollama-windows": { "apiKey": "ollama-local" } }, non sono un formato runtime; esegui openclaw doctor --fix per riscriverli nel profilo canonico di 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 remoto di embedding.- Un valore env puro
OLLAMA_API_KEYviene trattato come convenzione di Ollama Cloud, non inviato di default a host locali o self-hosted.
Primi passi
Scegli il metodo e la modalità di configurazione 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 default cloud ospitati. Cloud + Local e Local only chiedono un URL di base Ollama, rilevano i modelli disponibili ed eseguono automaticamente il pull del 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 di eseguire di nuovo il pull dell’alias semplice. Cloud + Local verifica anche se quell’host Ollama ha effettuato 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 di 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 effettuato l’accesso per l’accesso cloud con ollama signin. Quando l’host ha effettuato l’accesso, OpenClaw suggerisce anche default cloud ospitati come kimi-k2.5:cloud, minimax-m2.7:cloud e glm-5.1:cloud.Se l’host non ha ancora effettuato 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 all’indirizzo http://127.0.0.1:11434.
| Comportamento | Dettaglio |
|---|---|
| Query del catalogo | Interroga /api/tags |
| Rilevamento capacità | Usa lookup best-effort /api/show per leggere contextWindow, parametri Modelfile num_ctx espansi e capacità incluse vision/tools |
| Modelli vision | I modelli con una capacità vision riportata da /api/show sono contrassegnati come compatibili con immagini (input: ["text", "image"]), quindi OpenClaw inserisce automaticamente le 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 di token | Imposta maxTokens al limite massimo di token Ollama predefinito 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 possono essere utilizzabili tramite /api/chat
e /api/show prima che compaiano in /api/tags. Quando selezioni esplicitamente un
ref 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 ref completo di modello Ollama:
infer model run. Questo invia il prompt e l’immagine direttamente al
modello vision Ollama selezionato senza caricare strumenti chat, memoria o contesto di
sessione precedente:
model run --file accetta file rilevati come image/*, inclusi input PNG,
JPEG e WebP comuni. I file non immagine vengono rifiutati prima che Ollama sia
chiamato. Per il riconoscimento vocale, usa invece openclaw infer audio transcribe.
Quando passi una conversazione a /model ollama/<model>, OpenClaw lo tratta
come una selezione utente esatta. Se l’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
l’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 dal vivo il percorso di testo locale, il percorso di stream nativo e
gli embedding rispetto a Ollama locale con:
https://ollama.com
e scegli un modello ospitato dal catalogo corrente:
https://ollama.com perché le chiavi API di
Ollama Cloud potrebbero non autorizzare /api/embed. Imposta
OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1 quando vuoi esplicitamente che il test live
fallisca se la chiave cloud configurata non può usare l’endpoint embed.
Per aggiungere un nuovo modello, scaricalo semplicemente con Ollama:
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.Inferenza locale su Node
Gli agenti possono delegare un’attività breve a un modello Ollama installato su un Node desktop o server associato. Prompt e risposta attraversano la connessione Gateway/Node autenticata esistente; la richiesta del modello viene eseguita sul Node selezionato rispetto al suo endpoint Ollama loopback standard (http://127.0.0.1:11434).
Connetti l'host Node
ollama.models e ollama.chat, controlla di nuovo
openclaw nodes pending.Chiedi a un agente di usare l'inferenza locale
node_inference. Gli agenti usano
prima action: "discover", poi action: "run" con un Node e un modello
restituiti. Se è connesso esattamente un Node compatibile, run può omettere il Node.Per esempio: “Scopri i modelli Ollama sui miei Node, poi usa il modello caricato
più veloce per riassumere questo testo.”/api/tags, controlla le capacità di /api/show e usa /api/ps
quando disponibile per classificare prima i modelli già caricati. Restituisce solo
modelli chat locali compatibili: le righe Ollama Cloud e i modelli solo embedding
sono esclusi. Ogni esecuzione chiede a Ollama di disabilitare il thinking del
modello e limita l’output a 512 token, a meno che la chiamata dello strumento non
richieda un valore maxTokens diverso. Alcuni modelli, come GPT-OSS, non supportano
la disattivazione del thinking e potrebbero comunque usare token di ragionamento.
Per mantenere Ollama in esecuzione su un Node senza renderlo disponibile agli agenti,
imposta quanto segue nella configurazione usata da quell’host Node:
openclaw node run dalla configurazione
sopra, arresta quel processo ed esegui di nuovo il comando. Se usa un servizio Node
installato, esegui openclaw node restart.
Il Node smette di pubblicizzare ollama.models e ollama.chat; Ollama stesso e
il provider Ollama del Gateway rimangono invariati. Imposta il valore a true e
riavvia il Node per pubblicizzare di nuovo l’inferenza locale. Una superficie di
comandi modificata potrebbe richiedere approvazione tramite openclaw nodes pending
dopo la riconnessione.
Puoi verificare gli stessi comandi Node senza un turno dell’agente:
models.providers.ollama.baseUrl remoto o cloud. Avvia Ollama sull’endpoint
loopback standard del Node. I comandi Node sono disponibili per impostazione
predefinita sugli host Node macOS, Linux e Windows e rimangono soggetti alla
normale policy di associazione e comandi dei Node.
Visione e descrizione delle immagini
Il Plugin Ollama incluso registra Ollama come provider di comprensione media con supporto per immagini. Questo consente a OpenClaw di instradare richieste esplicite di descrizione immagini e impostazioni predefinite configurate dei 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 prova prima quel modello invece di saltare la
descrizione perché il modello supporta la visione nativa. Se la chiamata al modello
fallisce, OpenClaw può continuare tramite i agents.defaults.imageModel.fallbacks
configurati; gli errori di preparazione di file o URL falliscono comunque prima
dei tentativi di fallback.
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 media 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 immagine configurato espone quell’ID modello semplice, OpenClaw normalizza
anche un riferimento imageModel semplice come qwen2.5vl:7b in
ollama/qwen2.5vl:7b. Se più di un provider immagine configurato ha lo stesso ID
semplice, 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 arrestarsi in modo
anomalo o fermarsi quando Ollama prova ad allocare l’intero contesto di visione
pubblicizzato su hardware limitato. Imposta un timeout di capacità 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. Il
models.providers.ollama.timeoutSeconds a livello di provider controlla comunque
la protezione della richiesta HTTP Ollama sottostante per le normali chiamate di
modello.
Verifica dal vivo lo strumento immagine esplicito rispetto a Ollama locale con:
models.providers.ollama.models, contrassegna i modelli
di visione con il supporto all’input immagine:
/api/show segnala una capacità di visione.
Configurazione
- Base (rilevamento implicito)
- Esplicita (modelli manuali)
- URL base personalizzato
Ricette comuni
Usali come punti di partenza e sostituisci gli ID dei modelli 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 pubblicizzato del modello.Solo Ollama Cloud
Solo Ollama Cloud
Cloud più locale tramite un demone con accesso effettuato
Cloud più locale tramite un demone con accesso effettuato
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 snello per modello locale
Profilo snello per modello locale
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 browser, Cron e strumenti di messaggistica dalla superficie diretta dell’agente e, per impostazione predefinita, sposta i cataloghi più grandi dietro controlli strutturati di ricerca strumenti, tranne quando un’esecuzione deve mantenere la semantica di consegna diretta dei messaggi; non modifica però il contesto runtime di Ollama né la modalità di pensiero. 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 dell’intero runtime dell’agente:
timeoutSeconds si applica alla richiesta HTTP del modello, inclusi configurazione della connessione, header, streaming del corpo e interruzione totale del recupero protetto. 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, verifica se il Gateway viene eseguito su una macchina, un container o un account di servizio diverso.
Ollama Web Search
OpenClaw supporta Ollama Web Search come providerweb_search incluso.
| Proprietà | Dettaglio |
|---|---|
| Host | Usa l’host Ollama configurato (models.providers.ollama.baseUrl se 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 autenticazione provider configurata per la ricerca diretta su https://ollama.com o host protetti da autenticazione |
| Requisito | Gli host locali/self-hosted devono essere in esecuzione e aver effettuato l’accesso con 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 demone. Per https://ollama.com, chiama direttamente l’endpoint ospitato /api/web_search.
Configurazione avanzata
Modalità legacy compatibile con OpenAI
Modalità legacy compatibile con OpenAI
api: "openai-completions":params: { streaming: false } nella configurazione del modello.Quando api: "openai-completions" viene usato con Ollama, OpenClaw inietta options.num_ctx per impostazione predefinita, così Ollama non torna silenziosamente a una finestra di contesto di 4096. Se il tuo proxy/upstream rifiuta campi options sconosciuti, disabilita questo comportamento:Finestre di contesto
Finestre di contesto
PARAMETER num_ctx più grandi da Modelfile personalizzati. Altrimenti ripiega sulla finestra di contesto predefinita di Ollama usata da OpenClaw.Puoi impostare valori predefiniti contextWindow, contextTokens e maxTokens a livello di provider 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 valore predefinito basato sul modello, su OLLAMA_CONTEXT_LENGTH o 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. Se hai aggiornato una configurazione precedente che usava solo contextWindow o maxTokens per forzare un contesto di richiesta nativo Ollama, esegui openclaw doctor --fix per copiare quei budget espliciti del provider o del modello in params.num_ctx. L’adattatore Ollama compatibile con OpenAI continua a inserire options.num_ctx per impostazione predefinita dal params.num_ctx o dal contextWindow configurato; disabilitalo con injectNumCtxForOpenAICompat: false se il tuo upstream rifiuta options.Le voci dei modelli nativi Ollama 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 le chiavi di richiesta Ollama, quindi parametri di runtime OpenClaw come streaming non vengono esposti a Ollama. Usa params.think o params.thinking per inviare think Ollama di primo livello; false disabilita il ragionamento a livello API per modelli di ragionamento in stile Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx funziona. Se sono configurati entrambi, la voce esplicita del modello del provider ha la precedenza sul valore predefinito dell’agente.Controllo del ragionamento
Controllo del ragionamento
think di primo livello, non options.think. I modelli rilevati automaticamente la cui risposta /api/show include la capability thinking espongono /think low, /think medium, /think high e /think max; i modelli senza ragionamento espongono solo /think off.params.think o params.thinking per modello possono disabilitare o forzare il ragionamento dell’API Ollama per uno specifico modello configurato. OpenClaw conserva 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, continuano a sovrascrivere l’esecuzione attiva.Modelli di ragionamento
Modelli di ragionamento
deepseek-r1, reasoning o think.Costi dei modelli
Costi dei modelli
Embedding della memoria
Embedding della memoria
/api/embed di Ollama e raggruppa
più frammenti di memoria in una richiesta input quando possibile.Quando proxy.enabled=true, le richieste di embedding della memoria Ollama verso l’esatta
origine local loopback dell’host derivata dal baseUrl configurato usano
il percorso diretto protetto di OpenClaw invece del proxy forward gestito. Il
nome host configurato deve essere esso stesso localhost o un literal IP di loopback;
i nomi DNS che si risolvono semplicemente in loopback continuano a usare il percorso del proxy gestito.
Anche gli host Ollama LAN, tailnet, di rete privata e pubblici restano sul
percorso del proxy gestito. I reindirizzamenti verso un altro host o porta non ereditano la fiducia.
Gli operatori possono comunque impostare l’opzione globale proxy.loopbackMode: "proxy" per
inviare il traffico di loopback attraverso il proxy, oppure proxy.loopbackMode: "block"
per negare le connessioni di loopback prima di aprire una connessione; consulta
Proxy gestito per l’effetto
a livello di processo di questa impostazione.| 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 dei 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 di 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 di primo livello a meno che sia configurato un valore esplicito del modello params.think/params.thinking, mentre /think low|medium|high inviano la stringa di effort think di primo livello corrispondente. /think max viene mappato sull’effort nativo più alto di Ollama, think: "high".Risoluzione dei problemi
Ciclo di crash WSL2 (riavvii ripetuti)
Ciclo di crash WSL2 (riavvii ripetuti)
ollama.service con Restart=always. Se quel servizio si avvia automaticamente e carica un modello supportato da GPU durante l’avvio di WSL2, Ollama può bloccare memoria dell’host mentre il modello viene caricato. Il recupero 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.Evidenze comuni:- riavvii o terminazioni ripetuti di WSL2 dal lato Windows
- CPU elevata in
app.sliceoollama.servicepoco dopo l’avvio di WSL2 - SIGTERM da systemd invece di un evento Linux OOM-killer
ollama.service abilitato con Restart=always e marker 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 è in esecuzione 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 JSON degli strumenti come testo
Il modello restituisce JSON degli strumenti come testo
compat.supportsTools: false su quella voce di 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 freddo va in timeout
Il modello locale 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 di Ollama quando vuoi una latenza prevedibile per il primo token:contextWindow se OpenClaw sta inviando un prompt troppo grande. Riduci params.num_ctx se Ollama sta caricando un contesto runtime troppo grande per la macchina. Riduci maxTokens se la generazione dura troppo a lungo.