agents.*, multiAgent.*, session.*,
messages.* et talk.*. Pour les canaux, les outils, l’exécution Gateway et les autres
clés de niveau supérieur, voir Référence de configuration.
Valeurs par défaut de l’agent
agents.defaults.workspace
Par défaut : ~/.openclaw/workspace.
agents.defaults.repoRoot
Racine de dépôt facultative affichée dans la ligne Runtime du prompt système. Si elle n’est pas définie, OpenClaw la détecte automatiquement en remontant depuis l’espace de travail.
agents.defaults.skills
Liste d’autorisation par défaut facultative des Skills pour les agents qui ne définissent pas
agents.list[].skills.
- Omettez
agents.defaults.skillspour des Skills non restreintes par défaut. - Omettez
agents.list[].skillspour hériter des valeurs par défaut. - Définissez
agents.list[].skills: []pour n’avoir aucune Skill. - Une liste
agents.list[].skillsnon vide constitue l’ensemble final pour cet agent ; elle ne fusionne pas avec les valeurs par défaut.
agents.defaults.skipBootstrap
Désactive la création automatique des fichiers bootstrap de l’espace de travail (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.contextInjection
Contrôle quand les fichiers bootstrap de l’espace de travail sont injectés dans le prompt système. Par défaut : "always".
"continuation-skip": les tours de continuation sûrs (après une réponse d’assistant terminée) ignorent la réinjection du bootstrap de l’espace de travail, ce qui réduit la taille du prompt. Les exécutions Heartbeat et les nouvelles tentatives après Compaction reconstruisent toujours le contexte.
agents.defaults.bootstrapMaxChars
Nombre maximal de caractères par fichier bootstrap de l’espace de travail avant troncature. Par défaut : 12000.
agents.defaults.bootstrapTotalMaxChars
Nombre maximal total de caractères injectés sur l’ensemble des fichiers bootstrap de l’espace de travail. Par défaut : 60000.
agents.defaults.bootstrapPromptTruncationWarning
Contrôle le texte d’avertissement visible par l’agent lorsque le contexte bootstrap est tronqué.
Par défaut : "once".
"off": n’injecte jamais de texte d’avertissement dans le prompt système."once": injecte l’avertissement une fois par signature unique de troncature (recommandé)."always": injecte l’avertissement à chaque exécution lorsqu’une troncature existe.
Carte de propriété du budget de contexte
OpenClaw possède plusieurs budgets de prompt/contexte à fort volume, et ils sont intentionnellement répartis par sous-système au lieu de tous passer par un seul paramètre générique.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: injection bootstrap normale de l’espace de travail.agents.defaults.startupContext.*: prélude de démarrage ponctuel pour/newet/reset, y compris les fichiers récentsmemory/*.mdquotidiens.skills.limits.*: la liste compacte des Skills injectée dans le prompt système.agents.defaults.contextLimits.*: extraits d’exécution bornés et blocs injectés appartenant à l’exécution.memory.qmd.limits.*: dimensionnement des extraits et de l’injection pour la recherche en mémoire indexée.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Contrôle le prélude de démarrage du premier tour injecté lors des exécutions /new et /reset
nues.
agents.defaults.contextLimits
Valeurs par défaut partagées pour les surfaces de contexte d’exécution bornées.
memoryGetMaxChars: limite par défaut de l’extraitmemory_getavant l’ajout des métadonnées de troncature et de l’avis de continuation.memoryGetDefaultLines: fenêtre de lignes par défaut dememory_getlorsquelinesest omis.toolResultMaxChars: limite des résultats d’outils en direct utilisée pour les résultats conservés et la récupération après dépassement.postCompactionMaxChars: limite d’extrait d’AGENTS.md utilisée pendant l’injection d’actualisation après Compaction.
agents.list[].contextLimits
Remplacement par agent des paramètres partagés contextLimits. Les champs omis héritent
de agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Limite globale pour la liste compacte des Skills injectée dans le prompt système. Cela
n’affecte pas la lecture des fichiers SKILL.md à la demande.
agents.list[].skillsLimits.maxSkillsPromptChars
Remplacement par agent du budget de prompt des Skills.
agents.defaults.imageMaxDimensionPx
Taille maximale en pixels du côté le plus long de l’image dans les blocs image du transcript/des outils avant les appels au fournisseur.
Par défaut : 1200.
Des valeurs plus faibles réduisent généralement l’utilisation des jetons de vision et la taille de la charge utile des requêtes lors des exécutions riches en captures d’écran.
Des valeurs plus élevées conservent davantage de détails visuels.
agents.defaults.userTimezone
Fuseau horaire pour le contexte du prompt système (pas pour les horodatages des messages). Revient au fuseau horaire de l’hôte.
agents.defaults.timeFormat
Format d’heure dans le prompt système. Par défaut : auto (préférence de l’OS).
agents.defaults.model
model: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- La forme chaîne ne définit que le modèle principal.
- La forme objet définit le modèle principal plus des modèles de basculement ordonnés.
imageModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par le chemin de l’outil
imagecomme configuration de modèle de vision. - Également utilisé comme routage de secours lorsque le modèle sélectionné/par défaut ne peut pas accepter d’entrée image.
- Utilisé par le chemin de l’outil
imageGenerationModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par la capacité partagée de génération d’images et toute future surface d’outil/Plugin qui génère des images.
- Valeurs typiques :
google/gemini-3.1-flash-image-previewpour la génération d’images Gemini native,fal/fal-ai/flux/devpour fal, ouopenai/gpt-image-2pour OpenAI Images. - Si vous sélectionnez directement un fournisseur/modèle, configurez aussi l’authentification du fournisseur correspondante (par exemple
GEMINI_API_KEYouGOOGLE_API_KEYpourgoogle/*,OPENAI_API_KEYou OAuth OpenAI Codex pouropenai/gpt-image-2,FAL_KEYpourfal/*). - S’il est omis,
image_generatepeut toujours déduire une valeur par défaut de fournisseur soutenue par authentification. Il essaie d’abord le fournisseur par défaut actuel, puis les autres fournisseurs de génération d’images enregistrés dans l’ordre des identifiants de fournisseur.
musicGenerationModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par la capacité partagée de génération musicale et l’outil intégré
music_generate. - Valeurs typiques :
google/lyria-3-clip-preview,google/lyria-3-pro-preview, ouminimax/music-2.5+. - S’il est omis,
music_generatepeut toujours déduire une valeur par défaut de fournisseur soutenue par authentification. Il essaie d’abord le fournisseur par défaut actuel, puis les autres fournisseurs de génération musicale enregistrés dans l’ordre des identifiants de fournisseur. - Si vous sélectionnez directement un fournisseur/modèle, configurez aussi l’authentification/la clé API du fournisseur correspondante.
- Utilisé par la capacité partagée de génération musicale et l’outil intégré
videoGenerationModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par la capacité partagée de génération vidéo et l’outil intégré
video_generate. - Valeurs typiques :
qwen/wan2.6-t2v,qwen/wan2.6-i2v,qwen/wan2.6-r2v,qwen/wan2.6-r2v-flash, ouqwen/wan2.7-r2v. - S’il est omis,
video_generatepeut toujours déduire une valeur par défaut de fournisseur soutenue par authentification. Il essaie d’abord le fournisseur par défaut actuel, puis les autres fournisseurs de génération vidéo enregistrés dans l’ordre des identifiants de fournisseur. - Si vous sélectionnez directement un fournisseur/modèle, configurez aussi l’authentification/la clé API du fournisseur correspondante.
- Le fournisseur groupé de génération vidéo Qwen prend en charge jusqu’à 1 vidéo de sortie, 1 image d’entrée, 4 vidéos d’entrée, une durée de 10 secondes, ainsi que les options au niveau du fournisseur
size,aspectRatio,resolution,audioetwatermark.
- Utilisé par la capacité partagée de génération vidéo et l’outil intégré
pdfModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par l’outil
pdfpour le routage du modèle. - S’il est omis, l’outil PDF se rabat sur
imageModel, puis sur le modèle de session/par défaut résolu.
- Utilisé par l’outil
pdfMaxBytesMb: limite de taille PDF par défaut pour l’outilpdflorsquemaxBytesMbn’est pas transmis au moment de l’appel.pdfMaxPages: nombre maximal de pages pris en compte par défaut par le mode de secours d’extraction dans l’outilpdf.verboseDefault: niveau verbeux par défaut pour les agents. Valeurs :"off","on","full". Par défaut :"off".elevatedDefault: niveau de sortie élevée par défaut pour les agents. Valeurs :"off","on","ask","full". Par défaut :"on".model.primary: formatprovider/model(par ex.openai/gpt-5.4pour l’accès par clé API ouopenai-codex/gpt-5.5pour OAuth Codex). Si vous omettez le fournisseur, OpenClaw essaie d’abord un alias, puis une correspondance unique de fournisseur configuré pour cet identifiant de modèle exact, et seulement ensuite se rabat sur le fournisseur par défaut configuré (comportement de compatibilité déprécié, donc préférezprovider/modelexplicite). Si ce fournisseur n’expose plus le modèle par défaut configuré, OpenClaw se rabat sur le premier fournisseur/modèle configuré au lieu d’exposer une valeur par défaut obsolète d’un fournisseur supprimé.models: catalogue de modèles configuré et liste d’autorisation pour/model. Chaque entrée peut inclurealias(raccourci) etparams(spécifiques au fournisseur, par exempletemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold).- Modifications sûres : utilisez
openclaw config set agents.defaults.models '<json>' --strict-json --mergepour ajouter des entrées.config setrefuse les remplacements qui supprimeraient des entrées existantes de la liste d’autorisation sauf si vous transmettez--replace. - Les flux de configuration/d’onboarding à portée fournisseur fusionnent les modèles du fournisseur sélectionné dans cette map et préservent les autres fournisseurs déjà configurés.
- Pour les modèles directs OpenAI Responses, la Compaction côté serveur est activée automatiquement. Utilisez
params.responsesServerCompaction: falsepour arrêter d’injectercontext_management, ouparams.responsesCompactThresholdpour remplacer le seuil. Voir Compaction côté serveur OpenAI.
- Modifications sûres : utilisez
params: paramètres par défaut globaux du fournisseur appliqués à tous les modèles. À définir dansagents.defaults.params(par ex.{ cacheRetention: "long" }).- Priorité de fusion de
params(configuration) :agents.defaults.params(base globale) est remplacé paragents.defaults.models["provider/model"].params(par modèle), puisagents.list[].params(identifiant d’agent correspondant) remplace par clé. Voir Mise en cache des prompts pour les détails. embeddedHarness: politique par défaut de l’exécuteur embarqué de bas niveau. Utilisezruntime: "auto"pour laisser les harnais Plugin enregistrés revendiquer les modèles pris en charge,runtime: "pi"pour forcer le harnais PI intégré, ou un identifiant de harnais enregistré tel queruntime: "codex". Définissezfallback: "none"pour désactiver le repli automatique vers PI.- Les écrivains de configuration qui modifient ces champs (par exemple
/models set,/models set-imageet les commandes d’ajout/suppression de repli) enregistrent la forme canonique objet et préservent les listes de repli existantes lorsque c’est possible. maxConcurrent: nombre maximal d’exécutions d’agents en parallèle entre les sessions (chaque session reste sérialisée). Par défaut : 4.
agents.defaults.embeddedHarness
embeddedHarness contrôle quel exécuteur de bas niveau exécute les tours d’agent embarqués.
La plupart des déploiements devraient conserver la valeur par défaut { runtime: "auto", fallback: "pi" }.
Utilisez-le lorsqu’un Plugin de confiance fournit un harnais natif, tel que le
harnais groupé du serveur d’application Codex.
runtime:"auto","pi"ou un identifiant de harnais Plugin enregistré. Le Plugin Codex groupé enregistrecodex.fallback:"pi"ou"none"."pi"conserve le harnais PI intégré comme repli de compatibilité lorsqu’aucun harnais Plugin n’est sélectionné."none"fait échouer la sélection d’un harnais Plugin manquant ou non pris en charge au lieu d’utiliser silencieusement PI. Les échecs du harnais Plugin sélectionné sont toujours remontés directement.- Remplacements d’environnement :
OPENCLAW_AGENT_RUNTIME=<id|auto|pi>remplaceruntime;OPENCLAW_AGENT_HARNESS_FALLBACK=nonedésactive le repli vers PI pour ce processus. - Pour les déploiements Codex uniquement, définissez
model: "openai/gpt-5.5",embeddedHarness.runtime: "codex"etembeddedHarness.fallback: "none". - Le choix du harnais est épinglé par identifiant de session après la première exécution embarquée. Les changements de configuration/d’environnement affectent les nouvelles sessions ou les sessions réinitialisées, pas une transcription existante. Les sessions héritées avec historique de transcription mais sans épinglage enregistré sont traitées comme épinglées à PI.
/statusaffiche les identifiants de harnais non-PI tels quecodexà côté deFast. - Cela contrôle uniquement le harnais de chat embarqué. La génération de médias, la vision, les PDF, la musique, la vidéo et le TTS utilisent toujours leurs paramètres fournisseur/modèle.
agents.defaults.models) :
| Alias | Modèle |
|---|---|
opus | anthropic/claude-opus-4-6 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 ou GPT-5.5 OAuth Codex configuré |
gpt-mini | openai/gpt-5.4-mini |
gpt-nano | openai/gpt-5.4-nano |
gemini | google/gemini-3.1-pro-preview |
gemini-flash | google/gemini-3-flash-preview |
gemini-flash-lite | google/gemini-3.1-flash-lite-preview |
--thinking off ou définissez vous-même agents.defaults.models["zai/<model>"].params.thinking.
Les modèles Z.AI activent tool_stream par défaut pour le streaming des appels d’outils. Définissez agents.defaults.models["zai/<model>"].params.tool_stream à false pour le désactiver.
Les modèles Anthropic Claude 4.6 utilisent par défaut le mode de réflexion adaptive lorsqu’aucun niveau de réflexion explicite n’est défini.
agents.defaults.cliBackends
Backends CLI facultatifs pour les exécutions de secours en texte seul (sans appels d’outils). Utile comme solution de secours lorsque les fournisseurs API échouent.
- Les backends CLI sont d’abord orientés texte ; les outils sont toujours désactivés.
- Les sessions sont prises en charge lorsque
sessionArgest défini. - Le passage direct d’image est pris en charge lorsque
imageArgaccepte des chemins de fichier.
agents.defaults.systemPromptOverride
Remplace le prompt système complet assemblé par OpenClaw par une chaîne fixe. À définir au niveau par défaut (agents.defaults.systemPromptOverride) ou par agent (agents.list[].systemPromptOverride). Les valeurs par agent sont prioritaires ; une valeur vide ou composée uniquement d’espaces est ignorée. Utile pour des expériences de prompt contrôlées.
agents.defaults.promptOverlays
Superpositions de prompt indépendantes du fournisseur appliquées par famille de modèles. Les identifiants de modèles de la famille GPT-5 reçoivent le contrat de comportement partagé entre fournisseurs ; personality contrôle uniquement la couche conviviale de style d’interaction.
"friendly"(par défaut) et"on"activent la couche conviviale de style d’interaction."off"désactive uniquement la couche conviviale ; le contrat de comportement GPT-5 balisé reste activé.- L’ancien
plugins.entries.openai.config.personalityest toujours lu lorsque ce paramètre partagé n’est pas défini.
agents.defaults.heartbeat
Exécutions Heartbeat périodiques.
every: chaîne de durée (ms/s/m/h). Par défaut :30m(authentification par clé API) ou1h(authentification OAuth). Définissez0mpour désactiver.includeSystemPromptSection: lorsque false, omet la section Heartbeat du prompt système et ignore l’injection deHEARTBEAT.mddans le contexte bootstrap. Par défaut :true.suppressToolErrorWarnings: lorsque true, supprime les charges utiles d’avertissement d’erreur d’outil pendant les exécutions Heartbeat.timeoutSeconds: durée maximale en secondes autorisée pour un tour d’agent Heartbeat avant son interruption. Laissez non défini pour utiliseragents.defaults.timeoutSeconds.directPolicy: politique de livraison directe/DM.allow(par défaut) autorise la livraison vers une cible directe.blocksupprime la livraison vers une cible directe et émetreason=dm-blocked.lightContext: lorsque true, les exécutions Heartbeat utilisent un contexte bootstrap léger et ne conservent queHEARTBEAT.mdparmi les fichiers bootstrap de l’espace de travail.isolatedSession: lorsque true, chaque Heartbeat s’exécute dans une nouvelle session sans historique de conversation antérieur. Même modèle d’isolation que le cronsessionTarget: "isolated". Réduit le coût en jetons par Heartbeat d’environ ~100K à ~2-5K jetons.- Par agent : définissez
agents.list[].heartbeat. Lorsqu’un agent quelconque définitheartbeat, seuls ces agents exécutent des Heartbeats. - Les Heartbeats exécutent des tours d’agent complets — des intervalles plus courts consomment davantage de jetons.
agents.defaults.compaction
mode:defaultousafeguard(résumé par blocs pour les longs historiques). Voir Compaction.provider: identifiant d’un Plugin fournisseur de Compaction enregistré. Lorsqu’il est défini, la méthodesummarize()du fournisseur est appelée à la place du résumé LLM intégré. Revient à l’intégration en cas d’échec. Définir un fournisseur forcemode: "safeguard". Voir Compaction.timeoutSeconds: durée maximale en secondes autorisée pour une opération unique de Compaction avant qu’OpenClaw ne l’abandonne. Par défaut :900.identifierPolicy:strict(par défaut),offoucustom.strictajoute au début des indications intégrées de conservation des identifiants opaques pendant le résumé de Compaction.identifierInstructions: texte facultatif personnalisé de conservation des identifiants utilisé lorsqueidentifierPolicy=custom.postCompactionSections: noms facultatifs de sections H2/H3 d’AGENTS.md à réinjecter après la Compaction. Par défaut :["Session Startup", "Red Lines"]; définissez[]pour désactiver la réinjection. Lorsqu’il est non défini ou explicitement défini sur cette paire par défaut, les anciens en-têtesEvery Session/Safetysont également acceptés comme solution de secours héritée.model: remplacement facultatifprovider/model-idpour le résumé de Compaction uniquement. Utilisez-le lorsque la session principale doit conserver un modèle mais que les résumés de Compaction doivent s’exécuter sur un autre ; lorsqu’il n’est pas défini, la Compaction utilise le modèle principal de la session.notifyUser: lorsquetrue, envoie de brefs avis à l’utilisateur quand la Compaction commence et quand elle se termine (par exemple, « Compacting context… » et « Compaction complete »). Désactivé par défaut pour garder la Compaction silencieuse.memoryFlush: tour agentique silencieux avant la Compaction automatique pour stocker les mémoires durables. Ignoré lorsque l’espace de travail est en lecture seule.
agents.defaults.contextPruning
Élague les anciens résultats d’outils du contexte en mémoire avant l’envoi au LLM. Ne modifie pas l’historique de session sur disque.
Comportement du mode cache-ttl
Comportement du mode cache-ttl
mode: "cache-ttl"active les passes d’élagage.ttlcontrôle à quelle fréquence l’élagage peut à nouveau s’exécuter (après le dernier accès au cache).- L’élagage tronque d’abord légèrement les résultats d’outils trop volumineux, puis efface complètement les anciens résultats d’outils si nécessaire.
... au milieu.L’effacement complet remplace la totalité du résultat de l’outil par l’espace réservé.Remarques :- Les blocs d’image ne sont jamais tronqués/effacés.
- Les ratios sont basés sur les caractères (approximatifs), pas sur des comptes exacts de jetons.
- Si le nombre de messages assistant est inférieur à
keepLastAssistants, l’élagage est ignoré.
Streaming par blocs
- Les canaux non-Telegram nécessitent
*.blockStreaming: trueexplicite pour activer les réponses par blocs. - Remplacements de canal :
channels.<channel>.blockStreamingCoalesce(et variantes par compte). Signal/Slack/Discord/Google Chat utilisent par défautminChars: 1500. humanDelay: pause aléatoire entre les réponses par blocs.natural= 800–2500ms. Remplacement par agent :agents.list[].humanDelay.
Indicateurs de saisie
- Valeurs par défaut :
instantpour les discussions directes/mentions,messagepour les discussions de groupe sans mention. - Remplacements par session :
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Sandboxing facultatif pour l’agent embarqué. Voir Sandboxing pour le guide complet.
Détails du sandbox
Détails du sandbox
Backend :Mode OpenShell :
docker: exécution Docker locale (par défaut)ssh: exécution distante générique basée sur SSHopenshell: exécution OpenShell
backend: "openshell" est sélectionné, les paramètres spécifiques à l’exécution sont déplacés vers
plugins.entries.openshell.config.Configuration du backend SSH :target: cible SSH sous la formeuser@host[:port]command: commande du client SSH (par défaut :ssh)workspaceRoot: racine distante absolue utilisée pour les espaces de travail par portéeidentityFile/certificateFile/knownHostsFile: fichiers locaux existants transmis à OpenSSHidentityData/certificateData/knownHostsData: contenus en ligne ou SecretRefs que OpenClaw matérialise dans des fichiers temporaires à l’exécutionstrictHostKeyChecking/updateHostKeys: paramètres de politique de clé d’hôte OpenSSH
identityDatal’emporte suridentityFilecertificateDatal’emporte surcertificateFileknownHostsDatal’emporte surknownHostsFile- Les valeurs
*Datasoutenues par SecretRef sont résolues à partir de l’instantané actif de l’exécution des secrets avant le démarrage de la session sandbox
- initialise l’espace de travail distant une fois après la création ou la recréation
- puis conserve l’espace de travail SSH distant comme canonique
- route
exec, les outils de fichiers et les chemins de médias via SSH - ne synchronise pas automatiquement les modifications distantes vers l’hôte
- ne prend pas en charge les conteneurs de navigateur sandbox
none: espace de travail sandbox par portée sous~/.openclaw/sandboxesro: espace de travail sandbox à/workspace, espace de travail de l’agent monté en lecture seule à/agentrw: espace de travail de l’agent monté en lecture/écriture à/workspace
session: conteneur + espace de travail par sessionagent: un conteneur + espace de travail par agent (par défaut)shared: conteneur et espace de travail partagés (pas d’isolation inter-session)
mirror: initialise le distant à partir du local avantexec, resynchronise aprèsexec; l’espace de travail local reste canoniqueremote: initialise le distant une fois à la création du sandbox, puis conserve l’espace de travail distant comme canonique
remote, les modifications locales sur l’hôte effectuées hors d’OpenClaw ne sont pas automatiquement synchronisées dans le sandbox après l’étape d’initialisation.
Le transport passe par SSH vers le sandbox OpenShell, mais le Plugin gère le cycle de vie du sandbox et la synchronisation miroir facultative.setupCommand s’exécute une fois après la création du conteneur (via sh -lc). Nécessite une sortie réseau, une racine inscriptible et un utilisateur root.Les conteneurs utilisent par défaut network: "none" — définissez "bridge" (ou un réseau bridge personnalisé) si l’agent a besoin d’un accès sortant.
"host" est bloqué. "container:<id>" est bloqué par défaut sauf si vous définissez explicitement
sandbox.docker.dangerouslyAllowContainerNamespaceJoin: true (bris de glace).Les pièces jointes entrantes sont placées dans media/inbound/* dans l’espace de travail actif.docker.binds monte des répertoires hôte supplémentaires ; les montages globaux et par agent sont fusionnés.Navigateur sandboxé (sandbox.browser.enabled) : Chromium + CDP dans un conteneur. L’URL noVNC est injectée dans le prompt système. Ne nécessite pas browser.enabled dans openclaw.json.
L’accès observateur noVNC utilise par défaut l’authentification VNC et OpenClaw émet une URL à jeton de courte durée (au lieu d’exposer le mot de passe dans l’URL partagée).allowHostControl: false(par défaut) empêche les sessions sandboxées de cibler le navigateur de l’hôte.networkvaut par défautopenclaw-sandbox-browser(réseau bridge dédié). Définissezbridgeuniquement lorsque vous voulez explicitement une connectivité bridge globale.cdpSourceRangelimite éventuellement l’entrée CDP au bord du conteneur à une plage CIDR (par exemple172.21.0.1/32).sandbox.browser.bindsmonte des répertoires hôte supplémentaires dans le conteneur de navigateur sandbox uniquement. Lorsqu’il est défini (y compris[]), il remplacedocker.bindspour le conteneur de navigateur.- Les valeurs de lancement par défaut sont définies dans
scripts/sandbox-browser-entrypoint.shet ajustées pour les hôtes de conteneurs :--remote-debugging-address=127.0.0.1--remote-debugging-port=<derived from OPENCLAW_BROWSER_CDP_PORT>--user-data-dir=${HOME}/.chrome--no-first-run--no-default-browser-check--disable-3d-apis--disable-gpu--disable-software-rasterizer--disable-dev-shm-usage--disable-background-networking--disable-features=TranslateUI--disable-breakpad--disable-crash-reporter--renderer-process-limit=2--no-zygote--metrics-recording-only--disable-extensions(activé par défaut)--disable-3d-apis,--disable-software-rasterizeret--disable-gpusont activés par défaut et peuvent être désactivés avecOPENCLAW_BROWSER_DISABLE_GRAPHICS_FLAGS=0si l’usage de WebGL/3D l’exige.OPENCLAW_BROWSER_DISABLE_EXTENSIONS=0réactive les extensions si votre flux de travail en dépend.--renderer-process-limit=2peut être modifié avecOPENCLAW_BROWSER_RENDERER_PROCESS_LIMIT=<N>; définissez0pour utiliser la limite de processus par défaut de Chromium.- plus
--no-sandboxet--disable-setuid-sandboxlorsquenoSandboxest activé. - Les valeurs par défaut constituent la base de l’image de conteneur ; utilisez une image de navigateur personnalisée avec un point d’entrée personnalisé pour modifier les valeurs par défaut du conteneur.
sandbox.docker.binds sont réservés à Docker.
Construire les images :
agents.list (remplacements par agent)
id: identifiant stable de l’agent (obligatoire).default: lorsque plusieurs sont définis, le premier l’emporte (un avertissement est journalisé). Si aucun n’est défini, la première entrée de la liste est celle par défaut.model: la forme chaîne remplace uniquementprimary; la forme objet{ primary, fallbacks }remplace les deux ([]désactive les replis globaux). Les tâches Cron qui ne remplacent queprimaryhéritent toujours des replis par défaut sauf si vous définissezfallbacks: [].params: paramètres de flux par agent fusionnés par-dessus l’entrée de modèle sélectionnée dansagents.defaults.models. Utilisez-les pour des remplacements spécifiques à un agent commecacheRetention,temperatureoumaxTokenssans dupliquer tout le catalogue de modèles.skills: liste d’autorisation facultative des Skills par agent. Si elle est omise, l’agent hérite deagents.defaults.skillslorsqu’elle est définie ; une liste explicite remplace les valeurs par défaut au lieu de fusionner, et[]signifie aucune Skill.thinkingDefault: niveau de réflexion par défaut facultatif par agent (off | minimal | low | medium | high | xhigh | adaptive | max). Remplaceagents.defaults.thinkingDefaultpour cet agent lorsqu’aucun remplacement par message ou par session n’est défini.reasoningDefault: visibilité du raisonnement par défaut facultative par agent (on | off | stream). S’applique lorsqu’aucun remplacement de raisonnement par message ou par session n’est défini.fastModeDefault: valeur par défaut facultative par agent pour le mode rapide (true | false). S’applique lorsqu’aucun remplacement de mode rapide par message ou par session n’est défini.embeddedHarness: remplacement facultatif par agent de la politique de harnais de bas niveau. Utilisez{ runtime: "codex", fallback: "none" }pour rendre un agent uniquement Codex tandis que les autres agents conservent le repli PI par défaut.runtime: descripteur d’exécution facultatif par agent. Utiliseztype: "acp"avec les valeurs par défautruntime.acp(agent,backend,mode,cwd) lorsque l’agent doit par défaut utiliser des sessions de harnais ACP.identity.avatar: chemin relatif à l’espace de travail, URLhttp(s)ou URIdata:.identitydérive des valeurs par défaut :ackReactionà partir deemoji,mentionPatternsà partir dename/emoji.subagents.allowAgents: liste d’autorisation des identifiants d’agent poursessions_spawn(["*"]= n’importe lequel ; par défaut : même agent uniquement).- Garde-fou d’héritage du sandbox : si la session demandeuse est sandboxée,
sessions_spawnrejette les cibles qui s’exécuteraient sans sandbox. subagents.requireAgentId: lorsque true, bloque les appelssessions_spawnqui omettentagentId(force une sélection explicite de profil ; par défaut : false).
Routage multi-agents
Exécutez plusieurs agents isolés dans un seul Gateway. Voir Multi-Agent.Champs de correspondance de liaison
type(facultatif) :routepour le routage normal (l’absence de type vaut route par défaut),acppour les liaisons persistantes de conversation ACP.match.channel(obligatoire)match.accountId(facultatif ;*= n’importe quel compte ; omis = compte par défaut)match.peer(facultatif ;{ kind: direct|group|channel, id })match.guildId/match.teamId(facultatif ; spécifique au canal)acp(facultatif ; uniquement pourtype: "acp") :{ mode, label, cwd, backend }
match.peermatch.guildIdmatch.teamIdmatch.accountId(exact, sans pair/guild/team)match.accountId: "*"(à l’échelle du canal)- Agent par défaut
bindings correspondante l’emporte.
Pour les entrées type: "acp", OpenClaw résout par identité de conversation exacte (match.channel + compte + match.peer.id) et n’utilise pas l’ordre de niveau des liaisons de routage ci-dessus.
Profils d’accès par agent
Accès complet (sans sandbox)
Accès complet (sans sandbox)
Outils + espace de travail en lecture seule
Outils + espace de travail en lecture seule
Aucun accès au système de fichiers (messagerie uniquement)
Aucun accès au système de fichiers (messagerie uniquement)
Session
Détails des champs de session
Détails des champs de session
scope: stratégie de regroupement de session de base pour les contextes de chat de groupe.per-sender(par défaut) : chaque expéditeur obtient une session isolée dans un contexte de canal.global: tous les participants d’un contexte de canal partagent une seule session (à utiliser uniquement lorsqu’un contexte partagé est voulu).
dmScope: manière dont les messages privés sont regroupés.main: tous les messages privés partagent la session principale.per-peer: isolation par identifiant d’expéditeur entre les canaux.per-channel-peer: isolation par canal + expéditeur (recommandé pour les boîtes de réception multi-utilisateurs).per-account-channel-peer: isolation par compte + canal + expéditeur (recommandé pour le multi-compte).
identityLinks: associe des identifiants canoniques à des pairs préfixés par fournisseur pour le partage de session inter-canaux.reset: politique principale de réinitialisation.dailyréinitialise àatHourà l’heure locale ;idleréinitialise aprèsidleMinutes. Lorsque les deux sont configurés, la première échéance l’emporte.resetByType: remplacements par type (direct,group,thread). L’anciendmest accepté comme alias dedirect.parentForkMaxTokens:totalTokensmaximum autorisé pour la session parente lors de la création d’une session de fil dérivée (par défaut100000).- Si le
totalTokensparent est supérieur à cette valeur, OpenClaw démarre une nouvelle session de fil au lieu d’hériter de l’historique de transcription parent. - Définissez
0pour désactiver cette protection et toujours autoriser la dérivation depuis le parent.
- Si le
mainKey: champ hérité. L’exécution utilise toujours"main"pour le compartiment principal de discussion directe.agentToAgent.maxPingPongTurns: nombre maximal de tours de réponse entre agents lors d’échanges agent-à-agent (entier, plage :0–5).0désactive l’enchaînement ping-pong.sendPolicy: correspondance parchannel,chatType(direct|group|channel, avec alias héritédm),keyPrefixourawKeyPrefix. Le premier refus l’emporte.maintenance: contrôles de nettoyage + rétention du magasin de sessions.mode:warnn’émet que des avertissements ;enforceapplique le nettoyage.pruneAfter: seuil d’âge pour les entrées obsolètes (par défaut30d).maxEntries: nombre maximal d’entrées danssessions.json(par défaut500).rotateBytes: fait tournersessions.jsonlorsqu’il dépasse cette taille (par défaut10mb).resetArchiveRetention: rétention pour les archives de transcription*.reset.<timestamp>. Par défaut, reprendpruneAfter; définissezfalsepour désactiver.maxDiskBytes: budget disque facultatif du répertoire de sessions. En modewarn, cela journalise des avertissements ; en modeenforce, cela supprime d’abord les artefacts/sessions les plus anciens.highWaterBytes: cible facultative après nettoyage du budget. Par défaut,80%demaxDiskBytes.
threadBindings: valeurs par défaut globales pour les fonctionnalités de session liées à un fil.enabled: commutateur maître par défaut (les fournisseurs peuvent le remplacer ; Discord utilisechannels.discord.threadBindings.enabled)idleHours: désépinglage automatique par inactivité par défaut en heures (0désactive ; les fournisseurs peuvent remplacer)maxAgeHours: âge maximal strict par défaut en heures (0désactive ; les fournisseurs peuvent remplacer)
Messages
Préfixe de réponse
Remplacements par canal/compte :channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Résolution (la plus spécifique l’emporte) : compte → canal → global. "" désactive et arrête la cascade. "auto" dérive [{identity.name}].
Variables de modèle :
| Variable | Description | Exemple |
|---|---|---|
{model} | Nom court du modèle | claude-opus-4-6 |
{modelFull} | Identifiant complet du modèle | anthropic/claude-opus-4-6 |
{provider} | Nom du fournisseur | anthropic |
{thinkingLevel} | Niveau de réflexion actuel | high, low, off |
{identity.name} | Nom d’identité de l’agent | (identique à "auto") |
{think} est un alias de {thinkingLevel}.
Réaction d’accusé
- Prend par défaut
identity.emojide l’agent actif, sinon"👀". Définissez""pour désactiver. - Remplacements par canal :
channels.<channel>.ackReaction,channels.<channel>.accounts.<id>.ackReaction. - Ordre de résolution : compte → canal →
messages.ackReaction→ repli d’identité. - Portée :
group-mentions(par défaut),group-all,direct,all. removeAckAfterReply: supprime l’accusé après la réponse sur Slack, Discord et Telegram.messages.statusReactions.enabled: active les réactions d’état du cycle de vie sur Slack, Discord et Telegram. Sur Slack et Discord, une valeur non définie conserve les réactions d’état activées lorsque les réactions d’accusé sont actives. Sur Telegram, définissez-le explicitement àtruepour activer les réactions d’état du cycle de vie.
Antirebond entrant
Regroupe les messages texte rapides du même expéditeur en un seul tour d’agent. Les médias/pièces jointes sont vidés immédiatement. Les commandes de contrôle contournent l’antirebond.TTS (synthèse vocale)
autocontrôle le mode auto-TTS par défaut :off,always,inboundoutagged./tts on|offpeut remplacer les préférences locales, et/tts statusaffiche l’état effectif.summaryModelremplaceagents.defaults.model.primarypour le résumé automatique.modelOverridesest activé par défaut ;modelOverrides.allowProvidervaut par défautfalse(activation explicite).- Les clés API se rabattent sur
ELEVENLABS_API_KEY/XI_API_KEYetOPENAI_API_KEY. openai.baseUrlremplace l’endpoint TTS OpenAI. L’ordre de résolution est : configuration, puisOPENAI_TTS_BASE_URL, puishttps://api.openai.com/v1.- Lorsque
openai.baseUrlpointe vers un endpoint non OpenAI, OpenClaw le traite comme un serveur TTS compatible OpenAI et assouplit la validation du modèle/de la voix.
Talk
Valeurs par défaut du mode Talk (macOS/iOS/Android).talk.providerdoit correspondre à une clé danstalk.providerslorsque plusieurs fournisseurs Talk sont configurés.- Les anciennes clés Talk plates (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) sont uniquement conservées pour compatibilité et sont automatiquement migrées verstalk.providers.<provider>. - Les identifiants de voix se rabattent sur
ELEVENLABS_VOICE_IDouSAG_VOICE_ID. providers.*.apiKeyaccepte des chaînes en clair ou des objets SecretRef.- Le repli
ELEVENLABS_API_KEYne s’applique que lorsqu’aucune clé API Talk n’est configurée. providers.*.voiceAliasespermet aux directives Talk d’utiliser des noms conviviaux.silenceTimeoutMscontrôle combien de temps le mode Talk attend après le silence de l’utilisateur avant d’envoyer la transcription. Une valeur non définie conserve la fenêtre de pause par défaut de la plateforme (700 ms sur macOS et Android, 900 ms sur iOS).
Voir aussi
- Référence de configuration — toutes les autres clés de configuration
- Configuration — tâches courantes et configuration rapide
- Exemples de configuration