/api/chat), et non avec le point de terminaison compatible avec OpenAI
/v1. Trois modes sont pris en charge :
ollama-cloud, consultez
Ollama Cloud. Utilisez des références ollama-cloud/<model> lorsque
vous souhaitez que le routage cloud reste séparé d’un fournisseur local ollama.
La clé de configuration canonique est baseUrl. baseURL est également acceptée pour
les exemples de style SDK OpenAI, mais toute nouvelle configuration doit utiliser baseUrl.
Règles d’authentification
Hôtes locaux et du réseau local
Hôtes locaux et du réseau local
.local et utilisant un nom d’hôte seul ne nécessitent pas de véritable jeton porteur. OpenClaw utilise le marqueur ollama-local pour celles-ci.Hôtes distants et Ollama Cloud
Hôtes distants et Ollama Cloud
https://ollama.com nécessitent de véritables identifiants : OLLAMA_API_KEY, un profil d’authentification ou la valeur apiKey du fournisseur. Pour une utilisation hébergée directe, privilégiez le fournisseur ollama-cloud.Identifiants de fournisseur personnalisés
Identifiants de fournisseur personnalisés
api: "ollama" suit les mêmes règles. Par exemple, un fournisseur ollama-remote pointant vers un hôte privé du réseau local peut utiliser apiKey: "ollama-local" ; les sous-agents résolvent ce marqueur par l’intermédiaire du hook du fournisseur Ollama au lieu de le considérer comme des identifiants manquants. agents.defaults.memorySearch.provider peut également pointer vers un identifiant de fournisseur personnalisé afin que les plongements utilisent ce point de terminaison Ollama.Profils d'authentification
Profils d'authentification
auth-profiles.json stocke les identifiants d’un identifiant de fournisseur ; placez les paramètres du point de terminaison (baseUrl, api, modèles, en-têtes, délais d’expiration) dans models.providers.<id>. Les anciens fichiers plats tels que { "ollama-windows": { "apiKey": "ollama-local" } } ne constituent pas un format d’exécution ; openclaw doctor --fix les réécrit sous la forme d’un profil canonique de clé API ollama-windows:default, avec une sauvegarde. Une valeur baseUrl dans cet ancien fichier est superflue et doit être déplacée vers la configuration du fournisseur.Portée des plongements de mémoire
Portée des plongements de mémoire
- Une clé au niveau du fournisseur est envoyée uniquement à l’hôte de ce fournisseur.
agents.*.memorySearch.remote.apiKeyest envoyé uniquement à son hôte distant de plongement.- Une valeur d’environnement
OLLAMA_API_KEYseule est considérée comme la convention Ollama Cloud et n’est pas envoyée par défaut aux hôtes locaux ou auto-hébergés.
Prise en main
- Intégration (recommandée)
- Configuration manuelle
Exécuter l'intégration
Sélectionner un modèle
Cloud only demande OLLAMA_API_KEY et suggère les valeurs cloud hébergées par défaut. Cloud + Local et Local only demandent une URL de base Ollama, découvrent les modèles disponibles et téléchargent automatiquement le modèle local sélectionné s’il est absent. Une étiquette :latest installée, telle que gemma4:latest, est affichée une seule fois au lieu de dupliquer gemma4. Cloud + Local vérifie également si une session est ouverte sur l’hôte pour l’accès au cloud.Vérifier
--custom-base-url et --custom-model-id sont facultatifs ; les omettre utilise l’hôte local par défaut et le modèle suggéré gemma4.Modèles cloud par l’intermédiaire d’un hôte local
Cloud + Local achemine les modèles locaux et :cloud par l’intermédiaire d’un seul hôte
Ollama accessible — il s’agit du flux hybride d’Ollama et du mode à choisir pendant la configuration
lorsque vous souhaitez utiliser les deux.
OpenClaw demande l’URL de base, découvre les modèles locaux et vérifie
l’état de ollama signin. Lorsqu’une session est ouverte, il suggère les valeurs hébergées par défaut
(kimi-k2.5:cloud, minimax-m2.7:cloud, glm-5.1:cloud, glm-5.2:cloud). Si
aucune session n’est ouverte, la configuration reste exclusivement locale jusqu’à l’exécution de ollama signin.
Pour un accès exclusivement cloud sans démon local, utilisez openclaw onboard --auth-choice ollama-cloud et consultez Ollama Cloud — ce chemin ne nécessite ni ollama signin ni serveur en cours d’exécution :
openclaw onboard est obtenue en direct depuis
https://ollama.com/api/tags, avec une limite de 500 entrées, afin que le sélecteur reflète
le catalogue hébergé actuel. Si ollama.com est inaccessible ou ne renvoie aucun
modèle au moment de la configuration, OpenClaw utilise sa liste de suggestions codée en dur afin que
l’intégration puisse tout de même aboutir.
Découverte des modèles (fournisseur implicite)
LorsqueOLLAMA_API_KEY (ou un profil d’authentification) est défini et que ni
models.providers.ollama ni aucun autre fournisseur personnalisé avec api: "ollama" n’est
défini, OpenClaw découvre les modèles à partir de http://127.0.0.1:11434 :
models.providers.ollama avec un tableau models explicite, ou un
fournisseur personnalisé avec api: "ollama" et une valeur baseUrl hors bouclage, désactive
la découverte automatique ; les modèles doivent alors être définis manuellement (consultez
Configuration). Une entrée models.providers.ollama pointant vers
la valeur hébergée https://ollama.com ignore également la découverte, car les modèles Ollama Cloud
sont gérés par le fournisseur. Les fournisseurs personnalisés de bouclage tels que
http://127.0.0.2:11434 sont toujours considérés comme locaux et conservent la découverte automatique.
Vous pouvez utiliser une référence complète telle que ollama/<pulled-model>:latest sans
entrée models.json écrite manuellement ; OpenClaw la résout en direct. Pour les hôtes
avec une session ouverte, la sélection d’une référence ollama/<model>:cloud non répertoriée valide ce
modèle exact avec /api/show et ne l’ajoute au catalogue d’exécution que si Ollama
confirme les métadonnées — les fautes de frappe échouent toujours avec une erreur de modèle inconnu.
Tests rapides
Pour une sonde textuelle ciblée qui ignore toute la surface d’outils de l’agent :--file avec une image pour effectuer une sonde légère d’un modèle de vision (accepte les formats PNG/JPEG/WebP ;
les fichiers qui ne sont pas des images sont rejetés avant l’appel à Ollama — utilisez
openclaw infer audio transcribe pour l’audio) :
/model ollama/<model> constitue un choix exact de l’utilisateur : si la valeur
baseUrl configurée est inaccessible, la réponse suivante échoue avec l’erreur du fournisseur
au lieu de basculer silencieusement vers un autre modèle configuré.
Les tâches Cron isolées ajoutent un contrôle de sécurité local avant de démarrer le tour de l’agent :
si le modèle sélectionné se résout vers un fournisseur Ollama local/sur réseau
privé/.local et que /api/tags est inaccessible, OpenClaw
enregistre cette exécution comme skipped, avec le modèle dans le texte
de l’erreur. Ce contrôle du point de terminaison est mis en cache pendant
5 minutes par hôte, afin que les tâches Cron répétées visant un démon arrêté
ne lancent pas toutes des requêtes vouées à l’échec.
Vérification en conditions réelles :
OPENCLAW_LIVE_OLLAMA_EMBEDDINGS=1, car une clé cloud peut ne pas autoriser
/api/embed) :
Inférence locale au Node
Les agents peuvent déléguer une tâche courte à un modèle Ollama sur un ordinateur de bureau ou un Node serveur appairé. Le prompt et la réponse transitent par la connexion Gateway/Node authentifiée existante ; la requête s’exécute sur le point de terminaison Ollama en boucle locale du Node (http://127.0.0.1:11434).
Démarrer Ollama sur le Node
Connecter l’hôte du Node
ollama.models et ollama.chat, vérifiez de nouveau
openclaw nodes pending.L’utiliser depuis un agent
node_inference. Les agents appellent
d’abord action: "discover", puis action: "run" avec un Node et un modèle
issus de ce résultat (run peut omettre le Node lorsqu’un seul
Node compatible est connecté). Par exemple : « Découvrez les modèles Ollama
sur mes Nodes, puis utilisez le modèle chargé le plus rapide pour résumer ce texte. »/api/tags, vérifie les capacités /api/show et
utilise /api/ps lorsqu’il est disponible pour classer en premier les
modèles déjà chargés. Elle renvoie uniquement les modèles locaux signalés par
Ollama comme compatibles avec le chat (capacité completion) — les entrées
Ollama Cloud et les modèles réservés aux embeddings sont exclus. Chaque exécution
désactive la réflexion du modèle et limite la sortie par défaut à 512 tokens
(plafond strict de 8192), sauf si l’appel d’outil demande une autre valeur
maxTokens ; certains modèles (par exemple GPT-OSS) ne prennent pas en
charge la désactivation de la réflexion et peuvent tout de même émettre des tokens
de raisonnement.
Pour laisser Ollama s’exécuter sur un Node sans l’exposer aux agents :
openclaw node restart, ou arrêtez puis relancez
openclaw node run pour une session au premier plan). Le Node cesse d’annoncer
ollama.models et ollama.chat ; Ollama lui-même et le fournisseur
Ollama du Gateway ne sont pas affectés. Rétablissez la valeur sur
true et redémarrez pour réactiver la fonctionnalité ; une surface
de commandes modifiée peut nécessiter une nouvelle approbation
openclaw nodes pending après la reconnexion.
Vérifiez directement les commandes du Node, sans tour d’agent :
--invoke-timeout limite la durée dont dispose le Node pour exécuter la commande ;
--timeout limite la durée totale de l’appel du Gateway et doit être supérieur.
L’inférence locale au Node utilise toujours le point de terminaison en boucle
locale propre au Node — elle ne réutilise pas un models.providers.ollama.baseUrl distant/cloud
configuré. Les commandes de Node sont disponibles par défaut sur les hôtes Node
macOS, Linux et Windows et restent soumises aux règles normales d’appairage et de
commande des Nodes.
Vision et description d’images
Le Plugin Ollama intégré enregistre Ollama comme fournisseur de compréhension des médias capable de traiter des images, afin qu’OpenClaw puisse acheminer les demandes explicites de description d’image et les valeurs par défaut configurées des modèles d’image vers des modèles de vision Ollama locaux ou hébergés.--model doit être une référence <provider/model> complète ; lorsqu’elle
est définie, infer image describe essaie d’abord ce modèle au lieu d’ignorer la
description pour les modèles qui prennent déjà en charge la vision native. Si
l’appel échoue, OpenClaw peut poursuivre via agents.defaults.imageModel.fallbacks ; les erreurs de
préparation de fichier/URL échouent avant toute tentative de repli. Utilisez
infer image describe pour le flux de compréhension d’images d’OpenClaw et les
imageModel configurés ; utilisez infer model run --file pour une sonde
multimodale brute avec un prompt personnalisé.
Pour faire d’Ollama le fournisseur de compréhension d’images par défaut pour les
médias entrants :
ollama/<model> complète. Une référence
imageModel nue telle que qwen2.5vl:7b est normalisée en
ollama/qwen2.5vl:7b uniquement lorsque ce modèle exact est répertorié sous
models.providers.ollama.models avec input: ["text", "image"] et qu’aucun autre fournisseur d’images
configuré n’expose le même identifiant nu ; sinon, utilisez explicitement le
préfixe du fournisseur.
Les modèles de vision locaux lents peuvent nécessiter un délai d’expiration de
compréhension d’images plus long que les modèles cloud et peuvent planter sur du
matériel aux ressources limitées si Ollama tente d’allouer l’intégralité du
contexte de vision annoncé par le modèle. Définissez un délai d’expiration de
capacité et plafonnez num_ctx :
image. models.providers.ollama.timeoutSeconds contrôle toujours la
limite de la requête HTTP Ollama sous-jacente pour les appels de modèle normaux.
Vérification en conditions réelles :
models.providers.ollama.models, marquez explicitement les
modèles de vision :
/api/show.
Configuration
- Basique (découverte implicite)
- Explicite (modèles manuels)
- URL de base personnalisée
Recettes courantes
Remplacez les identifiants de modèles par les noms exacts provenant deollama list ou openclaw models list --provider ollama.
Modèle local avec découverte automatique
Modèle local avec découverte automatique
models.providers.ollama, sauf si vous avez besoin de modèles
manuels.Hôte Ollama sur le LAN avec modèles manuels
Hôte Ollama sur le LAN avec modèles manuels
contextWindow est le budget de contexte d’OpenClaw ; params.num_ctx
est envoyé à Ollama. Maintenez-les alignés lorsque le matériel ne peut pas
exécuter le contexte complet annoncé par le modèle.Ollama Cloud uniquement
Ollama Cloud uniquement
ollama-cloud au lieu de cette structure, consultez
Ollama Cloud.Cloud et local via un daemon connecté
Cloud et local via un daemon connecté
Plusieurs hôtes Ollama
Plusieurs hôtes Ollama
ollama/ simple) avant d’appeler Ollama, de sorte que ollama-large/qwen3.5:27b
parvient à Ollama sous la forme qwen3.5:27b.Profil allégé pour modèle local
Profil allégé pour modèle local
compat.supportsTools: false uniquement lorsque le modèle ou le serveur échoue systématiquement
avec les schémas d’outils — cela réduit les capacités de l’agent au profit de la stabilité.
localModelLean retire de l’interface directe de l’agent les outils lourds de navigateur, de cron, de messagerie, de génération de médias,
de voix et de PDF, sauf s’ils sont explicitement requis,
et place les catalogues plus volumineux derrière la recherche d’outils. Cela ne modifie ni le
contexte d’exécution d’Ollama ni son mode de réflexion. Associez-le à params.num_ctx et
params.thinking: false pour les petits modèles de réflexion de type Qwen qui tournent en boucle ou
consacrent leur budget au raisonnement masqué.Sélection du modèle
ollama-spark/qwen3:32b, OpenClaw retire ce préfixe avant
d’appeler Ollama et envoie qwen3:32b.
Pour les modèles locaux lents, privilégiez un réglage propre au fournisseur avant d’augmenter le délai d’expiration
de l’ensemble de l’environnement d’exécution de l’agent :
timeoutSeconds couvre la requête HTTP du modèle : établissement de la connexion, en-têtes,
diffusion du corps et abandon total de la récupération protégée. params.keep_alive est
transmis comme keep_alive de niveau supérieur dans les requêtes /api/chat natives ; définissez-le pour chaque
modèle lorsque le temps de chargement du premier tour constitue le goulot d’étranglement.
Vérification rapide
127.0.0.1 par l’hôte baseUrl. Si curl
fonctionne, mais pas OpenClaw, vérifiez si le Gateway s’exécute sur une autre
machine, dans un autre conteneur ou sous un autre compte de service.
Recherche web Ollama
OpenClaw inclut Ollama Web Search comme fournisseurweb_search.
openclaw onboard ou openclaw configure --section web, ou définissez :
/api/experimental/web_search,
puis se replie sur le chemin hébergé /api/web_search du même hôte ; un
daemon local connecté répond normalement par l’intermédiaire du proxy local. Les appels directs
https://ollama.com utilisent toujours le point de terminaison hébergé /api/web_search.
Configuration avancée
Mode hérité compatible avec OpenAI
Mode hérité compatible avec OpenAI
api: "openai-completions" pour un proxy situé derrière
/v1/chat/completions :params: { streaming: false } sur le modèle.OpenClaw injecte options.num_ctx par défaut dans ce mode afin qu’Ollama ne
se replie pas silencieusement sur un contexte de 4096 jetons. Si votre proxy rejette
les champs options inconnus, désactivez cette option :Fenêtres de contexte
Fenêtres de contexte
/api/show,
y compris les valeurs PARAMETER num_ctx plus élevées provenant de Modelfiles
personnalisés ; sinon, il utilise par défaut la fenêtre de contexte Ollama d’OpenClaw.Les paramètres contextWindow, contextTokens et maxTokens au niveau du fournisseur définissent
les valeurs par défaut de chaque modèle de ce fournisseur et peuvent être remplacés pour chaque
modèle. contextWindow correspond au budget d’invite et de Compaction propre à OpenClaw. Les requêtes
/api/chat natives laissent options.num_ctx indéfini, sauf si vous définissez
explicitement params.num_ctx, afin qu’Ollama applique sa propre valeur par défaut fondée sur le modèle,
OLLAMA_CONTEXT_LENGTH ou la VRAM ; les valeurs params.num_ctx non valides, nulles, négatives
ou non finies sont ignorées. Si une ancienne configuration utilisait
uniquement contextWindow/maxTokens pour imposer le contexte des requêtes natives, exécutez
openclaw doctor --fix afin de copier ces valeurs dans params.num_ctx. L’adaptateur
compatible avec OpenAI injecte toujours options.num_ctx par défaut à partir de
params.num_ctx ou contextWindow configuré ; désactivez cette option avec
injectNumCtxForOpenAICompat: false si le service en amont rejette options.Les entrées de modèles natifs acceptent également les options d’exécution Ollama courantes sous
params, transmises comme options /api/chat natives : 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 et num_thread.
Quelques clés (format, keep_alive, truncate, shift) sont transmises comme
champs de requête de niveau supérieur plutôt que sous options. OpenClaw transmet uniquement
ces clés de requête Ollama, de sorte que les paramètres propres à l’environnement d’exécution tels que
streaming ne sont jamais envoyés à Ollama. Utilisez params.think (ou
params.thinking) pour définir think au niveau supérieur ; false désactive la
réflexion au niveau de l’API pour les modèles de réflexion de type Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx propre au modèle
fonctionne également ; l’entrée de modèle explicite du fournisseur prévaut si les deux sont définies.Contrôle de la réflexion
Contrôle de la réflexion
think au niveau supérieur, et non
options.think. Les modèles découverts automatiquement dont /api/show signale une
capacité thinking exposent /think low, /think medium, /think high
et /think max ; les modèles sans réflexion exposent uniquement /think off.params.think/params.thinking propres à chaque modèle peuvent désactiver ou forcer le
raisonnement de l’API pour un modèle spécifique. OpenClaw conserve cette configuration explicite
lorsque l’exécution active ne possède que la valeur par défaut implicite off ; une commande
d’exécution qui ne désactive pas le raisonnement, telle que /think medium, la remplace tout de même. Une demande
de raisonnement vraie n’est jamais envoyée à un modèle explicitement marqué
reasoning: false ; une demande think: false est toujours envoyée quoi qu’il arrive.Modèles de raisonnement
Modèles de raisonnement
deepseek-r1, reasoning, reason ou think sont considérés
par défaut comme capables de raisonnement — aucune configuration supplémentaire n’est nécessaire :Coûts des modèles
Coûts des modèles
0, tant pour les
modèles détectés automatiquement que pour ceux définis manuellement.Embeddings de mémoire
Embeddings de mémoire
/api/embed et regroupe plusieurs fragments de mémoire dans
une seule requête input lorsque cela est possible.Lorsque proxy.enabled=true, les requêtes d’embedding vers l’origine de bouclage
locale à l’hôte exacte, dérivée de la valeur baseUrl configurée, utilisent le chemin
direct protégé d’OpenClaw plutôt que le proxy de transfert géré. Le nom d’hôte configuré
doit lui-même être localhost ou une adresse IP littérale de bouclage — les noms DNS
qui se résolvent simplement vers une adresse de bouclage utilisent toujours le chemin du proxy géré. Les hôtes
Ollama du réseau local, du tailnet, d’un réseau privé ou publics restent toujours sur le
chemin du proxy géré, et les redirections vers un autre hôte ou port n’héritent pas
de cette confiance. proxy.loopbackMode: "proxy" fait tout de même transiter le trafic de bouclage par le
proxy ; proxy.loopbackMode: "block" le refuse avant la connexion —
consultez Proxy géré.nomic-embed-text, qwen3-embedding et
mxbai-embed-large. Les lots de documents restent bruts ; les index existants ne nécessitent donc
aucune migration de format.Configuration du streaming
Configuration du streaming
/api/chat), qui prend en charge
simultanément le streaming et les appels d’outils — aucune configuration particulière n’est nécessaire.Pour les requêtes natives, le contrôle du raisonnement est transmis directement : /think off
et openclaw agent --thinking off envoient le paramètre de premier niveau think: false, sauf si
une valeur explicite params.think/params.thinking est configurée ; /think low|medium|high envoie la chaîne d’effort correspondante ; /think max correspond au
niveau d’effort maximal d’Ollama, think: "high".Dépannage
Boucle de plantage WSL2 (redémarrages répétés)
Boucle de plantage WSL2 (redémarrages répétés)
ollama.service avec Restart=always. Si ce service
démarre automatiquement et charge un modèle utilisant le GPU pendant le démarrage de WSL2, Ollama peut monopoliser
la mémoire de l’hôte pendant le chargement ; la récupération de mémoire d’Hyper-V ne peut pas toujours récupérer
ces pages, si bien que Windows peut arrêter la machine virtuelle WSL2, systemd redémarre
Ollama et la boucle se répète.Indices : redémarrages ou arrêts répétés de WSL2, utilisation élevée du processeur dans app.slice ou
ollama.service juste après le démarrage de WSL2, et signal SIGTERM envoyé par systemd plutôt
qu’une intervention du mécanisme OOM de Linux.OpenClaw consigne un avertissement au démarrage lorsqu’il détecte WSL2, ollama.service
activé avec Restart=always, ainsi que des marqueurs CUDA visibles.Mesure d’atténuation :%USERPROFILE%\.wslconfig, puis exécutez
wsl --shutdown :Ollama non détecté
Ollama non détecté
OLLAMA_API_KEY (ou un profil d’authentification) est défini
et que models.providers.ollama n’est pas défini explicitement :Aucun modèle disponible
Aucun modèle disponible
models.providers.ollama :Connexion refusée
Connexion refusée
L’hôte distant fonctionne avec curl, mais pas avec OpenClaw
L’hôte distant fonctionne avec curl, mais pas avec OpenClaw
baseUrlpointe verslocalhost, mais le Gateway s’exécute dans Docker ou sur un autre hôte.- L’URL utilise
/v1, ce qui sélectionne le comportement compatible avec OpenAI plutôt que le comportement natif d’Ollama. - L’hôte distant nécessite une modification du pare-feu ou de la liaison au réseau local.
- Le modèle se trouve dans le démon de votre ordinateur portable, mais pas dans celui de l’hôte distant.
Le modèle renvoie le JSON des outils sous forme de texte
Le modèle renvoie le JSON des outils sous forme de texte
compat.supportsTools: false dans l’entrée de ce modèle et effectuez un nouveau test.Kimi ou GLM renvoie des symboles illisibles
Kimi ou GLM renvoie des symboles illisibles
Cloud + Local ou Cloud only, puis essayez une nouvelle
session et un modèle de repli :Le modèle local froid expire
Le modèle local froid expire
timeoutSeconds
prolonge également le délai de connexion protégé pour ce fournisseur.Le modèle à grand contexte est trop lent ou manque de mémoire
Le modèle à grand contexte est trop lent ou manque de mémoire
params.num_ctx est défini. Limitez à la fois le budget d’OpenClaw et le contexte de requête
d’Ollama afin d’obtenir une latence prévisible avant le premier token :contextWindow si OpenClaw envoie une invite trop volumineuse. Réduisez
params.num_ctx si le contexte d’exécution d’Ollama est trop grand pour la machine.
Réduisez maxTokens si la génération dure trop longtemps.Voir aussi
Ollama Cloud
ollama-cloud.