Référence de configuration
ZeroClaw est configuré via un fichier TOML. Tous les champs sont facultatifs sauf indication contraire.
| Section | Description |
|---|---|
a2a | Section A2A qui laisse de la place pour une future configuration sœur. |
acp | Configuration du serveur ACP (Agent Client Protocol) (section [acp]). |
agents | Agents avec alias dans cette installation. Chaque entrée sous [agents.<alias>] |
backup | Configuration de l’outil de sauvegarde (section [backup]). |
browser | Configuration de l’automatisation du navigateur (section [browser]). |
browser_delegate | |
channels | Configurations de canal de premier niveau ([channels] section). |
claude_code | Configuration de l’outil CLI Claude Code (section [claude_code]). |
claude_code_runner | Configuration du lanceur de tâches Claude Code (section [claude_code_runner]). |
cloud_ops | Contrôle les outils d’analyse de transformation du nuage de points en lecture seule : |
codex_cli | Configuration de l’outil CLI Codex (section [codex_cli]). |
composio | Intégration des outils gérés par Composio pour OAuth ([composio] section). |
conversational_ai | Configuration de l’agent d’IA conversationnelle ([conversational_ai] section). |
cost | Configuration du suivi des coûts et de l’application du budget (section [cost]). |
cron | Tâches cron déclaratives ([cron.<alias>]), indexées par alias. |
data_retention | Configuration de la rétention et du purgeage des données (section [data_retention]). |
delegate | Configuration globale de l’outil de délégation pour les valeurs par défaut des délais d’attente. |
embedding_routes | Règles de routage d’embedding — route hint:<name> vers un |
enroll | Point de terminaison d’inscription de certificat ([enroll]). |
escalation | Configuration du routage d’escalade (section [escalation]). |
eval | Configuration pour le harnais d’évaluation de l’agent ([eval]), exposée via le |
file_download | Configuration de l’outil autonome de téléchargement de fichiers ([file_download]). |
file_upload | Configuration de l’outil autonome de téléversement de fichiers ([file_upload]). |
file_upload_bundle | Configuration de l’outil autonome de téléversement de bundles multi-fichiers |
gateway | Configuration du serveur passerelle (section [gateway]). |
gemini_cli | Configuration de l’outil Gemini CLI (section [gemini_cli]). |
google_workspace | Configuration de l’outil CLI Google Workspace (gws) (section [google_workspace]). |
hardware | Configuration matérielle guidée par un assistant pour l’interaction avec le monde physique. |
heartbeat | Configuration du heartbeat pour les pings de santé périodiques (section [heartbeat]). |
hooks | |
http_request | Configuration de l’outil de requête HTTP (section [http_request]). |
image_gen | Configuration de l’outil de génération d’images autonome ([image_gen]). |
jira | Configuration de l’intégration Jira ([jira]). |
knowledge | Configuration du graphe de connaissances pour la capture et la réutilisation de l’expertise. |
knowledge_bundles | Lots de connaissances nommés ([knowledge_bundles.<alias>]). |
link_enricher | Compréhension automatique des liens pour les messages entrants du canal ([link_enricher]). |
linkedin | Configuration de l’intégration LinkedIn (section [linkedin]). |
locale | Locale pour les descriptions d’outils (par exemple, "en", "zh-CN"). |
mcp | Configuration externe du client MCP (section [mcp]). |
mcp_bundles | Bundles de serveurs MCP nommés ([mcp_bundles.<alias>]). |
media_pipeline | Configuration du pipeline de compréhension automatique des médias ([media_pipeline]). |
memory | Configuration du backend de mémoire (section [memory]). |
microsoft365 | Intégration de Microsoft 365 via l’API Microsoft Graph (section [microsoft365]). |
model_routes | Règles de routage de modèles — acheminer hint:<name> vers un modèle spécifique |
multimodal | Configuration de la gestion multimodale (image) (section [multimodal]). |
nodes | Configuration pour le système de découverte dynamique des nœuds ([nodes]). |
notion | Configuration de l’intégration Notion ([notion]). |
observability | Configuration du backend d’observabilité (section [observability]). |
onboard_state | Configuration d’isolation de l’espace de travail multi-client. |
opencode_cli | Configuration de l’outil CLI OpenCode (section [opencode_cli]). |
pacing | Contrôles de pacing pour les charges de travail LLM lentes/locales ([pacing] section). |
peer_groups | Groupes de pairs nommés ([peer_groups.<name>]). Chaque entrée associe un |
peripherals | Configuration d’intégration de la carte périphérique (section [peripherals]). |
pipeline | Configuration de l’outil de pipeline (section [pipeline]). |
plugins | Configuration du système de plugins. |
project_intel | Configuration de l’intelligence de livraison de projet ([project_intel] section). |
providers | Conteneur de premier niveau pour chaque catégorie de fournisseur configurée. |
proxy | Configuration du proxy pour le trafic HTTP/HTTPS/SOCKS5 sortant (section [proxy]). |
query_classification | Classification automatique des requêtes — classe les messages des utilisateurs par mot-clé ou motif |
relay | Client du relais désigné ([relay]). |
reliability | Configuration de la fiabilité et de la supervision (section [reliability]). |
risk_profiles | Profils de risque/autonomie nommés ([risk_profiles.<alias>]). |
runtime | Configuration de l’adaptateur d’exécution (section [runtime]). |
runtime_profiles | Profils d’exécution runtime/LLM nommés ([runtime_profiles.<alias>]). |
scheduler | Configuration du planificateur pour l’exécution périodique des tâches (section [scheduler]). |
schema_version | Version du schéma du fichier de configuration. |
secrets | Configuration de chiffrement des secrets (section [secrets]). |
security | Configuration de sécurité pour la journalisation d’audit, OTP, arrêt d’urgence, IAM/SSO, WebAuthn, |
security_ops | Configuration de l’agent du tableau de bord du service de cybersécurité géré (MCSS) ([security_ops]). |
shell_tool | Configuration de l’outil Shell (section [shell_tool]). |
skill_bundles | Lots de compétences nommés ([skill_bundles.<alias>]). |
skills | Configuration de chargement des compétences ([skills] section). |
sop | Configuration du moteur des procédures opérationnelles standard ([sop]). |
storage | Configuration du stockage persistant (section [storage]). |
text_browser | Configuration de l’outil de navigateur de texte ([text_browser] section). |
transcription | Configuration de transcription vocale avec prise en charge de plusieurs fournisseurs. |
trust | |
tts | Configuration du sous-système de synthèse vocale ([tts]). |
tunnel | Configuration du tunnel pour exposer publiquement la passerelle (section [tunnel]). |
verifiable_intent | Émission de justificatifs Verifiable Intent (VI) et vérification des contraintes |
web_fetch | Configuration de l’outil de récupération web (section [web_fetch]). |
web_search | Configuration de l’outil de recherche Web (section [web_search]). |
wss | Transport 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é | Type | Par défaut | Description |
|---|---|---|---|
server | objet | — | Configuration du serveur de découverte A2A entrant. |
a2a.server
Configuration du serveur de découverte A2A entrant.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
bind | string? | — | Surcharge d’hôte facultative en mode annonce uniquement pour les URL des points de terminaison de carte. Le |
enabled | bool | false | Interrupteur principal pour la surface A2A entrante. Par défaut false : non |
port | integer? | — | Surcharge optionnelle du port d’annonce uniquement, associée à bind. None |
public_base_url | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
default_agent | string? | — | Alias d’agent à utiliser lorsque session/new omet agentAlias et que plus de |
max_sessions | entier | 10 | Nombre maximal de sessions ACP simultanées. Par défaut : 10. |
session_timeout_secs | entier | 3600 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
a2a | objet | — | Configuration de publication A2A par agent et des compétences exposées. |
acp_enable_mcp | bool | false | Initialiser les outils mcp_bundles de cet agent lorsqu’il sert un ACP |
channels | string[] | [] | Alias de canal gérés par cet agent (par ex. ["telegram.<alias>", "discord.<alias>"]). |
classifier_provider | chaîne | — | Référence à une entrée configurée [providers.models.<type>.<alias>]. |
cron_jobs | string[] | [] | Alias des tâches cron. Chaque entrée fait référence à cron[key], une configuration déclarative |
delegate_same_risk_profile | bool | true | Autoriser automatiquement la délégation à tous les agents partageant le risque de cet agent |
delegates | object[] | [] | Liste explicite des délégués : alias d’agent supplémentaires que cet agent peut |
enabled | bool | true | Si cet agent est actif. Définissez false pour désactiver sans supprimer la définition. |
identity | objet | — | Configuration du format d’identité (section [identity]). |
knowledge_bundles | string[] | [] | Alias des paquets de connaissances. Additif : l’agent charge tous les éléments listés |
mcp_bundles | string[] | [] | Alias de bundle MCP. Chaque entrée fait référence à mcp_bundles[key], un nommé |
memory | objet | — | Sélection du backend de mémoire par agent et son contrat de persistance. |
model_provider | chaîne | — | Référence à une entrée configurée [providers.models.<type>.<alias>]. |
precheck | objet | — | Configuration de la vérification préalable de l’intention de réponse par canal. |
risk_profile | chaîne | — | Référence à une entrée configurée [risk_profiles.<type>.<alias>]. |
runtime_profile | chaîne | — | Référence à une entrée configurée [runtime_profiles.<type>.<alias>]. |
skill_bundles | string[] | [] | Alias de skill bundles. Chaque entrée se résout en |
summary_provider | chaîne | — | Référence à une entrée configurée [providers.models.<type>.<alias>]. |
transcription_provider | chaîne | — | Référence à une entrée configurée [providers.transcription.<type>.<alias>]. |
tts_provider | chaîne | — | Référence à une entrée configurée [providers.tts.<type>.<alias>]. |
workspace | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
exposed_skills | string[] | [] | Filtre sélectionnant les skill ids résolus qui apparaissent sur cet alias |
published | bool | false | Publier 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é | Type | Par défaut | Description |
|---|---|---|---|
aieos_inline | string? | null | JSON AIEOS en ligne (alternative au chemin de fichier) |
aieos_path | string? | null | Chemin vers le fichier JSON AIEOS (relatif à l’espace de travail) |
format | chaîne | openclaw | Format 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é | Type | Par défaut | Description |
|---|---|---|---|
backend | table | — | Sé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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | true | Lorsque false, le précontrôle est entièrement ignoré pour cet agent et chaque |
timeout_secs | entier | 5 | Limite 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é | Type | Par défaut | Description |
|---|---|---|---|
access | carte | {} | Liste d’autorisation des espaces de travail inter-agents. Une map vide n’accorde aucun accès aux éléments frères. |
path | string? | — | Chemin de l’espace de travail explicite optionnel. None = dériver de |
read_memory_from | string[] | [] | Liste d’autorisation de mémoire inter-agents. Une liste vide n’accorde l’accès qu’à la mémoire locale. |
unrestricted_filesystem | bool | false | Échappatoire : lorsque true, l’agent peut lire ou écrire n’importe où |
backup
Configuration de l’outil de sauvegarde (section [backup]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
compress | bool | true | Compresser les archives de sauvegarde. |
destination_dir | chaîne | "state/backups" | Répertoire de sortie pour les archives de sauvegarde (relatif à la racine de l’espace de travail). |
enabled | bool | true | Activer l’outil backup. |
encrypt | bool | false | Chiffrer les archives de sauvegarde (nécessite une clé de magasin de secrets configurée). |
include_dirs | string[] | ["config","memory","audit","knowledge"] | Sous-répertoires de l’espace de travail à inclure dans les sauvegardes. |
max_keep | entier | 10 | Nombre maximum de sauvegardes à conserver (les plus anciennes sont supprimées). |
schedule_cron | string? | null | Expression cron optionnelle pour les sauvegardes automatiques planifiées. |
schedule_timezone | string? | null | Fuseau 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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_domains | string[] | ["*"] | Domaines autorisés pour browser_open (correspondance exacte ou sous-domaine) |
allowed_private_hosts | string[] | [] | Hôtes privés/internes autorisés à contourner la protection SSRF. |
backend | chaîne | "agent_browser" | Backend d’automatisation du navigateur : “agent_browser” | “rust_native” | “computer_use” | “auto” |
computer_use | objet | — | Configuration du sidecar d’utilisation de l’ordinateur (section [browser.computer_use]). |
enabled | bool | true | Activer l’outil browser_open (ouvre les URL dans le navigateur système sans extraction de contenu) |
headed | bool? | null | Afficher la fenêtre du navigateur pour le backend agent_browser. Si non défini, hérite de AGENT_BROWSER_HEADED. |
native_chrome_path | string? | null | Chemin exécutable Chrome/Chromium optionnel pour le backend natif Rust |
native_headless | bool | true | Mode sans tête pour le backend natif Rust |
native_webdriver_url | chaî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_name | string? | null | Nom 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é | Type | Par défaut | Description |
|---|---|---|---|
allow_remote_endpoint | bool | false | Autoriser un point de terminaison distant/public pour le sidecar d’utilisation de l’ordinateur (par défaut : false) |
api_key 🔑 | string? | null | Jeton d’authentification facultatif pour le sidecar d’utilisation de l’ordinateur |
endpoint | chaî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_x | integer? | null | Limite facultative de l’axe X pour les actions basées sur les coordonnées |
max_coordinate_y | integer? | null | Limite facultative de l’axe Y pour les actions basées sur les coordonnées |
timeout_ms | entier | 15000 | Délai d’expiration de la requête par action en millisecondes |
window_allowlist | string[] | [] | Liste blanche facultative des titres de fenêtre/processus transmise à la politique du sidecar |
browser_delegate
| Clé | Type | Par défaut | Description |
|---|---|---|---|
allowed_domains | string[] | [] | |
blocked_domains | string[] | [] | |
chrome_profile_dir | chaîne | "" | |
cli_binary | chaîne | "claude" | |
enabled | bool | false | |
task_timeout_secs | entier | 120 |
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é | Type | Par défaut | Description |
|---|---|---|---|
ack_reactions | bool | true | S’il faut ajouter des réactions d’accusé de réception (👀 à la réception, ✅/⚠️ à la |
amqp | carte | — | Instances de canaux AMQP ([channels.amqp.<alias>]). |
bluesky | carte | — | Instances de canal Bluesky ([channels.bluesky.<alias>]). |
clawdtalk | carte | — | Instances de canal vocal ClawdTalk ([channels.clawdtalk.<alias>]). |
cli | bool | true | Activer le canal interactif de la CLI. Par défaut : true. |
debounce_ms | entier | 0 | Fenêtre de débounce des messages entrants en millisecondes. Lorsqu’un expéditeur envoie |
dingtalk | carte | — | Instances de canal DingTalk ([channels.dingtalk.<alias>]). |
discord | carte | — | Instances de canaux du bot Discord ([channels.discord.<alias>]). |
email | carte | — | Instances de canal e-mail ([channels.email.<alias>]). |
filesystem | carte | — | Filesystem SOP instances d’écouteur ([channels.filesystem.<alias>]). |
git | carte | — | Instances de canal Git-forge ([channels.git.<alias>]). GitHub est |
gmail_push | carte | — | Instances de canal de notifications push Gmail Pub/Sub ([channels.gmail_push.<alias>]). |
imessage | carte | — | Instances de canal iMessage ([channels.imessage.<alias>], macOS uniquement). |
irc | carte | — | Instances de canaux IRC ([channels.irc.<alias>]). |
lark | carte | — | Instances de canal Lark ([channels.lark.<alias>]). |
line | carte | — | Instances de canal LINE Messaging API ([channels.line.<alias>]). |
linq | carte | — | Instances de canal Linq Partner API ([channels.linq.<alias>]). |
matrix | carte | — | Instances de canal Matrix ([channels.matrix.<alias>]). |
mattermost | carte | — | Instances de canal de bot Mattermost ([channels.mattermost.<alias>]). |
max_concurrent_per_channel | entier | 4 | Multiplicateur par canal pour le budget global de messages en vol des canaux. |
message_timeout_secs | entier | 300 | Délai d’attente par défaut en secondes pour le traitement d’un message d’un seul canal (LLM + outils). |
mochat | carte | — | Instances de canal de service client Mochat ([channels.mochat.<alias>]). |
mqtt | carte | — | Instances de canaux MQTT ([channels.mqtt.<alias>]). |
nextcloud_talk | carte | — | Instances de canal de bot Nextcloud Talk ([channels.nextcloud_talk.<alias>]). |
nostr | carte | — | |
plugin | carte | — | Instances de plugins de canal WASM ([channels.plugin.<alias>]). |
qq | carte | — | Instances de canaux QQ Official Bot ([channels.qq.<alias>]). |
reddit | carte | — | Instances de canal Reddit ([channels.reddit.<alias>]). |
session_backend | chaîne | "sqlite" | Backend de persistance de session : "jsonl" (hérité) ou "sqlite" (nouvelle valeur par défaut). |
session_persistence | bool | true | Conserver l’historique des conversations des canaux dans des fichiers JSONL afin que les sessions survivent |
session_ttl_hours | entier | 0 | Archive automatiquement les sessions obsolètes après ce nombre d’heures. 0 désactive. Par défaut : 0. |
show_tool_calls | bool | false | Indique s’il faut envoyer des messages de notification d’appel d’outil (par exemple, 🔧 web_search_tool: …) |
signal | carte | — | Instances de canal Signal ([channels.signal.<alias>]). |
slack | carte | — | Instances de canaux de bot Slack ([channels.slack.<alias>]). |
telegram | carte | — | Instances de canal de bot Telegram ([channels.telegram.<alias>]). |
twitch | carte | — | Instances de canal de chat Twitch ([channels.twitch.<alias>]). |
twitter | carte | — | Instances de canal X/Twitter ([channels.twitter.<alias>]). |
voice_call | carte | — | Instances de canal d’appel vocal ([channels.voice_call.<alias>]). |
voice_duplex | carte | — | Instances voice duplex ([channels.voice_duplex.<alias>]). |
voice_wake | carte | — | Instances de canal de détection de mot d’activation vocal ([channels.voice_wake.<alias>]). |
webhook | carte | — | Instances de canal webhook ([channels.webhook.<alias>]). |
wechat | carte | — | Instances de canal WeChat personnel iLink Bot ([channels.wechat.<alias>]). |
wecom | carte | — | Instances de canal Webhook Bot WeCom (WeChat Enterprise) ([channels.wecom.<alias>]). |
wecom_ws | carte | — | Instances de canal WebSocket WeCom AI Bot ([channels.wecom_ws.<alias>]). |
whatsapp | carte | — | Instances 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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_tools | string[] | ["Read","Edit","Bash","Write"] | Outils que le sous-processus de Claude Code est autorisé à utiliser |
enabled | bool | false | Activez l’outil claude_code |
env_passthrough | string[] | [] | Variables d’environnement supplémentaires transmises au sous-processus Claude (par exemple, ANTHROPIC_API_KEY pour la facturation par clé API) |
max_output_bytes | entier | 2097152 | Taille maximale de sortie en octets (2 Mo par défaut) |
system_prompt | string? | null | Invite de système optionnelle ajoutée aux invocations de Claude Code |
timeout_secs | entier | 600 | Temps 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activez l’outil claude_code_runner |
session_ttl | entier | 3600 | Durée de vie de la session en secondes avant le nettoyage automatique (par défaut : 3600) |
ssh_host | string? | null | Hôte SSH pour les liens de transfert de session (par exemple, « myhost.example.com ») |
tmux_prefix | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
cost_threshold_monthly_usd | nombre | 100.0 | Seuil mensuel en USD pour signaler les éléments de coût. Par défaut : 100,0. |
default_cloud | chaîne | "aws" | Fournisseur de modèle cloud par défaut pour le contexte d’analyse. Par défaut : “aws”. |
enabled | bool | false | Activer les outils d’exploitation cloud. Par défaut : false. |
iac_tools | string[] | ["terraform"] | Outils IaC pris en charge pour la revue. Par défaut : [terraform]. |
supported_clouds | string[] | ["aws","azure","gcp"] | model_providers cloud pris en charge. Par défaut : [aws, azure, gcp]. |
well_architected_frameworks | string[] | ["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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer l’outil codex_cli |
env_passthrough | string[] | [] | Variables d’environnement supplémentaires transmises au sous-processus codex (par exemple, OPENAI_API_KEY) |
extra_args | string[] | [] | Arguments CLI supplémentaires ajoutés à codex exec avant le prompt. |
max_output_bytes | entier | 2097152 | Taille maximale de sortie en octets (2 Mo par défaut) |
timeout_secs | entier | 600 | Temps 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é | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API Composio (stockée de manière chiffrée lorsque secrets.encrypt = true) |
enabled | bool | false | Activer l’intégration Composio pour plus de 1000 outils OAuth |
entity_id | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
analytics_enabled | bool | false | Activer le suivi des analyses de conversation. Par défaut : false (confidentialité par défaut). |
auto_detect_language | bool | true | Détecter automatiquement la langue de l’utilisateur à partir du contenu du message. Par défaut : true. |
conversation_timeout_secs | entier | 1800 | Délai d’expiration de la conversation en secondes (inactivité). Par défaut : 1800. |
default_language | chaîne | "en" | Langue par défaut pour les conversations (tag BCP-47). Par défaut : « en ». |
enabled | bool | false | Activer les fonctionnalités d’IA conversationnelle. Par défaut : false. |
escalation_confidence_threshold | nombre | 0.3 | Une confiance d’intention inférieure à ce seuil déclenche une escalade. Par défaut : 0,3. |
knowledge_base_tool | string? | null | Nom d’outil optionnel pour la recherche dans une base de connaissances basée sur RAG pendant les conversations. |
max_conversation_turns | entier | 50 | Nombre maximum de tours de conversation avant la fin automatique. Par défaut : 50. |
supported_languages | string[] | ["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é | Type | Par défaut | Description |
|---|---|---|---|
allow_override | bool | false | Autoriser les requêtes à dépasser le budget avec l’indicateur --override (par défaut : false) |
daily_limit_usd | nombre | 10.0 | Limite de dépenses quotidienne en USD (par défaut : 10,00) |
enabled | bool | true | Activer le suivi des coûts (par défaut : true) |
enforcement | objet | — | Configuration du comportement de l’application des coûts lorsque les limites de budget sont atteintes. |
monthly_limit_usd | nombre | 100.0 | Limite de dépenses mensuelle en USD (par défaut : 100,00) |
rates | objet | — | [cost.rates] — espace de noms de premier niveau pour la grille tarifaire. Reflète le |
track_per_agent | bool | true | Estampillez chaque entrée de coût enregistrée avec l’alias de l’agent d’origine afin de |
warn_at_percent | entier | 80 | Avertir 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é | Type | Par défaut | Description |
|---|---|---|---|
mode | chaîne | "warn" | Mode d’application : « warn », « block » ou « route_down ». |
reserve_percent | entier | 10 | Réservez ce pourcentage du budget pour les opérations critiques. |
route_down_model | string? | null | Modè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é | Type | Par défaut | Description |
|---|---|---|---|
providers | objet | — | [cost.rates.providers.*] — fiches tarifaires structurées par fournisseur. Chaque champ |
tools | carte | {} | [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é | Type | Par défaut | Description |
|---|---|---|---|
models | objet | — | [cost.rates.providers.models.<type>.<model>] — taux de coût des tokens |
transcription | objet | — | cost.rates.providers.transcription.<type>.<model> |
tts | objet | — | cost.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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_tools | string[]? | null | Liste d’autorisation facultative des noms d’outils pour les jobs d’agent. Lorsqu’elle est omise, le planificateur |
command | string? | null | Commande shell à exécuter (requis lorsque job_type = "shell"). |
delivery | objet | — | Configuration de livraison pour les tâches cron déclaratives. |
enabled | bool | true | Si le job est activé. Par défaut : true. |
job_type | chaîne | shell | Type de tâche : "shell" (par défaut) ou "agent". |
model | string? | null | Remplacement du modèle pour les tâches d’agent. |
name | string? | null | Nom lisible par l’homme. |
prompt | string? | null | Prompt de l’agent (requis lorsque job_type = "agent"). |
schedule | table | — | Variante de planification pour les tâches cron déclaratives. |
session_target | string? | null | Cible de session : "isolated" (par défaut) ou "main". |
shell_output_format | table | — | Format de sortie pour la sortie standard des tâches cron shell. |
uses_memory | bool | true | S’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é | Type | Par défaut | Description |
|---|---|---|---|
best_effort | bool | true | Livraison au mieux. Par défaut : true. |
channel | string? | null | Canal vers lequel effectuer la livraison, au format <type>.<alias> (par ex. |
mode | chaîne | "aucun" | Mode de livraison : "none" ou "announce". |
thread_id | string? | — | Identifiant optionnel de thread/conversation transmis dans l’envoi sortant. |
to | string? | null | Identifiant de la cible/du destinataire. |
data_retention
Configuration de la rétention et du purgeage des données (section [data_retention]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
categories | string[] | [] | Limiter l’application de la rétention à des catégories de données spécifiques (vide = toutes). |
dry_run | bool | false | Aperçu de ce qui serait supprimé sans rien supprimer réellement. |
enabled | bool | false | Activez l’outil data_management. |
retention_days | entier | 90 | Nombre 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é | Type | Par défaut | Description |
|---|---|---|---|
agentic_timeout_secs | entier | 300 | Délai d’attente par défaut en secondes pour les exécutions de sous-agents agents. |
timeout_secs | entier | 120 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
allow_unpaired_enrollment | chaîne | "" | Réservé à un flux de migration futur. La première version FOSS rejette tout |
bind | chaîne | "0.0.0.0" | Adresse sur laquelle se lie le point de terminaison d’inscription. |
enabled | bool | false | Activer le point de terminaison d’inscription (par défaut : false). Nécessite l’activation de [wss] |
port | entier | 9782 | Port 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é | Type | Par défaut | Description |
|---|---|---|---|
alert_channels | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
mode | chaîne | "replay" | Mode d’exécution par défaut (replay ou live) utilisé lorsque --mode est omis. |
suite_dir | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
headers 🔑 | carte | {} | En-têtes HTTP statiques joints à chaque requête de téléchargement — typiquement un |
max_file_size_bytes | entier | 26214400 | Taille maximale de téléchargement en octets. Appliquée pendant le streaming : le transfert |
timeout_secs | entier | 120 | Délai d’expiration de la requête en secondes. Par défaut : 120. |
url | string? | null | URL 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é | Type | Par défaut | Description |
|---|---|---|---|
field_name | chaî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_bytes | entier | 26214400 | Taille maximale de fichier en octets. Les fichiers plus volumineux sont rejetés avant tout |
method | chaîne | "POST" | Méthode HTTP. Seules POST (par défaut) et PUT sont acceptées. |
timeout_secs | entier | 60 | Délai d’expiration de la requête en secondes. Par défaut : 60. |
url | string? | null | URL 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é | Type | Par défaut | Description |
|---|---|---|---|
field_name | chaî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_bytes | entier | 10485760 | Taille maximale par fichier en octets. Par défaut : 10 Mio. |
max_files | entier | 16 | Nombre maximal de fichiers par appel. Par défaut : 16. |
max_response_body_bytes | entier | 4096 | Nombre maximal d’octets du corps de réponse à lire depuis le point de terminaison de téléversement. |
max_total_size_bytes | entier | 33554432 | Taille cumulée maximale de tous les fichiers dans un même appel. Valeur par défaut : 32 MiB. |
method | chaîne | "POST" | Méthode HTTP. Seules POST (par défaut) et PUT sont acceptées. |
timeout_secs | entier | 120 | Délai d’expiration de la requête en secondes. Par défaut : 120. |
url | string? | null | URL 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é | Type | Par défaut | Description |
|---|---|---|---|
allow_public_bind | bool | false | Autoriser la liaison à une adresse autre que localhost sans tunnel (par défaut : false) |
allow_remote_admin | bool | false | Autoriser les appelants distants authentifiés à utiliser les points de terminaison d’administration qui sont |
allow_self_upgrade | bool | false | Autoriser le déclenchement d’une mise à niveau automatique (remplacement du binaire via zeroclaw update) depuis |
check_updates | bool | true | Interroger GitHub pour les nouvelles versions et afficher un indicateur « mise à jour disponible » |
host | chaîne | "127.0.0.1" | Hôte de la passerelle (par défaut : 127.0.0.1) |
idempotency_max_keys | entier | 10000 | Nombre maximum de clés d’idempotence distinctes conservées en mémoire. |
idempotency_ttl_secs | entier | 300 | TTL pour les clés d’idempotence des webhooks. |
long_running_request_timeout_secs | entier | 600 | Délai d’expiration de la requête HTTP (en secondes) pour POST /api/cron/{id}/run, qui |
pair_rate_limit_per_minute | entier | 10 | Nombre 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_dashboard | objet | — | Configuration du tableau de bord d’appairage ([gateway.pairing_dashboard]). |
path_prefix | string? | null | Préfixe de chemin URL optionnel pour les déploiements en reverse-proxy. |
port | entier | 42617 | Port de passerelle (par défaut : 42617) |
rate_limit_max_keys | entier | 10000 | Nombre maximum de clés de client distinctes suivies par les cartes de limiteur de débit de la passerelle. |
request_timeout_secs | entier | 30 | Délai d’expiration des requêtes HTTP (en secondes) pour les routes de passerelle autres que la |
require_pairing | bool | true | Exiger l’appariement avant d’accepter les requêtes (par défaut : true) |
session_persistence | bool | true | Persister les sessions de chat WebSocket du gateway dans SQLite. Par défaut : true. |
session_ttl_hours | entier | 0 | Archive automatiquement les sessions de passerie obsolètes depuis plus de N heures. 0 = désactivé. Par défaut : 0. |
tls | objet | — | Configuration TLS pour le serveur passerelle ([gateway.tls]). |
trust_forwarded_headers | bool | false | Faire confiance aux en-têtes d’IP client transmis par le proxy (X-Forwarded-For, X-Real-IP). |
web_dist_dir | string? | null | Chemin vers le répertoire dist du tableau de bord web. Lorsqu’il est défini, la passerelle |
webhook_rate_limit_per_minute | entier | 60 | Nombre maximal de requêtes /webhook par minute par clé client. |
webhook_secret 🔑 | string? | null | Secret partagé facultatif pour le point de terminaison générique POST /webhook de la passerelle et |
websocket_ping_interval_secs | entier | 30 | Envoyer 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é | Type | Par défaut | Description |
|---|---|---|---|
code_length | entier | 8 | Longueur des codes d’appariement (par défaut : 8) |
code_ttl_secs | entier | 3600 | Durée de vie des codes d’appariement en attente, en secondes (par défaut : 3600) |
lockout_secs | entier | 300 | Durée de verrouillage en secondes après le nombre maximal de tentatives (par défaut : 300) |
max_failed_attempts | entier | 5 | Nombre maximum de tentatives d’appariement échouées avant le verrouillage (par défaut : 5) |
max_pending_codes | entier | 3 | Nombre maximum de codes d’appariement en attente simultanés (par défaut : 3) |
gateway.tls
Configuration TLS pour le serveur passerelle ([gateway.tls]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
cert_path* | chaîne | — | Chemin vers le fichier de certificat serveur encodé en PEM. |
client_auth | objet | — | Configuration de l’authentification par certificat client (mTLS) ([gateway.tls.client_auth]). |
enabled | bool | false | Activer TLS pour la passerelle (par défaut : false). |
key_path* | chaîne | — | Chemin 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é | Type | Par défaut | Description |
|---|---|---|---|
ca_cert_path | chaîne | "" | Chemin vers le certificat CA encodé en PEM utilisé pour vérifier les certificats clients. |
crl_path | chaîne | "" | Chemin facultatif vers une liste d’empreintes révoquées (une valeur hexadécimale SHA-256 par ligne). A |
enabled | bool | false | Activer la vérification du certificat client (par défaut : false). |
pinned_certs | string[] | [] | Empreintes SHA-256 facultatives pour l’épinglage de certificat. |
require_client_cert | bool | true | Rejeter 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer l’outil gemini_cli |
env_passthrough | string[] | [] | Variables d’environnement supplémentaires transmises au sous-processus gemini (par exemple, GOOGLE_API_KEY) |
max_output_bytes | entier | 2097152 | Taille maximale de sortie en octets (2 Mo par défaut) |
timeout_secs | entier | 600 | Temps 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 identifiantsgws).default_account:None(utilise le compte actifgws).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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_operations | object[] | [] | Restreindre les combinaisons de ressources/méthodes que l’agent peut accéder. |
allowed_services | string[] | [] | Restreindre les services Google Workspace auxquels l’agent peut accéder. |
audit_log | bool | false | Activer la journalisation d’audit pour chaque invocation de gws (service, ressource, |
credentials_path | string? | null | Chemin vers le fichier JSON du compte de service ou le fichier d’identifiants du client OAuth. |
default_account | string? | null | Adresse e-mail du compte Google par défaut à passer à gws --account. |
enabled | bool | false | Activez l’outil google_workspace. Par défaut : false. |
rate_limit_per_minute | entier | 60 | Nombre maximum d’appels API gws autorisés par minute. Par défaut : 60. |
timeout_secs | entier | 30 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
baud_rate | entier | 115200 | Dé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. |
enabled | bool | false | Activez 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_target | string? | null | Identifiant 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_port | string? | null | Chemin TTY pour le transport serial — par exemple /dev/ttyACM0 sous Linux, /dev/tty.usbmodem1 sous macOS, COM3 sous Windows. Ignoré pour les autres transports. |
transport | None | Native | Serial | Probe | — | Mode de transport matériel. |
workspace_datasheets | bool | false | Indexer 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é | Type | Par défaut | Description |
|---|---|---|---|
adaptive | bool | false | Activer les intervalles adaptatifs qui ralentissent en cas d’échecs et accélèrent pour |
agent | chaîne | "" | Alias d’agent configuré sous lequel s’exécute le worker heartbeat. Requis |
deadman_channel | string? | null | Canal pour les alertes du commutateur de sécurité (par exemple telegram). Fait appel à |
deadman_timeout_minutes | entier | 0 | Délai d’expiration du commutateur de sécurité en minutes. Si le battement de cœur n’a pas été émis |
deadman_to | string? | null | Destinataire des alertes du commutateur de sécurité. Utilise to par défaut. |
enabled | bool | false | Activer les pings de heartbeat périodiques. Par défaut : false. Lorsque cette option est activée, |
interval_minutes | entier | 30 | Intervalle en minutes entre les pings de heartbeat. Minimum : 1. Par défaut : 30. |
load_session_context | bool | false | Chargez l’historique de la session de la chaîne avant chaque exécution de la tâche de battement cardiaque afin |
max_interval_minutes | entier | 120 | Intervalle maximum en minutes lorsque le mode adaptatif recule. Par défaut : 120. |
max_run_history | entier | 100 | Nombre maximum d’enregistrements de l’historique des cœurs battants à conserver. Par défaut : 100. |
message | string? | null | Texte de tâche de secours optionnel lorsque HEARTBEAT.md ne contient aucune entrée de tâche. |
min_interval_minutes | entier | 5 | Intervalle minimum en minutes lorsque le mode adaptatif est activé. Par défaut : 5. |
target | string? | null | Chaîne de livraison facultative pour la sortie des battements de cœur (par exemple : telegram). |
task_timeout_secs | entier | 600 | Nombre maximum de secondes d’horloge autorisées pour une invocation d’un agent unique |
to | string? | null | Identifiant du destinataire/chat de livraison optionnel (obligatoire lorsque target est |
two_phase | bool | true | Activer le battement de cœur en deux phases : la phase 1 demande au LLM s’il faut exécuter, la phase 2 |
hooks
| Clé | Type | Par défaut | Description |
|---|---|---|---|
builtin | objet | — | |
enabled | bool | true | Activer l’exécution des hooks de cycle de vie. |
hooks.builtin
| Clé | Type | Par défaut | Description |
|---|---|---|---|
command_logger | bool | false | Activer le hook de journalisation des commandes (enregistre les appels d’outils aux fins d’audit). |
webhook_audit | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer le hook webhook-audit. Par défaut : false. |
include_args | bool | false | Inclure les arguments des appels d’outil dans la charge utile d’audit. Par défaut : false. |
max_args_bytes | entier | 4096 | Taille maximale (en octets) des arguments sérialisés inclus dans un seul |
tool_patterns | string[] | [] | Modèles glob pour les noms d’outils à auditer (par exemple, ["Bash", "Write"]). |
url | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
allow_private_hosts | bool | false | Autoriser les requêtes vers des hôtes privés/LAN (RFC 1918, bouclage, .local). |
allowed_domains | string[] | ["*"] | Domaines autorisés pour les requêtes HTTP (correspondance exacte ou sous-domaine) |
allowed_private_hosts | string[] | [] | Hôtes privés/internes explicitement autorisés à assouplir la vérification de l’adresse publique. |
enabled | bool | true | Activer l’outil http_request pour les interactions API |
max_response_size | entier | 1000000 | Taille 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_secs | entier | 30 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "FAL_API_KEY" | Nom de la variable d’environnement contenant la clé API de fal.ai. |
default_model | chaîne | "fal-ai/flux/schnell" | Identifiant par défaut du modèle fal.ai. |
enabled | bool | false | Activer 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:falseallowed_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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_actions | string[] | ["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_url | chaîne | "" | URL de base de l’instance Atlassian, par exemple https://yourco.atlassian.net. |
email | string? | — | E-mail du compte Jira utilisé pour l’authentification Basic (Cloud). |
enabled | bool | false | Activez l’outil jira. Par défaut : false. |
timeout_secs | entier | 30 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
auto_capture | bool | false | Capture automatiquement les connaissances des conversations. Par défaut : false. |
db_path | chaîne | "/home/runner/.zeroclaw/knowledge.db" | Chemin vers la base de données SQLite du graphe de connaissances. |
enabled | bool | false | Activer l’outil de graphe de connaissances. Par défaut : false. |
max_nodes | entier | 100000 | Nombre maximum de nœuds de connaissances. Par défaut : 100000. |
suggest_on_query | bool | true | Suggé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é | Type | Par défaut | Description |
|---|---|---|---|
sources | string[] | [] | Chemins ou URL à inclure dans ce bundle de connaissances. |
tags | string[] | [] | Étiquettes pour filtrer ou catégoriser les sources au sein du bundle. |
link_enricher
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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer l’étape du pipeline d’enrichissement des liens (par défaut : false) |
max_links | entier | 3 | Nombre maximum de liens à récupérer par message (par défaut : 3) |
timeout_secs | entier | 10 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
api_version | chaîne | "202602" | En-tête de version de l’API REST LinkedIn (format AAAAMM). |
content | objet | — | Configuration de la stratégie de contenu pour la publication automatique sur LinkedIn ([linkedin.content]). |
enabled | bool | false | Activer l’outil LinkedIn. |
image | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
github_repos | string[] | [] | Dépôts GitHub à mettre en avant (format : owner/repo). |
github_users | string[] | [] | Noms d’utilisateurs GitHub dont l’activité publique peut être référencée. |
instructions | chaîne | "" | Instructions de publication libre pour l’agent IA. |
persona | chaîne | "" | Description du profil professionnel (nom, rôle, expertise). |
rss_feeds | string[] | [] | URLs des flux RSS à surveiller pour l’inspiration de sujets (titres uniquement). |
topics | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
card_accent_color | chaîne | "#0A66C2" | Couleur d’accentuation pour la carte de repli (hexadécimal CSS). |
dalle | objet | — | Paramètres OpenAI DALL-E ([linkedin.image.dalle]). |
enabled | bool | false | Activer la génération d’images pour les publications. |
fallback_card | bool | true | Générer une carte de texte SVG personnalisée lorsque tous les model_providers d’IA échouent. |
flux | objet | — | Paramètres de génération d’images Flux (fal.ai) ([linkedin.image.flux]). |
imagen | objet | — | Paramètres de Google Imagen (Vertex AI) ([linkedin.image.imagen]). |
providers | string[] | ["stability","imagen","dalle","flux"] | Ordre de priorité des ModelProvider. Essayés en séquence ; le premier qui réussit l’emporte. |
stability | objet | — | Paramètres de génération d’images de Stability AI ([linkedin.image.stability]). |
temp_dir | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "OPENAI_API_KEY" | Nom de la variable d’environnement contenant la clé API OpenAI. |
model | chaîne | "dall-e-3" | Identifiant du modèle DALL-E. |
size | chaîne | "1024x1024" | Dimensions de l’image. |
linkedin.image.flux
Paramètres de génération d’images Flux (fal.ai) ([linkedin.image.flux]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "FAL_API_KEY" | Nom de la variable d’environnement contenant la clé API de fal.ai. |
model | chaîne | "fal-ai/flux/schnell" | Identifiant du modèle Flux. |
linkedin.image.imagen
Paramètres de Google Imagen (Vertex AI) ([linkedin.image.imagen]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "GOOGLE_VERTEX_API_KEY" | Nom de la variable d’environnement contenant la clé API. |
project_id_env | chaîne | "GOOGLE_CLOUD_PROJECT" | Variable d’environnement pour l’ID du projet Google Cloud. |
region | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "STABILITY_API_KEY" | Nom de la variable d’environnement contenant la clé API. |
model | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
deferred_loading | bool | false | Charger les schémas des outils MCP à la demande via tool_search au lieu de les charger de manière anticipée. |
enabled | bool | true | Activer le chargement des outils MCP. |
servers | object[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
exclude | string[] | [] | ID de serveur MCP retirés de la concession. Le refus prime : un nom listé ici est |
servers | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
describe_images | bool | true | Ajouter des descriptions d’image lorsqu’un modèle capable de vision est actif. |
enabled | bool | false | Interrupteur principal pour le pipeline multimédia (par défaut : false). |
summarize_video | bool | true | Résumer les pièces jointes vidéo (espace réservé — nécessite une API externe). |
transcribe_audio | bool | true | Transcrivez 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é | Type | Par défaut | Description |
|---|---|---|---|
archive_after_days | entier | 7 | Dé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_enabled | bool | false | Activer la journalisation des opérations de mémoire. |
audit_retention_days | entier | 30 | Durée de conservation des entrées d’audit en jours (par défaut : 30). |
auto_hydrate | bool | true | Auto-hydrate depuis MEMORY_SNAPSHOT.md lorsque brain.db est manquant |
auto_reindex_on_identity_change | bool | false | Recalcule 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_save | bool | true | Enregistre 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. |
backend | chaîne | "sqlite" | Référence pointée vers l’instance de stockage active : <backend>.<alias> |
candidate_multiplier | entier | 4 | Multiplicateur de pool de candidats par rapport à la limite de rappel finale avant l’élagage de mélange/reclassement. |
chunk_max_tokens | entier | 512 | Nombre maximal de jetons par fragment pour le fractionnement des documents |
conflict_supersede_enabled | bool | true | Activer le mécanisme de remplacement réversible et de masquage souple lorsqu’il est connecté. |
conflict_threshold | nombre | 0.85 | Seuil de similarité cosinus pour la détection de conflits (0,0–1,0). |
consolidation_extract_facts | bool | false | Extrayez également les faits durables atomiques de chaque tour consolidé et stockez-les |
conversation_retention_days | entier | 30 | Supprime 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_bytes | entier | 0 | Taille maximale en octets du Core avant la compaction du budget. 0 = illimité. |
core_max_rows | entier | 0 | Nombre maximal de lignes Core avant compactage du budget. 0 = illimité. |
core_retention_days | entier | 0 | Supprime 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_rows | entier | 0 | Nombre maximum de lignes par jour avant le compactage budgétaire. 0 = illimité. |
daily_retention_days | entier | 0 | Supprime 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_action | table | — | Politique de gestion des doublons à l’écriture pour les entrées de mémoire. |
dedup_jaccard_threshold | nombre | 0.8 | Seuil de Jaccard pour la détection de doublons par texte uniquement. |
dedup_on_write | bool | false | Activer la détection de quasi-doublons à l’écriture. |
default_namespace | chaî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_size | entier | 10000 | Nombre maximal d’entrées du cache d’embedding avant l’éviction LRU |
embedding_dimensions | entier | 1536 | Largeur 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_model | chaî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_provider | chaî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_order | table | — | Ordre d’éviction du budget mémoire. |
fts_early_return_score | nombre | 0.85 | Réservé (0.0-1.0) : le score FTS au-dessus duquel le rappel ignorerait le |
hygiene_enabled | bool | true | Exé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_weight | nombre | 0.2 | Poids d’importance utilisé par la combinaison de rappel. |
keyword_weight | nombre | 0.3 | Niveau 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_score | nombre | 0.4 | Score hybride minimum (0,0–1,0) pour qu’une mémoire soit incluse dans le contexte. |
mmr_lambda | nombre | 0.7 | Poids MMR pertinence/diversité, où 1.0 signifie pertinence uniquement. |
pin_min_importance | nombre | 1.01 | Épingler les entrées à cette importance ou au-dessus. >1.0 signifie désactivé. |
pin_namespaces | string[] | [] | Espaces de noms protégés de l’éviction budgétaire. |
policy | objet | — | Configuration de la politique de mémoire (section [memory.policy]). |
purge_after_days | entier | 30 | Supprimer 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_weight | nombre | 0.1 | Poids de récence utilisé par le mélange de rappel. |
rerank_enabled | bool | false | Activer l’étape de reclassement du rappel : fusionner le score de récupération avec l’importance |
rerank_strategy | chaîne | "aucun" | Stratégie avancée de reclassement. Valeurs valides : “none”, “mmr”. |
rerank_threshold | entier | 5 | Nombre minimal de candidats pour déclencher la stratégie de réordonnancement avancé. |
response_cache_enabled | bool | false | Activer la mise en cache des réponses LLM pour éviter de payer pour des invites dupliquées |
response_cache_hot_entries | entier | 256 | Nombre 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_entries | entier | 5000 | Nombre maximum de réponses mises en cache avant éviction LRU (par défaut : 5000) |
response_cache_ttl_minutes | entier | 60 | TTL en minutes pour les réponses mises en cache (par défaut : 60) |
retrieval_stages | string[] | ["fts","vector"] | Étapes de récupération pour le rappel par agent. Seul "cache" est actif : il |
search_mode | table | — | Stratégie de recherche pour la récupération en mémoire. |
snapshot_enabled | bool | false | Activer l’export périodique des mémoires principales vers MEMORY_SNAPSHOT.md |
snapshot_on_hygiene | bool | false | Exécuter la capture instantanée pendant les passes d’hygiène (basées sur le battement de cœur) |
types | objet | — | Configuration de la mémoire typée (section [memory.types]). |
vector_weight | nombre | 0.7 | Le 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é | Type | Par défaut | Description |
|---|---|---|---|
max_entries_per_category | entier | 0 | Nombre maximum d’entrées par catégorie (0 = illimité). |
max_entries_per_namespace | entier | 0 | Nombre maximum d’entrées par espace de noms (0 = illimité). |
read_only_namespaces | string[] | [] | Espaces de noms en lecture seule (les écritures sont rejetées). |
redact_categories | string[] | ["secret","api_key","private_key","email","phone"] | Catégories de rédaction appliquées lorsque redact_on_write est true. |
redact_on_write | bool | false | Expurger les catégories de secrets/PII configurées avant la persistance. |
retention_days_by_category | carte | {} | Jours de rétention par catégorie (remplace le paramètre global). Clés : « core », « daily », « conversation ». |
threat_scan | chaîne | "on" | Mode d’analyse du contenu pour les écritures en mémoire persistante : “off”, “on” ou “strict”. |
threat_scan_load_time | bool | true | Réanalyser les entrées stockées au moment du rappel/de la lecture et retenir les entrées signalées. |
threat_scan_on_hit | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Attribuer 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é | Type | Par défaut | Description |
|---|---|---|---|
auth_flow | chaîne | "client_credentials" | Flux d’authentification : « client_credentials » ou « device_code » |
client_id | string? | null | ID d’application (client) Azure AD |
client_secret 🔑 | string? | null | Clé secrète Azure AD (stockée de manière chiffrée lorsque secrets.encrypt = true) |
enabled | bool | false | Activer l’intégration avec Microsoft 365 |
scopes | string[] | ["https://graph.microsoft.com/.default"] | Portées OAuth à demander |
tenant_id | string? | null | ID de locataire Azure AD |
token_cache_encrypted | bool | true | Chiffrer le fichier de cache de jeton sur le disque |
user_id | string? | null | Nom 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é | Type | Par défaut | Description |
|---|---|---|---|
allow_remote_fetch | bool | false | Autoriser la récupération d’URL d’images distantes (http/https). Désactivé par défaut. |
max_image_size_mb | entier | 5 | Taille maximale du chargement d’image en MiB avant l’encodage en base64. |
max_image_turns | entier | 0 | Âge maximal des images dans les tours de conversation. |
max_images | entier | 4 | Nombre maximum de pièces jointes d’image acceptées par requête. |
vision_model | string? | null | Modèle à utiliser lors du routage vers le model_provider de vision (par ex. "llava:7b"). |
vision_model_provider | string? | null | Nom 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é | Type | Par défaut | Description |
|---|---|---|---|
auth_token 🔑 | string? | null | Jeton d’authentification optionnel pour l’authentification du nœud. |
enabled | bool | false | Activer le point de terminaison de découverte dynamique des nœuds. |
max_nodes | entier | 16 | Nombre maximum de connexions de nœuds simultanées. |
mdns | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
announce_interval_secs | entier | 30 | À quelle fréquence ce nœud rediffuse sa présence, en secondes. |
enabled | bool | false | Activer la découverte de pairs locaux via mDNS. |
max_peers | entier | 16 | Nombre maximal d’indications de pairs LAN non authentifiés conservées en mémoire. |
node_name | string? | null | Nom de nœud lisible par l’utilisateur annoncé aux pairs du LAN. Prend par défaut une valeur stable |
peer_ttl_secs | entier | 90 | Secondes 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é | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | chaîne | "" | |
database_id | chaîne | "" | |
enabled | bool | false | |
input_property | chaîne | "Entrée" | |
max_concurrent | entier | 4 | |
poll_interval_secs | entier | 5 | |
recover_stale | bool | true | |
result_property | chaîne | "Résultat" | |
status_property | chaîne | "Statut" |
observability
Configuration du backend d’observabilité (section [observability]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
backend | none | log | verbose | prometheus | otel | — | Backend de collecte pour l’observabilité. |
log_llm_request_payload | off | redacted | full | — | Politique de capture du payload des requêtes LLM. Replicate [`LogToolIo`] mais contrôle l’accès à |
log_persistence | table | — | Mode de persistance des journaux JSONL. |
log_persistence_max_bytes | entier | 0 | Seuil de taille en octets qui déclenche une rotation d’archive lorsque |
log_persistence_max_entries | entier | 200 | Nombre maximal d’entrées conservées lorsque log_persistence = "rolling". |
log_persistence_path | chaî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_days | entier | 0 | Plafond de rétention sur l’âge (en jours) des fichiers d’archive rotés lorsque |
log_persistence_retention_max_files | entier | 7 | Plafond de rétention sur le nombre de fichiers d’archives rotés conservés à côté du |
log_persistence_rotate_daily | bool | true | Effectuer la rotation du fichier actif vers une archive à la limite d’un jour UTC lorsque |
log_tool_io | off | redacted | full | — | Politique de capture des E/S d’outil. |
log_tool_io_denylist | string[] | [] | Noms des outils dont les E/S ne sont jamais journalisées au-delà du nom + résultat + durée |
log_tool_io_truncate_bytes | entier | 40960 | Tronquer l’entrée et la sortie capturées de l’outil à ce nombre d’octets lorsque |
otel_endpoint | string? | null | Point de terminaison OTLP (par exemple, "http://localhost:4318"). Utilisé uniquement lorsque le backend est "otel". |
| otel_genai_content | off | redacted | full | — | Politique de capture de contenu OTel. Reflète [LogToolIo] mais conditionne le span OTel |
otel_genai_content_max_chars | entier | 1000 | Limite de troncature de caractères par champ pour le contenu OTel GenAI lorsque |
otel_headers 🔑 | map? | null | En-têtes HTTP optionnels envoyés avec chaque requête d’export OTLP (par exemple, l’autorisation). |
otel_service_name | string? | null | Nom du service signalé au collecteur OTel. Par défaut, « zeroclaw ». |
otel_tool_io | off | redacted | full | — | Politique de capture de contenu OTel. Reflète [LogToolIo] mais conditionne le span OTel |
otel_tool_io_max_chars | entier | 1000 | Limite 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é | Type | Par défaut | Description |
|---|---|---|---|
completed_sections | string[] | [] | Clés de section que l’utilisateur a complétées au moins une fois. |
quickstart_completed | bool | false | true 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer l’outil opencode_cli |
env_passthrough | string[] | [] | Variables d’environnement supplémentaires transmises au sous-processus opencode |
max_output_bytes | entier | 2097152 | Taille maximale de sortie en octets (2 Mo par défaut) |
timeout_secs | entier | 600 | Temps 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é | Type | Par défaut | Description |
|---|---|---|---|
loop_detection_enabled | bool | true | Activer la détection de boucle basée sur les motifs (répétition exacte, va-et-vient, |
loop_detection_max_repeats | entier | 3 | Nombre d’appels consécutifs identiques d’outils+arguments avant le premier |
loop_detection_min_elapsed_secs | integer? | null | Nombre minimum de secondes d’écoulement avant que la détection de boucle ne s’active. |
loop_detection_window_size | entier | 20 | Taille de la fenêtre glissante pour le détecteur de boucle basé sur les motifs. |
loop_ignore_tools | string[] | [] | Noms d’outils exclus de la boucle de sortie identique / motif alternatif |
message_timeout_scale_max | integer? | null | Remplacement de la valeur par défaut du facteur d’échelle du délai d’attente (par défaut : 4). |
step_timeout_secs | integer? | null | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
admin_for_agent_scope | bool | false | Lorsque true, les membres de ce groupe de pairs sont autorisés à émettre |
agents | string[] | [] | Agents membres par alias. |
channel | chaîne | — | Référence à une entrée configurée [channels.<type>.<alias>]. |
external_peers | string[] | [] | Membres non-agents par nom d’utilisateur natif du canal. |
ignore | string[] | [] | Liste de blocage par groupe ; soustraite de l’ensemble de pairs résolu. |
output_modality | table | — | Modalité 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é | Type | Par défaut | Description |
|---|---|---|---|
boards | object[] | [] | Configurations de carte (nucleo-f401re, rpi-gpio, etc.) |
datasheet_dir | string? | null | Chemin vers les documents de la fiche technique (relatif à l’espace de travail) pour la récupération RAG. |
enabled | bool | false | Activer 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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_tools | string[] | [] | Outils autorisés dans les étapes du pipeline. Les étapes qui font référence à des outils non présents dans cette liste… |
enabled | bool | false | Activez l’outil méta execute_pipeline. |
max_steps | entier | 20 | Nombre maximum d’étapes autorisées dans une seule invocation de pipeline. |
plugins
Configuration du système de plugins.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
auto_discover | bool | false | Détecter automatiquement les plugins et les charger au démarrage (par défaut : false) |
enabled | bool | false | Activer le système de plugins (par défaut : false) |
entries | object[] | [] | |
limits | objet | — | Limites d’exécution WASM par appel ([plugins.limits]). |
max_active_instances | entier | 50 | Nombre maximal d’instances logiques de plug-in autorisées pour l’ensemble des capacités. |
plugins_dir | chaîne | "/home/runner/.zeroclaw/plugins" | Répertoire où les plugins sont stockés |
security | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
call_fuel | entier | 1000000000 | Budget de carburant par appel de plugin (unités d’instruction wasmtime). |
call_timeout_ms | entier | 30000 | Délai maximal en temps réel pour un appel d’export du plugin, en millisecondes. |
max_connections_per_instance | entier | 16 | Nombre maximal de connexions réseau actives appartenant à l’hôte par instance logique de module d’extension, |
max_instances | entier | 64 | Nombre maximum d’instances de composants qu’une boutique de plugins peut créer. |
max_memory_mb | entier | 256 | Mémoire linéaire maximale qu’un store de plugin peut atteindre, en mégaoctets. |
max_table_elements | entier | 100000 | Nombre 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é | Type | Par défaut | Description |
|---|---|---|---|
signature_mode | chaîne | "désactivé" | Mode d’application de la signature : « désactivé », « permissif » ou « strict ». |
trusted_publisher_keys | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
default_language | chaîne | "en" | Langue du rapport par défaut (en, de, fr, it). Par défaut : « en ». |
enabled | bool | false | Activer l’outil project_intel. Par défaut : false. |
include_git_data | bool | true | Inclure les données de git log dans les rapports. Par défaut : true. |
include_jira_data | bool | false | Inclure les données Jira dans les rapports. Par défaut : false. |
jira_base_url | string? | null | URL de base de l’instance Jira (obligatoire si include_jira_data est true). |
report_output_dir | chaîne | "/home/runner/.zeroclaw/project-reports" | Répertoire de sortie pour les rapports générés. |
risk_sensitivity | chaîne | "medium" | Sensibilité de détection des risques : faible, moyenne, élevée. Par défaut : « medium ». |
templates_dir | string? | null | Répertoire de modèles personnalisés optionnel. |
providers
Conteneur de premier niveau pour chaque catégorie de fournisseur configurée.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
models | objet | — | Conteneur de fournisseurs de modèles typé avec une carte d’alias par famille de fournisseurs. |
transcription | objet | — | Conteneur typé de fournisseur de transcription — un emplacement par famille STT. |
tts | objet | — | Conteneur 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é | Type | Par défaut | Description |
|---|---|---|---|
all_proxy | string? | null | URL du proxy de secours pour tous les schémas. |
enabled | bool | false | Activer la prise en charge du proxy pour la portée sélectionnée. |
http_proxy | string? | null | URL du proxy pour les requêtes HTTP (prend en charge http, https, socks5, socks5h). |
https_proxy | string? | null | URL du proxy pour les requêtes HTTPS (prend en charge http, https, socks5, socks5h). |
no_proxy | string[] | [] | Liste de contournement de proxy. Même format que NO_PROXY. |
scope | table | — | Portée de l’application proxy — détermine quel trafic sortant utilise le proxy. |
services | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer la classification automatique des requêtes. Par défaut : false. |
rules | object[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer le pont relais (par défaut : false). |
node_id | chaîne | "" | Identifiant de nœud opaque sous lequel ce démon s’enregistre (les clients se connectent à cet identifiant). Laisser |
node_id_rotation_days | entier | 0 | Renouveler automatiquement le node-id généré tous les N jours (0 par défaut = jamais). |
outer_client_cert | chaîne | "" | Certificat/clé PEM que le démon présente au relais sur la couche TLS EXTERNE |
outer_client_key | chaîne | "" | |
relay_ca_path | chaîne | "" | Autorité de certification PEM à laquelle faire confiance pour le certificat TLS PROPRE (externe) du relais. Lorsqu’elle est définie, |
relay_host | chaîne | "" | Nom du serveur attendu sur le certificat externe du relais. S’il est vide, il est déduit. |
relay_insecure | bool | false | Ignorer la vérification du certificat externe du relais (uniquement pour un environnement de développement avec certificat auto-signé). |
tofu | bool | false | Confiance à la première utilisation pour le certificat OUTER du relais (false par défaut) : accepter |
token | chaîne | "" | Jeton du compte Relay présenté lors de l’inscription (identifiant d’admission). |
url | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
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_secs | entier | 2 | Délai d’attente initial pour les redémarrages de canal/daemon. |
channel_max_backoff_secs | entier | 60 | Max backoff pour les redémarrages de canal/daemon. |
provider_backoff_ms | entier | 500 | Délai de base (ms) pour le délai de nouvelle tentative de model_provider. |
provider_retries | entier | 2 | Nombre de tentatives par model_provider avant abandon. |
scheduler_poll_secs | entier | 15 | Fréquence de sondage du planificateur en secondes. |
scheduler_retries | entier | 2 | Nombre 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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_commands | string[] | ["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_roots | string[] | [] | Racines de répertoires supplémentaires auxquelles l’agent peut accéder. |
allowed_tools | string[] | [] | Outils que l’agent peut appeler en mode agentique. Vide = hériter / non |
always_ask | string[] | [] | Outils qui nécessitent toujours une approbation dans ce profil. |
approval_route | objet | — | Achemine les approbations de l’outil Routes vers un canal d’approbation distinct, avec un refus par défaut en cas de défaillance. |
auto_approve | string[] | [“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_commands | bool | true | Bloquer les commandes à haut risque même lorsqu’elles sont autorisées. |
delegation_policy | objet | — | Politique de délégation fondée sur le profil de risque pour le travail confié aux agents qui le partagent. |
excluded_tools | string[] | [] | Outils exclus des canaux non-CLI sous ce profil. |
firejail_args | string[] | [] | Arguments supplémentaires transmis à firejail lorsque sandbox_backend = "firejail". |
forbidden_paths | string[] | ["/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. |
level | table | — | Le niveau d’autonomie de l’agent, classé du moins autonome au plus autonome. |
require_approval_for_medium_risk | bool | true | Exiger une approbation pour les opérations à risque moyen. |
sandbox_backend | string? | null | Identifiant du backend de bac à sable (p. ex. "firejail", "landlock"). None hérite. |
sandbox_enabled | bool? | null | Si le bac à sable est activé pour ce profil. None hérite de la valeur globale. |
shell_env_passthrough | string[] | [] | Noms des variables d’environnement transmis aux sous-processus shell. |
workspace_only | bool | true | Restreindre 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é | Type | Par défaut | Description |
|---|---|---|---|
approver_channel* | chaîne | — | Un nom de canal enregistré (PAS l’originateur) — le saut distinct-approver. |
on_no_approver | table | — | Que faire lorsqu’un approbateur configuré ne peut pas être joint. Par défaut FAIL-CLOSED. |
timeout_secs | entier | 120 | Limite 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é | Type | Par défaut | Description |
|---|---|---|---|
mode | table | — | Mode de délégation pour un profil de risque. |
runtime
Configuration de l’adaptateur d’exécution (section [runtime]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
docker | objet | — | Configuration de l’exécution Docker (section [runtime.docker]). |
kind | native | docker | cloudflare | — | Type d’adaptateur d’exécution. |
reasoning_effort | string? | null | Effort de raisonnement facultatif pour les model_providers qui exposent un contrôle de niveau. |
reasoning_enabled | bool? | null | Remplacement global du raisonnement pour les model_providers qui exposent des contrôles explicites. |
shell | string? | null | Binaire shell que le runtime natif utilise pour l’exécution des commandes. |
runtime.docker
Configuration de l’exécution Docker (section [runtime.docker]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
allowed_workspace_roots | string[] | [] | 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_limit | number? | 1.0 | Limite CPU optionnelle (None = pas de limite explicite). |
image | chaîne | "alpine:3.20" | Image d’exécution utilisée pour exécuter des commandes shell. |
memory_limit_mb | integer? | 512 | Limite de mémoire optionnelle en Mo (None = pas de limite explicite). |
mount_workspace | bool | true | Monter l’espace de travail configuré dans /workspace. |
network | chaîne | "aucun" | Mode de réseau Docker (none, bridge, etc.). |
read_only_rootfs | bool | true | Monter 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é | Type | Par défaut | Description |
|---|---|---|---|
agentic | bool | false | Activer le mode agentique (boucle d’appels d’outils multi-tours). |
agentic_timeout_secs | integer? | null | Timeout d’exécution du délégué agentic en secondes. None hérite de la valeur globale. |
auto_classify | objet | — | |
compact_context | bool? | null | Utiliser le bootstrap compact (6000 caractères / 2 chunks RAG). None hérite. |
context_compression | objet | — | |
delegation_timeout_secs | integer? | null | Dé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. |
eval | objet | — | |
history_pruning | objet | — | |
keep_tool_context_turns | integer? | null | Nombre de tours récents dont le contexte complet des outils est préservé. None hérite. |
max_actions_per_hour | entier | 20 | Nombre maximum d’actions autorisées par heure. 0 est un budget strict de zéro — le |
max_context_tokens | integer? | null | Nombre maximum de tokens estimé pour le contexte avant compaction. None hérite. |
max_cost_per_day_cents | entier | 500 | Coût maximum par jour en cents. 0 hérite de la limite globale. |
max_delegation_depth | entier | 0 | Profondeur maximale de récursion de délégation. 0 utilise la valeur par défaut. |
max_history_messages | integer? | null | Nombre maximum de messages d’historique de conversation conservés par session. None hérite. |
max_system_prompt_chars | integer? | null | Nombre maximum de caractères pour le prompt système assemblé. None hérite. |
max_tool_iterations | entier | 0 | Nombre maximum d’itérations d’appels d’outils en mode agent. 0 hérite de la valeur par défaut globale. |
max_tool_result_chars | integer? | null | Nombre maximum de caractères pour le résultat d’un seul outil. None hérite. |
memory_recall_limit | integer? | null | Nombre maximum d’entrées de mémoire injectées par tour. None hérite de la valeur par défaut globale (5). |
parallel_tools | bool? | null | Activer l’exécution parallèle des outils par itération. None hérite. |
prompt_injection_mode | table | — | Configuration de chargement des compétences ([skills] section). |
shell_timeout_secs | entier | 60 | Délai d’expiration du sous-processus Shell en secondes. 0 hérite du délai d’expiration global. |
strict_tool_parsing | bool | false | |
thinking | objet | — | Configuration du contrôle du niveau de réflexion/raisonnement. |
tool_call_dedup_exempt | string[] | [] | Outils exemptés de la vérification de déduplication intra-tour. |
tool_dispatcher | string? | null | Stratégie de répartition des outils (p. ex. "auto"). None hérite. |
tool_filter_groups | object[] | [] | |
tool_receipts | objet | — | Configuration du reçu d’exécution d’outil HMAC, par agent |
runtime_profiles.<alias>.auto_classify
| Clé | Type | Par défaut | Description |
|---|---|---|---|
complex_hint | string? | null | |
cost_optimized_hint | chaîne | “cost-optimized” | |
simple_hint | string? | null | |
standard_hint | string? | null |
runtime_profiles.<alias>.context_compression
| Clé | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Le compresseur de contexte d’exécution a été supprimé ; aucun chemin d’exécution à l’exécution |
identifier_policy | chaîne | "strict" | |
max_passes | entier | 3 | |
protect_first_n | entier | 3 | |
protect_last_n | entier | 4 | |
source_max_chars | entier | 50000 | |
summary_max_chars | entier | 4000 | |
summary_model | string? | null | Identifiant de modèle nu OBSOLÈTE conservé comme solution de repli pour la compatibilité. |
summary_provider | chaîne | — | Référence à une entrée configurée [providers.models.<type>.<alias>]. |
threshold_ratio | nombre | 0.5 | |
timeout_secs | entier | 60 | |
| tool_result_retrim_chars | entier | 2000 | |
tool_result_trim_exempt | string[] | [] |
runtime_profiles.<alias>.eval
| Clé | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | |
max_retries | entier | 1 | |
min_quality_score | nombre | 0.5 |
runtime_profiles.<alias>.history_pruning
| Clé | Type | Par défaut | Description |
|---|---|---|---|
collapse_tool_results | bool | true | |
enabled | bool | false | |
keep_recent | entier | 4 | |
max_tokens | entier | 8192 |
runtime_profiles.<alias>.thinking
Configuration du contrôle du niveau de réflexion/raisonnement.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
budget_tokens | carte | {} | |
default_level | off | minimal | low | medium | high | max | — | Profondeur de raisonnement du modèle pour un message donné. |
display | off | omitted | updates | summarized | — | Contrôle utilisateur pour la version bêta thinking.display d’Anthropic |
native_thinking | bool | false | Active 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Générer des reçus HMAC à chaque exécution de l’outil. Par défaut : false. |
inject_system_prompt | bool | true | Injecter l’instruction receipt-echo dans le prompt système afin que |
show_in_response | bool | false | Ajouter 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é | Type | Par défaut | Description |
|---|---|---|---|
catch_up_on_startup | bool | true | Exécuter tous les travaux en retard au démarrage du planificateur. Par défaut : true. |
enabled | bool | true | Active la boucle du planificateur intégré. Lorsque la valeur est false, aucune tâche cron n’est exécutée. |
max_concurrent | entier | 4 | Nombre maximal de tâches exécutées en parallèle au cours d’un même cycle d’interrogation. |
max_run_history | entier | 50 | Nombre maximum d’enregistrements historiques des exécutions de cron à conserver. Par défaut : 50. |
max_tasks | entier | 64 | Nombre 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é | Type | Par défaut | Description |
|---|---|---|---|
encrypt | bool | true | Activer 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é | Type | Par défaut | Description |
|---|---|---|---|
audit | objet | — | Configuration de la journalisation des audits |
estop | carte | — | Configuration de l’arrêt d’urgence. |
leak_detection | objet | — | Configuration de la détection des fuites d’identifiants sortants. |
nat64_prefixes | string[] | [] | Préfixes NAT64 RFC 6052 spécifiques au réseau déployés sur ceux de cet hôte |
nevis | carte | — | Configuration d’intégration IAM Nevis. |
otp | carte | — | Configuration de l’OTP de sécurité. |
webauthn | objet | — | Configuration de l’authentification par clé matérielle WebAuthn / FIDO2 ([security.webauthn]). |
security.audit
Configuration de la journalisation des audits
| Clé | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | true | Activer la journalisation d’audit |
log_path | chaîne | "audit.log" | Chemin vers le fichier de journal d’audit (relatif au répertoire zeroclaw) |
max_size_mb | entier | 100 | Taille maximale du journal en Mo avant rotation |
sign_events | bool | false | Signer les événements avec HMAC pour garantir l’intégrité des données |
security.estop
Configuration de l’arrêt d’urgence.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer les commandes d’arrêt d’urgence. |
require_otp_to_resume | bool | true | Exiger un OTP valide avant de reprendre les opérations. |
state_file | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | true | Activer la détection et le masquage des fuites d’identifiants sortants. |
high_entropy_tokens | bool | true | Activer le masquage des jetons à haute entropie ; les motifs déterministes s’exécutent toujours lorsque cette option est désactivée. |
sensitivity | nombre | 0.7 | Sensibilité 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é | Type | Par défaut | Description |
|---|---|---|---|
client_id | chaîne | "" | ID client OAuth2 enregistré dans Nevis. |
client_secret 🔑 | string? | null | Clé secrète du client OAuth2. Chiffrée via SecretStore lors de la sauvegarde sur le disque. |
enabled | bool | false | Activer l’intégration Nevis IAM. La valeur par défaut est false pour assurer la compatibilité ascendante. |
instance_url | chaîne | "" | URL de base de l’instance Nevis (par exemple, https://nevis.example.com). |
jwks_url | string? | null | URL de l’endpoint JWKS pour la validation locale des jetons. |
realm | chaîne | "master" | Realm Nevis à utiliser pour l’authentification. |
require_mfa | bool | false | Exiger la vérification MFA pour toutes les requêtes authentifiées via Nevis. |
role_mapping | map[] | [] | Mappages des rôles Nevis aux autorisations ZeroClaw. |
session_timeout_secs | entier | 3600 | Durée d’expiration de la session en secondes. |
token_validation | chaîne | "local" | Stratégie de validation du jeton : "local" (JWKS) ou "remote" (introspection). |
security.otp
Configuration de l’OTP de sécurité.
| Clé | Type | Par défaut | Description |
|---|---|---|---|
cache_valid_secs | entier | 300 | Réutiliser la fenêtre pour les codes OTP récemment validés. |
challenge_max_attempts | entier | 3 | Nombre maximum de tentatives de défi OTP avant le verrouillage. |
enabled | bool | false | Activer le filtrage par OTP. La valeur par défaut est désactivée pour assurer la compatibilité avec les versions antérieures. |
gated_actions | string[] | ["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_categories | string[] | [] | Les catégories de domaine prédéfinies ont été étendues dans gated_domains. |
gated_domains | string[] | [] | Modèles de domaine explicites verrouillés par OTP. |
method | table | — | Stratégie de validation OTP. |
token_ttl_secs | entier | 30 | Pas 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer l’authentification WebAuthn. Par défaut : false. |
rp_id | chaîne | "localhost" | Identifiant du parti de confiance (nom de domaine, par exemple « example.com »). Par défaut : « localhost ». |
rp_name | chaîne | "ZeroClaw" | Nom d’affichage du parti de confiance. Par défaut : « ZeroClaw ». |
rp_origin | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
auto_triage | bool | false | Triage automatique des alertes entrantes sans invite utilisateur. |
enabled | bool | false | Activer les outils d’opérations de sécurité. |
max_auto_severity | chaîne | "faible" | Niveau de gravité maximum qui peut être automatiquement résolu sans approbation. |
playbooks_dir | chaîne | "/home/runner/.zeroclaw/playbooks" | Répertoire contenant les définitions de playbook de réponse aux incidents (JSON). |
report_output_dir | chaîne | "/home/runner/.zeroclaw/security-reports" | Répertoire pour les rapports de sécurité générés. |
require_approval_for_actions | bool | true | Demander une approbation humaine avant d’exécuter les actions du playbook. |
siem_integration | string? | null | URL 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é | Type | Par défaut | Description |
|---|---|---|---|
timeout_secs | entier | 60 | Duré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é | Type | Par défaut | Description |
|---|---|---|---|
directory | string? | null | Chemin du répertoire (relatif à la racine de l’espace de travail) à partir duquel charger les compétences. |
exclude | string[] | [] | Noms des skills à exclure de ce bundle. |
include | string[] | [] | Noms des compétences à inclure. Vide signifie inclure toutes les compétences dans directory. |
skills
Configuration de chargement des compétences ([skills] section).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
allow_scripts | bool | false | Autoriser les fichiers de type script dans les compétences (.sh, .bash, .ps1, fichiers shell avec shebang). |
extra_registries | object[] | — | Registres de compétences supplémentaires configurés par l’utilisateur, installés via |
install_suggestions | objet | — | Suggestions d’installation de skills déclenchées par invite (section [skills.install_suggestions]). |
open_skills_dir | string? | null | Chemin optionnel vers un dépôt local open-skills. |
open_skills_enabled | bool | false | Activer le chargement et la synchronisation du dépôt open-skills de la communauté. |
prompt_injection_mode | table | — | Configuration de chargement des compétences ([skills] section). |
registry_url | string? | null | URL du dépôt du registre des compétences pour les installations par nom nu. |
skill_creation | objet | — | Configuration de la création autonome de compétences ([skills.skill_creation] section). |
skill_improvement | objet | — | Configuration 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer la création automatique de compétences après des tâches multi-étapes réussies. |
max_final_answer_chars | entier | 2000 | Nombre maximum de caractères de la réponse finale de l’assistant transmise au |
max_skills | entier | 500 | Nombre maximum de compétences générées automatiquement à conserver. |
max_task_chars | entier | 1000 | Nombre maximal de caractères de la description de la tâche injectés dans la réflexion |
max_tool_trace_chars | entier | 4000 | Nombre maximal de caractères de la trace d’appel d’outil rendue transmise à |
reflection_enabled | bool | false | Synthétiser un SKILL.md canonique à partir de la trace d’exécution via un |
similarity_threshold | nombre | 0.85 | Seuil 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é | Type | Par défaut | Description |
|---|---|---|---|
cooldown_secs | entier | 3600 | Intervalle minimum (en secondes) entre les révisions pour la même compétence. |
enabled | bool | false | Active le fork de revue de compétences en arrière-plan. Par défaut : false. |
max_review_iterations | entier | 8 | Nombre maximal d’itérations d’appels d’outils autorisées pour le fork de révision lui-même. |
nudge_interval_iterations | entier | 10 | Lancer 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é | Type | Par défaut | Description |
|---|---|---|---|
approval | objet | — | [sop.approval] - configuration de la politique du courtier d’approbation. Une source d’identité permanente |
approval_mode | table | — | Qui peut lever une porte d’approbation SOP. Superposé avec execution_mode / priority / |
approval_timeout_action | table | — | Ce qui se produit pour une porte d’approbation SOP en cas de timeout. La valeur par défaut est fail-closed : |
approval_timeout_secs | entier | 300 | Délai d’expiration de l’approbation en secondes. Lorsqu’une exécution attend une approbation plus longtemps que |
default_execution_mode | chaîne | "supervisé" | Mode d’exécution par défaut pour les SOP qui omettent execution_mode. |
maintenance_interval_secs | entier | 60 | Fréquence (en secondes) à laquelle le démon exécute le cycle de maintenance SOP : fire |
max_concurrent_total | entier | 4 | Nombre total maximum d’exécutions concurrentes de SOP sur l’ensemble des SOP. |
max_finished_runs | entier | 100 | Nombre maximum d’exécutions terminées conservées en mémoire pour les requêtes de statut. |
max_step_retries | entier | 2 | Nombre maximum de tentatives autorisées par une politique de gestion des échecs d’étape. |
max_step_visits | entier | 256 | Nombre maximum de fois qu’une exécution de SOP routée peut passer par une étape. |
persist_runs | bool | true | Conserver durablement l’état d’exécution après les redémarrages. Valeur par défaut true : build_sop_engine |
procedural_memory_enabled | bool | false | Activer l’outillage de proposition de mémoire procédurale SOP. La valeur par défaut false conserve |
run_state_dir | string? | null | Répertoire pour le magasin de runs persistants (mode-0700). Lorsqu’omis, |
run_store_backend | table | — | Sélecteur de backend pour l’état d’exécution durable de SOP. Un ensemble fermé et connu à la compilation, de sorte qu’il |
sops_dir | string? | null | Répertoire contenant les définitions de SOP (sous-répertoires avec SOP.toml + SOP.md). |
step_mandatory_tools | string[] | [“sop_advance”,“sop_approve”,“sop_status”] | Noms des outils qui restent disponibles tant que le scope d’étape est appliqué. |
step_schema_enforce | bool | true | Imposer les schémas d’entrée/sortie par étape lorsqu’une étape les déclare. |
step_scope_enforce | bool | false | Forcer la portée des outils par étape. Par défaut, false laisse tools: consultatif. |
untrusted_frame_warning | bool | true | Inclure le texte d’avertissement explicatif dans les cadres de contenu non fiable. |
untrusted_guard_sensitivity | nombre | 0.7 | Sensibilité de Prompt-guard et d’outbound-redaction pour le contenu SOP non fiable. |
untrusted_input_guard | chaîne | "warn" | Action Prompt-guard pour l’entrée de déclenchement SOP non fiable : warn, block ou sanitize. |
untrusted_outbound_redact | bool | true | Expurger le contenu SOP sortant avant que les consommateurs de persistance/audit ne l’écrivent. |
untrusted_payload_max_bytes | entier | 8192 | Nombre 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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_private_hosts | string[] | [] | Les hôtes privés/internes peuvent assouplir la vérification SSRF des adresses publiques. |
enabled | bool | false | Activer l’outil text_browser |
preferred_browser | string? | null | Navigateur texte préféré (« lynx », « links » ou « w3m »). Si non défini, la détection automatique est utilisée. |
timeout_secs | entier | 30 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API utilisée pour les requêtes de transcription (fournisseur de transcription Groq). |
api_url | chaîne | "https://api.groq.com/openai/v1/audio/transcriptions" | URL du point de terminaison de l’API Whisper (fournisseur de transcription Groq). |
assemblyai | objet | — | Configuration AssemblyAI STT model_provider ([transcription.assemblyai]). |
deepgram | objet | — | Configuration de model_provider STT Deepgram ([transcription.deepgram]). |
enabled | bool | false | Activer la transcription vocale pour les canaux qui le prennent en charge. |
google | objet | — | Configuration de model_provider Google Cloud Speech-to-Text ([transcription.google]). |
initial_prompt | string? | null | Invite initiale optionnelle pour orienter la transcription vers le vocabulaire attendu |
language | string? | null | Indication de langue facultative (ISO-639-1, par ex. « en », « ru ») pour le fournisseur de transcription Groq. |
local_whisper | objet | — | Point de terminaison STT compatible Whisper local/auto-hébergé ([transcription.local_whisper]). |
max_audio_bytes | integer? | null | Limite supérieure globale facultative de la taille audio en octets, appliquée avant |
max_duration_secs | entier | 120 | Durée maximale de la voix en secondes (les messages plus longs que cette durée sont ignorés). |
model | chaîne | "whisper-large-v3-turbo" | Nom du modèle Whisper (fournisseur de transcription Groq). |
openai | objet | — | Configuration de model_provider pour le modèle STT OpenAI Whisper ([transcription.openai]). |
transcribe_non_ptt_audio | bool | false | Transcrivez également les messages audio non-PTT (transférés/ordinaires) sur WhatsApp, |
transcription.assemblyai
Configuration AssemblyAI STT model_provider ([transcription.assemblyai]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API AssemblyAI. |
transcription.deepgram
Configuration de model_provider STT Deepgram ([transcription.deepgram]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API Deepgram. |
model | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API Google Cloud. |
language_code | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
bearer_token 🔑 | string? | null | Jeton Bearer pour l’authentification de l’endpoint. |
max_audio_bytes | entier | 26214400 | Taille maximale du fichier audio en octets acceptée par ce point de terminaison. |
timeout_secs | entier | 300 | Dé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îne | — | URL 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é | Type | Par défaut | Description |
|---|---|---|---|
api_key 🔑 | string? | null | Clé API OpenAI pour la transcription Whisper. |
model | chaîne | "whisper-1" | Nom du modèle Whisper (par défaut : « whisper-1 »). |
trust
| Clé | Type | Par défaut | Description |
|---|---|---|---|
correction_penalty | nombre | 0.05 | |
decay_half_life_days | nombre | 30.0 | |
initial_score | nombre | 0.8 | |
regression_threshold | nombre | 0.5 | |
success_boost | nombre | 0.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é | Type | Par défaut | Description |
|---|---|---|---|
default_format | chaîne | "mp3" | Format de sortie audio par défaut ("mp3", "opus", "wav"). |
default_voice | chaîne | "alliage" | ID de voix par défaut transmis au fournisseur tts sélectionné. |
enabled | bool | false | Activer la synthèse TTS. |
max_text_length | entier | 4096 | Longueur 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é | Type | Par défaut | Description |
|---|---|---|---|
cloudflare | objet | — | |
custom | objet | — | |
ngrok | objet | — | |
openvpn | objet | — | Configuration du tunnel OpenVPN ([tunnel.openvpn]). |
pinggy | objet | — | |
tailscale | objet | — | |
tunnel_provider | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
token 🔑 | chaîne | "" | Jeton du tunnel Cloudflare (depuis le tableau de bord Zero Trust) |
tunnel.custom
| Clé | Type | Par défaut | Description |
|---|---|---|---|
health_url | string? | null | URL optionnelle pour vérifier la santé du tunnel |
start_command | chaîne | "" | Modèle de commande pour démarrer le tunnel. Utilisez les espaces réservés {port} et {host}. |
url_pattern | string? | null | Expression régulière optionnelle pour extraire l’URL publique depuis la sortie standard de la commande |
tunnel.ngrok
| Clé | Type | Par défaut | Description |
|---|---|---|---|
auth_token 🔑 | chaîne | "" | jeton d’authentification ngrok |
domain | string? | null | Domaine 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é | Type | Par défaut | Description |
|---|---|---|---|
advertise_address | string? | null | Adresse annoncée une fois la connexion VPN établie (par exemple, "10.8.0.2:42617"). |
auth_file | string? | null | Chemin optionnel vers le fichier d’identifiants d’authentification (--auth-user-pass). |
config_file* | chaîne | — | Chemin vers le fichier de configuration .ovpn (ne doit pas être vide). |
connect_timeout_secs | entier | 30 | Délai d’expiration de la connexion en secondes (par défaut : 30, doit être > 0). |
extra_args | string[] | [] | Arguments CLI supplémentaires d’OpenVPN transmis tels quels. |
tunnel.pinggy
| Clé | Type | Par défaut | Description |
|---|---|---|---|
region | string? | null | Ré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? | null | Jeton d’accès Pinggy (facultatif — le plan gratuit fonctionne sans). |
tunnel.tailscale
| Clé | Type | Par défaut | Description |
|---|---|---|---|
funnel | bool | false | Utilisez Tailscale Funnel (internet public) vs Serve (uniquement sur le tailnet) |
hostname | string? | null | Remplacement 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é | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer la section VI (par défaut : false). |
strictness | chaî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é | Type | Par défaut | Description |
|---|---|---|---|
allowed_domains | string[] | ["*"] | Domaines autorisés pour les requêtes web (correspondance exacte ou sous-domaine ; ["*"] = tous les hôtes publics) |
allowed_private_hosts | string[] | [] | Hôtes privés/internes autorisés à assouplir la vérification SSRF des adresses publiques |
blocked_domains | string[] | [] | Domaines bloqués (correspondance exacte ou sous-domaine ; prend toujours la priorité sur allowed_domains) |
enabled | bool | true | Activer l’outil web_fetch pour récupérer le contenu des pages web. |
firecrawl | objet | — | Configuration de secours de Firecrawl pour les sites lourds en JavaScript et bloqués par les robots. |
max_response_size | entier | 500000 | Taille maximale de la réponse en octets (par défaut : 500 Ko, le texte brut est beaucoup plus petit que le HTML brut) |
timeout_secs | entier | 30 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
api_key_env | chaîne | "FIRECRAWL_API_KEY" | Nom de la variable d’environnement pour la clé API Firecrawl |
api_url | chaîne | "https://api.firecrawl.dev/v1" | URL de base de l’API Firecrawl |
enabled | bool | false | Activer le fallback de Firecrawl |
mode | table | — | Mode de repli de Firecrawl : extraire une seule page ou explorer les pages liées. |
web_search
Configuration de l’outil de recherche Web (section [web_search]).
| Clé | Type | Par défaut | Description |
|---|---|---|---|
bocha_api_key 🔑 | string? | null | Clé API de recherche Web Bocha AI (obligatoire si search_provider est "bocha"). Obtenez-la à l’adresse https://open.bochaai.com. |
brave_api_key 🔑 | string? | null | Clé API Brave Search (requise si search_provider est « brave ») |
enabled | bool | true | Activer web_search_tool pour les recherches web |
jina_api_key 🔑 | string? | null | Clé API Jina AI (requise si search_provider est “jina”) |
max_results | entier | 5 | Résultats maximum par recherche (1-10) |
search_provider | chaî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_url | string? | null | URL de l’instance SearXNG (requis si search_provider est "searxng"), par exemple "https://searx.example.com". |
tavily_api_key 🔑 | string? | null | Clé API Tavily Search (requise si search_provider est “tavily”) |
timeout_secs | entier | 15 | Dé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é | Type | Par défaut | Description |
|---|---|---|---|
bind | chaîne | "0.0.0.0" | Adresse de liaison pour l’écouteur WSS (par défaut : “0.0.0.0”). |
cert_path | chaîne | "" | Chemin vers le fichier de certificat serveur encodé en PEM. |
client_auth | objet | — | Authentification par certificat client (mTLS) pour le transport WSS distant |
enabled | bool | false | Activer l’écouteur WSS (par défaut : false). |
handshake_timeout_secs | entier | 10 | Un délai absolu unique, en secondes, couvrant l’acceptation TLS ET le |
incomplete_message_timeout_secs | entier | 60 | Durée, en secondes, pendant laquelle un message partiellement reçu peut être conservé par le |
key_path | chaîne | "" | Chemin vers le fichier de clé privée du serveur encodé en PEM. |
max_pending_handshakes | entier | 256 | Limite du nombre de sockets après accept() n’ayant pas encore terminé le TLS |
max_sessions | entier | 64 | Nombre maximal de sessions WSS pouvant être établies simultanément (valeur par défaut : 64). Limites |
max_sessions_per_client | entier | 8 | Plafond du nombre de sessions simultanées présentant UN certificat client |
port | entier | 9781 | Port pour l’écouteur WSS (par défaut : 9781). |
sans | string[] | [] | 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é | Type | Par défaut | Description |
|---|---|---|---|
ca_cert_path | chaîne | "" | Chemin vers le certificat d’autorité de certification encodé au format PEM utilisé pour vérifier les certificats clients. |
crl_path | chaîne | "" | Chemin facultatif vers une liste d’empreintes révoquées (une valeur hexadécimale SHA-256 par ligne). A |
enabled | bool | false | Utilisez votre propre CA ci-dessous. Lorsque la valeur est false (par défaut), le démon |
pinned_certs | string[] | [] | Empreintes SHA-256 facultatives pour l’épinglage des certificats. Lorsqu’elles ne sont pas vides, |