openai-completions et peut détecter automatiquement les modèles lorsque vous activez cette fonctionnalité avec VLLM_API_KEY.
Bien démarrer
1
Démarrer vLLM avec un serveur compatible avec OpenAI
Votre URL de base doit exposer les points de terminaison
/v1 (/v1/models, /v1/chat/completions). vLLM s’exécute généralement à l’adresse suivante :2
Définir la variable d’environnement de la clé API
Toute valeur non vide convient si votre serveur n’impose pas d’authentification :
3
Sélectionner un modèle
Remplacez l’identifiant par celui de l’un de vos modèles vLLM :
4
Vérifier que le modèle est disponible
Détection des modèles (fournisseur implicite)
LorsqueVLLM_API_KEY est défini (ou qu’un profil d’authentification existe) et que models.providers.vllm n’est pas défini, OpenClaw interroge GET http://127.0.0.1:8000/v1/models et convertit les identifiants renvoyés en entrées de modèle.
Si vous définissez explicitement
models.providers.vllm, OpenClaw utilise uniquement les modèles que vous avez déclarés. Ajoutez "vllm/*": {} à agents.defaults.models pour qu’OpenClaw interroge également le point de terminaison /models de ce fournisseur configuré et inclue tous les modèles vLLM annoncés.Configuration explicite
Utilisez une configuration explicite lorsque vLLM s’exécute sur un autre hôte ou port, lorsque vous souhaitez fixercontextWindow/maxTokens, lorsque votre serveur exige une véritable clé API ou lorsque vous vous connectez à un point de terminaison de boucle locale, du réseau local ou Tailscale de confiance :
Configuration avancée
Comportement de type proxy
Comportement de type proxy
vLLM est traité comme un service principal
/v1 compatible avec OpenAI et fonctionnant comme un proxy, et non comme un point de terminaison OpenAI natif :Contrôles de réflexion de Qwen
Contrôles de réflexion de Qwen
Pour les modèles Qwen, définissez OpenClaw associe Les niveaux de réflexion autres que
compat.thinkingFormat: "qwen-chat-template" sur la ligne du modèle lorsque le serveur attend les arguments nommés du modèle de discussion Qwen. Ces modèles exposent un profil /think binaire (off, on), car la réflexion du modèle de discussion Qwen est une option activée ou désactivée, et non une échelle d’effort de type OpenAI./think off à :off envoient enable_thinking: true. Si votre point de terminaison attend plutôt des indicateurs de premier niveau de type DashScope, utilisez compat.thinkingFormat: "qwen" pour envoyer enable_thinking à la racine de la requête.Contrôles de réflexion de Nemotron 3
Contrôles de réflexion de Nemotron 3
Pour les modèles Pour personnaliser ces valeurs, définissez
vllm/nemotron-3-* dont la réflexion est désactivée, le Plugin intégré envoie :chat_template_kwargs dans les paramètres du modèle. Si vous définissez également params.extra_body.chat_template_kwargs, cette valeur prévaut, car extra_body constitue la dernière substitution du corps de la requête.Les appels d’outils Qwen apparaissent sous forme de texte
Les appels d’outils Qwen apparaissent sous forme de texte
Vérifiez d’abord que vLLM a été démarré avec l’analyseur d’appels d’outils et le modèle de discussion appropriés au modèle. La documentation de vLLM indique Remplacez l’identifiant du modèle par l’identifiant exact fourni par Il s’agit d’une solution de contournement facultative : elle force chaque tour comportant des outils à effectuer un appel d’outil. Utilisez-la donc uniquement pour une entrée de modèle dédiée lorsque ce comportement est acceptable. Ne la définissez pas comme valeur globale par défaut pour tous les modèles vLLM et ne l’associez pas à un proxy qui convertit arbitrairement le texte de l’assistant en appels d’outils exécutables.
hermes pour les modèles Qwen2.5 et qwen3_xml pour les modèles Qwen3-Coder.Symptômes : les Skills/outils ne s’exécutent jamais, l’assistant affiche du JSON/XML brut tel que {"name":"read","arguments":...}, ou vLLM renvoie un tableau tool_calls vide lorsqu’OpenClaw envoie tool_choice: "auto".Certaines combinaisons Qwen/vLLM renvoient des appels d’outils structurés uniquement lorsque la requête utilise tool_choice: "required". Forcez cette valeur pour chaque modèle avec params.extra_body :openclaw models list --provider vllm, ou appliquez la même substitution depuis la CLI :URL de base personnalisée
URL de base personnalisée
Si votre serveur vLLM s’exécute sur un hôte ou un port différent de celui par défaut, définissez
baseUrl dans la configuration explicite du fournisseur :Résolution des problèmes
Première réponse lente ou expiration du délai du serveur distant
Première réponse lente ou expiration du délai du serveur distant
Pour les grands modèles locaux, les hôtes distants du réseau local ou les liaisons de réseau Tailscale, définissez un délai d’expiration des requêtes propre au fournisseur :
timeoutSeconds s’applique uniquement aux requêtes HTTP des modèles vLLM : établissement de la connexion, en-têtes de réponse, diffusion en streaming du corps et abandon total de la récupération protégée. Il relève également le plafond du mécanisme de surveillance de l’inactivité et du streaming du LLM au-delà de la valeur implicite par défaut d’environ 120 secondes pour ce fournisseur. Préférez cette option à l’augmentation de agents.defaults.timeoutSeconds, qui contrôle l’intégralité de l’exécution de l’agent.Serveur inaccessible
Serveur inaccessible
Vérifiez que le serveur vLLM est en cours d’exécution et accessible :Si une erreur de connexion s’affiche, vérifiez l’hôte, le port et que vLLM a été démarré en mode serveur compatible avec OpenAI. OpenClaw fait confiance à l’origine exacte configurée dans
models.providers.vllm.baseUrl pour les requêtes de modèle protégées sur les points de terminaison de boucle locale, du réseau local et Tailscale. Les origines de métadonnées ou locales au lien restent bloquées sans activation explicite. Définissez models.providers.vllm.request.allowPrivateNetwork: true uniquement lorsque les requêtes vLLM doivent atteindre une autre origine privée, ou false pour désactiver la confiance accordée à l’origine exacte.Erreurs d’authentification lors des requêtes
Erreurs d’authentification lors des requêtes
Si les requêtes échouent avec des erreurs d’authentification, définissez une véritable valeur
VLLM_API_KEY correspondant à la configuration de votre serveur, ou configurez explicitement le fournisseur dans models.providers.vllm.Aucun modèle détecté
Aucun modèle détecté
La détection automatique exige que
VLLM_API_KEY soit défini. Si vous avez défini models.providers.vllm, OpenClaw utilise uniquement les modèles que vous avez déclarés, sauf si agents.defaults.models inclut "vllm/*": {}.Les outils s’affichent sous forme de texte brut
Les outils s’affichent sous forme de texte brut
Si un modèle Qwen affiche la syntaxe JSON/XML des outils au lieu d’exécuter une Skill :
- Démarrez vLLM avec l’analyseur et le modèle appropriés à ce modèle.
- Vérifiez l’identifiant exact du modèle avec
openclaw models list --provider vllm. - Ajoutez une substitution
params.extra_body.tool_choice: "required"dédiée à ce modèle uniquement sitool_choice: "auto"renvoie toujours des appels d’outils vides ou sous forme de texte uniquement.
Rubriques connexes
Sélection des modèles
Choix des fournisseurs, des références de modèles et du comportement de basculement.
OpenAI
Fournisseur OpenAI natif et comportement des routes compatibles avec OpenAI.
OAuth et authentification
Détails de l’authentification et règles de réutilisation des identifiants.
Résolution des problèmes
Problèmes courants et méthodes pour les résoudre.