FrameworksAgents.com Logo

Configurer OpenClaw : guide complet

Tutorielcalendar_todayPublié le 7 mars 2026schedule9 min de lectureconfigurer openclawopenclaw yaml

Maîtrisez openclaw configuration : fichier YAML annoté, providers LLM, variables d'environnement, sécurité des clés API et config multi-agent.

Configurer OpenClaw : guide complet

La configuration d'OpenClaw détermine le comportement de chaque agent : quel modèle LLM utiliser, comment gérer les erreurs réseau, où stocker la mémoire, quels skills charger. Un fichier openclaw.yaml mal structuré conduit à des agents imprévisibles ou silencieusement défaillants. Ce guide couvre l'ensemble des paramètres disponibles, du fichier YAML de base aux configurations avancées multi-agents, avec des exemples concrets pour OpenAI, Anthropic et Mistral. Avant de configurer, assurez-vous d'avoir suivi Installer OpenClaw.

Le fichier openclaw.yaml expliqué

openclaw.yaml est le point d'entrée de toute configuration OpenClaw. Il décrit l'agent, ses capacités, ses dépendances et son comportement. OpenClaw le charge au démarrage et valide sa structure via Pydantic — une erreur de schéma arrête le processus immédiatement avec un message clair.

Voici un fichier annoté complet avec tous les blocs disponibles :

# openclaw.yaml — fichier de configuration complet et annoté

# ── Identité de l'agent ──────────────────────────────────────────────────────
agent:
  name: mon-agent                    # Identifiant unique, utilisé dans les logs
  description: "Agent d'analyse SEO" # Description lisible, non utilisée par le LLM
  version: "1.0.0"                   # Version de votre agent (semver recommandé)

# ── Provider LLM ─────────────────────────────────────────────────────────────
llm:
  provider: openai                   # openai | anthropic | mistral | ollama
  model: gpt-4o                      # Nom du modèle selon le provider
  temperature: 0.3                   # 0.0 (déterministe) → 1.0 (créatif)
  max_tokens: 4096                   # Limite de tokens en sortie
  timeout: 60                        # Secondes avant abandon de l'appel LLM
  retry:
    max_attempts: 3                  # Nombre de tentatives en cas d'erreur
    backoff_factor: 2.0              # Facteur d'attente exponentielle entre tentatives

# ── Skills ───────────────────────────────────────────────────────────────────
skills:
  - path: skills/brave_search.py     # Chemin relatif au répertoire du projet
    name: BraveSearchSkill           # Nom de la classe Python à instancier
  - path: skills/web_scraper.py
    name: WebScraperSkill
  - path: skills/slack_notifier.py
    name: SlackNotifierSkill

# ── Mémoire ──────────────────────────────────────────────────────────────────
memory:
  backend: postgresql                # postgresql | redis | sqlite | none
  connection: ${DATABASE_URL}        # Référence à une variable d'environnement
  ttl: 86400                         # Durée de vie des entrées en secondes (24h)
  max_entries: 1000                  # Nombre maximum d'entrées par agent

# ── File de tâches ───────────────────────────────────────────────────────────
queue:
  backend: redis                     # redis | memory (dev seulement)
  connection: ${REDIS_URL}
  concurrency: 2                     # Nombre de tâches exécutées en parallèle

# ── Tâches planifiées ────────────────────────────────────────────────────────
tasks:
  - name: analyse-serp-hebdo
    trigger: cron
    schedule: "0 7 * * 1"           # Tous les lundis à 7h
    prompt: "Analyse les SERPs pour les mots-clés prioritaires."
  - name: rapport-quotidien
    trigger: cron
    schedule: "0 18 * * *"          # Tous les jours à 18h
    prompt: "Génère le rapport de performance de la journée."

# ── Observabilité ────────────────────────────────────────────────────────────
logging:
  level: INFO                        # DEBUG | INFO | WARNING | ERROR
  format: json                       # json | text
  output: stdout                     # stdout | file
  file_path: logs/agent.log          # Ignoré si output = stdout

# ── API HTTP (optionnel) ─────────────────────────────────────────────────────
api:
  enabled: true
  host: "0.0.0.0"
  port: 8000
  auth_token: ${API_AUTH_TOKEN}      # Token Bearer pour sécuriser l'API

Les providers LLM supportés

OpenClaw supporte nativement quatre providers. La configuration du bloc llm varie légèrement selon le provider choisi.

OpenAI

llm:
  provider: openai
  model: gpt-4o          # gpt-4o | gpt-4o-mini | gpt-4-turbo | gpt-3.5-turbo
  temperature: 0.3
  max_tokens: 4096
  api_base: https://api.openai.com/v1   # Optionnel, utile pour les proxies

OpenAI est le provider par défaut. GPT-4o offre le meilleur équilibre coût/performance pour la majorité des tâches d'agents. GPT-4o-mini convient aux tâches simples à fort volume.

Anthropic

