agents.*, multiAgent.*, session.*,
messages.* et talk.*. Pour les canaux, les outils, l’exécution du Gateway et les autres
clés de niveau supérieur, consultez la référence de configuration.
Valeurs par défaut des agents
agents.defaults.workspace
Valeur par défaut : OPENCLAW_WORKSPACE_DIR lorsqu’elle est définie, sinon ~/.openclaw/workspace.
agents.defaults.workspace a priorité sur
OPENCLAW_WORKSPACE_DIR. Utilisez la variable d’environnement pour faire pointer les agents par défaut
vers un espace de travail monté lorsque vous ne voulez pas inscrire ce chemin dans la configuration.
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 de Skills par défaut facultative pour les agents qui ne définissent pas
agents.list[].skills.
- Omettez
agents.defaults.skillspour autoriser les skills sans restriction par défaut. - Omettez
agents.list[].skillspour hériter des valeurs par défaut. - Définissez
agents.list[].skills: []pour n’autoriser aucune skill. - Une liste
agents.list[].skillsnon vide constitue l’ensemble final pour cet agent ; elle n’est pas fusionnée avec les valeurs par défaut.
agents.defaults.skipBootstrap
Désactive la création automatique des fichiers d’amorçage de l’espace de travail (AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md).
agents.defaults.skipOptionalBootstrapFiles
Ignore la création de certains fichiers facultatifs de l’espace de travail tout en écrivant les fichiers d’amorçage requis. Valeurs valides : SOUL.md, USER.md, HEARTBEAT.md et IDENTITY.md.
agents.defaults.contextInjection
Contrôle quand les fichiers d’amorçage de l’espace de travail sont injectés dans le prompt système. Valeur 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 de l’amorçage 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 tout de même le contexte."never": désactive l’injection de l’amorçage de l’espace de travail et des fichiers de contexte à chaque tour. Utilisez cette option uniquement pour les agents qui contrôlent entièrement le cycle de vie de leur prompt (moteurs de contexte personnalisés, runtimes natifs qui construisent leur propre contexte, ou workflows spécialisés sans amorçage). Les tours Heartbeat et de récupération après Compaction ignorent également l’injection.
agents.list[].contextInjection. Les valeurs omises héritent de
agents.defaults.contextInjection.
agents.defaults.bootstrapMaxChars
Nombre maximal de caractères par fichier d’amorçage de l’espace de travail avant troncature. Valeur par défaut : 20000.
agents.list[].bootstrapMaxChars. Les valeurs omises héritent de
agents.defaults.bootstrapMaxChars.
agents.defaults.bootstrapTotalMaxChars
Nombre total maximal de caractères injectés sur l’ensemble des fichiers d’amorçage de l’espace de travail. Valeur par défaut : 60000.
agents.list[].bootstrapTotalMaxChars. Les valeurs omises
héritent de agents.defaults.bootstrapTotalMaxChars.
Remplacements de profil d’amorçage par agent
Utilisez les remplacements de profil d’amorçage par agent lorsqu’un agent a besoin d’un comportement d’injection de prompt différent des valeurs par défaut partagées. Les champs omis héritent deagents.defaults.
agents.defaults.bootstrapPromptTruncationWarning
Contrôle l’avis visible par l’agent dans le prompt système lorsque le contexte d’amorçage est tronqué.
Valeur par défaut : "always".
"off": n’injecte jamais de texte d’avis de troncature dans le prompt système."once": injecte un avis concis une fois par signature de troncature unique."always": injecte un avis concis à chaque exécution lorsqu’une troncature existe (recommandé).
Carte de propriété des budgets de contexte
OpenClaw dispose de plusieurs budgets de prompt/contexte à volume élevé, et ils sont intentionnellement répartis par sous-système au lieu de passer tous par un réglage générique unique.agents.defaults.bootstrapMaxChars/agents.defaults.bootstrapTotalMaxChars: injection normale de l’amorçage de l’espace de travail.agents.defaults.startupContext.*: préambule ponctuel de réinitialisation/démarrage pour l’exécution du modèle, incluant les fichiersmemory/*.mdquotidiens récents. Les commandes de chat simples/newet/resetsont accusées réception sans invoquer le modèle.skills.limits.*: la liste compacte de skills injectée dans le prompt système.agents.defaults.contextLimits.*: extraits runtime bornés et blocs injectés appartenant au runtime.memory.qmd.limits.*: extrait indexé de recherche mémoire et dimensionnement de l’injection.
agents.list[].skillsLimits.maxSkillsPromptCharsagents.list[].contextInjectionagents.list[].bootstrapMaxCharsagents.list[].bootstrapTotalMaxCharsagents.list[].contextLimits.*
agents.defaults.startupContext
Contrôle le préambule de démarrage du premier tour injecté lors des exécutions du modèle après réinitialisation/démarrage.
Les commandes de chat simples /new et /reset accusent réception de la réinitialisation sans invoquer
le modèle ; elles ne chargent donc pas ce préambule.
agents.defaults.contextLimits
Valeurs par défaut partagées pour les surfaces de contexte runtime bornées.
memoryGetMaxChars: plafond d’extraitmemory_getpar défaut avant l’ajout des métadonnées de troncature et de l’avis de continuation.memoryGetDefaultLines: fenêtre de lignesmemory_getpar défaut lorsquelinesest omis.toolResultMaxChars: plafond avancé des résultats d’outils en direct utilisé pour les résultats persistés et la récupération en cas de dépassement. Laissez-le non défini pour le plafond automatique du contexte modèle :16000caractères sous 100 000 tokens,32000caractères à 100 000+ tokens et64000caractères à 200 000+ tokens. Les valeurs explicites jusqu’à1000000sont acceptées pour les modèles à long contexte, mais le plafond effectif reste limité à environ 30 % de la fenêtre de contexte du modèle.openclaw doctor --deepaffiche le plafond effectif, et doctor n’émet un avertissement que lorsqu’un remplacement explicite est obsolète ou sans effet.postCompactionMaxChars: plafond d’extrait AGENTS.md utilisé pendant l’injection de rafraîchissement après Compaction.
agents.list[].contextLimits
Remplacement par agent pour les réglages partagés contextLimits. Les champs omis héritent
de agents.defaults.contextLimits.
skills.limits.maxSkillsPromptChars
Plafond global pour la liste compacte de 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 pour le budget du prompt de skills.
agents.defaults.imageMaxDimensionPx
Taille maximale en pixels du plus long côté de l’image dans les blocs image de transcript/outil avant les appels fournisseur.
Valeur par défaut : 1200.
Des valeurs plus basses réduisent généralement l’utilisation de tokens de vision et la taille de la charge utile de requête pour les exécutions riches en captures d’écran.
Des valeurs plus élevées préservent davantage de détails visuels.
agents.defaults.imageQuality
Préférence de compression/détail des outils d’image pour les images chargées depuis des chemins de fichiers, des URL et des références média.
Valeur par défaut : auto.
OpenClaw adapte l’échelle de redimensionnement au modèle d’image sélectionné. Par exemple, Claude Opus 4.8, OpenAI GPT-5.5, Qwen VL et les modèles de vision Llama 4 hébergés peuvent utiliser des images plus grandes que les chemins de vision anciens/par défaut à haut niveau de détail, tandis que les tours multi-images sont compressés plus agressivement en mode auto afin de maîtriser le coût en tokens et la latence.
Valeurs :
auto: s’adapte aux limites du modèle et au nombre d’images.efficient: privilégie des images plus petites pour réduire l’utilisation de tokens et d’octets.balanced: utilise l’échelle standard intermédiaire.high: préserve davantage de détails pour les captures d’écran, les diagrammes et les images de documents.
agents.defaults.userTimezone
Fuseau horaire pour le contexte du prompt système (pas pour les horodatages des messages). Se rabat sur le fuseau horaire de l’hôte.
agents.defaults.timeFormat
Format de l’heure dans le prompt système. Valeur par défaut : auto (préférence du système d’exploitation).
agents.defaults.model
model: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- La forme chaîne définit uniquement le modèle principal.
- La forme objet définit le modèle principal ainsi que des modèles de basculement ordonnés.
imageModel: accepte soit une chaîne ("provider/model"), soit un objet ({ primary, fallbacks }).- Utilisé par le chemin d’outil
imagecomme configuration de modèle de vision. - Également utilisé comme routage de repli lorsque le modèle sélectionné/par défaut ne peut pas accepter d’entrée image.
- Préférez les références explicites
provider/model. Les identifiants nus sont acceptés par compatibilité ; si un identifiant nu correspond de manière unique à une entrée configurée compatible image dansmodels.providers.*.models, OpenClaw le qualifie avec ce fournisseur. Les correspondances configurées ambiguës nécessitent un préfixe de fournisseur explicite.
- Utilisé par le chemin d’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 native Gemini,fal/fal-ai/flux/devpour fal,openai/gpt-image-2pour OpenAI Images, ouopenai/gpt-image-1.5pour la sortie OpenAI PNG/WebP avec arrière-plan transparent. - Si vous sélectionnez directement un fournisseur/modèle, configurez aussi l’authentification fournisseur correspondante (par exemple
GEMINI_API_KEYouGOOGLE_API_KEYpourgoogle/*,OPENAI_API_KEYou OpenAI Codex OAuth pouropenai/gpt-image-2/openai/gpt-image-1.5,FAL_KEYpourfal/*). - Si omis,
image_generatepeut toujours déduire une valeur par défaut de fournisseur adossée à une 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-previewouminimax/music-2.6. - Si omis,
music_generatepeut toujours déduire une valeur par défaut de fournisseur adossée à une 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é d’API 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-flashouqwen/wan2.7-r2v. - Si omis,
video_generatepeut toujours déduire une valeur par défaut de fournisseur adossée à une 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é d’API fournisseur correspondante.
- Le Plugin officiel 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 de niveau 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 de modèle. - Si omis, l’outil PDF se replie sur
imageModel, puis sur le modèle résolu de session/par défaut.
- 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 considéré par défaut par le mode de repli d’extraction dans l’outilpdf.verboseDefault: niveau détaillé par défaut pour les agents. Valeurs :"off","on","full". Par défaut :"off".toolProgressDetail: mode de détail pour les résumés d’outils/verboseet les lignes d’outil de brouillon de progression. Valeurs :"explain"(par défaut, libellés humains compacts) ou"raw"(ajoute la commande/le détail brut lorsque disponible).agents.list[].toolProgressDetailpar agent remplace cette valeur par défaut.reasoningDefault: visibilité du raisonnement par défaut pour les agents. Valeurs :"off","on","stream".agents.list[].reasoningDefaultpar agent remplace cette valeur par défaut. Les valeurs par défaut de raisonnement configurées ne sont appliquées que pour les propriétaires, les expéditeurs autorisés ou les contextes Gateway administrateur-opérateur lorsqu’aucun remplacement de raisonnement par message ou par session n’est défini.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.5pour un accès OpenAI par clé d’API ou Codex OAuth). Si vous omettez le fournisseur, OpenClaw essaie d’abord un alias, puis une correspondance unique de fournisseur configuré pour cet identifiant exact de modèle, et seulement ensuite se replie sur le fournisseur par défaut configuré (comportement de compatibilité obsolète, préférez donc unprovider/modelexplicite). Si ce fournisseur n’expose plus le modèle par défaut configuré, OpenClaw se replie sur le premier fournisseur/modèle configuré au lieu de remonter une valeur par défaut de fournisseur supprimé obsolète.models: catalogue de modèles configuré et liste d’autorisation pour/model. Chaque entrée peut inclurealias(raccourci) etparams(propres au fournisseur, par exempletemperature,maxTokens,cacheRetention,context1m,responsesServerCompaction,responsesCompactThreshold, routage OpenRouterprovider,chat_template_kwargs,extra_body/extraBody).- Utilisez des entrées
provider/*comme"openai/*": {}ou"vllm/*": {}pour afficher tous les modèles découverts pour les fournisseurs sélectionnés sans lister manuellement chaque identifiant de modèle. - Ajoutez
agentRuntimeà une entréeprovider/*lorsque chaque modèle découvert dynamiquement pour ce fournisseur doit utiliser le même runtime. La politique de runtime exacteprovider/modelprévaut toujours sur le joker. - 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 passez--replace. - Les flux de configuration/d’onboarding limités à un fournisseur fusionnent les modèles de fournisseur sélectionnés dans cette carte et préservent les fournisseurs sans rapport déjà configurés.
- Pour les modèles OpenAI Responses directs, la compaction côté serveur est activée automatiquement. Utilisez
params.responsesServerCompaction: falsepour arrêter l’injection decontext_management, ouparams.responsesCompactThresholdpour remplacer le seuil. Voir compaction côté serveur OpenAI.
- Utilisez des entrées
params: paramètres de fournisseur globaux par défaut appliqués à tous les modèles. Définis 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 plus de détails. models.providers.openrouter.params.provider: politique de routage fournisseur par défaut à l’échelle d’OpenRouter. OpenClaw la transmet à l’objetproviderde la requête OpenRouter ; les paramètres par modèleagents.defaults.models["openrouter/<model>"].params.provideret les paramètres d’agent remplacent par clé. Voir routage fournisseur OpenRouter.params.extra_body/params.extraBody: JSON avancé de transmission directe fusionné dans les corps de requêteapi: "openai-completions"pour les proxys compatibles OpenAI. S’il entre en collision avec des clés de requête générées, le corps supplémentaire gagne ; les routes de complétions non natives retirent quand même ensuite lestorepropre à OpenAI.params.chat_template_kwargs: arguments de modèle de chat vLLM/compatibles OpenAI fusionnés dans les corps de requête de premier niveauapi: "openai-completions". Pourvllm/nemotron-3-*avec la réflexion désactivée, le Plugin vLLM inclus envoie automatiquementenable_thinking: falseetforce_nonempty_content: true; leschat_template_kwargsexplicites remplacent les valeurs par défaut générées, etextra_body.chat_template_kwargsa toujours la priorité finale. Les modèles de réflexion vLLM Qwen et Nemotron configurés exposent des choix/thinkbinaires (off,on) au lieu de l’échelle d’effort à plusieurs niveaux.compat.thinkingFormat: style de charge utile de réflexion compatible OpenAI. Utilisez"together"pourreasoning.enabledde style Together,"qwen"pourenable_thinkingde premier niveau de style Qwen, ou"qwen-chat-template"pourchat_template_kwargs.enable_thinkingsur les backends de la famille Qwen qui prennent en charge les kwargs de modèle de chat au niveau requête, comme vLLM. OpenClaw mappe la réflexion désactivée àfalseet la réflexion activée àtrue, et les modèles vLLM Qwen configurés exposent des choix/thinkbinaires pour ces formats.compat.supportedReasoningEfforts: liste d’efforts de raisonnement compatible OpenAI par modèle. Incluez"xhigh"pour les endpoints personnalisés qui l’acceptent réellement ; OpenClaw expose alors/think xhighdans les menus de commande, les lignes de session Gateway, la validation des patchs de session, la validation de la CLI d’agent et la validationllm-taskpour ce fournisseur/modèle configuré. Utilisezcompat.reasoningEffortMaplorsque le backend attend une valeur propre au fournisseur pour un niveau canonique.params.preserveThinking: option d’activation propre à Z.AI pour la réflexion préservée. Lorsqu’elle est activée et que la réflexion est active, OpenClaw envoiethinking.clear_thinking: falseet rejoue lereasoning_contentantérieur ; voir réflexion Z.AI et réflexion préservée.localService: gestionnaire de processus facultatif de niveau fournisseur pour les serveurs de modèles locaux/auto-hébergés. Lorsque le modèle sélectionné appartient à ce fournisseur, OpenClaw sondehealthUrl(oubaseUrl + "/models"), démarrecommandavecargssi l’endpoint est indisponible, attend jusqu’àreadyTimeoutMs, puis envoie la requête de modèle.commanddoit être un chemin absolu.idleStopMs: 0garde le processus actif jusqu’à la fermeture d’OpenClaw ; une valeur positive arrête le processus lancé par OpenClaw après ce nombre de millisecondes d’inactivité. Voir services de modèles locaux.- La politique de runtime appartient aux fournisseurs ou aux modèles, pas à
agents.defaults. Utilisezmodels.providers.<provider>.agentRuntimepour des règles à l’échelle du fournisseur ouagents.defaults.models["provider/model"].agentRuntime/agents.list[].models["provider/model"].agentRuntimepour des règles propres au modèle. Les modèles d’agent OpenAI sur le fournisseur OpenAI officiel sélectionnent Codex par défaut. - Les rédacteurs de configuration qui modifient ces champs (par exemple
/models set,/models set-imageet les commandes d’ajout/suppression de repli) enregistrent la forme objet canonique et préservent les listes de repli existantes lorsque possible. maxConcurrent: nombre maximal d’exécutions d’agents parallèles entre sessions (chaque session reste sérialisée). Par défaut : 4.
Politique de runtime
id:"auto","openclaw", un id de harnais de plugin enregistré, ou un alias de backend CLI pris en charge. Le plugin Codex intégré enregistrecodex; le plugin Anthropic intégré fournit le backend CLIclaude-cli.id: "auto"permet aux harnais de plugin enregistrés de revendiquer les tours pris en charge et utilise OpenClaw lorsqu’aucun harnais ne correspond. Un runtime de plugin explicite commeid: "codex"exige ce harnais et échoue en mode fermé s’il est indisponible ou échoue.id: "pi"n’est accepté que comme alias obsolète deopenclawafin de préserver les configurations livrées avec v2026.5.22 et antérieures. Les nouvelles configurations doivent utiliseropenclaw.- La précédence du runtime est d’abord la politique exacte du modèle (
agents.list[].models["provider/model"],agents.defaults.models["provider/model"]oumodels.providers.<provider>.models[]), puisagents.list[]/agents.defaults.models["provider/*"], puis la politique à l’échelle du fournisseur dansmodels.providers.<provider>.agentRuntime. - Les clés de runtime d’agent complet sont héritées.
agents.defaults.agentRuntime,agents.list[].agentRuntime, les épinglages de runtime de session etOPENCLAW_AGENT_RUNTIMEsont ignorés par la sélection du runtime. Exécutezopenclaw doctor --fixpour supprimer les valeurs obsolètes. - Les modèles d’agent OpenAI utilisent le harnais Codex par défaut ;
agentRuntime.id: "codex"pour le fournisseur/modèle reste valide lorsque vous voulez le rendre explicite. - Pour les déploiements Claude CLI, privilégiez
model: "anthropic/claude-opus-4-8"avecagentRuntime.id: "claude-cli"limité au modèle. Les références de modèle héritéesclaude-cli/claude-opus-4-7fonctionnent toujours pour compatibilité, mais les nouvelles configurations doivent garder la sélection fournisseur/modèle canonique et placer le backend d’exécution dans la politique de runtime fournisseur/modèle. - Cela contrôle uniquement l’exécution des tours d’agent textuels. La génération de médias, la vision, les PDF, la musique, la vidéo et la synthèse vocale utilisent toujours leurs paramètres fournisseur/modèle.
agents.defaults.models) :
| Alias | Modèle |
|---|---|
opus | anthropic/claude-opus-4-8 |
sonnet | anthropic/claude-sonnet-4-6 |
gpt | openai/gpt-5.4 |
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 |
--thinking off ou agents.defaults.models["zai/<model>"].params.thinking vous-même.
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 sur false pour le désactiver.
Anthropic Claude Opus 4.8 garde la réflexion désactivée par défaut dans OpenClaw ; lorsque la réflexion adaptative est explicitement activée, la valeur d’effort par défaut détenue par le fournisseur Anthropic est high. Les modèles Claude 4.6 utilisent adaptive par défaut 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 uniquement (sans appels d’outils). Utile comme solution de secours lorsque les fournisseurs d’API échouent.
- Les backends CLI sont d’abord textuels ; les outils sont toujours désactivés.
- Les sessions sont prises en charge lorsque
sessionArgest défini. - La transmission d’images est prise en charge lorsque
imageArgaccepte des chemins de fichiers. reseedFromRawTranscriptWhenUncompacted: truepermet à un backend de récupérer des sessions invalidées sûres à partir d’une queue bornée de transcript OpenClaw brut avant que le premier résumé de Compaction existe. Les changements de profil d’authentification ou d’époque d’identifiants ne réensemencent toujours jamais à partir du brut.
agents.defaults.promptOverlays
Surcouches de prompt indépendantes du fournisseur appliquées par famille de modèles sur les surfaces de prompt assemblées par OpenClaw. Les ids de modèles de la famille GPT-5 reçoivent le contrat de comportement partagé sur les routes OpenClaw/fournisseur ; personality contrôle uniquement la couche conviviale de style d’interaction. Les routes natives de serveur d’application Codex conservent les instructions de base/modèle détenues par Codex au lieu de cette surcouche GPT-5 OpenClaw, et OpenClaw désactive la personnalité intégrée de Codex pour les fils natifs.
"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 encore lu lorsque ce réglage partagé n’est pas défini.
agents.defaults.heartbeat
Exécutions Heartbeat périodiques.
every: chaîne de durée (ms/s/m/h). Valeur par défaut :30m(authentification par clé API) ou1h(authentification OAuth). Définissez sur0mpour désactiver.includeSystemPromptSection: lorsque false, omet la section Heartbeat du prompt système et ignore l’injection deHEARTBEAT.mddans le contexte de bootstrap. Valeur 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 abandon. Laissez non défini pour utiliseragents.defaults.timeoutSecondslorsqu’il est défini, sinon la cadence Heartbeat plafonnée à 600 secondes.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 de bootstrap léger et ne conservent queHEARTBEAT.mdparmi les fichiers de bootstrap de l’espace de travail.isolatedSession: lorsque true, chaque Heartbeat s’exécute dans une session fraîche, sans historique de conversation antérieur. Même schéma d’isolation que le cronsessionTarget: "isolated". Réduit le coût en tokens par Heartbeat d’environ 100 K à environ 2 à 5 K tokens.skipWhenBusy: lorsque true, les exécutions Heartbeat sont différées sur les voies occupées supplémentaires de cet agent : son propre sous-agent indexé par clé de session ou son travail de commande imbriqué. Les voies Cron différent toujours les Heartbeats, même sans ce drapeau.- Par agent : définissez
agents.list[].heartbeat. Lorsqu’un agent définitheartbeat, seuls ces agents exécutent des Heartbeats. - Les Heartbeats exécutent des tours d’agent complets — des intervalles plus courts consomment plus de tokens.
agents.defaults.compaction
mode:defaultousafeguard(résumé par morceaux pour les longs historiques). Voir Compaction.provider: identifiant d’un Plugin fournisseur de compaction enregistré. Lorsqu’il est défini, la fonctionsummarize()du fournisseur est appelée à la place du résumé LLM intégré. Revient au mécanisme intégré en cas d’échec. Définir un fournisseur forcemode: "safeguard". Voir Compaction.timeoutSeconds: nombre maximal de secondes autorisées pour une seule opération de compaction avant qu’OpenClaw ne l’abandonne. Valeur par défaut :180.keepRecentTokens: budget de point de coupure de l’agent pour conserver textuellement la fin la plus récente de la transcription. La commande manuelle/compactle respecte lorsqu’il est explicitement défini ; sinon, la compaction manuelle est un point de contrôle strict.identifierPolicy:strict(par défaut),offoucustom.strictpréfixe des consignes intégrées de conservation des identifiants opaques pendant le résumé de compaction.identifierInstructions: texte personnalisé facultatif de préservation des identifiants utilisé lorsqueidentifierPolicy=custom.qualityGuard: vérifications avec nouvelle tentative en cas de sortie mal formée pour les résumés de protection. Activé par défaut en mode de protection ; définissezenabled: falsepour ignorer l’audit.midTurnPrecheck: vérification facultative de pression de la boucle d’outils. Lorsqueenabled: true, OpenClaw vérifie la pression du contexte après l’ajout des résultats d’outils et avant le prochain appel au modèle. Si le contexte ne tient plus, il abandonne la tentative en cours avant de soumettre le prompt et réutilise le chemin de récupération de prévérification existant pour tronquer les résultats d’outils ou compacter puis réessayer. Fonctionne avec les modes de compactiondefaultetsafeguard. Valeur par défaut : désactivé.postCompactionSections: noms facultatifs de sections H2/H3 d’AGENTS.md à réinjecter après la compaction. La réinjection est désactivée lorsque cette option n’est pas définie ou vaut[]. Définir explicitement["Session Startup", "Red Lines"]active cette paire et conserve le repli héritéEvery Session/Safety. Activez ceci uniquement lorsque le contexte supplémentaire vaut le risque de dupliquer des consignes de projet déjà capturées dans le résumé de compaction.model:provider/model-idfacultatif ou alias simple issu deagents.defaults.modelspour le résumé de compaction uniquement. Les alias simples sont résolus avant l’envoi ; les identifiants de modèles littéraux configurés gardent la priorité en cas de collision. Utilisez ceci 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.maxActiveTranscriptBytes: seuil facultatif en octets (numberou chaînes comme"20mb") qui déclenche une compaction locale normale avant une exécution lorsque le JSONL actif dépasse le seuil. NécessitetruncateAfterCompactionafin qu’une compaction réussie puisse effectuer une rotation vers une transcription successeur plus petite. Désactivé lorsqu’il n’est pas défini ou vaut0.notifyUser: lorsquetrue, envoie de brèves notifications à l’utilisateur lorsque la compaction commence et lorsqu’elle se termine (par exemple, « Compactage du contexte… » et « Compaction terminée »). Désactivé par défaut pour que la compaction reste silencieuse.memoryFlush: tour agentique silencieux avant l’auto-compaction pour stocker des souvenirs durables. Définissezmodelsur un fournisseur/modèle exact commeollama/qwen3:8blorsque ce tour de maintenance doit rester sur un modèle local ; la substitution n’hérite pas de la chaîne de repli de la session active. Ignoré lorsque l’espace de travail est en lecture seule.
agents.defaults.runRetries
Limites d’itérations de nouvelle tentative de la boucle d’exécution externe pour le runtime d’agent intégré afin d’éviter les boucles d’exécution infinies pendant la récupération après échec. Notez que ce paramètre ne s’applique actuellement qu’au runtime d’agent intégré, pas aux runtimes ACP ni CLI.
base: nombre de base d’itérations de nouvelle tentative d’exécution pour la boucle d’exécution externe. Valeur par défaut :24.perProfile: itérations supplémentaires de nouvelle tentative d’exécution accordées par candidat de profil de repli. Valeur par défaut :8.min: limite absolue minimale pour les itérations de nouvelle tentative d’exécution. Valeur par défaut :32.max: limite absolue maximale pour les itérations de nouvelle tentative d’exécution afin d’éviter une exécution incontrôlée. Valeur par défaut :160.
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.
cache-ttl mode behavior
cache-ttl mode behavior
mode: "cache-ttl"active les passes d’élagage.ttlcontrôle la fréquence à laquelle l’élagage peut s’exécuter à nouveau (après le dernier accès au cache).- L’élagage raccourcit d’abord en douceur les résultats d’outils surdimensionnés, puis efface complètement les résultats d’outils plus anciens si nécessaire.
softTrimRatioethardClearRatioacceptent les valeurs de0.0à1.0; la validation de configuration rejette les valeurs hors de cette plage.
... au milieu.Effacement complet remplace l’intégralité du résultat d’outil par l’espace réservé.Notes :- Les blocs d’images ne sont jamais raccourcis ni effacés.
- Les ratios sont basés sur les caractères (approximatifs), et non sur des nombres exacts de tokens.
- Si moins de
keepLastAssistantsmessages d’assistant existent, l’élagage est ignoré.
Streaming par blocs
- Les canaux autres que Telegram nécessitent
*.blockStreaming: trueexplicite pour activer les réponses par blocs. - Substitutions 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–2500 ms. Substitution par agent :agents.list[].humanDelay.
Indicateurs de saisie
- Valeurs par défaut :
instantpour les conversations directes/mentions,messagepour les conversations de groupe sans mention. - Substitutions par session :
session.typingMode,session.typingIntervalSeconds.
agents.defaults.sandbox
Sandboxing facultatif pour l’agent intégré. Voir Sandboxing pour le guide complet.
Sandbox details
Sandbox details
Backend :Mode OpenShell :
docker: runtime Docker local (par défaut)ssh: runtime distant générique adossé à SSHopenshell: runtime OpenShell
backend: "openshell" est sélectionné, les paramètres propres au runtime 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 qu’OpenClaw matérialise en fichiers temporaires au runtimestrictHostKeyChecking/updateHostKeys: réglages de stratégie de clé d’hôte OpenSSH
identityDatal’emporte suridentityFilecertificateDatal’emporte surcertificateFileknownHostsDatal’emporte surknownHostsFile- Les valeurs
*Dataadossées à SecretRef sont résolues à partir de l’instantané actif du runtime de 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
- conserve ensuite l’espace de travail SSH distant comme canonique
- achemine
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 dans/workspace, espace de travail de l’agent monté en lecture seule dans/agentrw: espace de travail de l’agent monté en lecture/écriture dans/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 (aucune isolation entre sessions)
mirror: amorce le distant depuis le local avant l’exécution, resynchronise après l’exécution ; l’espace de travail local reste canoniqueremote: amorce le distant une fois lors de la création du bac à sable, puis conserve l’espace de travail distant comme canonique
remote, les modifications locales à l’hôte effectuées en dehors d’OpenClaw ne sont pas synchronisées automatiquement dans le bac à sable après l’étape d’amorçage.
Le transport utilise SSH vers le bac à sable OpenShell, mais le Plugin possède le cycle de vie du bac à sable 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 l’utilisateur root.Les conteneurs utilisent par défaut network: "none" — définissez-le sur "bridge" (ou sur 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 (solution d’urgence).
Les tours du serveur d’application Codex dans un bac à sable OpenClaw actif utilisent ce même réglage de sortie pour leur accès réseau natif en mode code.Les pièces jointes entrantes sont préparées dans media/inbound/* dans l’espace de travail actif.docker.binds monte des répertoires hôtes supplémentaires ; les montages globaux et par agent sont fusionnés.Navigateur en bac à sable (sandbox.browser.enabled) : Chromium + CDP dans un conteneur. URL noVNC injectée dans le prompt système. Ne nécessite pas browser.enabled dans openclaw.json.
L’accès observateur noVNC utilise l’authentification VNC par défaut 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 en bac à sable de cibler le navigateur hôte.networkvaut par défautopenclaw-sandbox-browser(réseau bridge dédié). Définissez-le surbridgeuniquement lorsque vous voulez explicitement une connectivité bridge globale.cdpSourceRangerestreint facultativement l’entrée CDP au bord du conteneur à une plage CIDR (par exemple172.21.0.1/32).sandbox.browser.bindsmonte des répertoires hôtes supplémentaires uniquement dans le conteneur du navigateur en bac à sable. Lorsqu’il est défini (y compris[]), il remplacedocker.bindspour le conteneur du navigateur.- Les valeurs de lancement par défaut sont définies dans
scripts/sandbox-browser-entrypoint.shet réglé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’utilisation 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-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 (depuis un checkout source) :
docker build en ligne.
agents.list (remplacements par agent)
Utilisez agents.list[].tts pour donner à un agent son propre fournisseur TTS, sa voix, son modèle,
son style ou son mode TTS automatique. Le bloc agent est fusionné en profondeur par-dessus
messages.tts, afin que les identifiants partagés puissent rester au même endroit pendant que les agents individuels
ne remplacent que les champs de voix ou de fournisseur dont ils ont besoin. Le remplacement de l’agent actif
s’applique aux réponses vocales automatiques, à /tts audio, à /tts status et
à l’outil agent tts. Consultez Synthèse vocale
pour des exemples de fournisseurs et l’ordre de priorité.
id: identifiant d’agent stable (obligatoire).default: lorsque plusieurs sont définis, le premier gagne (avertissement journalisé). Si aucun n’est défini, la première entrée de liste est la valeur par défaut.model: la forme chaîne définit un modèle principal strict par agent sans modèle de secours ; la forme objet{ primary }est également stricte sauf si vous ajoutezfallbacks. Utilisez{ primary, fallbacks: [...] }pour inscrire cet agent au repli, ou{ primary, fallbacks: [] }pour rendre explicite le comportement strict. 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 ceci pour les remplacements propres à l’agent commecacheRetention,temperatureoumaxTokenssans dupliquer tout le catalogue de modèles.tts: remplacements de synthèse vocale facultatifs par agent. Le bloc est fusionné en profondeur par-dessusmessages.tts, donc conservez les identifiants de fournisseur partagés et la stratégie de repli dansmessages.tts, et définissez ici uniquement les valeurs propres à la persona, comme le fournisseur, la voix, le modèle, le style ou le mode automatique.skills: liste d’autorisation Skills facultative par agent. Si elle est omise, l’agent hérite deagents.defaults.skillslorsque c’est défini ; une liste explicite remplace les valeurs par défaut au lieu de les fusionner, et[]signifie aucune Skills.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. Le profil fournisseur/modèle sélectionné contrôle les valeurs valides ; pour Google Gemini,adaptiveconserve la réflexion dynamique possédée par le fournisseur (thinkingLevelomis sur Gemini 3/3.1,thinkingBudget: -1sur Gemini 2.5).reasoningDefault: visibilité du raisonnement par défaut facultative par agent (on | off | stream). Remplaceagents.defaults.reasoningDefaultpour cet agent 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 ("auto" | true | false). S’applique lorsqu’aucun remplacement de mode rapide par message ou par session n’est défini.models: remplacements facultatifs par agent du catalogue de modèles/de l’exécution, indexés par identifiants completsprovider/model. Utilisezmodels["provider/model"].agentRuntimepour les exceptions d’exécution par agent.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 utiliser par défaut des sessions de harnais ACP.identity.avatar: chemin relatif à l’espace de travail, URLhttp(s)ou URIdata:.- Les fichiers image
identity.avatarlocaux relatifs à l’espace de travail sont limités à 2 Mo. Les URLhttp(s)et les URIdata:ne sont pas vérifiées avec la limite locale de taille de fichier. identitydérive les valeurs par défaut :ackReactiondepuisemoji,mentionPatternsdepuisname/emoji.subagents.allowAgents: liste d’autorisation d’identifiants d’agents configurés pour les cibles explicitessessions_spawn.agentId(["*"]= toute cible configurée ; par défaut : même agent uniquement). Incluez l’identifiant du demandeur lorsque les appelsagentIdciblant lui-même doivent être autorisés. Les entrées obsolètes dont la configuration d’agent a été supprimée sont rejetées parsessions_spawnet omises deagents_list; exécutezopenclaw doctor --fixpour les nettoyer, ou ajoutez une entrée minimaleagents.list[]si cette cible doit rester invocable tout en héritant des valeurs par défaut.- Garde d’héritage du bac à sable : si la session demandeuse est en bac à sable,
sessions_spawnrejette les cibles qui s’exécuteraient sans bac à sable. subagents.requireAgentId: lorsque vrai, bloque les appelssessions_spawnqui omettentagentId(force une sélection explicite de profil ; par défaut : false).
Routage multi-agent
Exécutez plusieurs agents isolés dans un seul Gateway. Consultez Multi-agent.Champs de correspondance de liaison
type(facultatif) :routepour le routage normal (un type manquant vaut par défaut route),acppour les liaisons de conversation ACP persistantes.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 ; propre 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 gagne.
Pour les entrées type: "acp", OpenClaw résout par identité exacte de conversation (match.channel + compte + match.peer.id) et n’utilise pas l’ordre par niveaux de liaison de route ci-dessus.
Profils d’accès par agent
Full access (no sandbox)
Full access (no sandbox)
Read-only tools + workspace
Read-only tools + workspace
No filesystem access (messaging only)
No filesystem access (messaging only)
Session
Session field details
Session field details
scope: stratégie de regroupement de session de base pour les contextes de discussion 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 lorsque le contexte partagé est voulu).
dmScope: façon dont les MP sont regroupés.main: tous les MP partagent la session principale.per-peer: isole par identifiant d’expéditeur entre les canaux.per-channel-peer: isole par canal + expéditeur (recommandé pour les boîtes de réception multi-utilisateur).per-account-channel-peer: isole par compte + canal + expéditeur (recommandé pour les configurations multi-compte).
identityLinks: associe des identifiants canoniques à des pairs préfixés par fournisseur pour le partage de session entre canaux. Les commandes Dock telles que/dock_discordutilisent la même association pour basculer la route de réponse de la session active vers un autre pair de canal lié ; voir l’arrimage de canal.reset: politique de réinitialisation principale.dailyréinitialise à l’heure localeatHour;idleréinitialise aprèsidleMinutes. Lorsque les deux sont configurés, le premier à expirer l’emporte. La fraîcheur de la réinitialisation quotidienne utilise lesessionStartedAtde la ligne de session ; la fraîcheur de la réinitialisation après inactivité utiliselastInteractionAt. Les écritures en arrière-plan/événement système telles que Heartbeat, les réveils Cron, les notifications exec et la comptabilité Gateway peuvent mettre à jourupdatedAt, mais elles ne maintiennent pas fraîches les sessions quotidiennes/inactives.resetByType: remplacements par type (direct,group,thread). L’anciendmest accepté comme alias dedirect.mainKey: champ hérité. Le runtime utilise toujours"main"pour le compartiment principal de discussion directe.agentToAgent.maxPingPongTurns: nombre maximal de tours de réponse entre agents lors des échanges agent-à-agent (entier, plage :0-20, par défaut :5).0désactive l’enchaînement ping-pong.sendPolicy: correspondance parchannel,chatType(direct|group|channel, avec l’alias héritédm),keyPrefixourawKeyPrefix. Le premier refus l’emporte.maintenance: contrôles de nettoyage et de rétention du magasin de sessions.mode:enforceapplique le nettoyage et constitue la valeur par défaut ;warnémet uniquement des avertissements.pruneAfter: seuil d’âge pour les entrées obsolètes (par défaut30d).maxEntries: nombre maximal d’entrées danssessions.json(par défaut500). Le runtime écrit le nettoyage par lots avec une petite marge haute pour les plafonds de taille production ;openclaw sessions cleanup --enforceapplique immédiatement le plafond.- Les sessions de sonde d’exécution de modèle Gateway à courte durée de vie utilisent une rétention fixe de
24h, mais le nettoyage est déclenché par la pression : il ne supprime les lignes obsolètes de sonde stricte d’exécution de modèle que lorsque la maintenance ou la pression de plafond des entrées de session est atteinte. Seules les clés de sonde explicite stricte correspondant àagent:*:explicit:model-run-<uuid>sont éligibles ; les sessions normales directes, de groupe, de thread, Cron, hook, Heartbeat, ACP et sous-agent n’héritent pas de cette rétention de 24 h. Lorsque le nettoyage des exécutions de modèle s’exécute, il s’exécute avant le nettoyage plus large des entrées obsolètespruneAfteret le plafondmaxEntries. rotateBytes: obsolète et ignoré ;openclaw doctor --fixle supprime des anciennes configurations.resetArchiveRetention: rétention des archives de transcription*.reset.<timestamp>. Utilise par défautpruneAfter; définissez surfalsepour désactiver.maxDiskBytes: budget disque facultatif pour le répertoire des sessions. En modewarn, il journalise des avertissements ; en modeenforce, il supprime d’abord les artefacts/sessions les plus anciens.highWaterBytes: cible facultative après nettoyage du budget. Utilise par défaut80%demaxDiskBytes.
threadBindings: valeurs par défaut globales pour les fonctionnalités de session liées aux threads.enabled: commutateur par défaut principal (les fournisseurs peuvent le remplacer ; Discord utilisechannels.discord.threadBindings.enabled)idleHours: désactivation automatique par défaut après inactivité, en heures (0désactive ; les fournisseurs peuvent remplacer)maxAgeHours: âge maximal strict par défaut, en heures (0désactive ; les fournisseurs peuvent remplacer)spawnSessions: garde par défaut pour créer des sessions de travail liées aux threads depuissessions_spawnet les créations de threads ACP. Utilise par défauttruelorsque les liaisons de thread sont activées ; les fournisseurs/comptes peuvent remplacer.defaultSpawnContext: contexte natif de sous-agent par défaut pour les créations liées aux threads ("fork"ou"isolated"). Utilise par défaut"fork".
Messages
Préfixe de réponse
Remplacements par canal/compte :channels.<channel>.responsePrefix, channels.<channel>.accounts.<id>.responsePrefix.
Résolution (le 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é de réception
- Utilise 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 sur l’identité. - Portée :
group-mentions(par défaut),group-all,direct,all. removeAckAfterReply: supprime l’accusé après la réponse sur les canaux prenant en charge les réactions tels que Slack, Discord, Signal, Telegram, WhatsApp et iMessage.messages.statusReactions.enabled: active les réactions d’état du cycle de vie sur Slack, Discord, Signal, Telegram et WhatsApp. Sur Slack et Discord, l’absence de valeur conserve les réactions d’état activées lorsque les réactions d’accusé sont actives. Sur Signal, Telegram et WhatsApp, définissez explicitement cette option surtruepour activer les réactions d’état du cycle de vie.messages.statusReactions.emojis: remplace les clés d’emoji du cycle de vie :queued,thinking,compacting,tool,coding,web,deploy,build,concierge,done,error,stallSoftetstallHard. Telegram n’autorise qu’un ensemble fixe de réactions ; les emoji configurés non pris en charge se replient donc sur la variante d’état prise en charge la plus proche pour cette discussion.
Anti-rebond entrant
Regroupe les messages texte uniquement envoyés rapidement par le même expéditeur en un seul tour d’agent. Les médias/pièces jointes déclenchent l’envoi immédiatement. Les commandes de contrôle contournent l’anti-rebond.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.allowProvidervautfalsepar défaut (opt-in).- Les clés d’API se rabattent sur
ELEVENLABS_API_KEY/XI_API_KEYetOPENAI_API_KEY. - Les fournisseurs de synthèse vocale groupés appartiennent aux plugins. Si
plugins.allowest défini, incluez chaque plugin fournisseur TTS que vous voulez utiliser, par exemplemicrosoftpour Edge TTS. L’ancien identifiant de fournisseuredgeest accepté comme alias demicrosoft. providers.openai.baseUrlremplace le point de terminaison TTS OpenAI. L’ordre de résolution est la configuration, puisOPENAI_TTS_BASE_URL, puishttps://api.openai.com/v1.- Lorsque
providers.openai.baseUrlpointe vers un point de terminaison non OpenAI, OpenClaw le traite comme un serveur TTS compatible OpenAI et assouplit la validation du modèle et de la voix.
Talk
Valeurs par défaut pour le mode Talk (macOS/iOS/Android).talk.providerdoit correspondre à une clé danstalk.providerslorsque plusieurs fournisseurs Talk sont configurés.- Les clés Talk plates héritées (
talk.voiceId,talk.voiceAliases,talk.modelId,talk.outputFormat,talk.apiKey) sont uniquement destinées à la compatibilité. Exécutezopenclaw doctor --fixpour réécrire la configuration persistée danstalk.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_KEYs’applique uniquement lorsqu’aucune clé d’API Talk n’est configurée. providers.*.voiceAliasespermet aux directives Talk d’utiliser des noms conviviaux.providers.mlx.modelIdsélectionne le dépôt Hugging Face utilisé par l’assistant MLX local macOS. S’il est omis, macOS utilisemlx-community/Soprano-80M-bf16.- La lecture MLX sur macOS passe par l’assistant groupé
openclaw-mlx-ttslorsqu’il est présent, ou par un exécutable surPATH;OPENCLAW_MLX_TTS_BINremplace le chemin de l’assistant pour le développement. consultThinkingLevelcontrôle le niveau de réflexion pour l’exécution complète de l’agent OpenClaw derrière les appels Control UI Talk realtimeopenclaw_agent_consult. Laissez-le non défini pour préserver le comportement normal de la session/du modèle.consultFastModedéfinit un remplacement ponctuel du mode rapide pour les consultations Control UI Talk realtime sans modifier le réglage normal du mode rapide de la session.speechLocaledéfinit l’identifiant de locale BCP 47 utilisé par la reconnaissance vocale Talk iOS/macOS. Laissez-le non défini pour utiliser la valeur par défaut de l’appareil.silenceTimeoutMscontrôle combien de temps le mode Talk attend après le silence de l’utilisateur avant d’envoyer la transcription. Non défini, il conserve la fenêtre de pause par défaut de la plateforme (700 ms on macOS and Android, 900 ms on iOS).realtime.instructionsajoute des instructions système destinées au fournisseur au prompt realtime intégré d’OpenClaw, afin que le style vocal puisse être configuré sans perdre les instructions par défaut deopenclaw_agent_consult.realtime.consultRoutingcontrôle le repli du relais Gateway lorsque le fournisseur realtime produit une transcription utilisateur finale sansopenclaw_agent_consult:provider-directpréserve les réponses directes du fournisseur, tandis queforce-agent-consultachemine la requête finalisée via OpenClaw.
Connexe
- Référence de configuration — toutes les autres clés de configuration
- Configuration — tâches courantes et configuration rapide
- Exemples de configuration