/api/chat), non con l’endpoint
compatibile con OpenAI /v1. Sono supportate tre modalità:
ollama-cloud, consultare
Ollama Cloud. Utilizzare riferimenti ollama-cloud/<model> quando
si desidera mantenere l’instradamento cloud separato da un provider ollama locale.
La chiave di configurazione canonica è baseUrl. È accettata anche baseURL per
gli esempi nello stile dell’SDK OpenAI, ma le nuove configurazioni devono utilizzare baseUrl.
Regole di autenticazione
Host locali e LAN
Host locali e LAN
.local e con solo nome host non richiedono un vero token bearer. OpenClaw utilizza il marcatore ollama-local per questi casi.Host remoti e Ollama Cloud
Host remoti e Ollama Cloud
https://ollama.com richiedono una credenziale reale: OLLAMA_API_KEY, un profilo di autenticazione o la apiKey del provider. Per l’utilizzo diretto in hosting, preferire il provider ollama-cloud.Id provider personalizzati
Id provider personalizzati
api: "ollama" segue le stesse regole. Ad esempio, un provider ollama-remote indirizzato a un host LAN privato può utilizzare apiKey: "ollama-local"; i sotto-agenti risolvono tale marcatore tramite l’hook del provider Ollama anziché considerarlo una credenziale mancante. agents.defaults.memorySearch.provider può anche puntare a un id provider personalizzato affinché gli embedding utilizzino quell’endpoint Ollama.Profili di autenticazione
Profili di autenticazione
auth-profiles.json memorizza la credenziale per un id provider; inserire le impostazioni dell’endpoint (baseUrl, api, modelli, intestazioni, timeout) in models.providers.<id>. I vecchi file piatti come { "ollama-windows": { "apiKey": "ollama-local" } } non sono un formato di runtime; openclaw doctor --fix li riscrive in un profilo canonico con chiave API ollama-windows:default, creando un backup. Un valore baseUrl in quel file precedente è superfluo e deve 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 di tale provider.
agents.*.memorySearch.remote.apiKeyviene inviata solo al relativo host remoto per gli embedding.- Un semplice valore di ambiente
OLLAMA_API_KEYviene trattato come convenzione di Ollama Cloud e, per impostazione predefinita, non viene inviato agli host locali o self-hosted.
Introduzione
- Configurazione guidata (consigliata)
- Configurazione manuale
Eseguire la configurazione guidata
Selezionare un modello
Cloud only richiede OLLAMA_API_KEY e suggerisce valori predefiniti cloud in hosting. Cloud + Local e Local only richiedono un URL di base Ollama, individuano i modelli disponibili e scaricano automaticamente il modello locale selezionato se manca. Un tag :latest installato, come gemma4:latest, viene mostrato una sola volta anziché duplicare gemma4. Cloud + Local verifica inoltre se sull’host è stato effettuato l’accesso per l’accesso al cloud.Verificare
--custom-base-url e --custom-model-id sono facoltativi; omettendoli vengono utilizzati l’host locale predefinito e il modello suggerito gemma4.Modelli cloud tramite un host locale
Cloud + Local instrada sia i modelli locali sia quelli :cloud tramite un unico host
Ollama raggiungibile: questo è il flusso ibrido di Ollama e la modalità da scegliere durante la configurazione
quando si desiderano entrambi.
OpenClaw richiede l’URL di base, individua i modelli locali e verifica lo stato
ollama signin. Quando è stato effettuato l’accesso, suggerisce valori predefiniti in hosting
(kimi-k2.5:cloud, minimax-m2.7:cloud, glm-5.1:cloud, glm-5.2:cloud). Se
l’accesso non è stato effettuato, la configurazione rimane solo locale finché non si esegue ollama signin.
Per l’accesso solo cloud senza un daemon locale, utilizzare openclaw onboard --auth-choice ollama-cloud e consultare Ollama Cloud: questo percorso non richiede ollama signin né un server in esecuzione:
openclaw onboard viene popolato in tempo reale da
https://ollama.com/api/tags, con un limite di 500 voci, affinché il selettore rifletta
il catalogo attualmente disponibile in hosting. Se ollama.com non è raggiungibile o non restituisce
modelli durante la configurazione, OpenClaw utilizza come fallback il proprio elenco di suggerimenti codificato,
consentendo comunque il completamento della configurazione guidata.
Individuazione dei modelli (provider implicito)
QuandoOLLAMA_API_KEY (o un profilo di autenticazione) è impostato e non è definito né
models.providers.ollama né un altro provider personalizzato con api: "ollama",
OpenClaw individua i modelli da http://127.0.0.1:11434:
models.providers.ollama con un array models esplicito, oppure di un
provider personalizzato con api: "ollama" e un baseUrl non di loopback, disabilita
l’individuazione automatica; i modelli devono quindi essere definiti manualmente (consultare
Configurazione). Anche una voce models.providers.ollama indirizzata a
https://ollama.com in hosting ignora l’individuazione, poiché i modelli Ollama Cloud
sono gestiti dal provider. I provider personalizzati di loopback, come
http://127.0.0.2:11434, vengono comunque considerati locali e mantengono attiva l’individuazione automatica.
È possibile utilizzare un riferimento completo come ollama/<pulled-model>:latest senza una
voce models.json scritta manualmente; OpenClaw lo risolve in tempo reale. Per gli host
con accesso effettuato, la selezione di un riferimento ollama/<model>:cloud non elencato convalida quel
modello esatto tramite /api/show e lo aggiunge al catalogo di runtime solo se Ollama
conferma i metadati; gli errori di digitazione continuano a produrre un errore di modello sconosciuto.
Smoke test
Per una verifica testuale circoscritta che ignora l’intera superficie degli strumenti dell’agente:--file con un’immagine per una verifica essenziale di un modello di visione (accetta PNG/JPEG/WebP;
i file non di immagine vengono rifiutati prima della chiamata a Ollama; utilizzare
openclaw infer audio transcribe per l’audio):
/model ollama/<model> è una scelta esatta dell’utente: se il valore
baseUrl configurato non è raggiungibile, la risposta successiva non riesce e restituisce l’errore del provider,
anziché utilizzare silenziosamente come fallback un altro modello configurato.
I processi Cron isolati aggiungono un controllo di sicurezza locale prima di avviare il turno dell’agente:
se il modello selezionato si risolve in un provider Ollama locale/rete privata/.local
e /api/tags non è raggiungibile, OpenClaw registra l’esecuzione come
skipped con il modello nel testo dell’errore. Questo controllo dell’endpoint viene memorizzato nella cache per
5 minuti per host, in modo che i processi Cron ripetuti contro un daemon arrestato non
avviino tutti richieste destinate a non riuscire.
Verifica in ambiente reale:
OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1, poiché una
chiave cloud potrebbe non autorizzare /api/embed):
Inferenza locale sul Node
Gli agenti possono delegare un’attività breve a un modello Ollama su un desktop associato o su un Node server. Il prompt e la risposta attraversano la connessione autenticata Gateway/Node esistente; la richiesta viene eseguita sull’endpoint Ollama di loopback del Node (http://127.0.0.1:11434).
Avviare Ollama sul Node
Connettere l'host del Node
ollama.models e ollama.chat, controllare nuovamente openclaw nodes pending.Utilizzarlo da un agente
node_inference. Gli agenti chiamano
prima action: "discover", quindi action: "run" con un Node e un modello inclusi
nel risultato (run può omettere il Node quando è connesso esattamente un
Node compatibile). Ad esempio: “Individua i modelli Ollama sui miei Node, quindi usa
il modello caricato più veloce per riassumere questo testo.”/api/tags, controlla le funzionalità /api/show e usa
/api/ps, quando disponibile, per classificare per primi i modelli già caricati. Restituisce solo
i modelli locali che Ollama indica come compatibili con la chat (funzionalità completion) —
le righe di Ollama Cloud e i modelli destinati esclusivamente agli embedding sono esclusi. Ogni esecuzione disabilita
il ragionamento del modello e imposta per l’output un valore predefinito di 512 token (limite massimo 8192), a meno che
la chiamata dello strumento non richieda un valore maxTokens diverso; alcuni modelli (ad esempio GPT-OSS)
non supportano la disabilitazione del ragionamento e potrebbero comunque emettere token di ragionamento.
Per mantenere Ollama in esecuzione su un Node senza esporlo agli agenti:
openclaw node restart, oppure arrestare e rieseguire openclaw node run
per una sessione in primo piano). Il Node smette di pubblicizzare ollama.models e
ollama.chat; Ollama stesso e il provider Ollama del Gateway non subiscono modifiche.
Reimpostare il valore su true e riavviare per riattivare la funzionalità; una superficie dei comandi modificata
potrebbe richiedere nuovamente l’approvazione openclaw nodes pending dopo la riconnessione.
Verificare direttamente i comandi del Node, senza un turno dell’agente:
--invoke-timeout limita il tempo a disposizione del Node per eseguire il comando;
--timeout limita la chiamata complessiva del Gateway e deve essere maggiore.
L’inferenza locale sul Node usa sempre l’endpoint di loopback del Node stesso —
non riutilizza un models.providers.ollama.baseUrl remoto/cloud configurato. I
comandi del Node sono disponibili per impostazione predefinita sugli host Node macOS, Linux e Windows
e restano soggetti ai normali criteri di associazione e dei comandi del Node.
Visione e descrizione delle immagini
Il Plugin Ollama incluso registra Ollama come provider di comprensione multimediale compatibile con le immagini, consentendo a OpenClaw di instradare le richieste esplicite di descrizione delle immagini e le impostazioni predefinite configurate per i modelli di immagini tramite modelli di visione Ollama locali o ospitati.--model deve essere un riferimento <provider/model> completo; quando è impostato, infer image describe prova prima quel modello anziché saltare la descrizione per i modelli
che supportano già la visione nativa. Se la chiamata non riesce, OpenClaw può continuare
tramite agents.defaults.imageModel.fallbacks; gli errori di preparazione di file/URL
causano un errore prima che venga tentato il fallback. Usare infer image describe per il flusso
di comprensione delle immagini di OpenClaw e il valore imageModel configurato; usare infer model run --file per un test multimodale diretto con un prompt personalizzato.
Per impostare Ollama come provider predefinito di comprensione delle immagini per i contenuti multimediali in ingresso:
ollama/<model> completo. Un riferimento imageModel senza prefisso, come
qwen2.5vl:7b, viene normalizzato in ollama/qwen2.5vl:7b solo quando quel modello esatto
è elencato in models.providers.ollama.models con
input: ["text", "image"] e nessun altro provider di immagini configurato espone lo
stesso ID senza prefisso; in caso contrario, usare esplicitamente il prefisso del provider.
I modelli di visione locali lenti possono richiedere un timeout di comprensione delle immagini più lungo rispetto
ai modelli cloud e possono arrestarsi in modo anomalo su hardware con risorse limitate se Ollama tenta di
allocare l’intero contesto di visione pubblicizzato del modello. Impostare un timeout per la funzionalità
e limitare num_ctx:
image. models.providers.ollama.timeoutSeconds controlla comunque il
limite della richiesta HTTP Ollama sottostante per le normali chiamate ai modelli.
Verifica in ambiente reale:
models.providers.ollama.models, contrassegnare esplicitamente
i modelli di visione:
/api/show.
Configurazione
- Di base (rilevamento implicito)
- Esplicita (modelli manuali)
- URL di base personalizzato
Configurazioni comuni
Sostituire gli ID dei modelli con i nomi esatti ottenuti daollama list o
openclaw models list --provider ollama.
Modello locale con rilevamento automatico
Modello locale con rilevamento automatico
models.providers.ollama, a meno che non siano necessari modelli manuali.Host Ollama nella LAN con modelli manuali
Host Ollama nella LAN con modelli manuali
contextWindow è il budget di contesto di OpenClaw; params.num_ctx viene inviato a
Ollama. Mantenerli allineati quando l’hardware non è in grado di eseguire l’intero
contesto pubblicizzato del modello.Solo Ollama Cloud
Solo Ollama Cloud
ollama-cloud anziché questa struttura, vedere
Ollama Cloud.Cloud e locale tramite un daemon autenticato
Cloud e locale tramite un daemon autenticato
Più host Ollama
Più host Ollama
ollama/ semplice) prima di chiamare Ollama, quindi ollama-large/qwen3.5:27b
raggiunge Ollama come qwen3.5:27b.Profilo essenziale per modelli locali
Profilo essenziale per modelli locali
compat.supportsTools: false solo quando il modello o il server presenta
regolarmente errori con gli schemi degli strumenti: si sacrifica la capacità dell’agente in cambio di stabilità.
localModelLean rimuove dalla superficie diretta dell’agente gli strumenti pesanti per browser,
cron, messaggistica, generazione di contenuti multimediali, voce e PDF, salvo quando sono richiesti esplicitamente,
e colloca i cataloghi più grandi dietro Tool Search. Non modifica il
contesto di runtime o la modalità di ragionamento di Ollama. Abbinarlo a params.num_ctx e
params.thinking: false per i piccoli modelli di ragionamento in stile Qwen che entrano in ciclo o
consumano il proprio budget nel ragionamento nascosto.Selezione del modello
ollama-spark/qwen3:32b, OpenClaw rimuove tale prefisso prima di
chiamare Ollama, inviando qwen3:32b.
Per i modelli locali lenti, preferire l’ottimizzazione circoscritta al provider prima di aumentare il timeout
dell’intero runtime dell’agente:
timeoutSeconds copre la richiesta HTTP del modello: configurazione della connessione, intestazioni,
streaming del corpo e interruzione totale protetta del recupero. params.keep_alive viene
inoltrato come keep_alive di primo livello nelle richieste native /api/chat; impostarlo per
modello quando il tempo di caricamento del primo turno costituisce il collo di bottiglia.
Verifica rapida
127.0.0.1 con l’host baseUrl. Se curl
funziona ma OpenClaw no, verificare se il Gateway viene eseguito su una macchina,
un container o un account di servizio differente.
Ricerca web di Ollama
OpenClaw include Ricerca web di Ollama come providerweb_search.
openclaw onboard o openclaw configure --section web, oppure impostare:
/api/experimental/web_search,
quindi ripiega sul percorso ospitato /api/web_search sullo stesso host; un
daemon locale autenticato risponde normalmente tramite il proxy locale. Le chiamate dirette
https://ollama.com usano sempre l’endpoint ospitato /api/web_search.
Configurazione avanzata
Modalità legacy compatibile con OpenAI
Modalità legacy compatibile con OpenAI
api: "openai-completions" esplicitamente per un proxy dietro
/v1/chat/completions:params: { streaming: false } sul modello.OpenClaw inserisce options.num_ctx per impostazione predefinita in questa modalità, in modo che Ollama
non ripieghi silenziosamente su un contesto di 4096 token. Se il proxy rifiuta
i campi options sconosciuti, disabilitarlo:Finestre di contesto
Finestre di contesto
/api/show,
inclusi i valori PARAMETER num_ctx più grandi dei Modelfile
personalizzati; altrimenti ripiega sulla finestra di contesto Ollama predefinita di OpenClaw.contextWindow, contextTokens e maxTokens a livello di provider impostano
i valori predefiniti per ogni modello di tale provider e possono essere sovrascritti per
modello. contextWindow è il budget di prompt/Compaction proprio di OpenClaw. Le richieste native
/api/chat lasciano options.num_ctx non impostato, a meno che non si imposti
esplicitamente params.num_ctx, quindi Ollama applica il proprio valore predefinito basato sul modello,
su OLLAMA_CONTEXT_LENGTH o sulla VRAM; i valori params.num_ctx non validi, pari a zero, negativi
o non finiti vengono ignorati. Se una configurazione precedente usava
solo contextWindow/maxTokens per forzare il contesto delle richieste native, eseguire
openclaw doctor --fix per copiarli in params.num_ctx. L’adattatore
compatibile con OpenAI inserisce ancora options.num_ctx per impostazione predefinita dalla
configurazione params.num_ctx o contextWindow; disabilitarlo con
injectNumCtxForOpenAICompat: false se il servizio upstream rifiuta options.Le voci dei modelli nativi accettano anche le opzioni comuni del runtime Ollama in
params, inoltrate come options /api/chat native: 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 e num_thread.
Alcune chiavi (format, keep_alive, truncate, shift) vengono inoltrate come
campi di richiesta di primo livello anziché in options. OpenClaw inoltra
solo queste chiavi di richiesta Ollama, quindi i parametri esclusivi del runtime come
streaming non vengono mai inviati a Ollama. Usare params.think (o
params.thinking) per impostare think di primo livello; false disabilita il
ragionamento a livello di API per i modelli di ragionamento in stile Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx per modello;
la voce esplicita del modello del provider ha la precedenza se sono impostati entrambi.Controllo del ragionamento
Controllo del ragionamento
think di primo livello, non
options.think. I modelli rilevati automaticamente il cui /api/show segnala una
capacità thinking espongono /think low, /think medium, /think high
e /think max; i modelli senza ragionamento espongono solo /think off.params.think/params.thinking per modello possono disabilitare o forzare il ragionamento
dell’API per un modello specifico. OpenClaw conserva tale configurazione esplicita
quando l’esecuzione attiva ha soltanto il valore predefinito implicito off; un comando
di runtime diverso da off, come /think medium, continua ad avere la precedenza. Una richiesta
di ragionamento con valore true non viene mai inviata a un modello contrassegnato esplicitamente
come reasoning: false; una richiesta think: false viene sempre inviata a prescindere.Modelli di ragionamento
Modelli di ragionamento
deepseek-r1, reasoning, reason o think vengono considerati
per impostazione predefinita capaci di ragionamento, senza necessità di configurazione aggiuntiva:Costi dei modelli
Costi dei modelli
0 sia per
i modelli rilevati automaticamente sia per quelli definiti manualmente.Embedding della memoria
Embedding della memoria
/api/embed e raggruppa più segmenti di memoria in
un’unica richiesta input, quando possibile.Quando proxy.enabled=true, le richieste di embedding dirette all’esatta
origine di loopback locale dell’host derivata dal valore baseUrl configurato utilizzano il
percorso diretto protetto di OpenClaw anziché il proxy di inoltro gestito. Il nome host
configurato deve essere localhost o un indirizzo IP letterale di loopback: i nomi DNS
che si limitano a risolversi in loopback continuano a utilizzare il percorso del proxy gestito. Gli host
Ollama su LAN, tailnet, rete privata e rete pubblica rimangono sempre sul
percorso del proxy gestito e i reindirizzamenti verso un altro host o un’altra porta non ereditano
l’attendibilità. proxy.loopbackMode: "proxy" instrada comunque il traffico di loopback attraverso il
proxy; proxy.loopbackMode: "block" lo nega prima della connessione:
consultare Proxy gestito.nomic-embed-text, qwen3-embedding e
mxbai-embed-large. I batch di documenti rimangono invariati, pertanto gli indici esistenti non richiedono
alcuna migrazione del formato.Configurazione dello streaming
Configurazione dello streaming
/api/chat), che supporta
contemporaneamente streaming e chiamata degli strumenti, senza necessità di configurazione speciale.Per le richieste native, il controllo del ragionamento viene inoltrato direttamente: /think off
e openclaw agent --thinking off inviano think: false al livello superiore, a meno che
non sia configurato esplicitamente params.think/params.thinking; /think low|medium|high invia la stringa di intensità corrispondente; /think max corrisponde
all’intensità massima di Ollama, think: "high".Risoluzione dei problemi
Ciclo di arresti anomali di WSL2 (riavvii ripetuti)
Ciclo di arresti anomali di WSL2 (riavvii ripetuti)
ollama.service con Restart=always. Se tale servizio
si avvia automaticamente e carica un modello basato su GPU durante l’avvio di WSL2, Ollama può bloccare
la memoria dell’host durante il caricamento; il recupero della memoria di Hyper-V non riesce sempre a recuperare
tali pagine, quindi Windows può terminare la VM WSL2, systemd riavvia
Ollama e il ciclo si ripete.Segnali: riavvii o arresti ripetuti di WSL2, utilizzo elevato della CPU in app.slice o
ollama.service subito dopo l’avvio di WSL2 e SIGTERM da systemd anziché
dall’OOM killer di Linux.OpenClaw registra un avviso all’avvio quando rileva WSL2, ollama.service
abilitato con Restart=always e indicatori CUDA visibili.Mitigazione:%USERPROFILE%\.wslconfig, quindi eseguire
wsl --shutdown:Ollama non rilevato
Ollama non rilevato
OLLAMA_API_KEY (o un profilo di autenticazione) sia impostato
e che models.providers.ollama non sia definito esplicitamente: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 utilizza
/v1, selezionando il comportamento compatibile con OpenAI anziché quello nativo di Ollama. - L’host remoto richiede modifiche al firewall o all’associazione LAN.
- Il modello è presente nel demone del portatile, ma non in quello remoto.
Il modello restituisce il JSON degli strumenti come testo
Il modello restituisce il JSON degli strumenti come testo
compat.supportsTools: false nella voce di tale modello ed eseguire nuovamente il test.Kimi o GLM restituisce simboli illeggibili
Kimi o GLM restituisce simboli illeggibili
Cloud + Local o Cloud only, quindi provare una nuova
sessione e un modello di fallback:Timeout del modello locale a freddo
Timeout del modello locale a freddo
timeoutSeconds
estende anche il timeout di connessione 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. Limitare sia il budget di OpenClaw sia il contesto
delle richieste di Ollama per ottenere una latenza prevedibile del primo token:contextWindow se OpenClaw invia un prompt troppo grande. Ridurre
params.num_ctx se il contesto di runtime di Ollama è troppo grande per la macchina.
Ridurre maxTokens se la generazione dura troppo a lungo.Argomenti correlati
Ollama Cloud
ollama-cloud dedicato.