Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Référence de configuration

ZeroClaw est configuré via un fichier TOML. Tous les champs sont facultatifs sauf indication contraire.

SectionDescription
a2aSection A2A qui laisse de la place pour une future configuration sœur.
acpConfiguration du serveur ACP (Agent Client Protocol) (section [acp]).
agentsAgents avec alias dans cette installation. Chaque entrée sous [agents.<alias>]
backupConfiguration de l’outil de sauvegarde (section [backup]).
browserConfiguration de l’automatisation du navigateur (section [browser]).
browser_delegate
channelsConfigurations de canal de premier niveau ([channels] section).
claude_codeConfiguration de l’outil CLI Claude Code (section [claude_code]).
claude_code_runnerConfiguration du lanceur de tâches Claude Code (section [claude_code_runner]).
cloud_opsContrôle les outils d’analyse de transformation du nuage de points en lecture seule :
codex_cliConfiguration de l’outil CLI Codex (section [codex_cli]).
composioIntégration des outils gérés par Composio pour OAuth ([composio] section).
conversational_aiConfiguration de l’agent d’IA conversationnelle ([conversational_ai] section).
costConfiguration du suivi des coûts et de l’application du budget (section [cost]).
cronTâches cron déclaratives ([cron.<alias>]), indexées par alias.
data_retentionConfiguration de la rétention et du purgeage des données (section [data_retention]).
delegateConfiguration globale de l’outil de délégation pour les valeurs par défaut des délais d’attente.
embedding_routesRègles de routage d’embedding — route hint:<name> vers un
enrollPoint de terminaison d’inscription de certificat ([enroll]).
escalationConfiguration du routage d’escalade (section [escalation]).
evalConfiguration pour le harnais d’évaluation de l’agent ([eval]), exposée via le
file_downloadConfiguration de l’outil autonome de téléchargement de fichiers ([file_download]).
file_uploadConfiguration de l’outil autonome de téléversement de fichiers ([file_upload]).
file_upload_bundleConfiguration de l’outil autonome de téléversement de bundles multi-fichiers
gatewayConfiguration du serveur passerelle (section [gateway]).
gemini_cliConfiguration de l’outil Gemini CLI (section [gemini_cli]).
google_workspaceConfiguration de l’outil CLI Google Workspace (gws) (section [google_workspace]).
hardwareConfiguration matérielle guidée par un assistant pour l’interaction avec le monde physique.
heartbeatConfiguration du heartbeat pour les pings de santé périodiques (section [heartbeat]).
hooks
http_requestConfiguration de l’outil de requête HTTP (section [http_request]).
image_genConfiguration de l’outil de génération d’images autonome ([image_gen]).
jiraConfiguration de l’intégration Jira ([jira]).
knowledgeConfiguration du graphe de connaissances pour la capture et la réutilisation de l’expertise.
knowledge_bundlesLots de connaissances nommés ([knowledge_bundles.<alias>]).
link_enricherCompréhension automatique des liens pour les messages entrants du canal ([link_enricher]).
linkedinConfiguration de l’intégration LinkedIn (section [linkedin]).
localeLocale pour les descriptions d’outils (par exemple, "en", "zh-CN").
mcpConfiguration externe du client MCP (section [mcp]).
mcp_bundlesBundles de serveurs MCP nommés ([mcp_bundles.<alias>]).
media_pipelineConfiguration du pipeline de compréhension automatique des médias ([media_pipeline]).
memoryConfiguration du backend de mémoire (section [memory]).
microsoft365Intégration de Microsoft 365 via l’API Microsoft Graph (section [microsoft365]).
model_routesRègles de routage de modèles — acheminer hint:<name> vers un modèle spécifique
multimodalConfiguration de la gestion multimodale (image) (section [multimodal]).
nodesConfiguration pour le système de découverte dynamique des nœuds ([nodes]).
notionConfiguration de l’intégration Notion ([notion]).
observabilityConfiguration du backend d’observabilité (section [observability]).
onboard_stateConfiguration d’isolation de l’espace de travail multi-client.
opencode_cliConfiguration de l’outil CLI OpenCode (section [opencode_cli]).
pacingContrôles de pacing pour les charges de travail LLM lentes/locales ([pacing] section).
peer_groupsGroupes de pairs nommés ([peer_groups.<name>]). Chaque entrée associe un
peripheralsConfiguration d’intégration de la carte périphérique (section [peripherals]).
pipelineConfiguration de l’outil de pipeline (section [pipeline]).
pluginsConfiguration du système de plugins.
project_intelConfiguration de l’intelligence de livraison de projet ([project_intel] section).
providersConteneur de premier niveau pour chaque catégorie de fournisseur configurée.
proxyConfiguration du proxy pour le trafic HTTP/HTTPS/SOCKS5 sortant (section [proxy]).
query_classificationClassification automatique des requêtes — classe les messages des utilisateurs par mot-clé ou motif
relayClient du relais désigné ([relay]).
reliabilityConfiguration de la fiabilité et de la supervision (section [reliability]).
risk_profilesProfils de risque/autonomie nommés ([risk_profiles.<alias>]).
runtimeConfiguration de l’adaptateur d’exécution (section [runtime]).
runtime_profilesProfils d’exécution runtime/LLM nommés ([runtime_profiles.<alias>]).
schedulerConfiguration du planificateur pour l’exécution périodique des tâches (section [scheduler]).
schema_versionVersion du schéma du fichier de configuration.
secretsConfiguration de chiffrement des secrets (section [secrets]).
securityConfiguration de sécurité pour la journalisation d’audit, OTP, arrêt d’urgence, IAM/SSO, WebAuthn,
security_opsConfiguration de l’agent du tableau de bord du service de cybersécurité géré (MCSS) ([security_ops]).
shell_toolConfiguration de l’outil Shell (section [shell_tool]).
skill_bundlesLots de compétences nommés ([skill_bundles.<alias>]).
skillsConfiguration de chargement des compétences ([skills] section).
sopConfiguration du moteur des procédures opérationnelles standard ([sop]).
storageConfiguration du stockage persistant (section [storage]).
text_browserConfiguration de l’outil de navigateur de texte ([text_browser] section).
transcriptionConfiguration de transcription vocale avec prise en charge de plusieurs fournisseurs.
trust
ttsConfiguration du sous-système de synthèse vocale ([tts]).
tunnelConfiguration du tunnel pour exposer publiquement la passerelle (section [tunnel]).
verifiable_intentÉmission de justificatifs Verifiable Intent (VI) et vérification des contraintes
web_fetchConfiguration de l’outil de récupération web (section [web_fetch]).
web_searchConfiguration de l’outil de recherche Web (section [web_search]).
wssTransport WebSocket Secure (WSS) pour les connexions distantes TUI-vers-daemon ([wss]).

a2a

Section A2A qui laisse de la place pour une future configuration sœur.

CléTypePar défautDescription
serverobjetConfiguration du serveur de découverte A2A entrant.

a2a.server

Configuration du serveur de découverte A2A entrant.

CléTypePar défautDescription
bindstring?Surcharge d’hôte facultative en mode annonce uniquement pour les URL des points de terminaison de carte. Le
enabledboolfalseInterrupteur principal pour la surface A2A entrante. Par défaut false : non
portinteger?Surcharge optionnelle du port d’annonce uniquement, associée à bind. None
public_base_urlchaîne""URL de base fournie par l’opérateur, publiée dans les points de terminaison de la carte d’agent.

acp

Configuration du serveur ACP (Agent Client Protocol) (section [acp]).

CléTypePar défautDescription
default_agentstring?Alias d’agent à utiliser lorsque session/new omet agentAlias et que plus de
max_sessionsentier10Nombre maximal de sessions ACP simultanées. Par défaut : 10.
session_timeout_secsentier3600Délai d’expiration de session inactive en secondes. Les sessions sans activité pendant cette

agents

Agents avec alias dans cette installation. Chaque entrée sous [agents.<alias>] est un agent destiné à l’utilisateur, avec sa propre identité, ses canaux, son fournisseur de modèle, son profil de risque, son espace de travail et sa portée mémoire. DelegateTool consulte cette table lorsqu’un agent délègue une sous-tâche à un autre.

agents.<alias>

Configuration pour un agent aliasé. Chaque bloc TOML [agents.<alias>] est désérialisé en l’un de ces éléments. Le DelegateTool recherche les entrées ici afin de déléguer une sous-tâche à un agent frère nommé.

CléTypePar défautDescription
a2aobjetConfiguration de publication A2A par agent et des compétences exposées.
acp_enable_mcpboolfalseInitialiser les outils mcp_bundles de cet agent lorsqu’il sert un ACP
channelsstring[][]Alias de canal gérés par cet agent (par ex. ["telegram.<alias>", "discord.<alias>"]).
classifier_providerchaîneRéférence à une entrée configurée [providers.models.<type>.<alias>].
cron_jobsstring[][]Alias des tâches cron. Chaque entrée fait référence à cron[key], une configuration déclarative
delegate_same_risk_profilebooltrueAutoriser automatiquement la délégation à tous les agents partageant le risque de cet agent
delegatesobject[][]Liste explicite des délégués : alias d’agent supplémentaires que cet agent peut
enabledbooltrueSi cet agent est actif. Définissez false pour désactiver sans supprimer la définition.
identityobjetConfiguration du format d’identité (section [identity]).
knowledge_bundlesstring[][]Alias des paquets de connaissances. Additif : l’agent charge tous les éléments listés
mcp_bundlesstring[][]Alias de bundle MCP. Chaque entrée fait référence à mcp_bundles[key], un nommé
memoryobjetSélection du backend de mémoire par agent et son contrat de persistance.
model_providerchaîneRéférence à une entrée configurée [providers.models.<type>.<alias>].
precheckobjetConfiguration de la vérification préalable de l’intention de réponse par canal.
risk_profilechaîneRéférence à une entrée configurée [risk_profiles.<type>.<alias>].
runtime_profilechaîneRéférence à une entrée configurée [runtime_profiles.<type>.<alias>].
skill_bundlesstring[][]Alias de skill bundles. Chaque entrée se résout en
summary_providerchaîneRéférence à une entrée configurée [providers.models.<type>.<alias>].
transcription_providerchaîneRéférence à une entrée configurée [providers.transcription.<type>.<alias>].
tts_providerchaîneRéférence à une entrée configurée [providers.tts.<type>.<alias>].
workspaceobjetConfiguration de l’espace de travail par agent et d’accès inter-agents.

agents.<alias>.a2a

Configuration de publication A2A par agent et des compétences exposées.

CléTypePar défautDescription
exposed_skillsstring[][]Filtre sélectionnant les skill ids résolus qui apparaissent sur cet alias
publishedboolfalsePublier cet alias en tant qu’agent A2A découvrable. Par défaut false :

agents.<alias>.identity

Configuration du format d’identité (section [identity]).

Prend en charge les documents d’identité "openclaw" (par défaut) ou "aieos".

CléTypePar défautDescription
aieos_inlinestring?nullJSON AIEOS en ligne (alternative au chemin de fichier)
aieos_pathstring?nullChemin vers le fichier JSON AIEOS (relatif à l’espace de travail)
formatchaîneopenclawFormat d’identité : “openclaw” (par défaut) ou “aieos”

agents.<alias>.memory

Sélection du backend de mémoire par agent et son contrat de persistance.

CléTypePar défautDescription
backendtableSélectionne le backend de mémoire utilisé par un agent.

agents.<alias>.precheck

Configuration de la vérification préalable de l’intention de réponse par canal.

CléTypePar défautDescription
enabledbooltrueLorsque false, le précontrôle est entièrement ignoré pour cet agent et chaque
timeout_secsentier5Limite maximale (secondes) sur l’appel LLM de pré-vérification. En cas de dépassement de délai, le

agents.<alias>.workspace

Configuration de l’espace de travail par agent et d’accès inter-agents.

CléTypePar défautDescription
accesscarte{}Liste d’autorisation des espaces de travail inter-agents. Une map vide n’accorde aucun accès aux éléments frères.
pathstring?Chemin de l’espace de travail explicite optionnel. None = dériver de
read_memory_fromstring[][]Liste d’autorisation de mémoire inter-agents. Une liste vide n’accorde l’accès qu’à la mémoire locale.
unrestricted_filesystemboolfalseÉchappatoire : lorsque true, l’agent peut lire ou écrire n’importe où

backup

Configuration de l’outil de sauvegarde (section [backup]).

CléTypePar défautDescription
compressbooltrueCompresser les archives de sauvegarde.
destination_dirchaîne"state/backups"Répertoire de sortie pour les archives de sauvegarde (relatif à la racine de l’espace de travail).
enabledbooltrueActiver l’outil backup.
encryptboolfalseChiffrer les archives de sauvegarde (nécessite une clé de magasin de secrets configurée).
include_dirsstring[]["config","memory","audit","knowledge"]Sous-répertoires de l’espace de travail à inclure dans les sauvegardes.
max_keepentier10Nombre maximum de sauvegardes à conserver (les plus anciennes sont supprimées).
schedule_cronstring?nullExpression cron optionnelle pour les sauvegardes automatiques planifiées.
schedule_timezonestring?nullFuseau horaire IANA pour schedule_cron.

browser

Configuration de l’automatisation du navigateur (section [browser]).

Contrôle l’outil browser_open et les backends d’automatisation du navigateur.

