openai-completions e può rilevare automaticamente i modelli quando si abilita questa funzionalità con VLLM_API_KEY.
Per iniziare
1
Avviare vLLM con un server compatibile con OpenAI
L’URL di base deve esporre endpoint
/v1 (/v1/models, /v1/chat/completions). In genere vLLM viene eseguito su:2
Impostare la variabile di ambiente della chiave API
Se il server non impone l’autenticazione, è sufficiente qualsiasi valore non vuoto:
3
Selezionare un modello
Sostituire il valore con uno degli ID modello di vLLM:
4
Verificare che il modello sia disponibile
Rilevamento dei modelli (provider implicito)
QuandoVLLM_API_KEY è impostata (o esiste un profilo di autenticazione) e models.providers.vllm non è definito, OpenClaw interroga GET http://127.0.0.1:8000/v1/models e converte gli ID restituiti in voci di modello.
Se si imposta esplicitamente
models.providers.vllm, OpenClaw usa soltanto i modelli dichiarati. Aggiungere "vllm/*": {} a agents.defaults.models affinché OpenClaw interroghi anche l’endpoint /models del provider configurato e includa tutti i modelli vLLM pubblicizzati.Configurazione esplicita
Eseguire una configurazione esplicita quando vLLM è in esecuzione su un host o una porta diversi, si desidera fissarecontextWindow/maxTokens, il server richiede una vera chiave API oppure ci si connette a un endpoint loopback, LAN o Tailscale attendibile:
Configurazione avanzata
Comportamento in stile proxy
Comportamento in stile proxy
vLLM viene trattato come un backend
/v1 in stile proxy compatibile con OpenAI, non come un endpoint OpenAI nativo:Controlli del ragionamento di Qwen
Controlli del ragionamento di Qwen
Per i modelli Qwen, impostare OpenClaw associa I livelli di ragionamento diversi da
compat.thinkingFormat: "qwen-chat-template" nella riga del modello quando il server si aspetta gli argomenti del modello di chat Qwen. Questi modelli espongono un profilo binario /think (off, on) perché il ragionamento del modello di chat Qwen è un’opzione attivata/disattivata, non una scala di intensità in stile OpenAI./think off a:off inviano enable_thinking: true. Se l’endpoint si aspetta invece opzioni di primo livello in stile DashScope, usare compat.thinkingFormat: "qwen" per inviare enable_thinking nella radice della richiesta.Controlli del ragionamento di Nemotron 3
Controlli del ragionamento di Nemotron 3
Per i modelli Per personalizzare questi valori, impostare
vllm/nemotron-3-* con il ragionamento disattivato, il Plugin incluso invia:chat_template_kwargs nei parametri del modello. Se si imposta anche params.extra_body.chat_template_kwargs, tale valore ha la precedenza perché extra_body è l’ultima sostituzione applicata al corpo della richiesta.Le chiamate agli strumenti di Qwen vengono visualizzate come testo
Le chiamate agli strumenti di Qwen vengono visualizzate come testo
Verificare innanzitutto che vLLM sia stato avviato con il parser delle chiamate agli strumenti e il modello di chat corretti per il modello. La documentazione di vLLM indica Sostituire l’ID del modello con l’ID esatto restituito da Questa è una soluzione alternativa facoltativa: forza ogni turno che include strumenti a effettuare una chiamata a uno strumento, quindi va usata solo per una voce di modello dedicata in cui tale comportamento sia accettabile. Non impostarla come valore predefinito globale per tutti i modelli vLLM e non abbinarla a un proxy che converte testo arbitrario dell’assistente in chiamate eseguibili agli strumenti.
hermes per i modelli Qwen2.5 e qwen3_xml per i modelli Qwen3-Coder.Sintomi: le Skills/gli strumenti non vengono mai eseguiti, l’assistente stampa JSON/XML non elaborato come {"name":"read","arguments":...} oppure vLLM restituisce un array tool_calls vuoto quando OpenClaw invia tool_choice: "auto".Alcune combinazioni di Qwen/vLLM restituiscono chiamate agli strumenti strutturate solo quando la richiesta usa tool_choice: "required". Forzarne l’uso per singolo modello tramite params.extra_body:openclaw models list --provider vllm, oppure applicare la stessa sostituzione dalla CLI:URL di base personalizzato
URL di base personalizzato
Se il server vLLM è in esecuzione su un host o una porta non predefiniti, impostare
baseUrl nella configurazione esplicita del provider:Risoluzione dei problemi
Prima risposta lenta o timeout del server remoto
Prima risposta lenta o timeout del server remoto
Per modelli locali di grandi dimensioni, host LAN remoti o collegamenti tailnet, impostare un timeout delle richieste specifico del provider:
timeoutSeconds si applica soltanto alle richieste HTTP dei modelli vLLM: configurazione della connessione, intestazioni della risposta, streaming del corpo e interruzione complessiva del recupero protetto. Aumenta inoltre il limite del watchdog di inattività/streaming dell’LLM oltre il valore predefinito implicito di circa 120 secondi per questo provider. È preferibile usare questa opzione anziché aumentare agents.defaults.timeoutSeconds, che controlla l’intera esecuzione dell’agente.Server non raggiungibile
Server non raggiungibile
Verificare che il server vLLM sia in esecuzione e accessibile:Se viene visualizzato un errore di connessione, verificare l’host, la porta e che vLLM sia stato avviato in modalità server compatibile con OpenAI. OpenClaw considera attendibile l’origine esatta configurata in
models.providers.vllm.baseUrl per le richieste protette ai modelli su endpoint loopback, LAN e Tailscale. Le origini di metadati/link-local rimangono bloccate senza un’abilitazione esplicita. Impostare models.providers.vllm.request.allowPrivateNetwork: true solo quando le richieste vLLM devono raggiungere un’altra origine privata, oppure false per disattivare l’attendibilità dell’origine esatta.Errori di autenticazione nelle richieste
Errori di autenticazione nelle richieste
Se le richieste non riescono a causa di errori di autenticazione, impostare una vera
VLLM_API_KEY che corrisponda alla configurazione del server oppure configurare esplicitamente il provider in models.providers.vllm.Nessun modello rilevato
Nessun modello rilevato
Il rilevamento automatico richiede che
VLLM_API_KEY sia impostata. Se è stato definito models.providers.vllm, OpenClaw usa soltanto i modelli dichiarati, a meno che agents.defaults.models non includa "vllm/*": {}.Gli strumenti vengono visualizzati come testo non elaborato
Gli strumenti vengono visualizzati come testo non elaborato
Se un modello Qwen stampa la sintassi JSON/XML degli strumenti invece di eseguire una Skill:
- Avviare vLLM con il parser/modello corretto per quel modello.
- Verificare l’ID esatto del modello con
openclaw models list --provider vllm. - Aggiungere una sostituzione dedicata per modello
params.extra_body.tool_choice: "required"solo setool_choice: "auto"continua a restituire chiamate agli strumenti vuote o composte esclusivamente da testo.
Contenuti correlati
Selezione del modello
Scelta dei provider, dei riferimenti ai modelli e del comportamento di failover.
OpenAI
Provider OpenAI nativo e comportamento delle route compatibili con OpenAI.
OAuth e autenticazione
Dettagli sull’autenticazione e regole per il riutilizzo delle credenziali.
Risoluzione dei problemi
Problemi comuni e relative soluzioni.