Modèles locaux
Le local est possible, mais OpenClaw attend un grand contexte ainsi que de solides défenses contre l’injection de prompt. Les petites cartes tronquent le contexte et dégradent la sécurité. Visez haut : ≥2 Mac Studio au maximum de leur configuration ou un rig GPU équivalent (~30 k$+). Un seul GPU de 24 Go ne fonctionne que pour des prompts plus légers, avec une latence plus élevée. Utilisez la variante de modèle la plus grande / en taille complète que vous pouvez exécuter ; les checkpoints fortement quantifiés ou « small » augmentent le risque d’injection de prompt (voir Security). Si vous voulez la configuration locale avec le moins de friction, commencez par LM Studio ou Ollama puis lancezopenclaw onboard. Cette page est le guide prescriptif pour des piles locales haut de gamme et des serveurs locaux personnalisés compatibles OpenAI.
Recommandé : LM Studio + grand modèle local (API Responses)
La meilleure pile locale actuelle. Chargez un grand modèle dans LM Studio (par exemple, une version complète de Qwen, DeepSeek ou Llama), activez le serveur local (par défauthttp://127.0.0.1:1234), et utilisez l’API Responses pour séparer le raisonnement du texte final.
- Installez LM Studio : https://lmstudio.ai
- Dans LM Studio, téléchargez la plus grande version de modèle disponible (évitez les variantes « small » / fortement quantifiées), démarrez le serveur, puis vérifiez que
http://127.0.0.1:1234/v1/modelsl’affiche. - Remplacez
my-local-modelpar l’ID réel du modèle affiché dans LM Studio. - Gardez le modèle chargé ; un chargement à froid ajoute de la latence au démarrage.
- Ajustez
contextWindow/maxTokenssi votre version de LM Studio diffère. - Pour WhatsApp, restez sur l’API Responses afin que seul le texte final soit envoyé.
models.mode: "merge" afin que les solutions de repli restent disponibles.
Configuration hybride : primaire hébergé, repli local
Priorité au local avec filet de sécurité hébergé
Inversez l’ordre entre primaire et fallback ; conservez le même bloc providers etmodels.mode: "merge" afin de pouvoir basculer vers Sonnet ou Opus quand la machine locale est indisponible.
Hébergement régional / routage des données
- Des variantes MiniMax/Kimi/GLM hébergées existent aussi sur OpenRouter avec des points de terminaison épinglés par région (par exemple, hébergés aux États-Unis). Choisissez-y la variante régionale pour conserver le trafic dans la juridiction de votre choix tout en utilisant
models.mode: "merge"pour les fallbacks Anthropic/OpenAI. - Le local uniquement reste la voie la plus protectrice pour la confidentialité ; le routage régional hébergé est l’option intermédiaire lorsque vous avez besoin de fonctionnalités du fournisseur tout en gardant le contrôle du flux de données.
Autres proxys locaux compatibles OpenAI
vLLM, LiteLLM, OAI-proxy ou des passerelles personnalisées fonctionnent s’ils exposent un point de terminaison/v1 de style OpenAI. Remplacez le bloc provider ci-dessus par votre point de terminaison et votre ID de modèle :
models.mode: "merge" pour que les modèles hébergés restent disponibles en fallback.
Remarque de comportement pour les backends locaux / proxifiés /v1 :
- OpenClaw les traite comme des routes compatibles OpenAI de type proxy, et non comme des points de terminaison OpenAI natifs
- le façonnage de requête réservé à OpenAI natif ne s’applique pas ici : pas de
service_tier, pas destoreResponses, pas de façonnage de payload de compatibilité de raisonnement OpenAI, et pas d’indices de cache de prompt - les en-têtes d’attribution OpenClaw masqués (
originator,version,User-Agent) ne sont pas injectés sur ces URL de proxy personnalisées
- Certains serveurs n’acceptent que
messages[].contentsous forme de chaîne sur Chat Completions, et non des tableaux structurés de parties de contenu. Définissezmodels.providers.<provider>.models[].compat.requiresStringContent: truepour ces points de terminaison. - Certains backends locaux plus petits ou plus stricts sont instables avec la forme complète des prompts du runtime d’agent d’OpenClaw, en particulier lorsque des schémas d’outils sont inclus. Si le backend fonctionne pour de petits appels directs à
/v1/chat/completionsmais échoue sur des tours d’agent OpenClaw normaux, essayez d’abordagents.defaults.experimental.localModelLean: truepour retirer les outils par défaut les plus lourds commebrowser,cronetmessage; il s’agit d’un indicateur expérimental, pas d’un réglage stable du mode par défaut. Voir Experimental Features. Si cela échoue encore, essayezmodels.providers.<provider>.models[].compat.supportsTools: false. - Si le backend échoue encore uniquement sur des exécutions OpenClaw plus importantes, le problème restant est généralement une limite de capacité du modèle/serveur en amont ou un bug du backend, et non la couche de transport d’OpenClaw.
Dépannage
- Le Gateway peut atteindre le proxy ?
curl http://127.0.0.1:1234/v1/models. - Le modèle LM Studio est déchargé ? Rechargez-le ; le démarrage à froid est une cause fréquente de « blocage ».
- OpenClaw avertit lorsque la fenêtre de contexte détectée est inférieure à 32k et bloque en dessous de 16k. Si vous atteignez cette vérification préalable, augmentez la limite de contexte du serveur/modèle ou choisissez un modèle plus grand.
- Erreurs de contexte ? Réduisez
contextWindowou augmentez la limite de votre serveur. - Le serveur compatible OpenAI renvoie
messages[].content ... expected a string? Ajoutezcompat.requiresStringContent: truesur cette entrée de modèle. - Les petits appels directs à
/v1/chat/completionsfonctionnent, maisopenclaw infer model runéchoue sur Gemma ou un autre modèle local ? Désactivez d’abord les schémas d’outils aveccompat.supportsTools: false, puis retestez. Si le serveur plante encore uniquement sur de plus gros prompts OpenClaw, considérez cela comme une limite du serveur/modèle en amont. - Sécurité : les modèles locaux contournent les filtres côté fournisseur ; gardez les agents limités et Compaction activé pour limiter le rayon d’impact d’une injection de prompt.