Concepts and configuration
CLI dei modelli
Rotazione dei profili di autenticazione, cooldown e come interagiscono con i fallback.
Panoramica rapida dei provider ed esempi.
OpenClaw, Codex e altri runtime del loop agente.
Chiavi di configurazione del modello.
I riferimenti dei modelli scelgono un provider e un modello. Di solito non scelgono il runtime agente di basso livello. I riferimenti agente OpenAI sono l'eccezione principale: openai/gpt-5.5 viene eseguito tramite il runtime app-server Codex per impostazione predefinita sul provider OpenAI ufficiale. I riferimenti Copilot in abbonamento (github-copilot/*) possono inoltre essere configurati per usare il Plugin runtime agente GitHub Copilot esterno: quel percorso resta esplicito (nessun fallback auto). Gli override espliciti del runtime appartengono alla policy provider/modello, non all'intero agente o alla sessione. In modalità runtime Codex, il riferimento openai/gpt-* non implica fatturazione tramite chiave API; l'autenticazione può provenire da un account Codex o da un profilo OAuth openai. Vedi Runtime degli agenti e Runtime agente GitHub Copilot.
Come funziona la selezione del modello
OpenClaw seleziona i modelli in questo ordine:
Modello primario
agents.defaults.model.primary (o agents.defaults.model).
Fallback
agents.defaults.model.fallbacks (in ordine).
Failover dell'autenticazione del provider
Il failover dell'autenticazione avviene all'interno di un provider prima di passare al modello successivo.
Superfici correlate dei modelli
agents.defaults.modelsè la allowlist/il catalogo dei modelli che OpenClaw può usare (più gli alias). Usa vociprovider/*per limitare i provider visibili mantenendo dinamica la discovery dei provider.agents.defaults.imageModelviene usato solo quando il modello primario non può accettare immagini.agents.defaults.pdfModelviene usato dallo strumentopdf. Se omesso, lo strumento ripiega suagents.defaults.imageModel, poi sul modello risolto per la sessione/predefinito.agents.defaults.imageGenerationModelviene usato dalla capability condivisa di generazione immagini. Se omesso,image_generatepuò comunque inferire un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider registrati rimanenti per la generazione immagini in ordine di ID provider. Se imposti un provider/modello specifico, configura anche l'autenticazione/la chiave API di quel provider.agents.defaults.musicGenerationModelviene usato dalla capability condivisa di generazione musicale. Se omesso,music_generatepuò comunque inferire un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider registrati rimanenti per la generazione musicale in ordine di ID provider. Se imposti un provider/modello specifico, configura anche l'autenticazione/la chiave API di quel provider.agents.defaults.videoGenerationModelviene usato dalla capability condivisa di generazione video. Se omesso,video_generatepuò comunque inferire un provider predefinito supportato da autenticazione. Prova prima il provider predefinito corrente, poi i provider registrati rimanenti per la generazione video in ordine di ID provider. Se imposti un provider/modello specifico, configura anche l'autenticazione/la chiave API di quel provider.- I valori predefiniti per agente possono sovrascrivere
agents.defaults.modeltramiteagents.list[].modelpiù i binding (vedi Routing multi-agente).
Origine della selezione e comportamento di fallback
Lo stesso provider/model può significare cose diverse a seconda della sua origine:
- I valori predefiniti configurati (
agents.defaults.model.primarye primari specifici dell'agente) sono il normale punto di partenza e usanoagents.defaults.model.fallbacks. - Le selezioni automatiche di fallback sono stato temporaneo di recupero. Sono archiviate con
modelOverrideSource: "auto"così i turni successivi possono continuare a usare la catena di fallback senza sondare ogni volta un primario noto come non funzionante; OpenClaw sonda periodicamente di nuovo il primario originale, cancella la selezione automatica quando si ripristina e annuncia le transizioni di fallback/ripristino una volta per cambio di stato. - Le selezioni della sessione utente sono esatte.
/model, il selettore modelli,session_status(model=...)esessions.patchmemorizzanomodelOverrideSource: "user"; se quel provider/modello selezionato non è raggiungibile, OpenClaw fallisce in modo visibile invece di passare a un altro modello configurato. - La modifica di
agents.defaults.model.primarynon riscrive le selezioni di sessione esistenti. Se lo stato diceThis session is pinned to X; config primary Y will apply to new/unpinned sessions., cancella la selezione della sessione corrente con/model defaultin modo che erediti di nuovo il primario configurato. - Cron
--model/ payloadmodelè un primario per job. Usa comunque i fallback configurati, a meno che il job non fornisca payloadfallbacksespliciti (usafallbacks: []per un'esecuzione cron rigorosa). - I selettori CLI per modello predefinito e allowlist rispettano
models.mode: "replace"elencando imodels.providers.*.modelsespliciti invece di caricare l'intero catalogo integrato. - Il selettore modelli della UI di controllo chiede al Gateway la vista modelli configurata:
agents.defaults.modelsquando presente, incluse vociprovider/*a livello di provider, altrimentimodels.providers.*.modelsespliciti più provider con autenticazione utilizzabile. L'intero catalogo integrato è riservato alle viste di esplorazione esplicite comemodels.listconview: "all"oopenclaw models list --all.
Policy rapida sui modelli
- Imposta il primario sul modello di ultima generazione più potente disponibile per te.
- Usa i fallback per attività sensibili a costi/latenza e chat a rischio più basso.
- Per agenti con strumenti abilitati o input non attendibili, evita fasce di modelli più vecchie/deboli.
Onboarding (consigliato)
Se non vuoi modificare manualmente la configurazione, esegui l'onboarding:
openclaw onboardPuò configurare modello + autenticazione per provider comuni, inclusi OpenAI Code (Codex) subscription (OAuth) e Anthropic (chiave API o Claude CLI).
Chiavi di configurazione (panoramica)
agents.defaults.model.primaryeagents.defaults.model.fallbacksagents.defaults.imageModel.primaryeagents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primaryeagents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primaryeagents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primaryeagents.defaults.videoGenerationModel.fallbacksagents.defaults.models(allowlist + alias + parametri provider + voci provider dinamicheprovider/*)models.providers(provider personalizzati scritti inmodels.json)
Modifiche sicure alla allowlist
Usa scritture additive quando aggiorni agents.defaults.models a mano:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeRegole di protezione dalla sovrascrittura
openclaw config set protegge le mappe modello/provider da sovrascritture accidentali. Un'assegnazione di oggetto semplice a agents.defaults.models, models.providers o models.providers.<id>.models viene rifiutata quando rimuoverebbe voci esistenti. Usa --merge per modifiche additive; usa --replace solo quando il valore fornito deve diventare il valore target completo.
Anche la configurazione interattiva del provider e openclaw configure --section model uniscono le selezioni con ambito provider nella allowlist esistente, quindi l'aggiunta di Codex, Ollama o un altro provider non elimina voci modello non correlate. Configure preserva un agents.defaults.model.primary esistente quando l'autenticazione del provider viene riapplicata. I comandi espliciti di impostazione predefinita come openclaw models auth login --provider <id> --set-default e openclaw models set <model> sostituiscono comunque agents.defaults.model.primary.
"Il modello non è consentito" (e perché le risposte si interrompono)
Se agents.defaults.models è impostato, diventa la allowlist per /model e per gli override di sessione. Quando un utente seleziona un modello che non è in quella allowlist, OpenClaw restituisce:
Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --mergeQuando il comando rifiutato includeva un override del runtime come /model openai/gpt-5.5 --runtime codex, correggi prima la allowlist, poi riprova lo stesso comando /model ... --runtime .... Per l'esecuzione nativa Codex, il modello selezionato resta openai/gpt-5.5; il runtime codex seleziona l'harness e usa l'autenticazione Codex separatamente.
Per i modelli locali/GGUF, memorizza nella allowlist il riferimento completo con prefisso provider,
per esempio ollama/gemma4:26b, lmstudio/Gemma4-26b-a4-it-gguf o il
provider/modello esatto mostrato da openclaw models list --provider <provider>.
I nomi file locali semplici o i nomi visualizzati non sono sufficienti quando la allowlist è
attiva.
Se vuoi limitare i provider senza elencare manualmente ogni modello, aggiungi
voci provider/* a agents.defaults.models:
{ agents: { defaults: { models: { "openai/*": {}, "vllm/*": {}, }, }, },}Con quella policy, /model, /models e i selettori modelli mostrano il catalogo
rilevato solo per quei provider. I nuovi modelli dai provider selezionati possono
comparire senza modificare la allowlist. Le voci provider/model esatte possono essere combinate
con voci provider/* quando serve uno specifico modello da un altro provider.
Esempio di configurazione allowlist:
{ agents: { defaults: { model: { primary: "anthropic/claude-sonnet-4-6" }, models: { "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "anthropic/claude-opus-4-6": { alias: "Opus" }, }, }, },}Cambiare modello in chat (/model)
Puoi cambiare modello per la sessione corrente senza riavviare:
/model/model list/model 3/model openai/gpt-5.4/model default/model statusComportamento del selettore
/model(e/model list) è un selettore compatto e numerato (famiglia di modelli + provider disponibili).- Su Discord,
/modele/modelsaprono un selettore interattivo con menu a discesa per provider e modello più un passaggio di invio. - Su Telegram, le selezioni del selettore
/modelshanno ambito di sessione; non modificano il valore predefinito persistente dell'agente inopenclaw.json. /models addè deprecato e ora restituisce un messaggio di deprecazione invece di registrare modelli dalla chat./model <#>seleziona da quel selettore.
Persistenza e cambio live
/modelpersiste immediatamente la nuova selezione della sessione.- Se l'agente è inattivo, l'esecuzione successiva usa subito il nuovo modello.
- Se un'esecuzione è già attiva, OpenClaw contrassegna un cambio live come in sospeso e riavvia nel nuovo modello solo in un punto di retry pulito.
- Se l'attività degli strumenti o l'output della risposta è già iniziato, il cambio in sospeso può restare in coda fino a una successiva opportunità di retry o al turno utente successivo.
/model defaultcancella la selezione della sessione e riporta la sessione al modello predefinito configurato.- Un riferimento
/modelselezionato dall'utente è rigoroso per quella sessione: se il provider/modello selezionato non è raggiungibile, la risposta fallisce in modo visibile invece di rispondere silenziosamente daagents.defaults.model.fallbacks. Questo è diverso dai valori predefiniti configurati e dai primari dei processi cron, che possono ancora usare catene di fallback. /model statusè la vista dettagliata (candidati di autenticazione e, quando configurato, endpoint del providerbaseUrl+ modalitàapi).
Analisi dei riferimenti
- I riferimenti dei modelli vengono analizzati dividendo sulla prima
/. Usaprovider/modelquando digiti/model <ref>. - Se l'ID del modello contiene a sua volta
/(stile OpenRouter), devi includere il prefisso del provider (esempio:/model openrouter/moonshotai/kimi-k2). - Se ometti il provider, OpenClaw risolve l'input in questo ordine:
- corrispondenza alias
- corrispondenza univoca del provider configurato per quell'ID modello esatto senza prefisso
- fallback deprecato al provider predefinito configurato — se quel provider non espone più il modello predefinito configurato, OpenClaw ricorre invece al primo provider/modello configurato per evitare di mostrare un valore predefinito obsoleto di un provider rimosso.
Comportamento/configurazione completa dei comandi: Comandi slash.
Comandi CLI
openclaw models listopenclaw models statusopenclaw models set <provider/model>openclaw models set-image <provider/model> openclaw models aliases listopenclaw models aliases add <alias> <provider/model>openclaw models aliases remove <alias> openclaw models fallbacks listopenclaw models fallbacks add <provider/model>openclaw models fallbacks remove <provider/model>openclaw models fallbacks clear openclaw models image-fallbacks listopenclaw models image-fallbacks add <provider/model>openclaw models image-fallbacks remove <provider/model>openclaw models image-fallbacks clearopenclaw models (senza sottocomando) è una scorciatoia per models status.
models list
Mostra per impostazione predefinita i modelli configurati/disponibili con l'autenticazione. Flag utili:
--allbooleanCatalogo completo. Include righe di catalogo statiche in bundle di proprietà del provider prima che l'autenticazione sia configurata, così le viste di sola scoperta possono mostrare modelli non disponibili finché non aggiungi le credenziali del provider corrispondenti.
--localbooleanSolo provider locali.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk
" type="string">
Filtra per ID provider, per esempio moonshot. Le etichette visualizzate dai selettori interattivi non sono accettate.
--plainbooleanUn modello per riga.
--jsonbooleanOutput leggibile dalla macchina.
models status
Mostra il modello primario risolto, i fallback, il modello immagine e una panoramica dell'autenticazione dei provider configurati. Espone anche lo stato di scadenza OAuth per i profili trovati nell'archivio di autenticazione (per impostazione predefinita avvisa entro 24 ore). --plain stampa solo il modello primario risolto.
Comportamento di autenticazione e probe
- Lo stato OAuth viene sempre mostrato (e incluso nell'output
--json). Se un provider configurato non ha credenziali,models statusstampa una sezione Autenticazione mancante. - JSON include
auth.oauth(finestra di avviso + profili) eauth.providers(autenticazione effettiva per provider, incluse credenziali basate su env).auth.oauthriguarda solo lo stato dei profili dell'archivio di autenticazione; i provider solo env non compaiono lì. - Usa
--checkper l'automazione (exit1quando manca o è scaduta,2quando è in scadenza). - Usa
--probeper controlli di autenticazione live; le righe di probe possono provenire da profili di autenticazione, credenziali env omodels.json. - Se
auth.order.<provider>esplicito omette un profilo memorizzato, il probe segnalaexcluded_by_auth_orderinvece di provarlo. Se l'autenticazione esiste ma non è possibile risolvere alcun modello verificabile per quel provider, il probe segnalastatus: no_model.
Esempio (CLI Claude):
claude auth loginopenclaw models statusScansione (modelli gratuiti OpenRouter)
openclaw models scan ispeziona il catalogo dei modelli gratuiti di OpenRouter e può facoltativamente verificare i modelli per supporto a strumenti e immagini.
--no-probebooleanSalta i probe live (solo metadati).
"--min-params"--max-age-days"--provider"--max-candidates--set-defaultbooleanImposta agents.defaults.model.primary sulla prima selezione.
--set-imagebooleanImposta agents.defaults.imageModel.primary sulla prima selezione immagine.
I risultati della scansione sono ordinati in base a:
- Supporto immagini
- Latenza strumenti
- Dimensione del contesto
- Numero di parametri
Input:
- Elenco
/modelsdi OpenRouter (filtro:free) - I probe live richiedono una chiave API OpenRouter dai profili di autenticazione o
OPENROUTER_API_KEY(vedi Variabili d'ambiente) - Filtri facoltativi:
--max-age-days,--min-params,--provider,--max-candidates - Controlli richiesta/probe:
--timeout,--concurrency
Quando i probe live vengono eseguiti in una TUI, puoi selezionare i fallback in modo interattivo. In modalità non interattiva, passa --yes per accettare i valori predefiniti. I risultati di soli metadati sono informativi; --set-default e --set-image richiedono probe live così OpenClaw non configura un modello OpenRouter inutilizzabile senza chiave.
Registro dei modelli (models.json)
I provider personalizzati in models.providers vengono scritti in models.json nella directory dell'agente (predefinita ~/.openclaw/agents/<agentId>/agent/models.json). I cataloghi dei provider-plugin sono memorizzati come shard di catalogo generati di proprietà del Plugin nello stato dei Plugin dell'agente e caricati automaticamente. Questo file viene unito per impostazione predefinita a meno che models.mode sia impostato su replace.
Precedenza della modalità di unione
Precedenza della modalità di unione per ID provider corrispondenti:
- Un
baseUrlnon vuoto già presente nelmodels.jsondell'agente ha la precedenza. - Un
apiKeynon vuoto nelmodels.jsondell'agente ha la precedenza solo quando quel provider non è gestito da SecretRef nel contesto della configurazione/profilo di autenticazione corrente. - I valori
apiKeydei provider gestiti da SecretRef vengono aggiornati dai marcatori sorgente (ENV_VAR_NAMEper riferimenti env,secretref-managedper riferimenti file/exec) invece di persistere segreti risolti. - I valori header dei provider gestiti da SecretRef vengono aggiornati dai marcatori sorgente (
secretref-env:ENV_VAR_NAMEper riferimenti env,secretref-managedper riferimenti file/exec). apiKey/baseUrlvuoti o mancanti dell'agente ripiegano sumodels.providersdella configurazione.- Gli altri campi del provider vengono aggiornati dalla configurazione e dai dati di catalogo normalizzati.
Correlati
- Runtime degli agenti — OpenClaw, Codex e altri runtime del loop agente
- Riferimento di configurazione — chiavi di configurazione dei modelli
- Generazione di immagini — configurazione del modello immagine
- Failover dei modelli — catene di fallback
- Provider di modelli — routing dei provider e autenticazione
- Generazione di musica — configurazione del modello musicale
- Generazione di video — configurazione del modello video