CléTypePar défautDescription
allowed_domainsstring[]["*"]Domaines autorisés pour browser_open (correspondance exacte ou sous-domaine)
allowed_private_hostsstring[][]Hôtes privés/internes autorisés à contourner la protection SSRF.
backendchaîne"agent_browser"Backend d’automatisation du navigateur : “agent_browser” | “rust_native” | “computer_use” | “auto”
computer_useobjetConfiguration du sidecar d’utilisation de l’ordinateur (section [browser.computer_use]).
enabledbooltrueActiver l’outil browser_open (ouvre les URL dans le navigateur système sans extraction de contenu)
headedbool?nullAfficher la fenêtre du navigateur pour le backend agent_browser. Si non défini, hérite de AGENT_BROWSER_HEADED.
native_chrome_pathstring?nullChemin exécutable Chrome/Chromium optionnel pour le backend natif Rust
native_headlessbooltrueMode sans tête pour le backend natif Rust
native_webdriver_urlchaîne"http://127.0.0.1:9515"URL de l’endpoint WebDriver pour le backend natif Rust (par exemple, http://127.0.0.1:9515)
session_namestring?nullNom de la session du navigateur (pour l’automatisation agent-browser)

browser.computer_use

Configuration du sidecar d’utilisation de l’ordinateur (section [browser.computer_use]).

Délègue les actions de souris, clavier et capture d’écran au niveau du système d’exploitation à un sidecar local.

CléTypePar défautDescription
allow_remote_endpointboolfalseAutoriser un point de terminaison distant/public pour le sidecar d’utilisation de l’ordinateur (par défaut : false)
api_key 🔑string?nullJeton d’authentification facultatif pour le sidecar d’utilisation de l’ordinateur
endpointchaîne"http://127.0.0.1:8787/v1/actions"Point de terminaison Sidecar pour les actions d’utilisation de l’ordinateur (souris/clavier/capture d’écran au niveau du système d’exploitation)
max_coordinate_xinteger?nullLimite facultative de l’axe X pour les actions basées sur les coordonnées
max_coordinate_yinteger?nullLimite facultative de l’axe Y pour les actions basées sur les coordonnées
timeout_msentier15000Délai d’expiration de la requête par action en millisecondes
window_allowliststring[][]Liste blanche facultative des titres de fenêtre/processus transmise à la politique du sidecar

browser_delegate

CléTypePar défautDescription
allowed_domainsstring[][]
blocked_domainsstring[][]
chrome_profile_dirchaîne""
cli_binarychaîne"claude"
enabledboolfalse
task_timeout_secsentier120

channels

Configurations de canal de premier niveau ([channels] section).

chaque type de canal est une table à clés d’instances nommées (alias). [channels.telegram.default] est la clé conventionnelle pour une instance unique. L’accès se fait via config.channels.telegram.get("default").

CléTypePar défautDescription
ack_reactionsbooltrueS’il faut ajouter des réactions d’accusé de réception (👀 à la réception, ✅/⚠️ à la
amqpcarteInstances de canaux AMQP ([channels.amqp.<alias>]).
blueskycarteInstances de canal Bluesky ([channels.bluesky.<alias>]).
clawdtalkcarteInstances de canal vocal ClawdTalk ([channels.clawdtalk.<alias>]).
clibooltrueActiver le canal interactif de la CLI. Par défaut : true.
debounce_msentier0Fenêtre de débounce des messages entrants en millisecondes. Lorsqu’un expéditeur envoie
dingtalkcarteInstances de canal DingTalk ([channels.dingtalk.<alias>]).
discordcarteInstances de canaux du bot Discord ([channels.discord.<alias>]).
emailcarteInstances de canal e-mail ([channels.email.<alias>]).
filesystemcarteFilesystem SOP instances d’écouteur ([channels.filesystem.<alias>]).
gitcarteInstances de canal Git-forge ([channels.git.<alias>]). GitHub est
gmail_pushcarteInstances de canal de notifications push Gmail Pub/Sub ([channels.gmail_push.<alias>]).
imessagecarteInstances de canal iMessage ([channels.imessage.<alias>], macOS uniquement).
irccarteInstances de canaux IRC ([channels.irc.<alias>]).
larkcarteInstances de canal Lark ([channels.lark.<alias>]).
linecarteInstances de canal LINE Messaging API ([channels.line.<alias>]).
linqcarteInstances de canal Linq Partner API ([channels.linq.<alias>]).
matrixcarteInstances de canal Matrix ([channels.matrix.<alias>]).
mattermostcarteInstances de canal de bot Mattermost ([channels.mattermost.<alias>]).
max_concurrent_per_channelentier4Multiplicateur par canal pour le budget global de messages en vol des canaux.
message_timeout_secsentier300Délai d’attente par défaut en secondes pour le traitement d’un message d’un seul canal (LLM + outils).
mochatcarteInstances de canal de service client Mochat ([channels.mochat.<alias>]).
mqttcarteInstances de canaux MQTT ([channels.mqtt.<alias>]).
nextcloud_talkcarteInstances de canal de bot Nextcloud Talk ([channels.nextcloud_talk.<alias>]).
nostrcarte
plugincarteInstances de plugins de canal WASM ([channels.plugin.<alias>]).
qqcarteInstances de canaux QQ Official Bot ([channels.qq.<alias>]).
redditcarteInstances de canal Reddit ([channels.reddit.<alias>]).
session_backendchaîne"sqlite"Backend de persistance de session : "jsonl" (hérité) ou "sqlite" (nouvelle valeur par défaut).
session_persistencebooltrueConserver l’historique des conversations des canaux dans des fichiers JSONL afin que les sessions survivent
session_ttl_hoursentier0Archive automatiquement les sessions obsolètes après ce nombre d’heures. 0 désactive. Par défaut : 0.
show_tool_callsboolfalseIndique s’il faut envoyer des messages de notification d’appel d’outil (par exemple, 🔧 web_search_tool: …)
signalcarteInstances de canal Signal ([channels.signal.<alias>]).
slackcarteInstances de canaux de bot Slack ([channels.slack.<alias>]).
telegramcarteInstances de canal de bot Telegram ([channels.telegram.<alias>]).
twitchcarteInstances de canal de chat Twitch ([channels.twitch.<alias>]).
twittercarteInstances de canal X/Twitter ([channels.twitter.<alias>]).
voice_callcarteInstances de canal d’appel vocal ([channels.voice_call.<alias>]).
voice_duplexcarteInstances voice duplex ([channels.voice_duplex.<alias>]).
voice_wakecarteInstances de canal de détection de mot d’activation vocal ([channels.voice_wake.<alias>]).
webhookcarteInstances de canal webhook ([channels.webhook.<alias>]).
wechatcarteInstances de canal WeChat personnel iLink Bot ([channels.wechat.<alias>]).
wecomcarteInstances de canal Webhook Bot WeCom (WeChat Enterprise) ([channels.wecom.<alias>]).
wecom_wscarteInstances de canal WebSocket WeCom AI Bot ([channels.wecom_ws.<alias>]).
whatsappcarteInstances de canal WhatsApp ([channels.whatsapp.<alias>]).

claude_code

Configuration de l’outil CLI Claude Code (section [claude_code]).

Délègue les tâches de codage à l’interface CLI claude -p. L’authentification utilise par défaut la session OAuth propre au binaire (abonnement Max) — aucune clé API n’est nécessaire, sauf si env_passthrough inclut ANTHROPIC_API_KEY.

CléTypePar défautDescription
allowed_toolsstring[]["Read","Edit","Bash","Write"]Outils que le sous-processus de Claude Code est autorisé à utiliser
enabledboolfalseActivez l’outil claude_code
env_passthroughstring[][]Variables d’environnement supplémentaires transmises au sous-processus Claude (par exemple, ANTHROPIC_API_KEY pour la facturation par clé API)
max_output_bytesentier2097152Taille maximale de sortie en octets (2 Mo par défaut)
system_promptstring?nullInvite de système optionnelle ajoutée aux invocations de Claude Code
timeout_secsentier600Temps d’exécution maximum en secondes (les tâches de codage peuvent être longues)

claude_code_runner

Configuration du lanceur de tâches Claude Code (section [claude_code_runner]).

Lance Claude Code dans une session tmux avec des hooks HTTP qui envoient des événements d’exécution d’outils au gateway de ZeroClaw, en mettant à jour un message Slack en place avec la progression ainsi qu’un lien de transfert SSH.

CléTypePar défautDescription
enabledboolfalseActivez l’outil claude_code_runner
session_ttlentier3600Durée de vie de la session en secondes avant le nettoyage automatique (par défaut : 3600)
ssh_hoststring?nullHôte SSH pour les liens de transfert de session (par exemple, « myhost.example.com »)
tmux_prefixchaîne"zc-claude-"Préfixe pour les noms de sessions tmux (par défaut : « zc-claude- »)

cloud_ops

Contrôle les outils d’analyse de transformation cloud en lecture seule : examen de l’IaC, évaluation de la migration, analyse des coûts et examen de l’architecture.

CléTypePar défautDescription
cost_threshold_monthly_usdnombre100.0Seuil mensuel en USD pour signaler les éléments de coût. Par défaut : 100,0.
default_cloudchaîne"aws"Fournisseur de modèle cloud par défaut pour le contexte d’analyse. Par défaut : “aws”.
enabledboolfalseActiver les outils d’exploitation cloud. Par défaut : false.
iac_toolsstring[]["terraform"]Outils IaC pris en charge pour la revue. Par défaut : [terraform].
supported_cloudsstring[]["aws","azure","gcp"]model_providers cloud pris en charge. Par défaut : [aws, azure, gcp].
well_architected_frameworksstring[]["aws-waf"]Cadres de référence bien architecturés à vérifier. Par défaut : [aws-waf].

codex_cli

Configuration de l’outil CLI Codex (section [codex_cli]).

Délègue les tâches de codage à la CLI codex exec. L’authentification utilise par défaut la session propre au binaire — aucune clé API n’est nécessaire sauf si env_passthrough inclut OPENAI_API_KEY.

CléTypePar défautDescription
enabledboolfalseActiver l’outil codex_cli
env_passthroughstring[][]Variables d’environnement supplémentaires transmises au sous-processus codex (par exemple, OPENAI_API_KEY)
extra_argsstring[][]Arguments CLI supplémentaires ajoutés à codex exec avant le prompt.
max_output_bytesentier2097152Taille maximale de sortie en octets (2 Mo par défaut)
timeout_secsentier600Temps d’exécution maximum en secondes (les tâches de codage peuvent être longues)

composio

Intégration des outils gérés par Composio pour OAuth ([composio] section).

Fournit l’accès à plus de 1000 outils connectés via OAuth grâce à la plateforme Composio.

CléTypePar défautDescription
api_key 🔑string?nullClé API Composio (stockée de manière chiffrée lorsque secrets.encrypt = true)
enabledboolfalseActiver l’intégration Composio pour plus de 1000 outils OAuth
entity_idchaîne"default"ID d’entité par défaut pour les configurations multi-utilisateurs

conversational_ai

Configuration de l’agent d’IA conversationnelle ([conversational_ai] section).

Statut : Réservé pour une utilisation future. Cette configuration est analysée mais n’est pas encore utilisée par l’exécution. Définir enabled = true générera un avertissement au démarrage.

CléTypePar défautDescription
analytics_enabledboolfalseActiver le suivi des analyses de conversation. Par défaut : false (confidentialité par défaut).
auto_detect_languagebooltrueDétecter automatiquement la langue de l’utilisateur à partir du contenu du message. Par défaut : true.
conversation_timeout_secsentier1800Délai d’expiration de la conversation en secondes (inactivité). Par défaut : 1800.
default_languagechaîne"en"Langue par défaut pour les conversations (tag BCP-47). Par défaut : « en ».
enabledboolfalseActiver les fonctionnalités d’IA conversationnelle. Par défaut : false.
escalation_confidence_thresholdnombre0.3Une confiance d’intention inférieure à ce seuil déclenche une escalade. Par défaut : 0,3.
knowledge_base_toolstring?nullNom d’outil optionnel pour la recherche dans une base de connaissances basée sur RAG pendant les conversations.
max_conversation_turnsentier50Nombre maximum de tours de conversation avant la fin automatique. Par défaut : 50.
supported_languagesstring[]["en","de","fr","it"]Langues prises en charge pour les conversations. Par défaut : [en, de, fr, it].

cost

Configuration du suivi des coûts et de l’application du budget (section [cost]).

CléTypePar défautDescription
allow_overrideboolfalseAutoriser les requêtes à dépasser le budget avec l’indicateur --override (par défaut : false)
daily_limit_usdnombre10.0Limite de dépenses quotidienne en USD (par défaut : 10,00)
enabledbooltrueActiver le suivi des coûts (par défaut : true)
enforcementobjetConfiguration du comportement de l’application des coûts lorsque les limites de budget sont atteintes.
monthly_limit_usdnombre100.0Limite de dépenses mensuelle en USD (par défaut : 100,00)
ratesobjet[cost.rates] — espace de noms de premier niveau pour la grille tarifaire. Reflète le
track_per_agentbooltrueEstampillez chaque entrée de coût enregistrée avec l’alias de l’agent d’origine afin de
warn_at_percententier80Avertir lorsque les dépenses atteignent ce pourcentage de la limite (par défaut : 80)

cost.enforcement

Configuration du comportement de l’application des coûts lorsque les limites de budget sont atteintes.

CléTypePar défautDescription
modechaîne"warn"Mode d’application : « warn », « block » ou « route_down ».
reserve_percententier10Réservez ce pourcentage du budget pour les opérations critiques.
route_down_modelstring?nullModèle de secours à utiliser lorsque le budget est dépassé (utilisé avec le mode « route_down »).

cost.rates

[cost.rates] — espace de noms de niveau supérieur pour la grille tarifaire. Reproduit la structure de [providers.*] afin que chaque sous-section pointe vers le même type de ressource que celle configurée par son équivalent dans [providers.*].

CléTypePar défautDescription
providersobjet[cost.rates.providers.*] — fiches tarifaires structurées par fournisseur. Chaque champ
toolscarte{}[cost.rates.tools.<name>] — tarifs par appel pour les outils qui

cost.rates.providers

[cost.rates.providers.*] — grilles tarifaires structurées par fournisseur. Chaque champ ici reflète un champ correspondant de [providers.*], le segment d’alias final étant remplacé par la ressource dont le tarif est fixé. Les wrappers typés internes portent l’agencement des emplacements par type de fournisseur et gèrent leur propre répartition (leur liste d’emplacements est la source unique de vérité, partagée avec leur équivalent côté providers via les macros for_each_*_provider_slot! dans [crate::providers]).

CléTypePar défautDescription
modelsobjet[cost.rates.providers.models.<type>.<model>] — taux de coût des tokens
transcriptionobjetcost.rates.providers.transcription.<type>.<model>
ttsobjetcost.rates.providers.tts.<type>.<voice>

cron

Tâches cron déclaratives ([cron.<alias>]), indexées par alias.

Chaque entrée est une tâche planifiée nommée, synchronisée dans la base de données au démarrage du planificateur. Les paramètres d’exécution du sous-système (activation/désactivation, rattrapage, rétention de l’historique d’exécution) se trouvent dans [scheduler].

cron.<alias>

Une définition déclarative d’une tâche cron ([cron.<alias>]).

Stocké indexé par alias sur Config.cron. La clé de la map sert d’identifiant stable de job. Synchronisé dans la base de données au démarrage du planificateur avec source = "declarative", les distinguant des jobs créés de manière impérative via CLI ou API. La configuration déclarative a la priorité à chaque synchronisation : si la configuration change, la DB est mise à jour pour correspondre. Les jobs impératifs ne sont jamais supprimés par la synchronisation.

CléTypePar défautDescription
allowed_toolsstring[]?nullListe d’autorisation facultative des noms d’outils pour les jobs d’agent. Lorsqu’elle est omise, le planificateur
commandstring?nullCommande shell à exécuter (requis lorsque job_type = "shell").
deliveryobjetConfiguration de livraison pour les tâches cron déclaratives.
enabledbooltrueSi le job est activé. Par défaut : true.
job_typechaîneshellType de tâche : "shell" (par défaut) ou "agent".
modelstring?nullRemplacement du modèle pour les tâches d’agent.
namestring?nullNom lisible par l’homme.
promptstring?nullPrompt de l’agent (requis lorsque job_type = "agent").
scheduletableVariante de planification pour les tâches cron déclaratives.
session_targetstring?nullCible de session : "isolated" (par défaut) ou "main".
shell_output_formattableFormat de sortie pour la sortie standard des tâches cron shell.
uses_memorybooltrueS’il faut rappeler et injecter le contexte de mémoire avant l’exécution de ce job d’agent.

cron.<alias>.delivery

Configuration de livraison pour les tâches cron déclaratives.

CléTypePar défautDescription
best_effortbooltrueLivraison au mieux. Par défaut : true.
channelstring?nullCanal vers lequel effectuer la livraison, au format <type>.<alias> (par ex.
modechaîne"aucun"Mode de livraison : "none" ou "announce".
thread_idstring?Identifiant optionnel de thread/conversation transmis dans l’envoi sortant.
tostring?nullIdentifiant de la cible/du destinataire.

data_retention

Configuration de la rétention et du purgeage des données (section [data_retention]).

CléTypePar défautDescription
categoriesstring[][]Limiter l’application de la rétention à des catégories de données spécifiques (vide = toutes).
dry_runboolfalseAperçu de ce qui serait supprimé sans rien supprimer réellement.
enabledboolfalseActivez l’outil data_management.
retention_daysentier90Nombre de jours de données à conserver avant l’éligibilité à la purge.

delegate

Configuration globale de l’outil de délégation pour les valeurs par défaut des délais d’attente.

CléTypePar défautDescription
agentic_timeout_secsentier300Délai d’attente par défaut en secondes pour les exécutions de sous-agents agents.
timeout_secsentier120Délai d’expiration par défaut en secondes pour les appels non agentiques au model_provider du sous-agent.

embedding_routes

Règles de routage d’embedding — acheminez hint:<name> vers des combinaisons spécifiques model_provider + model pour les requêtes d’embedding.

enroll

Point de terminaison d’inscription de certificat ([enroll]).

La surface d’amorçage dédiée et étroitement délimitée qu’un client certless utilise pour obtenir son PREMIER certificat. Il s’agit d’un TLS authentifié par le serveur (le démon prouve son identité ; le client confirme l’autorité de certification via la chaîne courte d’authentification d’appairage), complété par un contrôle par code d’appairage. Elle n’accepte qu’une seule opération : soumettre une CSR, puis recevoir un certificat signé, la chaîne de l’autorité de certification et le profil de relais. Ce n’est PAS un mécanisme de repli vers le plan RPC toujours-mTLS (ce plan reste mutuellement authentifié, sans voie permettant d’affaiblir cette sécurité) ; il s’agit d’un point de terminaison minimal distinct, doté de son propre modèle d’authentification. Le démon détient l’autorité de certification ; ce point de terminaison fonctionne donc sans passerelle.

CléTypePar défautDescription
allow_unpaired_enrollmentchaîne""Réservé à un flux de migration futur. La première version FOSS rejette tout
bindchaîne"0.0.0.0"Adresse sur laquelle se lie le point de terminaison d’inscription.
enabledboolfalseActiver le point de terminaison d’inscription (par défaut : false). Nécessite l’activation de [wss]
portentier9782Port sur lequel le point de terminaison d’inscription est à l’écoute.

escalation

Configuration du routage d’escalade (section [escalation]).

Contrôle quels canaux reçoivent les notifications d’alerte lorsque escalate_to_human est appelé avec une urgence élevée ou critique. Les canaux sont identifiés par leur nom (par exemple "telegram", "slack"). Les alertes sont envoyées au mieux et ne bloquent pas l’escalade.

CléTypePar défautDescription
alert_channelsstring[][]Noms des canaux à alerter en cas d’escalades élevées/critiques (par défaut : vide).

eval

Configuration pour le harnais d’évaluation de l’agent ([eval]), exposée via la commande zeroclaw eval. À distinguer de [agent.eval], qui est l’évaluateur de qualité des réponses intégré à la boucle.

CléTypePar défautDescription
modechaîne"replay"Mode d’exécution par défaut (replay ou live) utilisé lorsque --mode est omis.
suite_dirchaîne"evals"Répertoire par défaut des fixtures de trace *.json utilisées lorsque --suite est omis.

file_download

Configuration de l’outil autonome de téléchargement de fichiers ([file_download]).

Lorsque url est défini sur une valeur non vide, enregistre un outil file_download qui effectue une requête GET pour récupérer un fichier depuis le point de terminaison configuré et l’écrit dans le système de fichiers de l’espace de travail de l’agent. Le LLM fournit uniquement un identifiant de document et un chemin de destination relatif à l’espace de travail ; l’URL du point de terminaison provient exclusivement de cette configuration et n’est jamais contrôlée par le modèle. Les octets de la réponse sont diffusés en flux vers le disque et ne sont jamais chargés dans le contexte du modèle.

Lorsque url est None ou vide, l’outil n’est pas enregistré.

CléTypePar défautDescription
headers 🔑carte{}En-têtes HTTP statiques joints à chaque requête de téléchargement — typiquement un
max_file_size_bytesentier26214400Taille maximale de téléchargement en octets. Appliquée pendant le streaming : le transfert
timeout_secsentier120Délai d’expiration de la requête en secondes. Par défaut : 120.
urlstring?nullURL du point de terminaison de téléchargement. L’outil est désactivé lorsque cette valeur est None ou vide.

file_upload

Configuration de l’outil autonome de téléversement de fichiers ([file_upload]).

Lorsque url est défini sur une valeur non vide, enregistre un outil file_upload qui envoie par POST les fichiers du système de fichiers local de l’agent vers le point de terminaison configuré en utilisant multipart/form-data. Le LLM fournit uniquement un chemin de fichier ; l’hôte lit les octets et les téléverse sans jamais inclure le contenu du fichier dans le contexte du modèle.

Lorsque url est None ou vide, l’outil n’est pas enregistré.

CléTypePar défautDescription
field_namechaîne"file"Nom du champ de formulaire multipart pour la partie fichier. Valeur par défaut : file.
headers 🔑carte{}En-têtes HTTP statiques attachés à chaque requête d’upload. Même structure que
max_file_size_bytesentier26214400Taille maximale de fichier en octets. Les fichiers plus volumineux sont rejetés avant tout
methodchaîne"POST"Méthode HTTP. Seules POST (par défaut) et PUT sont acceptées.
timeout_secsentier60Délai d’expiration de la requête en secondes. Par défaut : 60.
urlstring?nullURL du point de terminaison d’envoi. L’outil est désactivé lorsque cette valeur est None ou vide.

file_upload_bundle

Configuration de l’outil autonome de téléversement de bundles multi-fichiers ([file_upload_bundle]).

Lorsque url est défini sur une valeur non vide, enregistre un outil file_upload_bundle qui envoie par POST N fichiers depuis le système de fichiers local de l’agent vers le point de terminaison configuré sous la forme d’une seule requête multipart/form-data. Le LLM fournit uniquement les chemins de fichiers ; l’hôte lit les octets.

Lorsque url est None ou vide, l’outil n’est pas enregistré.

CléTypePar défautDescription
field_namechaîne"file"Nom du champ de formulaire multipart réutilisé pour chaque partie de fichier. Par défaut : file.
headers 🔑carte{}En-têtes HTTP statiques joints à chaque requête d’envoi.
max_file_size_bytesentier10485760Taille maximale par fichier en octets. Par défaut : 10 Mio.
max_filesentier16Nombre maximal de fichiers par appel. Par défaut : 16.
max_response_body_bytesentier4096Nombre maximal d’octets du corps de réponse à lire depuis le point de terminaison de téléversement.
max_total_size_bytesentier33554432Taille cumulée maximale de tous les fichiers dans un même appel. Valeur par défaut : 32 MiB.
methodchaîne"POST"Méthode HTTP. Seules POST (par défaut) et PUT sont acceptées.
timeout_secsentier120Délai d’expiration de la requête en secondes. Par défaut : 120.
urlstring?nullURL du point de terminaison d’envoi. L’outil est désactivé lorsque cette valeur est None ou vide.

gateway

Configuration du serveur passerelle (section [gateway]).

Contrôle le gateway HTTP pour les points de terminaison webhook et d’appariement.

CléTypePar défautDescription
allow_public_bindboolfalseAutoriser la liaison à une adresse autre que localhost sans tunnel (par défaut : false)
allow_remote_adminboolfalseAutoriser les appelants distants authentifiés à utiliser les points de terminaison d’administration qui sont
allow_self_upgradeboolfalseAutoriser le déclenchement d’une mise à niveau automatique (remplacement du binaire via zeroclaw update) depuis
check_updatesbooltrueInterroger GitHub pour les nouvelles versions et afficher un indicateur « mise à jour disponible »
hostchaîne"127.0.0.1"Hôte de la passerelle (par défaut : 127.0.0.1)
idempotency_max_keysentier10000Nombre maximum de clés d’idempotence distinctes conservées en mémoire.
idempotency_ttl_secsentier300TTL pour les clés d’idempotence des webhooks.
long_running_request_timeout_secsentier600Délai d’expiration de la requête HTTP (en secondes) pour POST /api/cron/{id}/run, qui
pair_rate_limit_per_minuteentier10Nombre maximum de requêtes /pair par minute par clé client.
paired_tokens 🔑string[][]Jeton(s) de porteur apparié(s) (géré(s) automatiquement, non modifié(s) par l’utilisateur)
pairing_dashboardobjetConfiguration du tableau de bord d’appairage ([gateway.pairing_dashboard]).
path_prefixstring?nullPréfixe de chemin URL optionnel pour les déploiements en reverse-proxy.
portentier42617Port de passerelle (par défaut : 42617)
rate_limit_max_keysentier10000Nombre maximum de clés de client distinctes suivies par les cartes de limiteur de débit de la passerelle.
request_timeout_secsentier30Délai d’expiration des requêtes HTTP (en secondes) pour les routes de passerelle autres que la
require_pairingbooltrueExiger l’appariement avant d’accepter les requêtes (par défaut : true)
session_persistencebooltruePersister les sessions de chat WebSocket du gateway dans SQLite. Par défaut : true.
session_ttl_hoursentier0Archive automatiquement les sessions de passerie obsolètes depuis plus de N heures. 0 = désactivé. Par défaut : 0.
tlsobjetConfiguration TLS pour le serveur passerelle ([gateway.tls]).
trust_forwarded_headersboolfalseFaire confiance aux en-têtes d’IP client transmis par le proxy (X-Forwarded-For, X-Real-IP).
web_dist_dirstring?nullChemin vers le répertoire dist du tableau de bord web. Lorsqu’il est défini, la passerelle
webhook_rate_limit_per_minuteentier60Nombre maximal de requêtes /webhook par minute par clé client.
webhook_secret 🔑string?nullSecret partagé facultatif pour le point de terminaison générique POST /webhook de la passerelle et
websocket_ping_interval_secsentier30Envoyer des trames ping WebSocket toutes les N secondes pour maintenir le chat du tableau de bord

gateway.pairing_dashboard

Configuration du tableau de bord d’appairage ([gateway.pairing_dashboard]).

CléTypePar défautDescription
code_lengthentier8Longueur des codes d’appariement (par défaut : 8)
code_ttl_secsentier3600Durée de vie des codes d’appariement en attente, en secondes (par défaut : 3600)
lockout_secsentier300Durée de verrouillage en secondes après le nombre maximal de tentatives (par défaut : 300)
max_failed_attemptsentier5Nombre maximum de tentatives d’appariement échouées avant le verrouillage (par défaut : 5)
max_pending_codesentier3Nombre maximum de codes d’appariement en attente simultanés (par défaut : 3)

gateway.tls

Configuration TLS pour le serveur passerelle ([gateway.tls]).

CléTypePar défautDescription
cert_path*chaîneChemin vers le fichier de certificat serveur encodé en PEM.
client_authobjetConfiguration de l’authentification par certificat client (mTLS) ([gateway.tls.client_auth]).
enabledboolfalseActiver TLS pour la passerelle (par défaut : false).
key_path*chaîneChemin vers le fichier de clé privée du serveur encodé en PEM.

gateway.tls.client_auth

Configuration de l’authentification par certificat client (mTLS) ([gateway.tls.client_auth]).

CléTypePar défautDescription
ca_cert_pathchaîne""Chemin vers le certificat CA encodé en PEM utilisé pour vérifier les certificats clients.
crl_pathchaîne""Chemin facultatif vers une liste d’empreintes révoquées (une valeur hexadécimale SHA-256 par ligne). A
enabledboolfalseActiver la vérification du certificat client (par défaut : false).
pinned_certsstring[][]Empreintes SHA-256 facultatives pour l’épinglage de certificat.
require_client_certbooltrueRejeter les connexions qui ne présentent pas de certificat client valide (par défaut : true).

gemini_cli

Configuration de l’outil Gemini CLI (section [gemini_cli]).

Délègue les tâches de codage à l’interface CLI gemini -p. L’authentification utilise par défaut la session propre au binaire — aucune clé API n’est requise, sauf si env_passthrough inclut GOOGLE_API_KEY.

CléTypePar défautDescription
enabledboolfalseActiver l’outil gemini_cli
env_passthroughstring[][]Variables d’environnement supplémentaires transmises au sous-processus gemini (par exemple, GOOGLE_API_KEY)
max_output_bytesentier2097152Taille maximale de sortie en octets (2 Mo par défaut)
timeout_secsentier600Temps d’exécution maximum en secondes (les tâches de codage peuvent être longues)

google_workspace

Configuration de l’outil CLI Google Workspace (gws) (section [google_workspace]).

Valeurs par défaut

  • enabled : false (l’outil n’est pas enregistré sauf si explicitement activé).
  • allowed_services : vecteur vide, ce qui accorde l’accès à l’ensemble complet des services par défaut : drive, sheets, gmail, calendar, docs, slides, tasks, people, chat, classroom, forms, keep, meet, events.
  • allowed_operations : un vecteur vide, ce qui préserve le comportement hérité permettant toute ressource/méthode sous l’ensemble de services autorisé.
  • credentials_path : None (utilise la découverte par défaut des identifiants gws).
  • default_account : None (utilise le compte actif gws).
  • rate_limit_per_minute : 60.
  • timeout_secs : 30.
  • audit_log : false.

Compatibilité

Les configurations qui omettent entièrement la section [google_workspace] sont traitées comme GoogleWorkspaceConfig::default() (désactivé, toutes les valeurs par défaut autorisées). L’ajout de cette section est purement optionnel et n’affecte pas les autres sections de configuration.

Rollback / Migration

Pour revenir en arrière, supprimez la section [google_workspace] du fichier de configuration (ou définissez enabled = false). Aucune migration de données n’est nécessaire ; l’outil se désenregistre simplement.

CléTypePar défautDescription
allowed_operationsobject[][]Restreindre les combinaisons de ressources/méthodes que l’agent peut accéder.
allowed_servicesstring[][]Restreindre les services Google Workspace auxquels l’agent peut accéder.
audit_logboolfalseActiver la journalisation d’audit pour chaque invocation de gws (service, ressource,
credentials_pathstring?nullChemin vers le fichier JSON du compte de service ou le fichier d’identifiants du client OAuth.
default_accountstring?nullAdresse e-mail du compte Google par défaut à passer à gws --account.
enabledboolfalseActivez l’outil google_workspace. Par défaut : false.
rate_limit_per_minuteentier60Nombre maximum d’appels API gws autorisés par minute. Par défaut : 60.
timeout_secsentier30Délai d’expiration de l’exécution de la commande en secondes. Par défaut : 30.

hardware

Configuration matérielle guidée par un assistant pour l’interaction avec le monde physique.

CléTypePar défautDescription
baud_rateentier115200Débit en bauds négocié sur la liaison série. 115200 correspond à la valeur par défaut courante du bootloader Arduino / ESP32 ; passez à 230400+ lorsque votre firmware prend explicitement en charge des débits plus élevés et que vous avez besoin du débit de données.
enabledboolfalseActivez le contrôle direct du matériel physique — broches GPIO, microcontrôleurs connectés en USB (Arduino, ESP32, Nucleo) ou sondes de débogage SWD/JTAG. Laissez désactivé pour un usage purement logiciel ; l’activer sans avoir configuré le transport approprié n’a aucun effet.
probe_targetstring?nullIdentifiant de la puce cible pour transport = probe (par ex. STM32F401RE, nRF52840_xxAA). Transmis directement à probe-rs pour les opérations de flash/débogage ; doit correspondre à une puce reconnue par probe-rs.
serial_portstring?nullChemin TTY pour le transport serial — par exemple /dev/ttyACM0 sous Linux, /dev/tty.usbmodem1 sous macOS, COM3 sous Windows. Ignoré pour les autres transports.
transportNone | Native | Serial | ProbeMode de transport matériel.
workspace_datasheetsboolfalseIndexer les datasheets .md et .txt préalablement convertis depuis l’espace de travail dans

heartbeat

Configuration du heartbeat pour les pings de santé périodiques (section [heartbeat]).

CléTypePar défautDescription
adaptiveboolfalseActiver les intervalles adaptatifs qui ralentissent en cas d’échecs et accélèrent pour
agentchaîne""Alias d’agent configuré sous lequel s’exécute le worker heartbeat. Requis
deadman_channelstring?nullCanal pour les alertes du commutateur de sécurité (par exemple telegram). Fait appel à
deadman_timeout_minutesentier0Délai d’expiration du commutateur de sécurité en minutes. Si le battement de cœur n’a pas été émis
deadman_tostring?nullDestinataire des alertes du commutateur de sécurité. Utilise to par défaut.
enabledboolfalseActiver les pings de heartbeat périodiques. Par défaut : false. Lorsque cette option est activée,
interval_minutesentier30Intervalle en minutes entre les pings de heartbeat. Minimum : 1. Par défaut : 30.
load_session_contextboolfalseChargez l’historique de la session de la chaîne avant chaque exécution de la tâche de battement cardiaque afin
max_interval_minutesentier120Intervalle maximum en minutes lorsque le mode adaptatif recule. Par défaut : 120.
max_run_historyentier100Nombre maximum d’enregistrements de l’historique des cœurs battants à conserver. Par défaut : 100.
messagestring?nullTexte de tâche de secours optionnel lorsque HEARTBEAT.md ne contient aucune entrée de tâche.
min_interval_minutesentier5Intervalle minimum en minutes lorsque le mode adaptatif est activé. Par défaut : 5.
targetstring?nullChaîne de livraison facultative pour la sortie des battements de cœur (par exemple : telegram).
task_timeout_secsentier600Nombre maximum de secondes d’horloge autorisées pour une invocation d’un agent unique
tostring?nullIdentifiant du destinataire/chat de livraison optionnel (obligatoire lorsque target est
two_phasebooltrueActiver le battement de cœur en deux phases : la phase 1 demande au LLM s’il faut exécuter, la phase 2

hooks

CléTypePar défautDescription
builtinobjet
enabledbooltrueActiver l’exécution des hooks de cycle de vie.

hooks.builtin

CléTypePar défautDescription
command_loggerboolfalseActiver le hook de journalisation des commandes (enregistre les appels d’outils aux fins d’audit).
webhook_auditobjetConfiguration pour le hook intégré webhook-audit.

hooks.builtin.webhook_audit

Configuration pour le hook intégré webhook-audit.

Envoie une requête HTTP POST avec un corps JSON à un point de terminaison externe chaque fois qu’un appel d’outil correspond à l’un des motifs configurés. Utile pour la journalisation d’audit centralisée, l’ingestion SIEM ou les pipelines de conformité.

CléTypePar défautDescription
enabledboolfalseActiver le hook webhook-audit. Par défaut : false.
include_argsboolfalseInclure les arguments des appels d’outil dans la charge utile d’audit. Par défaut : false.
max_args_bytesentier4096Taille maximale (en octets) des arguments sérialisés inclus dans un seul
tool_patternsstring[][]Modèles glob pour les noms d’outils à auditer (par exemple, ["Bash", "Write"]).
urlchaîne""URL cible qui recevra les requêtes POST d’audit.

http_request

Configuration de l’outil de requête HTTP (section [http_request]).

Filtrage des domaines : allowed_domains contrôle les hôtes accessibles (utilisez ["*"] pour tous les hôtes publics, ce qui est la valeur par défaut). Si allowed_domains est vide, toutes les requêtes sont rejetées. Les requêtes utilisent un transport direct afin que les réponses DNS validées localement restent épinglées : toute portée de proxy environment activée ou tout proxy d’exécution s’appliquant à tool.http_request est rejeté. Un proxy de l’environnement du processus situé en dehors de cette portée gérée fait l’objet d’un avertissement et est ignoré ; les échecs de connexion indiquent le nom de la variable ignorée.

CléTypePar défautDescription
allow_private_hostsboolfalseAutoriser les requêtes vers des hôtes privés/LAN (RFC 1918, bouclage, .local).
allowed_domainsstring[]["*"]Domaines autorisés pour les requêtes HTTP (correspondance exacte ou sous-domaine)
allowed_private_hostsstring[][]Hôtes privés/internes explicitement autorisés à assouplir la vérification de l’adresse publique.
enabledbooltrueActiver l’outil http_request pour les interactions API
max_response_sizeentier1000000Taille maximale de la réponse en octets (par défaut : 1 Mo, 0 = illimité)
secrets 🔑carte{}Secrets d’autorisation nommés pour les requêtes auth_secret.
timeout_secsentier30Délai d’expiration de la requête en secondes (par défaut : 30)

image_gen

Configuration de l’outil de génération d’images autonome ([image_gen]).

Lorsqu’il est activé, enregistre un outil image_gen qui génère des images via l’API synchrone de fal.ai (modèles Flux / Nano Banana) et les enregistre dans le répertoire images/ de l’espace de travail.

CléTypePar défautDescription
api_key_envchaîne"FAL_API_KEY"Nom de la variable d’environnement contenant la clé API de fal.ai.
default_modelchaîne"fal-ai/flux/schnell"Identifiant par défaut du modèle fal.ai.
enabledboolfalseActiver l’outil de génération d’images autonome. Par défaut : false.

jira

Configuration de l’intégration Jira ([jira]).

Lorsque enabled = true, enregistre l’outil jira qui permet de récupérer des tickets, de rechercher avec JQL et d’ajouter des commentaires. Nécessite base_url et api_token (ou la variable d’environnement JIRA_API_TOKEN).

Valeurs par défaut

  • enabled : false
  • allowed_actions: ["get_ticket"] — en lecture seule par défaut. Ajoutez "search_tickets" ou "comment_ticket" pour les déverrouiller.
  • timeout_secs : 30

Auth

Jira Cloud utilise l’authentification HTTP Basic : email + api_token. Jira Server/Data Center utilise l’authentification par jeton Bearer : omettez email et définissez api_token sur un jeton d’accès personnel. api_token est stocké chiffré au repos ; définissez-le ici ou via JIRA_API_TOKEN.

CléTypePar défautDescription
allowed_actionsstring[]["get_ticket"]Actions que l’agent est autorisé à appeler.
api_token 🔑chaîne""Jeton d’API Jira. Chiffré au repos. Utilise la variable d’environnement JIRA_API_TOKEN en cas de défaut.
base_urlchaîne""URL de base de l’instance Atlassian, par exemple https://yourco.atlassian.net.
emailstring?E-mail du compte Jira utilisé pour l’authentification Basic (Cloud).
enabledboolfalseActivez l’outil jira. Par défaut : false.
timeout_secsentier30Délai d’expiration de la requête en secondes. Par défaut : 30.

knowledge

Configuration du graphe de connaissances pour la capture et la réutilisation de l’expertise.

CléTypePar défautDescription
auto_captureboolfalseCapture automatiquement les connaissances des conversations. Par défaut : false.
db_pathchaîne"/home/runner/.zeroclaw/knowledge.db"Chemin vers la base de données SQLite du graphe de connaissances.
enabledboolfalseActiver l’outil de graphe de connaissances. Par défaut : false.
max_nodesentier100000Nombre maximum de nœuds de connaissances. Par défaut : 100000.
suggest_on_querybooltrueSuggérer proactivement des connaissances pertinentes lors des requêtes. Par défaut : true.

knowledge_bundles

Lots de connaissances nommés ([knowledge_bundles.<alias>]).

knowledge_bundles.<alias>

Bundle de connaissances nommé ([knowledge_bundles.<alias>]).

Un ensemble réutilisable de sources de connaissances (documents, URLs ou chemins de corpus RAG) qui peuvent être associés à un agent par alias.

CléTypePar défautDescription
sourcesstring[][]Chemins ou URL à inclure dans ce bundle de connaissances.
tagsstring[][]Étiquettes pour filtrer ou catégoriser les sources au sein du bundle.

Compréhension automatique des liens pour les messages entrants du canal ([link_enricher]).

Lorsqu’elle est activée, les URL des messages entrants sont automatiquement récupérées et résumées. Le résumé est ajouté avant le message, avant que l’agent ne le traite, offrant ainsi au LLM un contexte sur les pages liées sans nécessiter d’appel d’outil explicite.

CléTypePar défautDescription
enabledboolfalseActiver l’étape du pipeline d’enrichissement des liens (par défaut : false)
max_linksentier3Nombre maximum de liens à récupérer par message (par défaut : 3)
timeout_secsentier10Délai d’expiration de la récupération par lien en secondes (par défaut : 10)

linkedin

Configuration de l’intégration LinkedIn (section [linkedin]).

Lorsqu’il est activé, l’outil linkedin est enregistré dans la surface des outils de l’agent. Nécessite les identifiants LINKEDIN_* dans le fichier .env de l’espace de travail.

CléTypePar défautDescription
api_versionchaîne"202602"En-tête de version de l’API REST LinkedIn (format AAAAMM).
contentobjetConfiguration de la stratégie de contenu pour la publication automatique sur LinkedIn ([linkedin.content]).
enabledboolfalseActiver l’outil LinkedIn.
imageobjetConfiguration de génération d’image pour les publications LinkedIn ([linkedin.image]).

linkedin.content

Configuration de la stratégie de contenu pour la publication automatique sur LinkedIn ([linkedin.content]).

L’agent lit ceci via l’action linkedin get_content_strategy pour savoir quels flux vérifier, quels dépôts mettre en avant et comment rédiger les publications.

CléTypePar défautDescription
github_reposstring[][]Dépôts GitHub à mettre en avant (format : owner/repo).
github_usersstring[][]Noms d’utilisateurs GitHub dont l’activité publique peut être référencée.
instructionschaîne""Instructions de publication libre pour l’agent IA.
personachaîne""Description du profil professionnel (nom, rôle, expertise).
rss_feedsstring[][]URLs des flux RSS à surveiller pour l’inspiration de sujets (titres uniquement).
topicsstring[][]Thèmes d’expertise et d’intérêt pour les thèmes de publication.

linkedin.image

Configuration de génération d’image pour les publications LinkedIn ([linkedin.image]).

CléTypePar défautDescription
card_accent_colorchaîne"#0A66C2"Couleur d’accentuation pour la carte de repli (hexadécimal CSS).
dalleobjetParamètres OpenAI DALL-E ([linkedin.image.dalle]).
enabledboolfalseActiver la génération d’images pour les publications.
fallback_cardbooltrueGénérer une carte de texte SVG personnalisée lorsque tous les model_providers d’IA échouent.
fluxobjetParamètres de génération d’images Flux (fal.ai) ([linkedin.image.flux]).
imagenobjetParamètres de Google Imagen (Vertex AI) ([linkedin.image.imagen]).
providersstring[]["stability","imagen","dalle","flux"]Ordre de priorité des ModelProvider. Essayés en séquence ; le premier qui réussit l’emporte.
stabilityobjetParamètres de génération d’images de Stability AI ([linkedin.image.stability]).
temp_dirchaîne"linkedin/images"Répertoire temporaire pour les images générées, relatif à l’espace de travail.

linkedin.image.dalle

Paramètres OpenAI DALL-E ([linkedin.image.dalle]).

CléTypePar défautDescription
api_key_envchaîne"OPENAI_API_KEY"Nom de la variable d’environnement contenant la clé API OpenAI.
modelchaîne"dall-e-3"Identifiant du modèle DALL-E.
sizechaîne"1024x1024"Dimensions de l’image.

linkedin.image.flux

Paramètres de génération d’images Flux (fal.ai) ([linkedin.image.flux]).

CléTypePar défautDescription
api_key_envchaîne"FAL_API_KEY"Nom de la variable d’environnement contenant la clé API de fal.ai.
modelchaîne"fal-ai/flux/schnell"Identifiant du modèle Flux.

linkedin.image.imagen

Paramètres de Google Imagen (Vertex AI) ([linkedin.image.imagen]).

CléTypePar défautDescription
api_key_envchaîne"GOOGLE_VERTEX_API_KEY"Nom de la variable d’environnement contenant la clé API.
project_id_envchaîne"GOOGLE_CLOUD_PROJECT"Variable d’environnement pour l’ID du projet Google Cloud.
regionchaîne"us-central1"Région Vertex AI.

linkedin.image.stability

Paramètres de génération d’images de Stability AI ([linkedin.image.stability]).

CléTypePar défautDescription
api_key_envchaîne"STABILITY_API_KEY"Nom de la variable d’environnement contenant la clé API.
modelchaîne"stable-diffusion-xl-1024-v1-0"Identifiant du modèle de stabilité.

locale

Locale pour les descriptions d’outils (par exemple, "en", "zh-CN").

Lorsqu’il est défini, les descriptions des outils affichées dans les invites système sont chargées à partir des fichiers de localisation Fluent .ftl. En cas d’échec, il revient aux descriptions anglaises intégrées, puis aux descriptions codées en dur.

En cas d’omission ou de valeur vide, la locale est détectée automatiquement à partir de la locale du système hôte (avec "en" par défaut si elle ne peut pas être déterminée).

mcp

Configuration externe du client MCP (section [mcp]).

CléTypePar défautDescription
deferred_loadingboolfalseCharger les schémas des outils MCP à la demande via tool_search au lieu de les charger de manière anticipée.
enabledbooltrueActiver le chargement des outils MCP.
serversobject[][]Serveurs MCP configurés. L’annotation #[nested] rend la macro

mcp_bundles

Bundles de serveurs MCP nommés ([mcp_bundles.<alias>]).

mcp_bundles.<alias>

Bundle de serveur MCP nommé ([mcp_bundles.<alias>]. `

Un groupe réutilisable de serveurs MCP accordé à un agent qui référence le bundle par son alias dans agents.<alias>.mcp_bundles. Les ID de serveur sont recherchés dans [mcp.servers] par name. La résolution est sécurisée par défaut (voir Config::mcp_servers_for_bundles) : un ID sans serveur correspondant n’accorde rien, et exclude l’emporte sur servers pour tous les bundles référencés par un agent.

CléTypePar défautDescription
excludestring[][]ID de serveur MCP retirés de la concession. Le refus prime : un nom listé ici est
serversstring[][]IDs des serveurs MCP ([mcp.servers].name) accordés par ce bundle.

media_pipeline

Configuration du pipeline de compréhension automatique des médias ([media_pipeline]).

Lorsqu’elle est activée, les messages entrants du canal contenant des pièces jointes multimédias sont prétraités avant d’atteindre l’agent : l’audio est transcrit, les images sont annotées et les vidéos sont résumées.

CléTypePar défautDescription
describe_imagesbooltrueAjouter des descriptions d’image lorsqu’un modèle capable de vision est actif.
enabledboolfalseInterrupteur principal pour le pipeline multimédia (par défaut : false).
summarize_videobooltrueRésumer les pièces jointes vidéo (espace réservé — nécessite une API externe).
transcribe_audiobooltrueTranscrivez les pièces jointes audio à l’aide du model_provider de transcription configuré.

memory

Configuration du backend de mémoire (section [memory]).

Contrôle le stockage de la mémoire de conversation, les embeddings, la recherche hybride, la mise en cache des réponses, ainsi que la capture instantanée et l’hydratation de la mémoire. Les paramètres de connexion spécifiques au backend se trouvent sous [storage.<backend>.<alias>] ; cette section sélectionne l’instance de stockage à utiliser via la référence pointée backend.

CléTypePar défautDescription
archive_after_daysentier7Déplace les fichiers quotidiens/de session vers le répertoire d’archive après ce nombre de jours. Maintient l’ensemble de travail actif réduit sans supprimer l’historique.
audit_enabledboolfalseActiver la journalisation des opérations de mémoire.
audit_retention_daysentier30Durée de conservation des entrées d’audit en jours (par défaut : 30).
auto_hydratebooltrueAuto-hydrate depuis MEMORY_SNAPSHOT.md lorsque brain.db est manquant
auto_reindex_on_identity_changeboolfalseRecalcule automatiquement les embeddings de toutes les mémoires en arrière-plan lorsqu’un changement du fournisseur/modèle/dimensions de l’embedding est détecté au démarrage (après la suppression des vecteurs obsolètes). Cela nécessite un appel API d’embedding par mémoire, il est donc désactivé par défaut — laissez-le désactivé pour les grands dépôts et exécutez zeroclaw memory reindex explicitement à la place.
auto_savebooltrueEnregistre automatiquement en mémoire ce que vous communiquez à ZeroClaw en tant qu’historique de conversation — les réponses de l’agent ne sont pas enregistrées. Désactivez cette option si vous souhaitez que la mémoire ne conserve que les éléments que vous enregistrez explicitement via l’outil de mémoire.
backendchaîne"sqlite"Référence pointée vers l’instance de stockage active : <backend>.<alias>
candidate_multiplierentier4Multiplicateur de pool de candidats par rapport à la limite de rappel finale avant l’élagage de mélange/reclassement.
chunk_max_tokensentier512Nombre maximal de jetons par fragment pour le fractionnement des documents
conflict_supersede_enabledbooltrueActiver le mécanisme de remplacement réversible et de masquage souple lorsqu’il est connecté.
conflict_thresholdnombre0.85Seuil de similarité cosinus pour la détection de conflits (0,0–1,0).
consolidation_extract_factsboolfalseExtrayez également les faits durables atomiques de chaque tour consolidé et stockez-les
conversation_retention_daysentier30Supprime de la base de données les lignes de conversation antérieures à ce nombre de jours (backend sqlite uniquement). L’ancienneté est mesurée par updated_at (heure de dernière écriture). 0 = conserver indéfiniment.
core_max_bytesentier0Taille maximale en octets du Core avant la compaction du budget. 0 = illimité.
core_max_rowsentier0Nombre maximal de lignes Core avant compactage du budget. 0 = illimité.
core_retention_daysentier0Supprime de la base les lignes de mémoire centrale plus anciennes que ce nombre de jours. L’âge est mesuré par created_at (heure de première écriture). Ni le rappel ni les réécritures ordinaires ne rafraîchissent created_at avec l’upsert SQLite actuel, donc la rétention de la mémoire centrale est une limite d’âge absolue à partir de la première écriture. Définissez une fenêtre généreusement large pour les mémoires centrales durables, ou conservez 0 = conserver indéfiniment.
daily_max_rowsentier0Nombre maximum de lignes par jour avant le compactage budgétaire. 0 = illimité.
daily_retention_daysentier0Supprime de la base de données les lignes de mémoire quotidienne plus anciennes que ce nombre de jours. L’ancienneté est mesurée par updated_at (date de dernière écriture). 0 = conserver indéfiniment.
dedup_actiontablePolitique de gestion des doublons à l’écriture pour les entrées de mémoire.
dedup_jaccard_thresholdnombre0.8Seuil de Jaccard pour la détection de doublons par texte uniquement.
dedup_on_writeboolfalseActiver la détection de quasi-doublons à l’écriture.
default_namespacechaîne"default"Espace de noms par défaut pour les entrées de mémoire.
embedding_api_key 🔑string?Clé API optionnelle pour l’endpoint d’embedding. Lorsqu’elle est définie, les appels d’embedding utilisent cette clé au lieu d’en hériter du fournisseur du modèle seed — découplant les embeddings du modèle de chat. Utilisez-la lorsque le modèle de chat s’exécute sur un fournisseur qui ne dispose d’aucune credential d’embedding utilisable (p. ex. un fournisseur uniquement OAuth) tandis que les embeddings continuent d’atteindre un endpoint openai/custom: avec leur propre clé. Laissez non définie pour hériter de la clé du fournisseur seed (défaut rétrocompatible).
embedding_cache_sizeentier10000Nombre maximal d’entrées du cache d’embedding avant l’éviction LRU
embedding_dimensionsentier1536Largeur de vecteur produite par le modèle d’embedding — doit correspondre à la dimension native du modèle, sinon les vecteurs ne seront pas stockés correctement. Recherchez ce nombre sur la page du modèle de votre model_provider.
embedding_modelchaîne"text-embedding-3-small"Identifiant du modèle d’embedding — doit correspondre à un modèle servi par votre fournisseur d’embedding model_provider choisi (par ex. text-embedding-3-small pour OpenAI). La modification de cette valeur invalide les embeddings existants : la modification est détectée au démarrage et les vecteurs obsolètes sont automatiquement supprimés ; exécutez zeroclaw memory reindex pour réencoder les embeddings (ou définissez auto_reindex_on_identity_change).
embedding_providerchaîne"aucun"Source des vecteurs d’embedding pour la recherche sémantique. none = récupération par mots-clés uniquement (aucun appel API, aucun coût de vecteur) ; openai = API d’embedding d’OpenAI ; custom:URL = tout endpoint d’embedding compatible OpenAI (LiteLLM, passerelle locale, etc.).
evict_ordertableOrdre d’éviction du budget mémoire.
fts_early_return_scorenombre0.85Réservé (0.0-1.0) : le score FTS au-dessus duquel le rappel ignorerait le
hygiene_enabledbooltrueExécute la passe d’hygiène périodique qui archive les fichiers quotidiens/de session obsolètes et applique les fenêtres de rétention. Laissez activé sauf si vous souhaitez gérer le nettoyage vous-même.
importance_weightnombre0.2Poids d’importance utilisé par la combinaison de rappel.
keyword_weightnombre0.3Niveau de prise en compte du chevauchement BM25 (mots-clés) lorsque search_mode = hybrid. Augmentez vers 1.0 pour une correspondance exacte des termes ; diminuez-le lorsque les paraphrases doivent tout de même obtenir un bon score.
min_relevance_scorenombre0.4Score hybride minimum (0,0–1,0) pour qu’une mémoire soit incluse dans le contexte.
mmr_lambdanombre0.7Poids MMR pertinence/diversité, où 1.0 signifie pertinence uniquement.
pin_min_importancenombre1.01Épingler les entrées à cette importance ou au-dessus. >1.0 signifie désactivé.
pin_namespacesstring[][]Espaces de noms protégés de l’éviction budgétaire.
policyobjetConfiguration de la politique de mémoire (section [memory.policy]).
purge_after_daysentier30Supprimer définitivement les fichiers archivés après ce nombre de jours. Définissez une valeur élevée si vous avez besoin d’un historique à long terme ; définissez une valeur faible pour des raisons de confidentialité ou d’espace disque.
recency_weightnombre0.1Poids de récence utilisé par le mélange de rappel.
rerank_enabledboolfalseActiver l’étape de reclassement du rappel : fusionner le score de récupération avec l’importance
rerank_strategychaîne"aucun"Stratégie avancée de reclassement. Valeurs valides : “none”, “mmr”.
rerank_thresholdentier5Nombre minimal de candidats pour déclencher la stratégie de réordonnancement avancé.
response_cache_enabledboolfalseActiver la mise en cache des réponses LLM pour éviter de payer pour des invites dupliquées
response_cache_hot_entriesentier256Nombre maximal d’entrées du cache chaud en mémoire pour le cache de réponse à deux niveaux (par défaut : 256)
response_cache_max_entriesentier5000Nombre maximum de réponses mises en cache avant éviction LRU (par défaut : 5000)
response_cache_ttl_minutesentier60TTL en minutes pour les réponses mises en cache (par défaut : 60)
retrieval_stagesstring[]["fts","vector"]Étapes de récupération pour le rappel par agent. Seul "cache" est actif : il
search_modetableStratégie de recherche pour la récupération en mémoire.
snapshot_enabledboolfalseActiver l’export périodique des mémoires principales vers MEMORY_SNAPSHOT.md
snapshot_on_hygieneboolfalseExécuter la capture instantanée pendant les passes d’hygiène (basées sur le battement de cœur)
typesobjetConfiguration de la mémoire typée (section [memory.types]).
vector_weightnombre0.7Le poids accordé à la similarité vectorielle (sémantique) lorsque search_mode = hybrid. Augmentez-le vers 1.0 pour privilégier les correspondances basées sur le sens ; diminuez-le pour vous appuyer plutôt sur le chevauchement de mots-clés.

memory.policy

Configuration de la politique de mémoire (section [memory.policy]).

CléTypePar défautDescription
max_entries_per_categoryentier0Nombre maximum d’entrées par catégorie (0 = illimité).
max_entries_per_namespaceentier0Nombre maximum d’entrées par espace de noms (0 = illimité).
read_only_namespacesstring[][]Espaces de noms en lecture seule (les écritures sont rejetées).
redact_categoriesstring[]["secret","api_key","private_key","email","phone"]Catégories de rédaction appliquées lorsque redact_on_write est true.
redact_on_writeboolfalseExpurger les catégories de secrets/PII configurées avant la persistance.
retention_days_by_categorycarte{}Jours de rétention par catégorie (remplace le paramètre global). Clés : « core », « daily », « conversation ».
threat_scanchaîne"on"Mode d’analyse du contenu pour les écritures en mémoire persistante : “off”, “on” ou “strict”.
threat_scan_load_timebooltrueRéanalyser les entrées stockées au moment du rappel/de la lecture et retenir les entrées signalées.
threat_scan_on_hitchaîne"reject"Comportement lorsqu’une analyse de contenu à l’écriture trouve une correspondance : “reject” ou

memory.types

Configuration de la mémoire typée (section [memory.types]).

Neutre en matière de comportement par défaut : enabled conditionne l’affectation de MemoryKind lors des nouvelles écritures de consolidation et est désactivé par défaut ; le basculement est séquencé dans une phase ultérieure. SQLite uniquement : l’activation nécessite le backend mémoire sqlite globalement et sur chaque agent (validé au chargement de la configuration).

CléTypePar défautDescription
enabledboolfalseAttribuer un MemoryKind de première classe aux nouvelles écritures de consolidation.

microsoft365

Intégration de Microsoft 365 via l’API Microsoft Graph (section [microsoft365]).

Fournit l’accès aux e-mails Outlook, aux messages Teams, aux événements du calendrier, aux fichiers OneDrive et à la recherche SharePoint.

CléTypePar défautDescription
auth_flowchaîne"client_credentials"Flux d’authentification : « client_credentials » ou « device_code »
client_idstring?nullID d’application (client) Azure AD
client_secret 🔑string?nullClé secrète Azure AD (stockée de manière chiffrée lorsque secrets.encrypt = true)
enabledboolfalseActiver l’intégration avec Microsoft 365
scopesstring[]["https://graph.microsoft.com/.default"]Portées OAuth à demander
tenant_idstring?nullID de locataire Azure AD
token_cache_encryptedbooltrueChiffrer le fichier de cache de jeton sur le disque
user_idstring?nullNom principal utilisateur ou « me » (pour les flux délégués)

model_routes

Règles de routage de modèle — routent hint:<name> vers des combinaisons spécifiques de model_provider + model.

multimodal

Configuration de la gestion multimodale (image) (section [multimodal]).

Note sur la confidentialité et les coûts

Les résultats d’outils qui affichent de vrais chemins d’images locaux (par exemple, des outils shell exécutant ls /pictures ou find . -name '*.png') sont normalisés en marqueurs [IMAGE:...] et intégrés en base64 dans la requête suivante au fournisseur. Cela signifie que les octets d’image qui restaient auparavant en local seront téléversés vers le fournisseur configuré lorsqu’ils sont exposés par un outil.

max_images (et la politique LRU trim_old_images) limite le budget d’images par requête, mais les opérateurs exécutant des outils de type shell sur des répertoires d’images personnelles ou sensibles doivent être conscients de la sémantique de téléversement. Consultez docs/book/src/contributing/privacy.md pour connaître la position du projet en matière de confidentialité.

CléTypePar défautDescription
allow_remote_fetchboolfalseAutoriser la récupération d’URL d’images distantes (http/https). Désactivé par défaut.
max_image_size_mbentier5Taille maximale du chargement d’image en MiB avant l’encodage en base64.
max_image_turnsentier0Âge maximal des images dans les tours de conversation.
max_imagesentier4Nombre maximum de pièces jointes d’image acceptées par requête.
vision_modelstring?nullModèle à utiliser lors du routage vers le model_provider de vision (par ex. "llava:7b").
vision_model_providerstring?nullNom du ModelProvider à utiliser pour les messages vision/image (par ex. "ollama").

nodes

Configuration pour le système de découverte dynamique des nœuds ([nodes]).

Lorsqu’elle est activée, des processus ou périphériques externes peuvent se connecter via WebSocket à /ws/nodes et annoncer leurs capacités à l’exécution.

CléTypePar défautDescription
auth_token 🔑string?nullJeton d’authentification optionnel pour l’authentification du nœud.
enabledboolfalseActiver le point de terminaison de découverte dynamique des nœuds.
max_nodesentier16Nombre maximum de connexions de nœuds simultanées.
mdnsobjetConfiguration pour la découverte de pairs mDNS sur le réseau local ([nodes.mdns]).

nodes.mdns

Configuration pour la découverte de pairs mDNS sur le réseau local ([nodes.mdns]).

Cette configuration contrôle uniquement le comportement de découverte. Le point de terminaison de passerelle annoncé est dérivé de l’hôte, du port et du préfixe de chemin réels de la passerelle en cours d’exécution au démarrage, de sorte que [nodes.mdns] ne duplique pas l’état d’écoute de la passerelle.

CléTypePar défautDescription
announce_interval_secsentier30À quelle fréquence ce nœud rediffuse sa présence, en secondes.
enabledboolfalseActiver la découverte de pairs locaux via mDNS.
max_peersentier16Nombre maximal d’indications de pairs LAN non authentifiés conservées en mémoire.
node_namestring?nullNom de nœud lisible par l’utilisateur annoncé aux pairs du LAN. Prend par défaut une valeur stable
peer_ttl_secsentier90Secondes après la dernière annonce avant qu’un pair soit expulsé.

notion

Configuration de l’intégration Notion ([notion]).

Lorsque enabled = true, l’agent interroge une base de données Notion pour les tâches en attente et expose un outil notion pour interroger, lire, créer et mettre à jour des pages. Nécessite api_key (ou la variable d’environnement NOTION_API_KEY) et database_id.

CléTypePar défautDescription
api_key 🔑chaîne""
database_idchaîne""
enabledboolfalse
input_propertychaîne"Entrée"
max_concurrententier4
poll_interval_secsentier5
recover_stalebooltrue
result_propertychaîne"Résultat"
status_propertychaîne"Statut"

observability

Configuration du backend d’observabilité (section [observability]).

CléTypePar défautDescription
backendnone | log | verbose | prometheus | otelBackend de collecte pour l’observabilité.
log_llm_request_payloadoff | redacted | fullPolitique de capture du payload des requêtes LLM. Replicate [`LogToolIo`] mais contrôle l’accès à
log_persistencetableMode de persistance des journaux JSONL.
log_persistence_max_bytesentier0Seuil de taille en octets qui déclenche une rotation d’archive lorsque
log_persistence_max_entriesentier200Nombre maximal d’entrées conservées lorsque log_persistence = "rolling".
log_persistence_pathchaîne"state/runtime-trace.jsonl"Chemin du fichier de persistance des logs. Les chemins relatifs sont résolus dans workspace_dir.
log_persistence_retention_max_age_daysentier0Plafond de rétention sur l’âge (en jours) des fichiers d’archive rotés lorsque
log_persistence_retention_max_filesentier7Plafond de rétention sur le nombre de fichiers d’archives rotés conservés à côté du
log_persistence_rotate_dailybooltrueEffectuer la rotation du fichier actif vers une archive à la limite d’un jour UTC lorsque
log_tool_iooff | redacted | fullPolitique de capture des E/S d’outil.
log_tool_io_denyliststring[][]Noms des outils dont les E/S ne sont jamais journalisées au-delà du nom + résultat + durée
log_tool_io_truncate_bytesentier40960Tronquer l’entrée et la sortie capturées de l’outil à ce nombre d’octets lorsque
otel_endpointstring?nullPoint de terminaison OTLP (par exemple, "http://localhost:4318"). Utilisé uniquement lorsque le backend est "otel".
otel_genai_contentoff | redacted | fullPolitique de capture de contenu OTel. Reflète [LogToolIo] mais conditionne le span OTel
otel_genai_content_max_charsentier1000Limite de troncature de caractères par champ pour le contenu OTel GenAI lorsque
otel_headers 🔑map?nullEn-têtes HTTP optionnels envoyés avec chaque requête d’export OTLP (par exemple, l’autorisation).
otel_service_namestring?nullNom du service signalé au collecteur OTel. Par défaut, « zeroclaw ».
otel_tool_iooff | redacted | fullPolitique de capture de contenu OTel. Reflète [LogToolIo] mais conditionne le span OTel
otel_tool_io_max_charsentier1000Limite de troncature de caractères par champ pour les E/S d’outils OTel lorsque

onboard_state

Configuration d’isolation de l’espace de travail multi-client.

Lorsque cette option est activée, chaque mission client dispose d’un espace de travail isolé avec mémoire, audit, secrets et restrictions d’outils séparés. État opaque que le flux Quickstart écrit afin de pouvoir déterminer, lors d’une nouvelle exécution, quelles sections l’utilisateur a déjà parcourues au moins une fois — ce qui lui permet de proposer des portes de saut « Reconfigurer ? [y/N] » au lieu de forcer les utilisateurs à repasser par chaque champ.

Il s’agit d’un méta-état concernant le flux de démarrage rapide (Quickstart), et non d’une configuration visible par l’utilisateur.

CléTypePar défautDescription
completed_sectionsstring[][]Clés de section que l’utilisateur a complétées au moins une fois.
quickstart_completedboolfalsetrue une fois que le Quickstart a appliqué une BuilderSubmission

opencode_cli

Configuration de l’outil CLI OpenCode (section [opencode_cli]).

Délègue les tâches de codage à l’interface CLI opencode run. L’authentification utilise par défaut la session propre au binaire — aucune clé API n’est requise, sauf si env_passthrough inclut des clés spécifiques au fournisseur.

CléTypePar défautDescription
enabledboolfalseActiver l’outil opencode_cli
env_passthroughstring[][]Variables d’environnement supplémentaires transmises au sous-processus opencode
max_output_bytesentier2097152Taille maximale de sortie en octets (2 Mo par défaut)
timeout_secsentier600Temps d’exécution maximum en secondes (les tâches de codage peuvent être longues)

pacing

Contrôles de pacing pour les charges de travail LLM lentes/locales ([pacing] section).

Tous les champs sont facultatifs et ont par défaut des valeurs qui préservent le comportement existant. Lorsqu’ils sont définis, ils étendent — et ne remplacent pas — les sous-systèmes de gestion des délais d’expiration et de détection des boucles existants.

CléTypePar défautDescription
loop_detection_enabledbooltrueActiver la détection de boucle basée sur les motifs (répétition exacte, va-et-vient,
loop_detection_max_repeatsentier3Nombre d’appels consécutifs identiques d’outils+arguments avant le premier
loop_detection_min_elapsed_secsinteger?nullNombre minimum de secondes d’écoulement avant que la détection de boucle ne s’active.
loop_detection_window_sizeentier20Taille de la fenêtre glissante pour le détecteur de boucle basé sur les motifs.
loop_ignore_toolsstring[][]Noms d’outils exclus de la boucle de sortie identique / motif alternatif
message_timeout_scale_maxinteger?nullRemplacement de la valeur par défaut du facteur d’échelle du délai d’attente (par défaut : 4).
step_timeout_secsinteger?nullDélai d’expiration par étape en secondes : le temps maximum autorisé pour une seule

peer_groups

Groupes de pairs nommés ([peer_groups.<name>]). Chaque entrée associe un canal, une liste d’agents membres, ainsi que des membres non-agents (externes) facultatifs et une liste de blocage propre au groupe. Adhésion mutuelle : deux agents deviennent pairs uniquement lorsqu’ils figurent tous les deux dans les agents d’un même groupe. Vide par défaut pour les installations à agent unique. Voir crate::multi_agent::PeerGroupConfig.

peer_groups.<alias>

[peer_groups.<name>] — groupe de pairs à opt-in mutuel sur un type de canal.

CléTypePar défautDescription
admin_for_agent_scopeboolfalseLorsque true, les membres de ce groupe de pairs sont autorisés à émettre
agentsstring[][]Agents membres par alias.
channelchaîneRéférence à une entrée configurée [channels.<type>.<alias>].
external_peersstring[][]Membres non-agents par nom d’utilisateur natif du canal.
ignorestring[][]Liste de blocage par groupe ; soustraite de l’ensemble de pairs résolu.
output_modalitytableModalité de sortie préférée pour un groupe de pairs.

peripherals

Configuration d’intégration de la carte périphérique (section [peripherals]).

Les tableaux deviennent des outils d’agent lorsqu’ils sont activés.

CléTypePar défautDescription
boardsobject[][]Configurations de carte (nucleo-f401re, rpi-gpio, etc.)
datasheet_dirstring?nullChemin vers les documents de la fiche technique (relatif à l’espace de travail) pour la récupération RAG.
enabledboolfalseActiver la prise en charge des périphériques (les cartes deviennent des outils d’agent)

pipeline

Configuration de l’outil de pipeline (section [pipeline]).

CléTypePar défautDescription
allowed_toolsstring[][]Outils autorisés dans les étapes du pipeline. Les étapes qui font référence à des outils non présents dans cette liste…
enabledboolfalseActivez l’outil méta execute_pipeline.
max_stepsentier20Nombre maximum d’étapes autorisées dans une seule invocation de pipeline.

plugins

Configuration du système de plugins.

CléTypePar défautDescription
auto_discoverboolfalseDétecter automatiquement les plugins et les charger au démarrage (par défaut : false)
enabledboolfalseActiver le système de plugins (par défaut : false)
entriesobject[][]
limitsobjetLimites d’exécution WASM par appel ([plugins.limits]).
max_active_instancesentier50Nombre maximal d’instances logiques de plug-in autorisées pour l’ensemble des capacités.
plugins_dirchaîne"/home/runner/.zeroclaw/plugins"Répertoire où les plugins sont stockés
securityobjetConfiguration de la vérification de la signature des plugins ([plugins.security]).

plugins.limits

Limites d’exécution WASM par appel ([plugins.limits]).

Limite un appel de plugin unique afin qu’un composant qui s’emballe ou malveillant déclenche un trap, plutôt que de bloquer l’hôte ou d’épuiser la mémoire. call_fuel plafonne le nombre d’instructions par appel ; call_timeout_ms plafonne le temps écoulé en temps réel, y compris le temps d’attente des imports asynchrones de l’hôte ; les plafonds de mémoire, de tables et d’instances limitent la croissance d’un store. Chaque valeur peut être ajustée par l’opérateur et est validée comme étant non nulle.

CléTypePar défautDescription
call_fuelentier1000000000Budget de carburant par appel de plugin (unités d’instruction wasmtime).
call_timeout_msentier30000Délai maximal en temps réel pour un appel d’export du plugin, en millisecondes.
max_connections_per_instanceentier16Nombre maximal de connexions réseau actives appartenant à l’hôte par instance logique de module d’extension,
max_instancesentier64Nombre maximum d’instances de composants qu’une boutique de plugins peut créer.
max_memory_mbentier256Mémoire linéaire maximale qu’un store de plugin peut atteindre, en mégaoctets.
max_table_elementsentier100000Nombre maximum d’éléments de tableau qu’un magasin de plugins peut allouer.

plugins.security

Configuration de la vérification de la signature des plugins ([plugins.security]).

Contrôle la vérification des signatures Ed25519 pour les manifestes des plugins. En mode strict, seuls les plugins signés par une clé d’éditeur de confiance sont chargés. En mode permissive, les plugins non signés ou non fiables génèrent des avertissements mais sont tout de même chargés. En mode disabled (par défaut), aucune vérification de signature n’est effectuée.

CléTypePar défautDescription
signature_modechaîne"désactivé"Mode d’application de la signature : « désactivé », « permissif » ou « strict ».
trusted_publisher_keysstring[][]Clés publiques Ed25519 encodées en hexadécimal des éditeurs de plugins de confiance.

project_intel

Configuration de l’intelligence de livraison de projet ([project_intel] section).

CléTypePar défautDescription
default_languagechaîne"en"Langue du rapport par défaut (en, de, fr, it). Par défaut : « en ».
enabledboolfalseActiver l’outil project_intel. Par défaut : false.
include_git_databooltrueInclure les données de git log dans les rapports. Par défaut : true.
include_jira_databoolfalseInclure les données Jira dans les rapports. Par défaut : false.
jira_base_urlstring?nullURL de base de l’instance Jira (obligatoire si include_jira_data est true).
report_output_dirchaîne"/home/runner/.zeroclaw/project-reports"Répertoire de sortie pour les rapports générés.
risk_sensitivitychaîne"medium"Sensibilité de détection des risques : faible, moyenne, élevée. Par défaut : « medium ».
templates_dirstring?nullRépertoire de modèles personnalisés optionnel.

providers

Conteneur de premier niveau pour chaque catégorie de fournisseur configurée.

CléTypePar défautDescription
modelsobjetConteneur de fournisseurs de modèles typé avec une carte d’alias par famille de fournisseurs.
transcriptionobjetConteneur typé de fournisseur de transcription — un emplacement par famille STT.
ttsobjetConteneur de fournisseur TTS typé — un emplacement par famille TTS. Reflète

providers.models

Conteneur de fournisseurs de modèles typé avec une carte d’alias par famille de fournisseurs.

Un emplacement par famille (ai21, aihubmix, anthropic, anyscale, arcee, astrai, atlascloud, atomic_chat, avian, azure, baichuan, baseten, bedrock, cerebras, cloudflare, cohere, copilot, custom, deepinfra, deepmyst, deepseek, doubao, featherless, fireworks, friendli, gemini, gemini_cli, github_models, glm, grok_cli, groq, huggingface, hunyuan, hyperbolic, inception, kilo, kilocli, lambda_ai, lepton, litellm, llamacpp, lmstudio, manifest, minimax, mistral, moonshot, morph, nearai, nebius, novita, nscale, nvidia, ollama, openai, opencode, openrouter, osaurus, ovh, perplexity, qianfan, qwen, reka, sambanova, sglang, siliconflow, stepfun, synthetic, telnyx, together, upstage, venice, vercel, vllm, xai, yi, zai, zerorouter). Chaque emplacement est une table de correspondance [providers.models.<slot>.<alias>] ; consultez la page de section dédiée pour la référence de chaque champ.

providers.transcription

Conteneur typé de fournisseurs de transcription — un emplacement par famille STT. Reflète ModelProviders / TtsProviders. Ensemble fermé de 6 familles : groq, openai, deepgram, assemblyai, google, local_whisper.

Un emplacement par famille (assemblyai, deepgram, google, groq, local_whisper, openai). Chaque emplacement est une map [providers.transcription.<slot>.<alias>] ; consultez la page de section dédiée pour la référence champ par champ.

providers.tts

Conteneur typé de fournisseurs TTS — un emplacement par famille TTS. Reflète ModelProviders mais en plus petit (TTS dispose d’un ensemble fermé de 5 familles : openai, elevenlabs, google, edge, piper). Aucun fourre-tout nécessaire.

Un emplacement par famille (edge, elevenlabs, google, openai, piper). Chaque emplacement est une map [providers.tts.<slot>.<alias>] ; consultez la page de section dédiée pour la référence champ par champ.

proxy

Configuration du proxy pour le trafic sortant HTTP/HTTPS/SOCKS5 (section [proxy]). La requête standard web_fetch et chaque requête http_request sont directes afin que leurs réponses DNS validées localement puissent être épinglées : elles contournent les proxies d’environnement et rejettent toute portée de proxy d’exécution qui s’applique à tool.web_fetch ou tool.http_request, y compris une portée environment activée. Un avertissement est émis lorsque des variables de proxy de processus non gérées sont ignorées. Le mécanisme de repli facultatif de l’API Firecrawl utilise la détection normale des proxies d’environnement. Pour faire passer d’autres trafics par un proxy, utilisez la portée services sans ces sélecteurs ni tool.*.

CléTypePar défautDescription
all_proxystring?nullURL du proxy de secours pour tous les schémas.
enabledboolfalseActiver la prise en charge du proxy pour la portée sélectionnée.
http_proxystring?nullURL du proxy pour les requêtes HTTP (prend en charge http, https, socks5, socks5h).
https_proxystring?nullURL du proxy pour les requêtes HTTPS (prend en charge http, https, socks5, socks5h).
no_proxystring[][]Liste de contournement de proxy. Même format que NO_PROXY.
scopetablePortée de l’application proxy — détermine quel trafic sortant utilise le proxy.
servicesstring[][]Sélecteurs de services utilisés lorsque scope = “services”.

query_classification

Classification automatique des requêtes — classe les messages de l’utilisateur par mot-clé/ motif et les dirige vers l’indicateur de modèle approprié. Désactivé par défaut.

CléTypePar défautDescription
enabledboolfalseActiver la classification automatique des requêtes. Par défaut : false.
rulesobject[][]Règles de classification évaluées dans l’ordre de priorité.

relay

Client du relais désigné ([relay]).

Lorsque cette option est activée, le daemon maintient une connexion sortante persistante vers un relais et y enregistre node_id, afin que les clients derrière un NAT puissent l’atteindre via le relais. Le relais est un simple transmetteur aveugle : le mTLS interne client<->daemon se termine toujours au niveau de l’écouteur WSS du daemon et n’est jamais déchiffré par le relais.

CléTypePar défautDescription
enabledboolfalseActiver le pont relais (par défaut : false).
node_idchaîne""Identifiant de nœud opaque sous lequel ce démon s’enregistre (les clients se connectent à cet identifiant). Laisser
node_id_rotation_daysentier0Renouveler automatiquement le node-id généré tous les N jours (0 par défaut = jamais).
outer_client_certchaîne""Certificat/clé PEM que le démon présente au relais sur la couche TLS EXTERNE
outer_client_keychaîne""
relay_ca_pathchaîne""Autorité de certification PEM à laquelle faire confiance pour le certificat TLS PROPRE (externe) du relais. Lorsqu’elle est définie,
relay_hostchaîne""Nom du serveur attendu sur le certificat externe du relais. S’il est vide, il est déduit.
relay_insecureboolfalseIgnorer la vérification du certificat externe du relais (uniquement pour un environnement de développement avec certificat auto-signé).
tofuboolfalseConfiance à la première utilisation pour le certificat OUTER du relais (false par défaut) : accepter
tokenchaîne""Jeton du compte Relay présenté lors de l’inscription (identifiant d’admission).
urlchaîne""Adresse du relais auquel se connecter, au format host:port.

reliability

Configuration de la fiabilité et de la supervision (section [reliability]).

Contrôle les tentatives de model_provider, la rotation des clés API et le délai de relance des canaux.

CléTypePar défautDescription
api_keys 🔑string[][]Clés API supplémentaires pour la rotation en mode round-robin en cas d’erreurs de limitation de débit (429).
channel_initial_backoff_secsentier2Délai d’attente initial pour les redémarrages de canal/daemon.
channel_max_backoff_secsentier60Max backoff pour les redémarrages de canal/daemon.
provider_backoff_msentier500Délai de base (ms) pour le délai de nouvelle tentative de model_provider.
provider_retriesentier2Nombre de tentatives par model_provider avant abandon.
scheduler_poll_secsentier15Fréquence de sondage du planificateur en secondes.
scheduler_retriesentier2Nombre maximal de tentatives d’exécution pour les tâches cron.

risk_profiles

Profils de risque/autonomie nommés ([risk_profiles.<alias>]).

risk_profiles.<alias>

Profil de risque/d'autonomie nommé ([risk_profiles.<alias>]).

Surface de politique unifiée. Les agents référencent un profil par alias et le runtime résout via celui-ci pour les listes d’autorisation de commandes shell, les portes d’approbation, les limites de sandbox/ressources et les garde-fous de délégation. Le risk_profiles["default"] conventionnel est la cible de résolution pour les contextes non-agent (init de l’orchestrateur, démarrage du worker cron) ; l’impl Default ci-dessous reflète les valeurs par défaut héritées privilégiant la sécurité afin qu’une installation fraîche se comporte comme une config d’avant la séparation par profil.

CléTypePar défautDescription
allowed_commandsstring[]["git","npm","cargo","ls","cat","grep","find","echo","pwd","wc","head","tail","date","df","du","uname","uptime","hostname","python","python3","pip","node","free"]Liste blanche des noms d’exécutables pour l’exécution dans un shell.
allowed_rootsstring[][]Racines de répertoires supplémentaires auxquelles l’agent peut accéder.
allowed_toolsstring[][]Outils que l’agent peut appeler en mode agentique. Vide = hériter / non
always_askstring[][]Outils qui nécessitent toujours une approbation dans ce profil.
approval_routeobjetAchemine les approbations de l’outil Routes vers un canal d’approbation distinct, avec un refus par défaut en cas de défaillance.
auto_approvestring[][“file_read”,“memory_recall”,“web_search_tool”,“web_fetch”,“calculator”,“glob_search”,“content_search”,“image_info”,“weather”,“tool_search”,“browser”,“browser_open”]Outils qui ne nécessitent jamais d’approbation dans ce profil.
block_high_risk_commandsbooltrueBloquer les commandes à haut risque même lorsqu’elles sont autorisées.
delegation_policyobjetPolitique de délégation fondée sur le profil de risque pour le travail confié aux agents qui le partagent.
excluded_toolsstring[][]Outils exclus des canaux non-CLI sous ce profil.
firejail_argsstring[][]Arguments supplémentaires transmis à firejail lorsque sandbox_backend = "firejail".
forbidden_pathsstring[]["/etc","/root","/home","/usr","/bin","/sbin","/lib","/opt","/boot","/dev","/proc","/sys","/var","/tmp","~/.ssh","~/.gnupg","~/.aws","~/.config"]Liste de déni explicite des chemins.
leveltableLe niveau d’autonomie de l’agent, classé du moins autonome au plus autonome.
require_approval_for_medium_riskbooltrueExiger une approbation pour les opérations à risque moyen.
sandbox_backendstring?nullIdentifiant du backend de bac à sable (p. ex. "firejail", "landlock"). None hérite.
sandbox_enabledbool?nullSi le bac à sable est activé pour ce profil. None hérite de la valeur globale.
shell_env_passthroughstring[][]Noms des variables d’environnement transmis aux sous-processus shell.
workspace_onlybooltrueRestreindre l’accès au système de fichiers aux chemins relatifs à l’espace de travail. Par défaut : false.

risk_profiles.<alias>.approval_route

Achemine les approbations de l’outil Routes vers un canal d’approbation distinct, avec un refus par défaut en cas de défaillance.

CléTypePar défautDescription
approver_channel*chaîneUn nom de canal enregistré (PAS l’originateur) — le saut distinct-approver.
on_no_approvertableQue faire lorsqu’un approbateur configuré ne peut pas être joint. Par défaut FAIL-CLOSED.
timeout_secsentier120Limite la fenêtre de réponse de l’approbateur ; l’expiration du délai entraîne le rejet (protection DoS). Par défaut : 120 s.

risk_profiles.<alias>.delegation_policy

Politique de délégation fondée sur le profil de risque pour le travail confié aux agents qui le partagent.

CléTypePar défautDescription
modetableMode de délégation pour un profil de risque.

runtime

Configuration de l’adaptateur d’exécution (section [runtime]).

CléTypePar défautDescription
dockerobjetConfiguration de l’exécution Docker (section [runtime.docker]).
kindnative | docker | cloudflareType d’adaptateur d’exécution.
reasoning_effortstring?nullEffort de raisonnement facultatif pour les model_providers qui exposent un contrôle de niveau.
reasoning_enabledbool?nullRemplacement global du raisonnement pour les model_providers qui exposent des contrôles explicites.
shellstring?nullBinaire shell que le runtime natif utilise pour l’exécution des commandes.

runtime.docker

Configuration de l’exécution Docker (section [runtime.docker]).

CléTypePar défautDescription
allowed_workspace_rootsstring[][]Liste d’autorisation facultative des racines d’espace de travail pour la validation des montages Docker avec refus par défaut : lorsque mount_workspace est activé, l’espace de travail doit exister et pouvoir être canonisé même lorsque cette liste est vide ; chaque racine configurée doit également exister et pouvoir être canonisée ; une seule entrée non valide rejette la commande avant le démarrage de Docker ; une liste vide autorise tout espace de travail canonique.
cpu_limitnumber?1.0Limite CPU optionnelle (None = pas de limite explicite).
imagechaîne"alpine:3.20"Image d’exécution utilisée pour exécuter des commandes shell.
memory_limit_mbinteger?512Limite de mémoire optionnelle en Mo (None = pas de limite explicite).
mount_workspacebooltrueMonter l’espace de travail configuré dans /workspace.
networkchaîne"aucun"Mode de réseau Docker (none, bridge, etc.).
read_only_rootfsbooltrueMonter le système de fichiers racine en lecture seule.

runtime_profiles

Profils d’exécution runtime/LLM nommés ([runtime_profiles.<alias>]).

runtime_profiles.<alias>

Profil d’exécution runtime/LLM nommé ([runtime_profiles.<alias>]).

Réglages opérationnels réutilisables : mode agentique, plafonds d’itération, budget de contexte, dispatch parallèle, plafonds de ressources, profondeur de récursion, et les curseurs de budget que SecurityPolicy applique avec la discipline de sous-ensemble parent des sous-agents. Tout ce qui relève de l’autorisation (commandes/outils/chemins autorisés, portes d’approbation, sandbox) se trouve sur [risk_profiles.<alias>]. Tout ce qui relève du fournisseur de modèle (model, temperature, max_tokens, timeout_secs) se trouve sur [providers.models.<type>.<alias>].

CléTypePar défautDescription
agenticboolfalseActiver le mode agentique (boucle d’appels d’outils multi-tours).
agentic_timeout_secsinteger?nullTimeout d’exécution du délégué agentic en secondes. None hérite de la valeur globale.
auto_classifyobjet
compact_contextbool?nullUtiliser le bootstrap compact (6000 caractères / 2 chunks RAG). None hérite.
context_compressionobjet
delegation_timeout_secsinteger?nullDélai d’expiration de l’appel délégué en secondes. None hérite du délai d’expiration global des appels délégués.
evalobjet
history_pruningobjet
keep_tool_context_turnsinteger?nullNombre de tours récents dont le contexte complet des outils est préservé. None hérite.
max_actions_per_hourentier20Nombre maximum d’actions autorisées par heure. 0 est un budget strict de zéro — le
max_context_tokensinteger?nullNombre maximum de tokens estimé pour le contexte avant compaction. None hérite.
max_cost_per_day_centsentier500Coût maximum par jour en cents. 0 hérite de la limite globale.
max_delegation_depthentier0Profondeur maximale de récursion de délégation. 0 utilise la valeur par défaut.
max_history_messagesinteger?nullNombre maximum de messages d’historique de conversation conservés par session. None hérite.
max_system_prompt_charsinteger?nullNombre maximum de caractères pour le prompt système assemblé. None hérite.
max_tool_iterationsentier0Nombre maximum d’itérations d’appels d’outils en mode agent. 0 hérite de la valeur par défaut globale.
max_tool_result_charsinteger?nullNombre maximum de caractères pour le résultat d’un seul outil. None hérite.
memory_recall_limitinteger?nullNombre maximum d’entrées de mémoire injectées par tour. None hérite de la valeur par défaut globale (5).
parallel_toolsbool?nullActiver l’exécution parallèle des outils par itération. None hérite.
prompt_injection_modetableConfiguration de chargement des compétences ([skills] section).
shell_timeout_secsentier60Délai d’expiration du sous-processus Shell en secondes. 0 hérite du délai d’expiration global.
strict_tool_parsingboolfalse
thinkingobjetConfiguration du contrôle du niveau de réflexion/raisonnement.
tool_call_dedup_exemptstring[][]Outils exemptés de la vérification de déduplication intra-tour.
tool_dispatcherstring?nullStratégie de répartition des outils (p. ex. "auto"). None hérite.
tool_filter_groupsobject[][]
tool_receiptsobjetConfiguration du reçu d’exécution d’outil HMAC, par agent

runtime_profiles.<alias>.auto_classify

CléTypePar défautDescription
complex_hintstring?null
cost_optimized_hintchaîne“cost-optimized”
simple_hintstring?null
standard_hintstring?null

runtime_profiles.<alias>.context_compression

CléTypePar défautDescription
enabledboolfalseLe compresseur de contexte d’exécution a été supprimé ; aucun chemin d’exécution à l’exécution
identifier_policychaîne"strict"
max_passesentier3
protect_first_nentier3
protect_last_nentier4
source_max_charsentier50000
summary_max_charsentier4000
summary_modelstring?nullIdentifiant de modèle nu OBSOLÈTE conservé comme solution de repli pour la compatibilité.
summary_providerchaîneRéférence à une entrée configurée [providers.models.<type>.<alias>].
threshold_rationombre0.5
timeout_secsentier60
tool_result_retrim_charsentier2000
tool_result_trim_exemptstring[][]

runtime_profiles.<alias>.eval

CléTypePar défautDescription
enabledboolfalse
max_retriesentier1
min_quality_scorenombre0.5

runtime_profiles.<alias>.history_pruning

CléTypePar défautDescription
collapse_tool_resultsbooltrue
enabledboolfalse
keep_recententier4
max_tokensentier8192

runtime_profiles.<alias>.thinking

Configuration du contrôle du niveau de réflexion/raisonnement.

CléTypePar défautDescription
budget_tokenscarte{}
default_leveloff | minimal | low | medium | high | maxProfondeur de raisonnement du modèle pour un message donné.
displayoff | omitted | updates | summarizedContrôle utilisateur pour la version bêta thinking.display d’Anthropic
native_thinkingboolfalseActive les paramètres de raisonnement natifs du fournisseur lorsque le niveau sélectionné dispose d’un budget.

runtime_profiles.<alias>.tool_receipts

Configuration du reçu d’exécution d’outil HMAC, par agent ([agents.<alias>.tool_receipts]).

Les reçus sont de courts tags HMAC-SHA256 ajoutés aux résultats d’outils afin que le modèle ne puisse pas prétendre avoir exécuté un outil qui n’a en réalité jamais été exécuté. Voir docs/book/src/security/tool-receipts.md.

CléTypePar défautDescription
enabledboolfalseGénérer des reçus HMAC à chaque exécution de l’outil. Par défaut : false.
inject_system_promptbooltrueInjecter l’instruction receipt-echo dans le prompt système afin que
show_in_responseboolfalseAjouter un bloc Tool receipts: en fin des réponses visibles par l’utilisateur afin que

scheduler

Configuration du planificateur pour l’exécution périodique des tâches (section [scheduler]).

Détient les paramètres du cron-runtime : les déclarations par tâche se trouvent dans Config.cron: HashMap<String, CronJobDecl> (indexées par alias), tandis que le comportement d’exécution de la boucle du planificateur (enabled, plafond de polling, rattrapage) se trouve ici.

CléTypePar défautDescription
catch_up_on_startupbooltrueExécuter tous les travaux en retard au démarrage du planificateur. Par défaut : true.
enabledbooltrueActive la boucle du planificateur intégré. Lorsque la valeur est false, aucune tâche cron n’est exécutée.
max_concurrententier4Nombre maximal de tâches exécutées en parallèle au cours d’un même cycle d’interrogation.
max_run_historyentier50Nombre maximum d’enregistrements historiques des exécutions de cron à conserver. Par défaut : 50.
max_tasksentier64Nombre maximal de tâches planifiées persistantes par cycle d’interrogation.

schema_version

Version du schéma du fichier de configuration.

secrets

Configuration de chiffrement des secrets (section [secrets]).

CléTypePar défautDescription
encryptbooltrueActiver le chiffrement des clés API et des jetons au repos

security

Configuration de sécurité pour la journalisation d’audit, l’OTP, l’arrêt d’urgence, IAM/SSO, WebAuthn et la limite de sortie NAT64 de l’hôte.

Le backend du sandbox et les limites de ressources sont définis dans les profils de risque par agent (voir RiskProfileConfig::sandbox_* et RiskProfileConfig::max_*) ; le runtime les résout via Config::active_risk_profile(agent_alias).

CléTypePar défautDescription
auditobjetConfiguration de la journalisation des audits
estopcarteConfiguration de l’arrêt d’urgence.
leak_detectionobjetConfiguration de la détection des fuites d’identifiants sortants.
nat64_prefixesstring[][]Préfixes NAT64 RFC 6052 spécifiques au réseau déployés sur ceux de cet hôte
neviscarteConfiguration d’intégration IAM Nevis.
otpcarteConfiguration de l’OTP de sécurité.
webauthnobjetConfiguration de l’authentification par clé matérielle WebAuthn / FIDO2 ([security.webauthn]).

security.audit

Configuration de la journalisation des audits

CléTypePar défautDescription
enabledbooltrueActiver la journalisation d’audit
log_pathchaîne"audit.log"Chemin vers le fichier de journal d’audit (relatif au répertoire zeroclaw)
max_size_mbentier100Taille maximale du journal en Mo avant rotation
sign_eventsboolfalseSigner les événements avec HMAC pour garantir l’intégrité des données

security.estop

Configuration de l’arrêt d’urgence.

CléTypePar défautDescription
enabledboolfalseActiver les commandes d’arrêt d’urgence.
require_otp_to_resumebooltrueExiger un OTP valide avant de reprendre les opérations.
state_filechaîne"/home/runner/.zeroclaw/estop-state.json"Chemin du fichier utilisé pour persister l’état de l’arrêt d’urgence.

security.leak_detection

Configuration de la détection des fuites d’identifiants sortants.

Ces paramètres contrôlent le passage final de garde-fou sur les réponses des canaux sortants avant qu’elles ne soient livrées. Les motifs déterministes d’identifiants incluent les clés API, les clés privées, les URL de bases de données, les tokens de bots et la syntaxe de tokens associée. Le passage à haute entropie est une heuristique distincte pour les tokens opaques autonomes.

CléTypePar défautDescription
enabledbooltrueActiver la détection et le masquage des fuites d’identifiants sortants.
high_entropy_tokensbooltrueActiver le masquage des jetons à haute entropie ; les motifs déterministes s’exécutent toujours lorsque cette option est désactivée.
sensitivitynombre0.7Sensibilité de détection de 0,0 à 1,0 ; plus élevée, plus agressive.

security.nevis

Configuration d’intégration IAM Nevis.

Lorsque enabled est true, ZeroClaw valide les requêtes entrantes par rapport à une instance de Nevis Security Suite et mappe les rôles Nevis aux permissions d’outils/espaces de travail.

CléTypePar défautDescription
client_idchaîne""ID client OAuth2 enregistré dans Nevis.
client_secret 🔑string?nullClé secrète du client OAuth2. Chiffrée via SecretStore lors de la sauvegarde sur le disque.
enabledboolfalseActiver l’intégration Nevis IAM. La valeur par défaut est false pour assurer la compatibilité ascendante.
instance_urlchaîne""URL de base de l’instance Nevis (par exemple, https://nevis.example.com).
jwks_urlstring?nullURL de l’endpoint JWKS pour la validation locale des jetons.
realmchaîne"master"Realm Nevis à utiliser pour l’authentification.
require_mfaboolfalseExiger la vérification MFA pour toutes les requêtes authentifiées via Nevis.
role_mappingmap[][]Mappages des rôles Nevis aux autorisations ZeroClaw.
session_timeout_secsentier3600Durée d’expiration de la session en secondes.
token_validationchaîne"local"Stratégie de validation du jeton : "local" (JWKS) ou "remote" (introspection).

security.otp

Configuration de l’OTP de sécurité.

CléTypePar défautDescription
cache_valid_secsentier300Réutiliser la fenêtre pour les codes OTP récemment validés.
challenge_max_attemptsentier3Nombre maximum de tentatives de défi OTP avant le verrouillage.
enabledboolfalseActiver le filtrage par OTP. La valeur par défaut est désactivée pour assurer la compatibilité avec les versions antérieures.
gated_actionsstring[]["shell","file_write","browser_open","browser","memory_forget"]Noms d’outils/actions protégés par OTP. Les entrées vides ou mal formées sont rejetées
gated_domain_categoriesstring[][]Les catégories de domaine prédéfinies ont été étendues dans gated_domains.
gated_domainsstring[][]Modèles de domaine explicites verrouillés par OTP.
methodtableStratégie de validation OTP.
token_ttl_secsentier30Pas de temps TOTP en secondes.

security.webauthn

Configuration de l’authentification par clé matérielle WebAuthn / FIDO2 ([security.webauthn]).

Active l’enregistrement et l’authentification via des clés de sécurité matérielles (YubiKey, SoloKey, etc.) et des authentificateurs de plateforme (Touch ID, Windows Hello).

CléTypePar défautDescription
enabledboolfalseActiver l’authentification WebAuthn. Par défaut : false.
rp_idchaîne"localhost"Identifiant du parti de confiance (nom de domaine, par exemple « example.com »). Par défaut : « localhost ».
rp_namechaîne"ZeroClaw"Nom d’affichage du parti de confiance. Par défaut : « ZeroClaw ».
rp_originchaîne"http://localhost:42617"URL d’origine du parti de confiance (par exemple, "https://example.com"). Par défaut : "http://localhost:42617".

security_ops

Configuration de l’agent du tableau de bord du service de cybersécurité géré (MCSS) ([security_ops]).

CléTypePar défautDescription
auto_triageboolfalseTriage automatique des alertes entrantes sans invite utilisateur.
enabledboolfalseActiver les outils d’opérations de sécurité.
max_auto_severitychaîne"faible"Niveau de gravité maximum qui peut être automatiquement résolu sans approbation.
playbooks_dirchaîne"/home/runner/.zeroclaw/playbooks"Répertoire contenant les définitions de playbook de réponse aux incidents (JSON).
report_output_dirchaîne"/home/runner/.zeroclaw/security-reports"Répertoire pour les rapports de sécurité générés.
require_approval_for_actionsbooltrueDemander une approbation humaine avant d’exécuter les actions du playbook.
siem_integrationstring?nullURL du webhook SIEM optionnel pour l’ingestion des alertes.

shell_tool

Configuration de l’outil Shell (section [shell_tool]).

Contrôle le comportement de l’outil d’exécution shell. Le paramètre principal est timeout_secs — le temps maximal en secondes qu’une commande shell peut s’exécuter avant d’être interrompue.

CléTypePar défautDescription
timeout_secsentier60Durée maximale d’exécution de la commande shell en secondes (par défaut : 60).

skill_bundles

Lots de compétences nommés ([skill_bundles.<alias>]).

skill_bundles.<alias>

Bundle de compétences nommé ([skill_bundles.<alias>]).

Un groupe de compétences réutilisable qui peut être attaché à un agent ou à un canal par alias, contrôlant quelles compétences sont chargées et depuis quel emplacement.

CléTypePar défautDescription
directorystring?nullChemin du répertoire (relatif à la racine de l’espace de travail) à partir duquel charger les compétences.
excludestring[][]Noms des skills à exclure de ce bundle.
includestring[][]Noms des compétences à inclure. Vide signifie inclure toutes les compétences dans directory.

skills

Configuration de chargement des compétences ([skills] section).

CléTypePar défautDescription
allow_scriptsboolfalseAutoriser les fichiers de type script dans les compétences (.sh, .bash, .ps1, fichiers shell avec shebang).
extra_registriesobject[]Registres de compétences supplémentaires configurés par l’utilisateur, installés via
install_suggestionsobjetSuggestions d’installation de skills déclenchées par invite (section [skills.install_suggestions]).
open_skills_dirstring?nullChemin optionnel vers un dépôt local open-skills.
open_skills_enabledboolfalseActiver le chargement et la synchronisation du dépôt open-skills de la communauté.
prompt_injection_modetableConfiguration de chargement des compétences ([skills] section).
registry_urlstring?nullURL du dépôt du registre des compétences pour les installations par nom nu.
skill_creationobjetConfiguration de la création autonome de compétences ([skills.skill_creation] section).
skill_improvementobjetConfiguration de l’auto-amélioration des compétences (section [skills.skill-improvement]).

skills.install_suggestions

Suggestions d’installation de skills déclenchées par invite (section [skills.install_suggestions]).

CléTypePar défautDescription
enabledboolfalseActiver les suggestions de skills installables avant les tours d’agent normaux.

skills.skill_creation

Configuration de la création autonome de compétences ([skills.skill_creation] section).

CléTypePar défautDescription
enabledboolfalseActiver la création automatique de compétences après des tâches multi-étapes réussies.
max_final_answer_charsentier2000Nombre maximum de caractères de la réponse finale de l’assistant transmise au
max_skillsentier500Nombre maximum de compétences générées automatiquement à conserver.
max_task_charsentier1000Nombre maximal de caractères de la description de la tâche injectés dans la réflexion
max_tool_trace_charsentier4000Nombre maximal de caractères de la trace d’appel d’outil rendue transmise à
reflection_enabledboolfalseSynthétiser un SKILL.md canonique à partir de la trace d’exécution via un
similarity_thresholdnombre0.85Seuil de similarité des embeddings pour la déduplication.

skills.skill_improvement

Configuration de l’auto-amélioration des compétences (section [skills.skill-improvement]).

Contrôle la branche de révision en arrière-plan exécutée après chaque tour, qui peut corriger, étendre ou archiver des compétences en fonction de ce que la conversation a révélé. Cette branche s’exécute avec un jeu d’outils restreint (uniquement skills_list, skill_view, skill_manage) et ne touche jamais à la conversation visible par l’utilisateur.

CléTypePar défautDescription
cooldown_secsentier3600Intervalle minimum (en secondes) entre les révisions pour la même compétence.
enabledboolfalseActive le fork de revue de compétences en arrière-plan. Par défaut : false.
max_review_iterationsentier8Nombre maximal d’itérations d’appels d’outils autorisées pour le fork de révision lui-même.
nudge_interval_iterationsentier10Lancer un fork de révision une fois qu’au moins ce nombre d’itérations d’appels d’outils a

sop

Configuration du moteur des procédures opérationnelles standard ([sop]).

Le champ default_execution_mode utilise le type SopExecutionMode de sop::types (réexporté via sop::SopExecutionMode). Pour éviter les références circulaires entre modules, la configuration le stocke en utilisant la même définition d’énumération.

CléTypePar défautDescription
approvalobjet[sop.approval] - configuration de la politique du courtier d’approbation. Une source d’identité permanente
approval_modetableQui peut lever une porte d’approbation SOP. Superposé avec execution_mode / priority /
approval_timeout_actiontableCe qui se produit pour une porte d’approbation SOP en cas de timeout. La valeur par défaut est fail-closed :
approval_timeout_secsentier300Délai d’expiration de l’approbation en secondes. Lorsqu’une exécution attend une approbation plus longtemps que
default_execution_modechaîne"supervisé"Mode d’exécution par défaut pour les SOP qui omettent execution_mode.
maintenance_interval_secsentier60Fréquence (en secondes) à laquelle le démon exécute le cycle de maintenance SOP : fire
max_concurrent_totalentier4Nombre total maximum d’exécutions concurrentes de SOP sur l’ensemble des SOP.
max_finished_runsentier100Nombre maximum d’exécutions terminées conservées en mémoire pour les requêtes de statut.
max_step_retriesentier2Nombre maximum de tentatives autorisées par une politique de gestion des échecs d’étape.
max_step_visitsentier256Nombre maximum de fois qu’une exécution de SOP routée peut passer par une étape.
persist_runsbooltrueConserver durablement l’état d’exécution après les redémarrages. Valeur par défaut true : build_sop_engine
procedural_memory_enabledboolfalseActiver l’outillage de proposition de mémoire procédurale SOP. La valeur par défaut false conserve
run_state_dirstring?nullRépertoire pour le magasin de runs persistants (mode-0700). Lorsqu’omis,
run_store_backendtableSélecteur de backend pour l’état d’exécution durable de SOP. Un ensemble fermé et connu à la compilation, de sorte qu’il
sops_dirstring?nullRépertoire contenant les définitions de SOP (sous-répertoires avec SOP.toml + SOP.md).
step_mandatory_toolsstring[][“sop_advance”,“sop_approve”,“sop_status”]Noms des outils qui restent disponibles tant que le scope d’étape est appliqué.
step_schema_enforcebooltrueImposer les schémas d’entrée/sortie par étape lorsqu’une étape les déclare.
step_scope_enforceboolfalseForcer la portée des outils par étape. Par défaut, false laisse tools: consultatif.
untrusted_frame_warningbooltrueInclure le texte d’avertissement explicatif dans les cadres de contenu non fiable.
untrusted_guard_sensitivitynombre0.7Sensibilité de Prompt-guard et d’outbound-redaction pour le contenu SOP non fiable.
untrusted_input_guardchaîne"warn"Action Prompt-guard pour l’entrée de déclenchement SOP non fiable : warn, block ou sanitize.
untrusted_outbound_redactbooltrueExpurger le contenu SOP sortant avant que les consommateurs de persistance/audit ne l’écrivent.
untrusted_payload_max_bytesentier8192Nombre maximal d’octets acceptés provenant du contenu du payload ou du topic du déclencheur SOP non fiable

sop.approval

[sop.approval] - configuration de la politique du courtier d’approbation. Une source d’identité permanente pour les approbateurs fournis par le canal (pas un palliatif) : le courtier d’approbation la consomme pour les vérifications d’appartenance aux groupes et de quorum. Vide = aucune politique de courtier ne s’applique.

Un emplacement par famille (groups, policies). Chaque emplacement est une table [sop.approval.<slot>.<alias>] ; consultez la page de section dédiée pour la référence de chaque champ.

storage

Configuration du stockage persistant (section [storage]).

Le stockage est une carte à deux niveaux indexée par alias : [storage.<backend>.<alias>], parallèle à [providers.models.<type>.<alias>]. Chaque backend possède sa propre structure de configuration typée. MemoryConfig.backend contient une référence pointée ("sqlite.default", "postgres.work") qui se résout vers l’une de ces entrées via [Config::resolve_active_storage].

Un emplacement par famille (lucid, markdown, postgres, qdrant, sqlite). Chaque emplacement est une map [storage.<slot>.<alias>] ; consultez la page de section dédiée pour la référence champ par champ.

text_browser

Configuration de l’outil de navigateur de texte ([text_browser] section).

Utilise des navigateurs basés sur le texte (lynx, links, w3m) pour afficher les pages web sous forme de texte brut. Conçu pour les environnements sans tête/SSH sans navigateurs graphiques.

CléTypePar défautDescription
allowed_private_hostsstring[][]Les hôtes privés/internes peuvent assouplir la vérification SSRF des adresses publiques.
enabledboolfalseActiver l’outil text_browser
preferred_browserstring?nullNavigateur texte préféré (« lynx », « links » ou « w3m »). Si non défini, la détection automatique est utilisée.
timeout_secsentier30Délai d’expiration de la requête en secondes (par défaut : 30)

transcription

Configuration de transcription vocale avec prise en charge de plusieurs fournisseurs.

Les champs api_url, model et api_key de niveau supérieur restent pour assurer la compatibilité avec les configurations existantes basées sur Groq.

CléTypePar défautDescription
api_key 🔑string?nullClé API utilisée pour les requêtes de transcription (fournisseur de transcription Groq).
api_urlchaîne"https://api.groq.com/openai/v1/audio/transcriptions"URL du point de terminaison de l’API Whisper (fournisseur de transcription Groq).
assemblyaiobjetConfiguration AssemblyAI STT model_provider ([transcription.assemblyai]).
deepgramobjetConfiguration de model_provider STT Deepgram ([transcription.deepgram]).
enabledboolfalseActiver la transcription vocale pour les canaux qui le prennent en charge.
googleobjetConfiguration de model_provider Google Cloud Speech-to-Text ([transcription.google]).
initial_promptstring?nullInvite initiale optionnelle pour orienter la transcription vers le vocabulaire attendu
languagestring?nullIndication de langue facultative (ISO-639-1, par ex. « en », « ru ») pour le fournisseur de transcription Groq.
local_whisperobjetPoint de terminaison STT compatible Whisper local/auto-hébergé ([transcription.local_whisper]).
max_audio_bytesinteger?nullLimite supérieure globale facultative de la taille audio en octets, appliquée avant
max_duration_secsentier120Durée maximale de la voix en secondes (les messages plus longs que cette durée sont ignorés).
modelchaîne"whisper-large-v3-turbo"Nom du modèle Whisper (fournisseur de transcription Groq).
openaiobjetConfiguration de model_provider pour le modèle STT OpenAI Whisper ([transcription.openai]).
transcribe_non_ptt_audioboolfalseTranscrivez également les messages audio non-PTT (transférés/ordinaires) sur WhatsApp,

transcription.assemblyai

Configuration AssemblyAI STT model_provider ([transcription.assemblyai]).

CléTypePar défautDescription
api_key 🔑string?nullClé API AssemblyAI.

transcription.deepgram

Configuration de model_provider STT Deepgram ([transcription.deepgram]).

CléTypePar défautDescription
api_key 🔑string?nullClé API Deepgram.
modelchaîne"nova-2"Nom du modèle Deepgram (par défaut : « nova-2 »).

transcription.google

Configuration de model_provider Google Cloud Speech-to-Text ([transcription.google]).

CléTypePar défautDescription
api_key 🔑string?nullClé API Google Cloud.
language_codechaîne"fr-FR"Code de langue BCP-47 (par défaut : « en-US »).

transcription.local_whisper

Point de terminaison STT compatible Whisper local/auto-hébergé ([transcription.local_whisper]).

Configure un point de terminaison STT auto-hébergé. Il peut s’agir de localhost, d’un hôte sur un réseau privé ou de n’importe quelle URL accessible.

CléTypePar défautDescription
bearer_token 🔑string?nullJeton Bearer pour l’authentification de l’endpoint.
max_audio_bytesentier26214400Taille maximale du fichier audio en octets acceptée par ce point de terminaison.
timeout_secsentier300Délai d’expiration de la requête en secondes. La valeur par défaut est de 300 (pour les gros fichiers sur un GPU local).
url*chaîneURL de l’endpoint HTTP ou HTTPS, par exemple "http://10.10.0.1:8001/v1/transcribe".

transcription.openai

Configuration de model_provider pour le modèle STT OpenAI Whisper ([transcription.openai]).

CléTypePar défautDescription
api_key 🔑string?nullClé API OpenAI pour la transcription Whisper.
modelchaîne"whisper-1"Nom du modèle Whisper (par défaut : « whisper-1 »).

trust

CléTypePar défautDescription
correction_penaltynombre0.05
decay_half_life_daysnombre30.0
initial_scorenombre0.8
regression_thresholdnombre0.5
success_boostnombre0.01

tts

Configuration du sous-système de synthèse vocale ([tts]).

Les configurations TTS par instance se trouvent sous [tts_providers.<type>.<alias>] (en parallèle de providers.models). Ce qui reste ici, ce sont les paramètres d’exécution globaux qui s’appliquent à chaque appel de model_provider.

CléTypePar défautDescription
default_formatchaîne"mp3"Format de sortie audio par défaut ("mp3", "opus", "wav").
default_voicechaîne"alliage"ID de voix par défaut transmis au fournisseur tts sélectionné.
enabledboolfalseActiver la synthèse TTS.
max_text_lengthentier4096Longueur maximale du texte d’entrée en caractères (par défaut 4096).

tunnel

Configuration du tunnel pour exposer publiquement la passerelle (section [tunnel]).

model_providers pris en charge : "none" (par défaut), "cloudflare", "tailscale", "ngrok", "openvpn", "pinggy", "custom".

CléTypePar défautDescription
cloudflareobjet
customobjet
ngrokobjet
openvpnobjetConfiguration du tunnel OpenVPN ([tunnel.openvpn]).
pinggyobjet
tailscaleobjet
tunnel_providerchaîne"aucun"Comment la passerelle est exposée à l’internet public pour que les webhooks (Telegram, Slack, etc.) puissent l’atteindre. none = la garder locale, pas de tunnel ; cloudflare = Cloudflare Tunnel via cloudflared (nécessite un compte et un token Zero Trust) ; tailscale = Tailscale Funnel/Serve (réseau tailnet uniquement ou public, aucun compte au-delà de tailscale) ; ngrok = agent ngrok avec token d’authentification ; openvpn = sortie OpenVPN que vous fournissez ; pinggy = tunnels SSH Pinggy (URLs ponctuelles rapides) ; custom = exécuter une commande arbitraire que vous définissez sous [tunnel.custom].

tunnel.cloudflare

CléTypePar défautDescription
token 🔑chaîne""Jeton du tunnel Cloudflare (depuis le tableau de bord Zero Trust)

tunnel.custom

CléTypePar défautDescription
health_urlstring?nullURL optionnelle pour vérifier la santé du tunnel
start_commandchaîne""Modèle de commande pour démarrer le tunnel. Utilisez les espaces réservés {port} et {host}.
url_patternstring?nullExpression régulière optionnelle pour extraire l’URL publique depuis la sortie standard de la commande

tunnel.ngrok

CléTypePar défautDescription
auth_token 🔑chaîne""jeton d’authentification ngrok
domainstring?nullDomaine personnalisé optionnel

tunnel.openvpn

Configuration du tunnel OpenVPN ([tunnel.openvpn]).

Requis lorsque tunnel.tunnel_provider = "openvpn". Omettre entièrement cette section préserve le comportement précédent. Définir tunnel.tunnel_provider = "none" (ou supprimer le bloc [tunnel.openvpn]) rétablit proprement le mode sans tunnel.

Par défaut : connect_timeout_secs = 30.

CléTypePar défautDescription
advertise_addressstring?nullAdresse annoncée une fois la connexion VPN établie (par exemple, "10.8.0.2:42617").
auth_filestring?nullChemin optionnel vers le fichier d’identifiants d’authentification (--auth-user-pass).
config_file*chaîneChemin vers le fichier de configuration .ovpn (ne doit pas être vide).
connect_timeout_secsentier30Délai d’expiration de la connexion en secondes (par défaut : 30, doit être > 0).
extra_argsstring[][]Arguments CLI supplémentaires d’OpenVPN transmis tels quels.

tunnel.pinggy

CléTypePar défautDescription
regionstring?nullRégion du serveur : "us" (États-Unis), "eu" (Europe), "ap" (Asie), "br" (Amérique du Sud), "au" (Australie), ou omettre pour l’auto-détection.
token 🔑string?nullJeton d’accès Pinggy (facultatif — le plan gratuit fonctionne sans).

tunnel.tailscale

CléTypePar défautDescription
funnelboolfalseUtilisez Tailscale Funnel (internet public) vs Serve (uniquement sur le tailnet)
hostnamestring?nullRemplacement facultatif du nom d’hôte

verifiable_intent

Émission de justificatifs Verifiable Intent (VI) et vérification des contraintes (section [verifiable_intent]).

ZeroClaw implémente l’émission, la cryptographie, les types et la vérification des contraintes, mais pas de vérificateur de chaîne d’informations d’identification. Tant qu’il n’en existe pas, l’outil vi_verify est exclu du registre visible par le modèle, de sorte qu’aucune des deux clés ci-dessous ne permet de vérifier une information d’identification. Les chemins des bibliothèques ne sont pas affectés.

L’activation de la section signale cet écart de deux façons. L’environnement d’exécution le trace à chaque application de la configuration, ce qui nécessite que la persistance des journaux soit activée pour atteindre une destination. zeroclaw doctor et l’API de configuration le signalent également sous la forme de l’avertissement de validation verifiable_intent_tool_withheld, qui reste disponible lorsque la persistance est désactivée.

CléTypePar défautDescription
enabledboolfalseActiver la section VI (par défaut : false).
strictnesschaîne"strict"Niveau de rigueur prévu pour l’évaluation des contraintes.

web_fetch

Configuration de l’outil de récupération web (section [web_fetch]).

Récupère des pages web et convertit le HTML en texte brut pour les LLM. Filtrage des domaines : allowed_domains contrôle les hôtes accessibles (utilisez ["*"] pour tous les hôtes publics). blocked_domains est prioritaire sur allowed_domains. Si allowed_domains est vide, toutes les requêtes sont rejetées (refus par défaut). Les redirections vers le même hôte sont suivies ; les redirections vers un autre hôte sont rejetées afin que les réponses DNS validées restent liées au transport de la requête.

CléTypePar défautDescription
allowed_domainsstring[]["*"]Domaines autorisés pour les requêtes web (correspondance exacte ou sous-domaine ; ["*"] = tous les hôtes publics)
allowed_private_hostsstring[][]Hôtes privés/internes autorisés à assouplir la vérification SSRF des adresses publiques
blocked_domainsstring[][]Domaines bloqués (correspondance exacte ou sous-domaine ; prend toujours la priorité sur allowed_domains)
enabledbooltrueActiver l’outil web_fetch pour récupérer le contenu des pages web.
firecrawlobjetConfiguration de secours de Firecrawl pour les sites lourds en JavaScript et bloqués par les robots.
max_response_sizeentier500000Taille maximale de la réponse en octets (par défaut : 500 Ko, le texte brut est beaucoup plus petit que le HTML brut)
timeout_secsentier30Délai d’expiration de la requête en secondes (par défaut : 30)

web_fetch.firecrawl

Configuration de secours de Firecrawl pour les sites lourds en JavaScript et bloqués par les robots.

Lorsqu’il est activé, si la requête web standard échoue (erreur HTTP, corps vide ou corps de moins de 100 caractères suggérant une page uniquement en JS), l’outil bascule vers l’API Firecrawl pour l’extraction de contenu furtif.

CléTypePar défautDescription
api_key_envchaîne"FIRECRAWL_API_KEY"Nom de la variable d’environnement pour la clé API Firecrawl
api_urlchaîne"https://api.firecrawl.dev/v1"URL de base de l’API Firecrawl
enabledboolfalseActiver le fallback de Firecrawl
modetableMode de repli de Firecrawl : extraire une seule page ou explorer les pages liées.

Configuration de l’outil de recherche Web (section [web_search]).

CléTypePar défautDescription
bocha_api_key 🔑string?nullClé API de recherche Web Bocha AI (obligatoire si search_provider est "bocha"). Obtenez-la à l’adresse https://open.bochaai.com.
brave_api_key 🔑string?nullClé API Brave Search (requise si search_provider est « brave »)
enabledbooltrueActiver web_search_tool pour les recherches web
jina_api_key 🔑string?nullClé API Jina AI (requise si search_provider est “jina”)
max_resultsentier5Résultats maximum par recherche (1-10)
search_providerchaîne"duckduckgo"Fournisseur de recherche : “duckduckgo” (gratuit), “brave” (nécessite une clé API), “tavily” (nécessite une clé API), “searxng” (auto-hébergé), “jina” (nécessite une clé API), ou “bocha” (Bocha AI, nécessite une clé API — adapté au chinois, https://open.bochaai.com)
searxng_instance_urlstring?nullURL de l’instance SearXNG (requis si search_provider est "searxng"), par exemple "https://searx.example.com".
tavily_api_key 🔑string?nullClé API Tavily Search (requise si search_provider est “tavily”)
timeout_secsentier15Délai d’expiration de la requête en secondes

wss

Transport WebSocket Secure (WSS) pour les connexions distantes TUI-vers-daemon ([wss]).

Lorsqu’elle est activée, cette option permet au démon d’écouter les connexions WebSocket chiffrées par TLS sur l’adresse de liaison et le port configurés. Les clients TUI se connectent via --connect wss://host:port.

CléTypePar défautDescription
bindchaîne"0.0.0.0"Adresse de liaison pour l’écouteur WSS (par défaut : “0.0.0.0”).
cert_pathchaîne""Chemin vers le fichier de certificat serveur encodé en PEM.
client_authobjetAuthentification par certificat client (mTLS) pour le transport WSS distant
enabledboolfalseActiver l’écouteur WSS (par défaut : false).
handshake_timeout_secsentier10Un délai absolu unique, en secondes, couvrant l’acceptation TLS ET le
incomplete_message_timeout_secsentier60Durée, en secondes, pendant laquelle un message partiellement reçu peut être conservé par le
key_pathchaîne""Chemin vers le fichier de clé privée du serveur encodé en PEM.
max_pending_handshakesentier256Limite du nombre de sockets après accept() n’ayant pas encore terminé le TLS
max_sessionsentier64Nombre maximal de sessions WSS pouvant être établies simultanément (valeur par défaut : 64). Limites
max_sessions_per_cliententier8Plafond du nombre de sessions simultanées présentant UN certificat client
portentier9781Port pour l’écouteur WSS (par défaut : 9781).
sansstring[][]Noms alternatifs supplémentaires du sujet pour le certificat de serveur GÉNÉRÉ AUTOMATIQUEMENT

wss.client_auth

Authentification par certificat client (mTLS) pour le transport WSS distant ([wss.client_auth]).

Ceci est le pendant de [GatewayClientAuthConfig] ; les deux sont des structures distinctes uniquement parce que la dérivation Configurable lie le préfixe de section au type. La logique de vérification elle-même est centralisée dans le crate zeroclaw-tls.

Contrairement à la variante de la passerelle, il n’existe pas de paramètre require_client_cert : le plan WSS distant est toujours soumis à une authentification mutuelle (il n’existe pas de mode TLS côté serveur uniquement), et un certificat client est donc systématiquement requis.

CléTypePar défautDescription
ca_cert_pathchaîne""Chemin vers le certificat d’autorité de certification encodé au format PEM utilisé pour vérifier les certificats clients.
crl_pathchaîne""Chemin facultatif vers une liste d’empreintes révoquées (une valeur hexadécimale SHA-256 par ligne). A
enabledboolfalseUtilisez votre propre CA ci-dessous. Lorsque la valeur est false (par défaut), le démon
pinned_certsstring[][]Empreintes SHA-256 facultatives pour l’épinglage des certificats. Lorsqu’elles ne sont pas vides,