Référence complète de config.toml. Toutes les sections et leurs valeurs par défaut.
[provider]
Key
Type
Default
Description
kind
string
"google_genai"
Type de fournisseur : google_genai, openai_compatible, ou anthropic
api_key
string
—
Clé API pour le fournisseur (obligatoire)
gateway_token
string
null
Token optionnel Cloudflare AI Gateway envoyé comme cf-aig-authorization
base_url
string
—
URL de base de l'API (obligatoire pour openai_compatible, non utilisé pour les fournisseurs natifs)
[provider.models]
Key
Type
Default
Description
primary
string
(provider default)
Modèle par défaut pour les requêtes générales
fast
string
(same as primary)
Modèle pour les requêtes simples/rapides
smart
string
(same as primary)
Modèle pour les tâches de raisonnement complexes
Valeurs par Défaut des Modèles
Valeurs par défaut selon le fournisseur : google_genai → primary=gemini-3-flash-preview, fast=gemini-2.5-flash-lite, smart=gemini-3-pro-preview. openai_compatible → tous les niveaux par défaut à openai/gpt-5-mini. anthropic → tous les niveaux par défaut à claude-sonnet-4-5. Lorsque les trois niveaux sont le même modèle, le routage automatique est désactivé. Voir Routage des Modèles.
[telegram]
Key
Type
Default
Description
bot_token
string
—
Token du bot Telegram depuis @BotFather (obligatoire)
allowed_user_ids
array
[]
Identifiants utilisateur Telegram numériques autorisés à discuter. Vide = aucune restriction.
[slack]
Nécessite le feature flag slack à la compilation. Voir Slack pour le guide complet de configuration.
Key
Type
Default
Description
enabled
bool
false
Activer le canal Slack
app_token
string
—
Token de niveau application Slack pour Socket Mode (xapp-...)
bot_token
string
—
Token de bot Slack pour l'API Web (xoxb-...)
allowed_user_ids
array
[]
Identifiants utilisateur Slack autorisés à interagir. Vide = aucune restriction.
use_threads
bool
true
Répondre dans les fils de discussion par défaut
[discord]
Nécessite le feature flag discord à la compilation. Voir Discord pour le guide complet de configuration.
Key
Type
Default
Description
bot_token
string
—
Token du bot Discord depuis le portail développeur
allowed_user_ids
array
[]
Identifiants utilisateur Discord autorisés à interagir. Vide = aucune restriction.
guild_id
integer
null
ID optionnel du guild/serveur pour restreindre le bot à un seul serveur
[state]
Key
Type
Default
Description
db_path
string
"aidaemon.db"
Chemin vers le fichier de base de données SQLite
working_memory_cap
integer
50
Nombre maximum de messages par session conservés en mémoire
consolidation_interval_hours
integer
6
Heures entre les exécutions de consolidation de la mémoire
max_facts
integer
100
Nombre maximum de faits injectés dans le prompt système
daily_token_budget
integer
null
Maximum de tokens totaux (entrée+sortie) par jour. Null = illimité. Réinitialisation à minuit UTC.
encryption_key
string
null
Clé de chiffrement SQLCipher (nécessite la fonctionnalité encryption). AES-256 au repos.
[terminal]
Key
Type
Default
Description
allowed_prefixes
array
(see below)
Préfixes de commande auto-approuvés sans confirmation de l'utilisateur
initial_timeout_secs
integer
30
Délai d'attente en secondes pour l'exécution initiale de la commande
max_output_chars
integer
4000
Tronquer la sortie de commande au-delà de cette longueur
permission_mode
string
"default"
Mode de permission de risque : default, cautious, ou yolo. Voir Risque des Commandes.
Les commandes contenant ;|&&||$() ou des backticks nécessitent toujours une approbation, même si le préfixe est dans la liste autorisée.
[daemon]
Key
Type
Default
Description
health_port
integer
8080
Port pour le point de terminaison HTTP de vérification de santé
health_bind
string
"127.0.0.1"
Adresse de liaison. Utilisez "0.0.0.0" pour un accès externe.
[triggers.email]
Key
Type
Default
Description
host
string
—
Nom d'hôte du serveur IMAP (ex. : imap.gmail.com)
port
integer
—
Port IMAP (généralement 993 pour TLS)
username
string
—
Nom d'utilisateur du compte email
password
string
—
Mot de passe du compte email ou mot de passe spécifique à l'application
folder
string
"INBOX"
Dossier IMAP à surveiller
[mcp.<name>]
Key
Type
Default
Description
command
string
—
Chemin ou nom de l'exécutable pour le serveur MCP
args
array
[]
Arguments en ligne de commande
[browser]
Key
Type
Default
Description
enabled
bool
false
Activer l'outil d'automatisation du navigateur
headless
bool
true
Exécuter Chrome sans fenêtre visible
screenshot_width
integer
1280
Largeur de la fenêtre du navigateur en pixels
screenshot_height
integer
720
Hauteur de la fenêtre du navigateur en pixels
user_data_dir
string
~/.aidaemon/chrome-profile
Répertoire du profil Chrome pour les sessions persistantes
profile
string
Default
Nom du profil Chrome dans user_data_dir
remote_debugging_port
integer
null
Se connecter à un Chrome existant sur ce port (avancé)
[skills]
Key
Type
Default
Description
dir
string
"skills"
Répertoire contenant les fichiers markdown de compétences
enabled
bool
true
Activer le système de compétences
registries
array
[]
URLs des manifestes JSON de registres de compétences pour parcourir/installer des compétences
[subagents]
Key
Type
Default
Description
enabled
bool
true
Autoriser l'agent à lancer des sous-agents
max_depth
integer
3
Niveau maximum d'imbrication pour la récursion des sous-agents
max_iterations
integer
10
Nombre maximum d'étapes de la boucle agentique par invocation de sous-agent
max_response_chars
integer
8000
Tronquer les réponses des sous-agents au-delà de cette longueur
timeout_secs
integer
300
Délai d'attente d'exécution des sous-agents en secondes
[cli_agents]
Key
Type
Default
Description
enabled
bool
false
Activer l'outil de délégation d'agents CLI
timeout_secs
integer
600
Délai d'attente global pour l'exécution des agents CLI
max_output_chars
integer
16000
Longueur maximale globale de la sortie des agents CLI
[cli_agents.tools.<name>]
Key
Type
Default
Description
command
string
—
Commande à exécuter
args
array
[]
Arguments par défaut passés à la commande
description
string
—
Description de l'outil présentée au LLM
timeout_secs
integer
null
Remplacer le délai d'attente global pour cet outil
max_output_chars
integer
null
Remplacer la sortie maximale globale pour cet outil
[search]
Key
Type
Default
Description
backend
string
"duckduckgo"
Backend de recherche : duckduckgo (aucune clé requise) ou brave
api_key
string
""
Clé API pour la recherche Brave (supporte "keychain")
[scheduler]
Key
Type
Default
Description
enabled
bool
true
Activer le système de tâches planifiées
tick_interval_secs
integer
30
Fréquence de vérification des tâches à exécuter par le planificateur
[[scheduler.tasks]]
Tâches planifiées prédéfinies chargées depuis la configuration au démarrage :
Key
Type
Default
Description
name
string
—
Libellé lisible de la tâche
schedule
string
—
Expression en langage naturel ou cron (voir Planificateur)
prompt
string
—
Ce que l'agent doit faire lorsque la tâche se déclenche
oneshot
bool
false
S'exécuter une fois puis se supprimer automatiquement
trusted
bool
false
Exécuter en autonomie complète (pas d'approbation terminal nécessaire)
[files]
Key
Type
Default
Description
enabled
bool
true
Activer les outils de transfert de fichiers (envoi/réception)
inbox_dir
string
"~/.aidaemon/files/inbox"
Répertoire pour les fichiers reçus depuis Telegram
outbox_dirs
array
["~"]
Répertoires depuis lesquels l'agent est autorisé à envoyer des fichiers
max_file_size_mb
integer
10
Taille maximale des fichiers pour les transferts en Mo
retention_hours
integer
24
Heures de conservation des fichiers reçus avant nettoyage
Gestion des Secrets
Les valeurs de configuration sensibles supportent deux méthodes de résolution en plus du texte brut, ainsi qu'un mode optionnel tout-environnement :
Trousseau du Système
Définissez n'importe quel champ secret à "keychain" pour le résoudre depuis le trousseau du système (Trousseau macOS, secret-service Linux) :
toml
[provider]
api_key = "keychain" # Resolved from keychain entry "api_key"
[telegram]
bot_token = "keychain" # Resolved from keychain entry "bot_token"
Stockez les valeurs avec la commande CLI keychain avant le premier lancement :
bash
# Store a secret (prompts interactively)
aidaemon keychain set api_key
aidaemon keychain set bot_token
# Verify a stored secret (shows masked value)
aidaemon keychain get api_key
# Remove a secret
aidaemon keychain delete api_key
Sécurité
La commande set demande la valeur de manière interactive avec confirmation, gardant les secrets hors de l'historique de votre shell.
Variables d'Environnement
Utilisez la syntaxe ${VAR_NAME} n'importe où dans les valeurs de configuration :
Si vous préférez ne pas utiliser le trousseau du système, définissez ces variables d'environnement d'exécution :
bash
# Désactive le stockage dans le trousseau système et utilise des secrets basés sur un fichier env
export AIDAEMON_NO_KEYCHAIN=1
# Optionnel : choisir un chemin de fichier env spécifique (par défaut : ./.env)
export AIDAEMON_ENV_FILE=/chemin/absolu/vers/.env
Dans ce mode, aidaemon lit les secrets depuis le fichier env sélectionné (ou depuis les variables d'environnement du processus si aucun fichier env n'existe) et persiste les mises à jour de secrets dans ce fichier env — y compris la rotation des jetons OAuth access/refresh.
Sécurité en mode env
Gardez le fichier env privé (chmod 600) et hors du contrôle de version.
Champs Supportés pour le Trousseau
Champs supportant "keychain" : provider.api_key, provider.gateway_token, telegram.bot_token, slack.app_token, slack.bot_token, discord.bot_token, triggers.email.password, state.encryption_key, search.api_key, et les champs de profils http_auth.*.