llm:
  provider: anthropic
  model: claude-sonnet-4-5     # claude-opus-4 | claude-sonnet-4-5 | claude-haiku-3-5
  temperature: 0.3
  max_tokens: 8192

Claude se distingue par sa fenêtre de contexte étendue et sa fiabilité sur les instructions longues. claude-sonnet-4-5 est recommandé pour les agents complexes, claude-haiku-3-5 pour la rapidité.

Mistral

llm:
  provider: mistral
  model: mistral-large-latest   # mistral-large-latest | mistral-small-latest | open-mistral-7b
  temperature: 0.3
  max_tokens: 4096
  endpoint: https://api.mistral.ai/v1

Mistral propose des modèles performants à coût réduit et offre des options d'hébergement souverain (Mistral La Plateforme). Pertinent pour les projets avec contraintes RGPD strictes.

Ollama (modèles locaux)

llm:
  provider: ollama
  model: llama3.2              # Tout modèle installé localement
  endpoint: http://localhost:11434
  temperature: 0.3

Ollama permet d'exécuter des modèles entièrement en local, sans envoi de données vers des APIs tierces. Utile pour les données confidentielles ou les environnements sans accès internet.

Variables d'environnement essentielles

OpenClaw résout automatiquement les références ${VAR} dans le YAML au moment du chargement. Voici le .env.example complet :

# .env.example

# ── LLM Providers ──────────────────────────────────────────────────────────
OPENAI_API_KEY=sk-proj-...
ANTHROPIC_API_KEY=sk-ant-api03-...
MISTRAL_API_KEY=...

# ── Base de données ────────────────────────────────────────────────────────
DATABASE_URL=postgresql://user:password@localhost:5432/openclaw_db

# ── Cache et file ─────────────────────────────────────────────────────────
REDIS_URL=redis://localhost:6379/0

# ── Skills externes ────────────────────────────────────────────────────────
BRAVE_API_KEY=BSA...
SLACK_WEBHOOK_URL=https://hooks.slack.com/services/...
SLACK_BOT_TOKEN=xoxb-...
SENDGRID_API_KEY=SG....
TWITTER_BEARER_TOKEN=AAAA...

# ── API interne OpenClaw ───────────────────────────────────────────────────
API_AUTH_TOKEN=un-token-long-et-aleatoire

# ── Comportement ──────────────────────────────────────────────────────────
OPENCLAW_LOG_LEVEL=INFO
OPENCLAW_ENV=production        # development | staging | production

Configuration des agents

Paramètres du bloc agent

ParamètreTypeDéfautDescription
namestringrequisIdentifiant unique de l'agent
descriptionstring""Description lisible
versionstring"1.0.0"Version sémantique
max_iterationsint10Nombre max de cycles de raisonnement
verboseboolfalseActive le mode verbeux dans les logs

Paramètres du bloc llm

ParamètreTypeDéfautDescription
providerstringopenaiProvider LLM
modelstringrequisNom du modèle
temperaturefloat0.7Créativité (0.0–1.0)
max_tokensint2048Tokens max en sortie
timeoutint30Timeout en secondes
retry.max_attemptsint3Tentatives max en cas d'erreur
retry.backoff_factorfloat2.0Facteur de backoff exponentiel

Sécurité des clés API

Les clés API ne doivent jamais apparaître en clair dans openclaw.yaml ni dans le code source. Respectez ces règles sans exception :

Règle 1 — Variables d'environnement uniquement

# Correct
llm:
  provider: openai
# La clé est lue depuis OPENAI_API_KEY dans l'environnement

# Incorrect (ne jamais faire)
llm:
  api_key: sk-proj-ma-vraie-cle

OpenClaw lit automatiquement OPENAI_API_KEY, ANTHROPIC_API_KEY et MISTRAL_API_KEY depuis l'environnement sans configuration supplémentaire.

Règle 2 — .gitignore strict

# Ajoutez ces lignes à .gitignore
.env
.env.local
.env.production
*.key
secrets/

Règle 3 — Rotation des clés

En cas de fuite suspectée, invalidez immédiatement la clé depuis la console du provider, puis regénérez-en une nouvelle. Ne comptez pas sur la suppression d'un commit Git pour effacer une clé exposée.

Règle 4 — Principe du moindre privilège

Créez des clés API dédiées par agent avec les permissions minimales nécessaires. Une clé OpenAI utilisée uniquement pour des completions n'a pas besoin d'accès aux fine-tunings.

Pour un déploiement sur serveur, consultez OpenClaw sur VPS et Sécurité OpenClaw.

Configuration avancée (timeouts, retry, logs)

Timeouts

Définissez des timeouts à deux niveaux pour éviter les blocages :

llm:
  timeout: 60          # Timeout de l'appel LLM en secondes

skills:
  default_timeout: 15  # Timeout appliqué à tous les skills sauf override individuel
  overrides:
    pdf_extractor:
      timeout: 60      # Les PDFs volumineux nécessitent plus de temps

Retry et backoff

