tools.* et configuration personnalisée du fournisseur/de l’URL de base. Pour les agents,
les canaux et les autres clés de configuration de niveau supérieur, voir
Référence de configuration.
Outils
Profils d’outils
tools.profile définit une liste blanche de base avant tools.allow/tools.deny :
L’onboarding local définit par défaut les nouvelles configurations locales sur tools.profile: "coding" lorsqu’il n’est pas défini (les profils explicites existants sont conservés).
| Profil | Inclut |
|---|---|
minimal | session_status uniquement |
coding | group:fs, group:runtime, group:web, group:sessions, group:memory, cron, image, image_generate, video_generate |
messaging | group:messaging, sessions_list, sessions_history, sessions_send, session_status |
full | Aucune restriction (identique à non défini) |
Groupes d’outils
| Groupe | Outils |
|---|---|
group:runtime | exec, process, code_execution (bash est accepté comme alias de exec) |
group:fs | read, write, edit, apply_patch |
group:sessions | sessions_list, sessions_history, sessions_send, sessions_spawn, sessions_yield, subagents, session_status |
group:memory | memory_search, memory_get |
group:web | web_search, x_search, web_fetch |
group:ui | browser, canvas |
group:automation | cron, gateway |
group:messaging | message |
group:nodes | nodes |
group:agents | agents_list |
group:media | image, image_generate, video_generate, tts |
group:openclaw | Tous les outils intégrés (exclut les plugins de fournisseur) |
tools.allow / tools.deny
Politique globale d’autorisation/refus des outils (le refus l’emporte). Insensible à la casse, prend en charge les jokers *. S’applique même lorsque le sandbox Docker est désactivé.
tools.byProvider
Restreint davantage les outils pour des fournisseurs ou modèles spécifiques. Ordre : profil de base → profil du fournisseur → allow/deny.
tools.elevated
Contrôle l’accès exec Elevated en dehors du sandbox :
- Le remplacement par agent (
agents.list[].tools.elevated) ne peut que restreindre davantage. /elevated on|off|ask|fullstocke l’état par session ; les directives en ligne s’appliquent à un seul message.execElevated contourne le sandboxing et utilise le chemin d’échappement configuré (gatewaypar défaut, ounodelorsque la cible d’exécution estnode).
tools.exec
tools.loopDetection
Les vérifications de sécurité de boucle d’outils sont désactivées par défaut. Définissez enabled: true pour activer la détection.
Les paramètres peuvent être définis globalement dans tools.loopDetection et remplacés par agent dans agents.list[].tools.loopDetection.
historySize: historique maximal des appels d’outils conservé pour l’analyse de boucle.warningThreshold: seuil de motif répétitif sans progression pour les avertissements.criticalThreshold: seuil répétitif plus élevé pour bloquer les boucles critiques.globalCircuitBreakerThreshold: seuil d’arrêt forcé pour toute exécution sans progression.detectors.genericRepeat: avertit en cas d’appels répétés du même outil avec les mêmes arguments.detectors.knownPollNoProgress: avertit/bloque sur les outils de polling connus (process.poll,command_status, etc.).detectors.pingPong: avertit/bloque sur les motifs alternés par paires sans progression.- Si
warningThreshold >= criticalThresholdoucriticalThreshold >= globalCircuitBreakerThreshold, la validation échoue.
tools.web
tools.media
Configure la compréhension des médias entrants (image/audio/vidéo) :
Champs d’entrée de modèle média
Champs d’entrée de modèle média
Entrée fournisseur (
type: "provider" ou omis) :provider: ID du fournisseur API (openai,anthropic,google/gemini,groq, etc.)model: remplacement d’ID de modèleprofile/preferredProfile: sélection de profilauth-profiles.json
type: "cli") :command: exécutable à lancerargs: arguments avec template (prend en charge{{MediaPath}},{{Prompt}},{{MaxChars}}, etc.)
capabilities: liste facultative (image,audio,video). Valeurs par défaut :openai/anthropic/minimax→ image,google→ image+audio+video,groq→ audio.prompt,maxChars,maxBytes,timeoutSeconds,language: remplacements par entrée.- Les échecs passent à l’entrée suivante.
auth-profiles.json → variables d’environnement → models.providers.*.apiKey.Champs d’achèvement asynchrone :asyncCompletion.directSend: lorsquetrue, les tâchesmusic_generateetvideo_generateasynchrones terminées tentent d’abord une livraison directe au canal. Valeur par défaut :false(ancien chemin wake/livraison de modèle de la session demandeuse).
tools.agentToAgent
tools.sessions
Contrôle quelles sessions peuvent être ciblées par les outils de session (sessions_list, sessions_history, sessions_send).
Valeur par défaut : tree (session actuelle + sessions engendrées par elle, comme les sous-agents).
self: uniquement la clé de session actuelle.tree: session actuelle + sessions engendrées par la session actuelle (sous-agents).agent: toute session appartenant à l’ID d’agent actuel (peut inclure d’autres utilisateurs si vous exécutez des sessions par expéditeur sous le même ID d’agent).all: toute session. Le ciblage inter-agents exige toujourstools.agentToAgent.- Restriction sandbox : lorsque la session actuelle est sandboxée et que
agents.defaults.sandbox.sessionToolsVisibility="spawned", la visibilité est forcée àtreemême sitools.sessions.visibility="all".
tools.sessions_spawn
Contrôle la prise en charge des pièces jointes inline pour sessions_spawn.
- Les pièces jointes ne sont prises en charge que pour
runtime: "subagent". Le runtime ACP les rejette. - Les fichiers sont matérialisés dans l’espace de travail enfant sous
.openclaw/attachments/<uuid>/avec un.manifest.json. - Le contenu des pièces jointes est automatiquement caviardé dans la persistance des transcriptions.
- Les entrées Base64 sont validées avec des vérifications strictes d’alphabet/remplissage et une garde de taille avant décodage.
- Les permissions de fichier sont
0700pour les répertoires et0600pour les fichiers. - Le nettoyage suit la politique
cleanup:deletesupprime toujours les pièces jointes ;keepne les conserve que lorsqueretainOnSessionKeep: true.
tools.experimental
Indicateurs expérimentaux d’outils intégrés. Désactivés par défaut sauf lorsqu’une règle d’auto-activation stricte agentique GPT-5 s’applique.
planTool: active l’outil structuréupdate_planpour le suivi des travaux non triviaux en plusieurs étapes.- Valeur par défaut :
falsesauf siagents.defaults.embeddedPi.executionContract(ou un remplacement par agent) est défini sur"strict-agentic"pour une exécution GPT-5 de la famille OpenAI ou OpenAI Codex. Définisseztruepour forcer l’activation de l’outil hors de ce périmètre, oufalsepour le garder désactivé même pour les exécutions GPT-5 strict-agentic. - Lorsqu’il est activé, le prompt système ajoute aussi des indications d’usage afin que le modèle ne l’utilise que pour des travaux substantiels et conserve au plus une étape
in_progress.
agents.defaults.subagents
model: modèle par défaut pour les sous-agents engendrés. S’il est omis, les sous-agents héritent du modèle de l’appelant.allowAgents: liste blanche par défaut des ID d’agents cibles poursessions_spawnlorsque l’agent demandeur ne définit pas sa propre valeursubagents.allowAgents(["*"]= n’importe lequel ; par défaut : même agent uniquement).runTimeoutSeconds: délai d’expiration par défaut (secondes) poursessions_spawnlorsque l’appel d’outil ometrunTimeoutSeconds.0signifie aucun délai d’expiration.- Politique d’outils par sous-agent :
tools.subagents.tools.allow/tools.subagents.tools.deny.
Fournisseurs personnalisés et URL de base
OpenClaw utilise le catalogue de modèles intégré. Ajoutez des fournisseurs personnalisés viamodels.providers dans la configuration ou ~/.openclaw/agents/<agentId>/agent/models.json.
- Utilisez
authHeader: true+headerspour des besoins d’authentification personnalisés. - Remplacez la racine de configuration de l’agent avec
OPENCLAW_AGENT_DIR(ouPI_CODING_AGENT_DIR, alias hérité de variable d’environnement). - Priorité de fusion pour les ID de fournisseur correspondants :
- Les valeurs
baseUrlnon vides de l’agent dansmodels.jsonl’emportent. - Les valeurs
apiKeynon vides de l’agent l’emportent uniquement lorsque ce fournisseur n’est pas géré par SecretRef dans le contexte actuel de configuration/profil d’authentification. - Les valeurs
apiKeyde fournisseur gérées par SecretRef sont actualisées à partir de marqueurs de source (ENV_VAR_NAMEpour les références d’environnement,secretref-managedpour les références fichier/exec) au lieu de persister des secrets résolus. - Les valeurs d’en-tête de fournisseur gérées par SecretRef sont actualisées à partir de marqueurs de source (
secretref-env:ENV_VAR_NAMEpour les références d’environnement,secretref-managedpour les références fichier/exec). - Les valeurs
apiKey/baseUrld’agent vides ou absentes reviennent àmodels.providersdans la configuration. - Les valeurs
contextWindow/maxTokensde modèle correspondant utilisent la plus élevée entre les valeurs explicites de configuration et les valeurs implicites du catalogue. - Les valeurs
contextTokensde modèle correspondant conservent un plafond d’exécution explicite lorsqu’il est présent ; utilisez-le pour limiter le contexte effectif sans changer les métadonnées natives du modèle. - Utilisez
models.mode: "replace"lorsque vous voulez que la configuration réécrive complètementmodels.json. - La persistance des marqueurs fait autorité sur la source : les marqueurs sont écrits depuis l’instantané actif de configuration source (avant résolution), pas depuis les valeurs secrètes résolues à l’exécution.
- Les valeurs
Détails des champs de fournisseur
models.mode: comportement du catalogue de fournisseurs (mergeoureplace).models.providers: map de fournisseurs personnalisés indexée par ID de fournisseur.- Modifications sûres : utilisez
openclaw config set models.providers.<id> '<json>' --strict-json --mergeouopenclaw config set models.providers.<id>.models '<json-array>' --strict-json --mergepour des mises à jour additives.config setrefuse les remplacements destructifs sauf si vous passez--replace.
- Modifications sûres : utilisez
models.providers.*.api: adaptateur de requête (openai-completions,openai-responses,anthropic-messages,google-generative-ai, etc.).models.providers.*.apiKey: identifiant du fournisseur (préférez SecretRef/substitution par variable d’environnement).models.providers.*.auth: stratégie d’authentification (api-key,token,oauth,aws-sdk).models.providers.*.injectNumCtxForOpenAICompat: pour Ollama +openai-completions, injecteoptions.num_ctxdans les requêtes (par défaut :true).models.providers.*.authHeader: force le transport de l’identifiant dans l’en-têteAuthorizationlorsque nécessaire.models.providers.*.baseUrl: URL de base de l’API amont.models.providers.*.headers: en-têtes statiques supplémentaires pour le routage proxy/locataire.models.providers.*.request: remplacements de transport pour les requêtes HTTP de fournisseur de modèle.request.headers: en-têtes supplémentaires (fusionnés avec les valeurs par défaut du fournisseur). Les valeurs acceptent SecretRef.request.auth: remplacement de stratégie d’authentification. Modes :"provider-default"(utilise l’authentification intégrée du fournisseur),"authorization-bearer"(avectoken),"header"(avecheaderName,value,prefixfacultatif).request.proxy: remplacement de proxy HTTP. Modes :"env-proxy"(utilise les variables d’environnementHTTP_PROXY/HTTPS_PROXY),"explicit-proxy"(avecurl). Les deux modes acceptent un sous-objettlsfacultatif.request.tls: remplacement TLS pour les connexions directes. Champs :ca,cert,key,passphrase(tous acceptent SecretRef),serverName,insecureSkipVerify.request.allowPrivateNetwork: lorsquetrue, autorise HTTPS versbaseUrllorsque le DNS se résout vers des plages privées, CGNAT ou similaires, via la garde SSRF de récupération HTTP du fournisseur (adhésion explicite de l’opérateur pour des points de terminaison auto-hébergés compatibles OpenAI de confiance). WebSocket utilise la mêmerequestpour les en-têtes/TLS mais pas cette garde SSRF de récupération. Valeur par défautfalse.
models.providers.*.models: entrées explicites du catalogue de modèles du fournisseur.models.providers.*.models.*.contextWindow: métadonnées de fenêtre de contexte native du modèle.models.providers.*.models.*.contextTokens: plafond de contexte d’exécution facultatif. Utilisez-le lorsque vous voulez un budget de contexte effectif plus petit que lecontextWindownatif du modèle.models.providers.*.models.*.compat.supportsDeveloperRole: indice de compatibilité facultatif. Pourapi: "openai-completions"avec unbaseUrlnon natif non vide (hôte différent deapi.openai.com), OpenClaw force cette valeur àfalseà l’exécution. UnbaseUrlvide/omis conserve le comportement OpenAI par défaut.models.providers.*.models.*.compat.requiresStringContent: indice de compatibilité facultatif pour les points de terminaison de chat compatibles OpenAI à contenu texte uniquement. Lorsquetrue, OpenClaw aplatit les tableauxmessages[].contentpurement textuels en chaînes simples avant d’envoyer la requête.plugins.entries.amazon-bedrock.config.discovery: racine des paramètres d’auto-discovery Bedrock.plugins.entries.amazon-bedrock.config.discovery.enabled: activer/désactiver la découverte implicite.plugins.entries.amazon-bedrock.config.discovery.region: région AWS pour la découverte.plugins.entries.amazon-bedrock.config.discovery.providerFilter: filtre facultatif d’ID de fournisseur pour une découverte ciblée.plugins.entries.amazon-bedrock.config.discovery.refreshInterval: intervalle d’interrogation pour le rafraîchissement de la découverte.plugins.entries.amazon-bedrock.config.discovery.defaultContextWindow: fenêtre de contexte de repli pour les modèles découverts.plugins.entries.amazon-bedrock.config.discovery.defaultMaxTokens: nombre maximal de tokens de sortie de repli pour les modèles découverts.
Exemples de fournisseurs
Cerebras (GLM 4.6 / 4.7)
Cerebras (GLM 4.6 / 4.7)
cerebras/zai-glm-4.7 pour Cerebras ; zai/glm-4.7 pour Z.AI direct.OpenCode
OpenCode
OPENCODE_API_KEY (ou OPENCODE_ZEN_API_KEY). Utilisez des références opencode/... pour le catalogue Zen ou opencode-go/... pour le catalogue Go. Raccourci : openclaw onboard --auth-choice opencode-zen ou openclaw onboard --auth-choice opencode-go.Z.AI (GLM-4.7)
Z.AI (GLM-4.7)
ZAI_API_KEY. z.ai/* et z-ai/* sont des alias acceptés. Raccourci : openclaw onboard --auth-choice zai-api-key.- Point de terminaison général :
https://api.z.ai/api/paas/v4 - Point de terminaison coding (par défaut) :
https://api.z.ai/api/coding/paas/v4 - Pour le point de terminaison général, définissez un fournisseur personnalisé avec le remplacement d’URL de base.
Moonshot AI (Kimi)
Moonshot AI (Kimi)
baseUrl: "https://api.moonshot.cn/v1" ou openclaw onboard --auth-choice moonshot-api-key-cn.Les points de terminaison natifs Moonshot annoncent une compatibilité d’utilisation du streaming sur le transport partagé
openai-completions, et OpenClaw s’appuie sur les capacités du point de terminaison
plutôt que sur le seul ID de fournisseur intégré.Kimi Coding
Kimi Coding
openclaw onboard --auth-choice kimi-code-api-key.Synthetic (compatible Anthropic)
Synthetic (compatible Anthropic)
/v1 (le client Anthropic l’ajoute). Raccourci : openclaw onboard --auth-choice synthetic-api-key.MiniMax M2.7 (direct)
MiniMax M2.7 (direct)
MINIMAX_API_KEY. Raccourcis :
openclaw onboard --auth-choice minimax-global-api ou
openclaw onboard --auth-choice minimax-cn-api.
Le catalogue de modèles utilise par défaut uniquement M2.7.
Sur le chemin de streaming compatible Anthropic, OpenClaw désactive par défaut le raisonnement MiniMax
sauf si vous définissez explicitement thinking vous-même. /fast on ou
params.fastMode: true réécrit MiniMax-M2.7 en
MiniMax-M2.7-highspeed.Modèles locaux (LM Studio)
Modèles locaux (LM Studio)
Voir Modèles locaux. En bref : exécutez un grand modèle local via l’API Responses de LM Studio sur du matériel sérieux ; gardez les modèles hébergés fusionnés pour le repli.
Lié
- Référence de configuration — autres clés de niveau supérieur
- Configuration — agents
- Configuration — canaux
- Outils et plugins