Référence de la configuration YAML
Sinaptic® DROID+ utilise deux types de fichiers de configuration YAML :
- Configuration principale (
droid.yaml) — paramètres globaux du serveur, du LLM, de la sécurité et de la journalisation (logging) - Configurations d'agent (
configs/agents/*.yaml) — paramètres du modèle, de la personnalité, des outils et du comportement par agent
Toutes les valeurs de configuration prennent en charge la substitution de ${ENV_VAR} — Sinaptic® DROID+ résout les variables d'environnement au démarrage.
Configuration principale (droid.yaml)
edition (édition)
| Valeur | Description |
|---|---|
community | Édition gratuite, max 2 agents, sécurité RegExp uniquement (par défaut) |
pro | Agents illimités, cascade complète SinapticAI |
enterprise | Multi-tenancy, conformité, haute disponibilité (HA) |
server (serveur)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
openai_port | int | 8080 | Port pour l'API compatible OpenAI |
management_port | int | 8081 | Port pour l'API de gestion |
cors_origins | []string | ["*"] | Origines CORS autorisées |
api_key | string | — | Clé API pour l'authentification (prend en charge ${ENV_VAR}) |
demo_mode | bool | false | Activer le mode démo |
llm
Configuration du fournisseur de LLM principal.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
provider | string | openai | Nom du fournisseur de LLM (openai, anthropic, gemini, grok, ollama, lm_studio, llama_cpp) |
base_url | string | https://api.openai.com/v1 | URL de base de l'API |
api_key | string | ${OPENAI_API_KEY} | Clé API (prend en charge ${ENV_VAR}) |
default_model | string | gpt-4o-mini | Nom du modèle par défaut |
anthropic
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | https://api.anthropic.com | URL de base de l'API Anthropic |
api_key | string | ${ANTHROPIC_API_KEY} | Clé API |
gemini
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | https://generativelanguage.googleapis.com/v1beta | URL de base de l'API Gemini |
api_key | string | ${GEMINI_API_KEY} | Clé API |
grok
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | https://api.x.ai/v1 | URL de base de l'API Grok (xAI) |
api_key | string | ${GROK_API_KEY} | Clé API |
ollama
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | http://localhost:11434/v1 | URL de base de l'API Ollama |
lm_studio
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | http://localhost:1234/v1 | URL de base de l'API LM Studio |
llama_cpp
| Champ | Type | Par défaut | Description |
|---|---|---|---|
base_url | string | http://localhost:8080/v1 | URL de base du serveur llama.cpp |
embedding (plongements)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
model | string | text-embedding-3-small | Nom du modèle d'embedding |
base_url | string | (utilise llm.base_url par défaut) | URL de base de l'API d'embedding |
api_key | string | (utilise llm.api_key par défaut) | Clé API d'embedding |
sinaptic
Configuration de la couche de sécurité SinapticAI.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | true | Activer le scan de sécurité SinapticAI |
mode | string | block | Action en cas de détection de menace : block ou log |
log_blocked | bool | true | Journaliser les requêtes bloquées |
sinaptic.pii
| Champ | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | true | Activer la détection des PII (données personnelles) |
strategy | string | mask | Stratégie de gestion des PII : mask (masquer) ou block (bloquer) |
mcp
Configuration du serveur d'outils Model Context Protocol (MCP).
mcp:
servers:
my-server:
command: "npx"
args: ["-y", "@my-org/mcp-server"]
env:
API_KEY: "${MY_API_KEY}"
| Champ | Type | Description |
|---|---|---|
servers | map | Définitions de serveurs MCP nommés |
Par serveur :
| Champ | Type | Description |
|---|---|---|
command | string | Commande pour lancer le serveur MCP |
args | []string | Arguments de la commande |
env | map[string]string | Variables d'environnement pour le processus du serveur |
logging (journalisation)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
level | string | info | Niveau de log (debug, info, warn, error) |
format | string | json | Format de log (json ou text) |
audit
| Champ | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer la journalisation d'audit |
log_path | string | ./logs/audit | Chemin des fichiers de log d'audit |
retention_days | int | 30 | Jours de rétention des logs d'audit |
branding (marque)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
show_badge | bool | (auto) | Afficher le badge "Powered by Sinaptic® DROID+". Auto : true pour community, false pour pro/enterprise |
Chemins de haut niveau
| Champ | Type | Par défaut | Description |
|---|---|---|---|
data_dir | string | ./data | Répertoire des données d'exécution (embeddings, état) |
agents_dir | string | ./configs/agents | Répertoire contenant les configurations YAML des agents |
Configuration d'agent (configs/agents/*.yaml)
Champs de haut niveau
| Champ | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
name | string | oui | (nom du fichier) | Identifiant unique de l'agent |
description | string | non | — | Description lisible par l'homme |
model | objet | oui | — | Configuration du modèle de LLM |
personality | string | oui | — | Prompt système pour l'agent |
agent_type | string | non | plain | Boucle de traitement : plain ou react |
execution_mode | string | non | sequential | Exécution des outils : sequential ou parallel |
chain_of_thought | bool | non | false | Activer le raisonnement par chaîne de pensée |
max_iterations | int | non | 10 | Itérations max de la boucle ReAct |
tool_timeout | string | non | 30s | Délai d'expiration par défaut pour les appels d'outils |
model
| Champ | Type | Par défaut | Description |
|---|---|---|---|
name | string | — | Nom du modèle (ex: gpt-4o, claude-sonnet-4-20250514) |
base_url | string | (depuis la conf principale) | Surcharger l'URL de base de l'API du LLM |
api_key | string | (depuis la conf principale) | Surcharger la clé API |
max_tokens | int | 1024 | Nombre maximum de tokens de réponse |
temperature | float | 0.7 | Température d'échantillonnage (0-2) |
memory.short_term (mémoire à court terme)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
max_messages | int | 50 | Taille de la fenêtre glissante de l'historique de conversation |
rag
| Champ | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | false | Activer la génération augmentée par récupération |
top_k | int | 3 | Nombre de fragments à récupérer |
min_score | float | 0.7 | Seuil de score de similitude minimal |
tools (outils)
Tableau de configurations d'outils.
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Identifiant de l'outil |
description | string | non | Description de l'outil (montrée au LLM) |
type | string | oui | Type d'outil : mcp, rest_api |
url | string | rest_api | URL de l'endpoint |
method | string | rest_api | Méthode HTTP (GET, POST, PUT, DELETE) |
headers | map | rest_api | En-têtes HTTP |
timeout | string | rest_api | Délai d'expiration de la requête (ex: 10s) |
pipeline
Étapes du pipeline multi-LLM (optionnel). Lorsqu'il est défini, la requête passe par chaque étape séquentiellement.
| Champ | Type | Requis | Description |
|---|---|---|---|
name | string | oui | Identifiant de l'étape |
model | objet | oui | Configuration du modèle pour cette étape |
personality | string | oui | Prompt système pour cette étape |
spawns (appels subordonnés)
Configuration des appels d'agent à agent (A2A).
| Champ | Type | Par défaut | Description |
|---|---|---|---|
max_spawns | int | 5 | Appels max de sous-agents par requête (0 = illimité) |
max_tokens_per_spawn | int | 4096 | Budget de tokens par appel subordonné |
max_depth | int | 3 | Profondeur de récursion maximale |
allowed_agents | []string | [] (tous) | Liste blanche des agents pouvant être appelés |
spawn_timeout_secs | int | 60 | Délai d'expiration par appel subordonné en secondes |
rate_limit (limite de débit)
| Champ | Type | Par défaut | Description |
|---|---|---|---|
requests_per_minute | int | 0 (illimité) | Requêtes max par minute |
sinaptic
Surcharge de SinapticAI par agent.
| Champ | Type | Par défaut | Description |
|---|---|---|---|
enabled | bool | (hérite du global) | Surcharger l'activation globale de SinapticAI |
Exemple complet
droid.yaml
edition: community
server:
openai_port: 8080
management_port: 8081
cors_origins: ["*"]
llm:
provider: openai
base_url: https://api.openai.com/v1
api_key: ${OPENAI_API_KEY}
default_model: gpt-4o-mini
anthropic:
api_key: ${ANTHROPIC_API_KEY}
embedding:
model: text-embedding-3-small
sinaptic:
enabled: true
mode: block
pii:
enabled: true
strategy: mask
log_blocked: true
logging:
level: info
format: json
audit:
enabled: false
log_path: ./logs/audit
retention_days: 30
data_dir: ./data
agents_dir: ./configs/agents
configs/agents/support-bot.yaml
name: support-bot
description: Agent de support client avec RAG et outils
model:
name: gpt-4o
max_tokens: 2048
temperature: 0.5
personality: |
Vous êtes un agent de support client utile.
Soyez toujours poli, concis et précis.
agent_type: react
execution_mode: parallel
chain_of_thought: true
max_iterations: 5
tool_timeout: 15s
memory:
short_term:
max_messages: 100
rag:
enabled: true
top_k: 5
min_score: 0.6
tools:
- name: lookup-order
type: rest_api
description: Rechercher le statut d'une commande par son ID
url: https://api.example.com/orders/${order_id}
method: GET
headers:
Authorization: "Bearer ${INTERNAL_API_KEY}"
timeout: 10s
rate_limit:
requests_per_minute: 60
spawns:
max_spawns: 3
max_depth: 2
allowed_agents: ["billing-agent", "shipping-agent"]