llm:
  retry:
    max_attempts: 3
    backoff_factor: 2.0
    retry_on:            # Codes HTTP déclenchant un retry
      - 429              # Rate limit
      - 500
      - 502
      - 503

Avec backoff_factor: 2.0, les délais entre tentatives sont : 1s, 2s, 4s. Augmentez max_attempts à 5 pour les APIs avec rate limits agressifs (ex: Twitter).

Logs structurés

logging:
  level: INFO
  format: json           # JSON pour ingestion par Loki, Datadog, CloudWatch
  output: stdout
  fields:                # Champs ajoutés à chaque entrée de log
    service: mon-agent
    environment: ${OPENCLAW_ENV}

Un log JSON typique en production :

{
  "timestamp": "2026-03-07T09:15:32Z",
  "level": "INFO",
  "message": "Skill executed successfully",
  "skill": "BraveSearchSkill",
  "duration_ms": 342,
  "service": "mon-agent",
  "environment": "production"
}

Exemple concret : config multi-agent

Voici une configuration pour un pipeline à trois agents qui collaborent : un agent de recherche, un agent de rédaction et un agent de publication.

# openclaw-multi.yaml

# ── Agent 1 : Chercheur ───────────────────────────────────────────────────
agents:
  - name: researcher
    description: "Collecte et analyse les sources sur un sujet donné"
    llm:
      provider: openai
      model: gpt-4o-mini    # Modèle économique pour la recherche
      temperature: 0.2
      max_tokens: 2048
    skills:
      - path: skills/brave_search.py
        name: BraveSearchSkill
      - path: skills/web_scraper.py
        name: WebScraperSkill
    output:
      target: writer         # Passe le résultat à l'agent suivant
      format: json

  # ── Agent 2 : Rédacteur ─────────────────────────────────────────────────
  - name: writer
    description: "Rédige un article structuré à partir des sources"
    llm:
      provider: anthropic
      model: claude-sonnet-4-5   # Modèle plus puissant pour la rédaction
      temperature: 0.5
      max_tokens: 8192
    skills:
      - path: skills/openai_summary.py
        name: OpenAISummarySkill
    input:
      source: researcher
    output:
      target: publisher
      format: markdown

  # ── Agent 3 : Éditeur/Publicateur ───────────────────────────────────────
  - name: publisher
    description: "Valide et publie le contenu"
    llm:
      provider: mistral
      model: mistral-small-latest  # Tâche simple, modèle léger
      temperature: 0.1
    skills:
      - path: skills/slack_notifier.py
        name: SlackNotifierSkill
    input:
      source: writer

# ── Mémoire partagée entre agents ──────────────────────────────────────────
shared_memory:
  backend: postgresql
  connection: ${DATABASE_URL}

# ── Tâche déclenchant le pipeline ──────────────────────────────────────────
tasks:
  - name: pipeline-contenu
    trigger: cron
    schedule: "0 8 * * 2,4"   # Mardi et jeudi à 8h
    entry_agent: researcher
    prompt: "Recherche et rédige un article sur les dernières avancées en agents IA autonomes."

Démarrage du pipeline multi-agent :

python -m openclaw.run --config openclaw-multi.yaml

Bonnes pratiques

Séparez les configs par environnement : maintenez openclaw.dev.yaml, openclaw.staging.yaml et openclaw.prod.yaml. Les différences principales : niveau de log, modèle LLM (plus économique en dev), backends mémoire (sqlite en dev, postgresql en prod).

Validez avant déploiement : OpenClaw propose une commande de validation à sec :

python -m openclaw.validate --config openclaw.yaml

Elle vérifie la syntaxe YAML, la présence des variables d'environnement référencées et l'existence des fichiers skills. Intégrez-la dans votre CI.

Versionner openclaw.yaml : contrairement au .env, le fichier YAML doit être versionné. Il documente l'architecture de votre agent. Committez-le avec des messages clairs (feat: add TwitterMonitorSkill to researcher agent).

Températures basses pour les agents : sauf pour les tâches créatives, maintenez temperature entre 0.1 et 0.4. Des températures élevées introduisent de l'imprévisibilité dans le choix des skills et la formulation des actions.

Monitoring des coûts : activez les limites de dépenses dans les dashboards des providers (OpenAI, Anthropic). Configurez des alertes à 50% et 80% de votre budget mensuel pour éviter les mauvaises surprises liées à des boucles d'agents mal configurées.

Conclusion

Un openclaw.yaml bien structuré est la colonne vertébrale de vos agents : il détermine leurs capacités, leur fiabilité et leur sécurité. Commencez avec une configuration minimale (un agent, un provider, deux ou trois skills), validez le comportement, puis ajoutez la complexité progressivement. Les paramètres de retry, timeout et logging ne sont pas optionnels en production — ils sont la différence entre un agent qui gère les pannes gracieusement et un agent qui bloque silencieusement.

Restez informé sur les agents IA

Nouveaux tutoriels, comparatifs et guides pratiques directement dans votre boîte mail.

homeAccueilcodeFrameworkssmart_toyAgentsmenu_bookTutorielsTwitter