OpenClaw s’intègre à l’API native d’Ollama (Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
/api/chat) pour les modèles cloud hébergés et les serveurs Ollama locaux/auto-hébergés. Vous pouvez utiliser Ollama selon trois modes : Cloud + Local via un hôte Ollama accessible, Cloud only avec https://ollama.com, ou Local only avec un hôte Ollama accessible.
La configuration du fournisseur Ollama utilise baseUrl comme clé canonique. OpenClaw accepte aussi baseURL pour la compatibilité avec les exemples de style SDK OpenAI, mais les nouvelles configurations devraient privilégier baseUrl.
Règles d’authentification
Hôtes locaux et LAN
Hôtes locaux et LAN
ollama-local uniquement pour les URL de base Ollama en local loopback, réseau privé, .local et nom d’hôte nu.Hôtes distants et Ollama Cloud
Hôtes distants et Ollama Cloud
https://ollama.com) exigent un véritable identifiant via OLLAMA_API_KEY, un profil d’authentification ou l’apiKey du fournisseur.IDs de fournisseurs personnalisés
IDs de fournisseurs personnalisés
api: "ollama" suivent les mêmes règles. Par exemple, un fournisseur ollama-remote qui pointe vers un hôte Ollama LAN privé peut utiliser apiKey: "ollama-local" et les sous-agents résoudront ce marqueur via le hook du fournisseur Ollama au lieu de le traiter comme un identifiant manquant. La recherche mémoire peut aussi définir agents.defaults.memorySearch.provider sur cet ID de fournisseur personnalisé afin que les embeddings utilisent le point de terminaison Ollama correspondant.Profils d’authentification
Profils d’authentification
auth-profiles.json stocke l’identifiant pour un ID de fournisseur. Placez les paramètres de point de terminaison (baseUrl, api, IDs de modèles, en-têtes, délais d’expiration) dans models.providers.<id>. Les anciens fichiers de profils d’authentification plats tels que { "ollama-windows": { "apiKey": "ollama-local" } } ne sont pas un format d’exécution ; exécutez openclaw doctor --fix pour les réécrire au format canonique de profil de clé API ollama-windows:default avec une sauvegarde. baseUrl dans ce fichier est du bruit de compatibilité et devrait être déplacé vers la configuration du fournisseur.Portée des embeddings mémoire
Portée des embeddings mémoire
- Une clé au niveau du fournisseur est envoyée uniquement à l’hôte Ollama de ce fournisseur.
agents.*.memorySearch.remote.apiKeyest envoyé uniquement à son hôte d’embeddings distant.- Une valeur d’environnement pure
OLLAMA_API_KEYest traitée comme la convention d’Ollama Cloud, et n’est pas envoyée par défaut aux hôtes locaux ou auto-hébergés.
Bien démarrer
Choisissez votre méthode et votre mode de configuration préférés.- Onboarding (recommandé)
- Configuration manuelle
Choisir votre mode
- Cloud + Local — hôte Ollama local plus modèles cloud routés via cet hôte
- Cloud only — modèles Ollama hébergés via
https://ollama.com - Local only — modèles locaux uniquement
Sélectionner un modèle
Cloud only demande OLLAMA_API_KEY et suggère des valeurs par défaut cloud hébergées. 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 n’est pas encore disponible. Quand Ollama signale une étiquette :latest installée comme gemma4:latest, la configuration affiche ce modèle installé une seule fois au lieu d’afficher à la fois gemma4 et gemma4:latest ou de télécharger à nouveau l’alias nu. Cloud + Local vérifie aussi si cet hôte Ollama est connecté pour l’accès cloud.Mode non interactif
Modèles cloud
- Cloud + Local
- Cloud only
- Local only
Cloud + Local utilise un hôte Ollama accessible comme point de contrôle pour les modèles locaux et cloud. C’est le flux hybride préféré d’Ollama.Utilisez Cloud + Local pendant la configuration. OpenClaw demande l’URL de base Ollama, découvre les modèles locaux depuis cet hôte et vérifie si l’hôte est connecté pour l’accès cloud avec ollama signin. Quand l’hôte est connecté, OpenClaw suggère aussi des valeurs par défaut cloud hébergées comme kimi-k2.5:cloud, minimax-m2.7:cloud et glm-5.1:cloud.Si l’hôte n’est pas encore connecté, OpenClaw garde la configuration en local uniquement jusqu’à ce que vous exécutiez ollama signin.Découverte de modèles (fournisseur implicite)
Quand vous définissezOLLAMA_API_KEY (ou un profil d’authentification) et que vous ne définissez pas models.providers.ollama ni un autre fournisseur distant personnalisé avec api: "ollama", OpenClaw découvre les modèles depuis l’instance Ollama locale sur http://127.0.0.1:11434.
| Comportement | Détail |
|---|---|
| Requête de catalogue | Interroge /api/tags |
| Détection des capacités | Utilise des recherches /api/show au mieux pour lire contextWindow, les paramètres Modelfile num_ctx développés, et les capacités, y compris vision/outils |
| Modèles vision | Les modèles avec une capacité vision signalée par /api/show sont marqués comme compatibles image (input: ["text", "image"]), OpenClaw injecte donc automatiquement les images dans le prompt |
| Détection du raisonnement | Utilise les capacités /api/show quand elles sont disponibles, y compris thinking ; revient à une heuristique de nom de modèle (r1, reasoning, think) quand Ollama omet les capacités |
| Limites de jetons | Définit maxTokens sur le plafond de jetons maximal par défaut d’Ollama utilisé par OpenClaw |
| Coûts | Définit tous les coûts à 0 |
ollama/<pulled-model>:latest dans infer model run local ; OpenClaw résout ce modèle installé depuis le catalogue live d’Ollama sans exiger d’entrée models.json écrite à la main.
Pour les hôtes Ollama connectés, certains modèles :cloud peuvent être utilisables via /api/chat
et /api/show avant d’apparaître dans /api/tags. Quand vous sélectionnez explicitement une
référence complète ollama/<model>:cloud, OpenClaw valide ce modèle manquant exact avec
/api/show et l’ajoute au catalogue d’exécution uniquement si Ollama confirme les
métadonnées du modèle. Les fautes de frappe échouent toujours comme modèles inconnus au lieu d’être créées automatiquement.
infer model run local avec une référence complète de modèle Ollama :
infer model run. Cela envoie le prompt et l’image directement au
modèle vision Ollama sélectionné sans charger les outils de discussion, la mémoire ou le contexte de
session précédent :
model run --file accepte les fichiers détectés comme image/*, y compris les entrées PNG,
JPEG et WebP courantes. Les fichiers non image sont rejetés avant l’appel à Ollama.
Pour la reconnaissance vocale, utilisez plutôt openclaw infer audio transcribe.
Quand vous changez une conversation avec /model ollama/<model>, OpenClaw traite
cela comme une sélection utilisateur exacte. Si le baseUrl Ollama configuré est
inaccessible, la réponse suivante échoue avec l’erreur du fournisseur au lieu de répondre silencieusement
depuis un autre modèle de fallback configuré.
Les tâches cron isolées effectuent une vérification de sécurité locale supplémentaire avant de démarrer le tour de l’agent. Si le modèle sélectionné se résout en fournisseur Ollama local, de réseau privé ou .local et que /api/tags est inaccessible, OpenClaw enregistre cette exécution cron comme skipped avec le ollama/<model> sélectionné dans le texte d’erreur. La vérification préalable de l’endpoint est mise en cache pendant 5 minutes, afin que plusieurs tâches cron pointant vers le même daemon Ollama arrêté ne lancent pas toutes des requêtes de modèle vouées à échouer.
Vérifiez en direct le chemin de texte local, le chemin de flux natif et les embeddings avec Ollama local à l’aide de :
models.providers.ollama, ou configurez un fournisseur distant personnalisé tel que models.providers.ollama-cloud avec api: "ollama", la découverte automatique est ignorée et vous devez définir les modèles manuellement. Les fournisseurs personnalisés en loopback tels que http://127.0.0.2:11434 sont toujours traités comme locaux. Consultez la section de configuration explicite ci-dessous.Vision et description d’image
Le Plugin Ollama fourni enregistre Ollama comme fournisseur de compréhension des médias compatible avec les images. Cela permet à OpenClaw d’acheminer les requêtes explicites de description d’image et les modèles d’image par défaut configurés vers des modèles de vision Ollama locaux ou hébergés. Pour la vision locale, tirez un modèle qui prend en charge les images :--model doit être une référence complète <provider/model>. Lorsqu’il est défini, openclaw infer image describe exécute ce modèle directement au lieu d’ignorer la description parce que le modèle prend en charge la vision native.
Utilisez infer image describe lorsque vous voulez le flux de fournisseur de compréhension d’image d’OpenClaw, le agents.defaults.imageModel configuré et la forme de sortie de description d’image. Utilisez infer model run --file lorsque vous voulez une sonde brute de modèle multimodal avec une invite personnalisée et une ou plusieurs images.
Pour faire d’Ollama le modèle de compréhension d’image par défaut pour les médias entrants, configurez agents.defaults.imageModel :
ollama/<model>. Si le même modèle est listé sous models.providers.ollama.models avec input: ["text", "image"] et qu’aucun autre fournisseur d’image configuré n’expose cet ID de modèle nu, OpenClaw normalise également une référence imageModel nue telle que qwen2.5vl:7b en ollama/qwen2.5vl:7b. Si plusieurs fournisseurs d’image configurés ont le même ID nu, 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’image plus long que les modèles cloud. Ils peuvent aussi planter ou s’arrêter lorsque Ollama tente d’allouer tout le contexte de vision annoncé sur du matériel contraint. Définissez un délai d’expiration de capacité et limitez num_ctx sur l’entrée du modèle lorsque vous n’avez besoin que d’un tour normal de description d’image :
image explicite que l’agent peut appeler pendant un tour. models.providers.ollama.timeoutSeconds au niveau fournisseur contrôle toujours la garde de requête HTTP Ollama sous-jacente pour les appels de modèle normaux.
Vérifiez en direct l’outil d’image explicite avec Ollama local à l’aide de :
models.providers.ollama.models, marquez les modèles de vision avec la prise en charge de l’entrée image :
/api/show signale une capacité de vision.
Configuration
- Basique (découverte implicite)
- Explicite (modèles manuels)
- URL de base personnalisée
Recettes courantes
Utilisez-les comme points de départ et remplacez les ID de modèle 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 voulez définir les modèles manuellement.Hôte Ollama LAN avec modèles manuels
Hôte Ollama LAN avec modèles manuels
/v1.contextWindow est le budget de contexte côté OpenClaw. params.num_ctx est envoyé à Ollama pour la requête. Gardez-les alignés lorsque votre matériel ne peut pas exécuter tout le contexte annoncé du modèle.Ollama Cloud uniquement
Ollama Cloud uniquement
Cloud plus local via un daemon connecté
Cloud plus local via un daemon connecté
ollama signin et doit servir à la fois les modèles locaux et les modèles :cloud.Plusieurs hôtes Ollama
Plusieurs hôtes Ollama
ollama-large/qwen3.5:27b arrive à Ollama sous la forme qwen3.5:27b.Profil de modèle local léger
Profil de modèle local léger
compat.supportsTools: false uniquement lorsque le modèle ou le serveur échoue de manière fiable sur les schémas d’outils. Cela échange des capacités d’agent contre de la stabilité.
localModelLean supprime les outils de navigateur, de Cron et de messages de la surface de l’agent, mais ne modifie pas le contexte d’exécution ni le mode de réflexion d’Ollama. Associez-le à params.num_ctx explicite et à params.thinking: false pour les petits modèles de réflexion de style Qwen qui bouclent ou dépensent leur budget de réponse en raisonnement masqué.Sélection du modèle
Une fois configurés, tous vos modèles Ollama sont disponibles :ollama-spark/qwen3:32b, OpenClaw ne retire que ce préfixe avant d’appeler Ollama afin que le serveur reçoive qwen3:32b.
Pour les modèles locaux lents, privilégiez le réglage des requêtes au niveau du fournisseur avant d’augmenter le délai d’expiration de l’ensemble de l’environnement d’exécution de l’agent :
timeoutSeconds s’applique à la requête HTTP du modèle, y compris l’établissement de la connexion, les en-têtes, le flux du corps et l’abandon total du fetch protégé. params.keep_alive est transmis à Ollama comme keep_alive de premier niveau sur les requêtes natives /api/chat ; définissez-le par modèle lorsque le temps de chargement au premier tour est le goulot d’étranglement.
Vérification rapide
127.0.0.1 par l’hôte utilisé dans baseUrl. Si curl fonctionne mais pas OpenClaw, vérifiez si le Gateway s’exécute sur une autre machine, dans un conteneur ou avec un autre compte de service.
Recherche Web Ollama
OpenClaw prend en charge Recherche Web Ollama comme fournisseurweb_search intégré.
| Propriété | Détail |
|---|---|
| Hôte | Utilise votre hôte Ollama configuré (models.providers.ollama.baseUrl lorsqu’il est défini, sinon http://127.0.0.1:11434) ; https://ollama.com utilise directement l’API hébergée |
| Auth | Sans clé pour les hôtes Ollama locaux connectés ; OLLAMA_API_KEY ou l’authentification de fournisseur configurée pour la recherche directe via https://ollama.com ou les hôtes protégés par authentification |
| Exigence | Les hôtes locaux/auto-hébergés doivent être en cours d’exécution et connectés avec ollama signin ; la recherche hébergée directe nécessite baseUrl: "https://ollama.com" plus une vraie clé API Ollama |
openclaw onboard ou openclaw configure --section web, ou définissez :
/api/experimental/web_search du démon. Pour https://ollama.com, il appelle directement le point de terminaison hébergé /api/web_search.
Configuration avancée
Mode compatible OpenAI hérité
Mode compatible OpenAI hérité
api: "openai-completions" :params: { streaming: false } dans la configuration du modèle.Lorsque api: "openai-completions" est utilisé avec Ollama, OpenClaw injecte options.num_ctx par défaut afin qu’Ollama ne revienne pas silencieusement à une fenêtre de contexte de 4096. Si votre proxy ou amont rejette les champs options inconnus, désactivez ce comportement :Fenêtres de contexte
Fenêtres de contexte
PARAMETER num_ctx plus grandes provenant de Modelfiles personnalisés. Sinon, il revient à la fenêtre de contexte Ollama par défaut utilisée par OpenClaw.Vous pouvez définir des valeurs par défaut contextWindow, contextTokens et maxTokens au niveau du fournisseur pour chaque modèle sous ce fournisseur Ollama, puis les remplacer par modèle si nécessaire. contextWindow correspond au budget de prompt et de Compaction d’OpenClaw. Les requêtes Ollama natives laissent options.num_ctx non défini sauf si vous configurez explicitement params.num_ctx, afin qu’Ollama puisse appliquer son propre modèle, OLLAMA_CONTEXT_LENGTH ou une valeur par défaut basée sur la VRAM. Pour plafonner ou forcer le contexte d’exécution par requête d’Ollama sans reconstruire un Modelfile, définissez params.num_ctx ; les valeurs invalides, nulles, négatives et non finies sont ignorées. L’adaptateur Ollama compatible OpenAI injecte toujours options.num_ctx par défaut à partir de params.num_ctx ou contextWindow configuré ; désactivez cela avec injectNumCtxForOpenAICompat: false si votre amont rejette options.Les entrées de modèles Ollama natives acceptent également les options d’exécution Ollama courantes sous params, notamment temperature, top_p, top_k, min_p, num_predict, stop, repeat_penalty, num_batch, num_thread et use_mmap. OpenClaw ne transmet que les clés de requête Ollama, de sorte que les paramètres d’exécution OpenClaw comme streaming ne sont pas divulgués à Ollama. Utilisez params.think ou params.thinking pour envoyer le think Ollama de premier niveau ; false désactive la réflexion au niveau de l’API pour les modèles de réflexion de style Qwen.agents.defaults.models["ollama/<model>"].params.num_ctx par modèle fonctionne aussi. Si les deux sont configurés, l’entrée de modèle de fournisseur explicite l’emporte sur la valeur par défaut de l’agent.Contrôle de la réflexion
Contrôle de la réflexion
think de premier niveau, et non options.think. Les modèles découverts automatiquement dont la réponse /api/show inclut la capacité thinking exposent /think low, /think medium, /think high et /think max ; les modèles sans réflexion n’exposent que /think off.params.think ou params.thinking par modèle peut désactiver ou forcer la réflexion de l’API Ollama pour un modèle configuré spécifique. OpenClaw préserve ces paramètres de modèle explicites lorsque l’exécution active n’a que la valeur par défaut implicite off ; les commandes d’exécution non désactivées comme /think medium remplacent toujours l’exécution active.Modèles de raisonnement
Modèles de raisonnement
deepseek-r1, reasoning ou think comme capables de raisonnement.Coûts des modèles
Coûts des modèles
Intégrations de mémoire
Intégrations de mémoire
/api/embed et regroupe
plusieurs fragments de mémoire dans une seule requête input lorsque c’est possible.| Propriété | Valeur |
|---|---|
| Modèle par défaut | nomic-embed-text |
| Téléchargement automatique | Oui — le modèle d’intégration est téléchargé automatiquement s’il n’est pas présent localement |
nomic-embed-text, qwen3-embedding et mxbai-embed-large. Les lots de documents de mémoire restent bruts afin que les index existants ne nécessitent pas de migration de format.Pour sélectionner Ollama comme fournisseur d’intégration de recherche en mémoire :Configuration du streaming
Configuration du streaming
/api/chat), qui prend entièrement en charge simultanément le streaming et l’appel d’outils. Aucune configuration particulière n’est nécessaire.Pour les requêtes /api/chat natives, OpenClaw transmet aussi directement à Ollama le contrôle de la réflexion : /think off et openclaw agent --thinking off envoient think: false au niveau supérieur, sauf si une valeur explicite params.think/params.thinking est configurée pour le modèle, tandis que /think low|medium|high envoient la chaîne d’effort think correspondante au niveau supérieur. /think max correspond à l’effort natif le plus élevé 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 verrouiller la mémoire de l’hôte pendant le chargement du modèle. La récupération de mémoire Hyper-V ne peut pas toujours récupérer ces pages verrouillées, Windows peut donc arrêter la VM WSL2, systemd relance Ollama, et la boucle se répète.Indices courants :- redémarrages ou arrêts répétés de WSL2 depuis Windows
- forte utilisation du CPU dans
app.sliceouollama.servicepeu après le démarrage de WSL2 - SIGTERM provenant de systemd plutôt que d’un événement OOM-killer Linux
ollama.service activé avec Restart=always, et des marqueurs CUDA visibles.Atténuation :%USERPROFILE%\.wslconfig côté Windows, puis exécutez wsl --shutdown :Ollama non détecté
Ollama non détecté
OLLAMA_API_KEY (ou un profil d’authentification), et que vous n’avez pas défini d’entrée explicite models.providers.ollama :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 OpenAI au lieu du comportement Ollama natif. - L’hôte distant nécessite des modifications de pare-feu ou d’écoute LAN côté Ollama.
- Le modèle est présent sur le démon de votre ordinateur portable, mais pas sur le démon distant.
Le modèle produit le JSON d’outil sous forme de texte
Le modèle produit le JSON d’outil sous forme de texte
compat.supportsTools: false sur cette entrée de modèle et refaites un 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 aussi le délai d’expiration de connexion Undici 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. Limitez à la fois le budget d’OpenClaw et le contexte de requête d’Ollama lorsque vous voulez une latence prévisible avant le premier token :contextWindow si OpenClaw envoie trop de prompt. Réduisez params.num_ctx si Ollama charge un contexte de runtime trop grand pour la machine. Réduisez maxTokens si la génération dure trop longtemps.