Guides

Configuration de l’assistant personnel

OpenClaw est une passerelle autohébergée qui connecte Discord, Google Chat, iMessage, Matrix, Microsoft Teams, Signal, Slack, Telegram, WhatsApp, Zalo, et plus encore à des agents IA. Ce guide couvre la configuration « assistant personnel » : un numéro WhatsApp dédié qui se comporte comme votre assistant IA toujours disponible.

⚠️ La sécurité d’abord

Vous placez un agent en position de :

  • exécuter des commandes sur votre machine (selon votre politique d’outils)
  • lire/écrire des fichiers dans votre espace de travail
  • renvoyer des messages via WhatsApp/Telegram/Discord/Mattermost et d’autres canaux intégrés

Commencez prudemment :

  • Définissez toujours channels.whatsapp.allowFrom (n’exécutez jamais une configuration ouverte au monde entier sur votre Mac personnel).
  • Utilisez un numéro WhatsApp dédié pour l’assistant.
  • Les Heartbeats sont maintenant exécutés toutes les 30 minutes par défaut. Désactivez-les jusqu’à ce que vous fassiez confiance à la configuration en définissant agents.defaults.heartbeat.every: "0m".

Prérequis

  • OpenClaw installé et configuré - consultez Bien démarrer si vous ne l’avez pas encore fait
  • Un deuxième numéro de téléphone (SIM/eSIM/prépayé) pour l’assistant

La configuration avec deux téléphones (recommandée)

Vous voulez ceci :

flowchart TB
    A["<b>Your Phone (personal)
</b>
Your WhatsApp
+1-555-YOU"] -- message --> B["<b>Second Phone (assistant)
</b>
Assistant WA
+1-555-ASSIST"]
    B -- linked via QR --> C["<b>Your Mac (openclaw)
</b>
AI agent"]

Si vous liez votre WhatsApp personnel à OpenClaw, chaque message qui vous est destiné devient une « entrée agent ». C’est rarement ce que vous voulez.

Démarrage rapide en 5 minutes

  1. Associez WhatsApp Web (affiche un QR ; scannez-le avec le téléphone de l’assistant) :
openclaw channels login
  1. Démarrez le Gateway (laissez-le en cours d’exécution) :
openclaw gateway --port 18789
  1. Placez une configuration minimale dans ~/.openclaw/openclaw.json :
{
  gateway: { mode: "local" },
  channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

Envoyez maintenant un message au numéro de l’assistant depuis votre téléphone autorisé.

Quand l’onboarding se termine, OpenClaw ouvre automatiquement le tableau de bord et affiche un lien propre (sans jeton). Si le tableau de bord demande une authentification, collez le secret partagé configuré dans les paramètres de Control UI. L’onboarding utilise un jeton par défaut (gateway.auth.token), mais l’authentification par mot de passe fonctionne aussi si vous avez remplacé gateway.auth.mode par password. Pour le rouvrir plus tard : openclaw dashboard.

Donner un espace de travail à l’agent (AGENTS)

OpenClaw lit les instructions d’exploitation et la « mémoire » depuis son répertoire d’espace de travail.

Par défaut, OpenClaw utilise ~/.openclaw/workspace comme espace de travail de l’agent, et le créera (avec les fichiers de démarrage AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automatiquement lors de la configuration ou de la première exécution de l’agent. BOOTSTRAP.md n’est créé que lorsque l’espace de travail est entièrement nouveau (il ne doit pas revenir après suppression). MEMORY.md est facultatif (non créé automatiquement) ; lorsqu’il est présent, il est chargé pour les sessions normales. Les sessions de sous-agent injectent uniquement AGENTS.md et TOOLS.md.

openclaw setup

Disposition complète de l’espace de travail + guide de sauvegarde : Espace de travail de l’agent Workflow de mémoire : Mémoire

Facultatif : choisissez un autre espace de travail avec agents.defaults.workspace (prend en charge ~).

{
  agents: {
    defaults: {
      workspace: "~/.openclaw/workspace",
    },
  },
}

Si vous fournissez déjà vos propres fichiers d’espace de travail depuis un dépôt, vous pouvez désactiver entièrement la création des fichiers de démarrage :

{
  agents: {
    defaults: {
      skipBootstrap: true,
    },
  },
}

La configuration qui en fait « un assistant »

OpenClaw utilise par défaut une bonne configuration d’assistant, mais vous voudrez généralement ajuster :

  • la persona/les instructions dans SOUL.md
  • les valeurs par défaut de réflexion (si souhaité)
  • les Heartbeats (une fois que vous lui faites confiance)

Exemple :

{
  logging: { level: "info" },
  agent: {
    model: "anthropic/claude-opus-4-6",
    workspace: "~/.openclaw/workspace",
    thinkingDefault: "high",
    timeoutSeconds: 1800,
    // Start with 0; enable later.
    heartbeat: { every: "0m" },
  },
  channels: {
    whatsapp: {
      allowFrom: ["+15555550123"],
      groups: {
        "*": { requireMention: true },
      },
    },
  },
  routing: {
    groupChat: {
      mentionPatterns: ["@openclaw", "openclaw"],
    },
  },
  session: {
    scope: "per-sender",
    resetTriggers: ["/new", "/reset"],
    reset: {
      mode: "daily",
      atHour: 4,
      idleMinutes: 10080,
    },
  },
}

Sessions et mémoire

  • Fichiers de session : ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Métadonnées de session (utilisation de jetons, dernière route, etc.) : ~/.openclaw/agents/<agentId>/sessions/sessions.json (ancien : ~/.openclaw/sessions/sessions.json)
  • /new ou /reset démarre une nouvelle session pour cette conversation (configurable via resetTriggers). Si elle est envoyée seule, OpenClaw confirme la réinitialisation sans invoquer le modèle.
  • /compact [instructions] compacte le contexte de session et indique le budget de contexte restant.

Heartbeats (mode proactif)

Par défaut, OpenClaw exécute un Heartbeat toutes les 30 minutes avec le prompt : Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK. Définissez agents.defaults.heartbeat.every: "0m" pour désactiver.

  • Si HEARTBEAT.md existe mais est effectivement vide (uniquement des lignes vides et des en-têtes Markdown comme # Heading), OpenClaw ignore l’exécution du Heartbeat pour économiser les appels API.
  • Si le fichier est absent, le Heartbeat s’exécute quand même et le modèle décide quoi faire.
  • Si l’agent répond avec HEARTBEAT_OK (éventuellement avec un court remplissage ; voir agents.defaults.heartbeat.ackMaxChars), OpenClaw supprime la livraison sortante pour ce Heartbeat.
  • Par défaut, la livraison des Heartbeats vers les cibles de type DM user:<id> est autorisée. Définissez agents.defaults.heartbeat.directPolicy: "block" pour supprimer la livraison vers les cibles directes tout en gardant les exécutions Heartbeat actives.
  • Les Heartbeats exécutent des tours complets de l’agent - des intervalles plus courts consomment plus de jetons.
{
  agent: {
    heartbeat: { every: "30m" },
  },
}

Médias entrants et sortants

Les pièces jointes entrantes (images/audio/docs) peuvent être exposées à votre commande via des modèles :

  • {{MediaPath}} (chemin de fichier temporaire local)
  • {{MediaUrl}} (pseudo-URL)
  • {{Transcript}} (si la transcription audio est activée)

Pièces jointes sortantes depuis l’agent : incluez MEDIA:<path-or-url> sur sa propre ligne (sans espaces). Exemple :

Here's the screenshot.
MEDIA:https://example.com/screenshot.png

OpenClaw les extrait et les envoie comme médias avec le texte.

Le comportement des chemins locaux suit le même modèle de confiance de lecture de fichiers que l’agent :

  • Si tools.fs.workspaceOnly vaut true, les chemins locaux MEDIA: sortants restent limités à la racine temporaire d’OpenClaw, au cache média, aux chemins de l’espace de travail de l’agent et aux fichiers générés par le bac à sable.
  • Si tools.fs.workspaceOnly vaut false, les MEDIA: sortants peuvent utiliser les fichiers locaux de l’hôte que l’agent est déjà autorisé à lire.
  • Les chemins locaux peuvent être absolus, relatifs à l’espace de travail, ou relatifs au répertoire personnel avec ~/.
  • Les envois locaux depuis l’hôte n’autorisent toujours que les médias et types de documents sûrs (images, audio, vidéo, PDF et documents Office). Les fichiers texte brut et les fichiers ressemblant à des secrets ne sont pas traités comme des médias envoyables.

Cela signifie que les images/fichiers générés en dehors de l’espace de travail peuvent désormais être envoyés lorsque votre politique fs autorise déjà ces lectures, sans rouvrir l’exfiltration arbitraire de pièces jointes texte depuis l’hôte.

Liste de contrôle opérationnelle

openclaw status          # local status (creds, sessions, queued events)
openclaw status --all    # full diagnosis (read-only, pasteable)
openclaw status --deep   # asks the gateway for a live health probe with channel probes when supported
openclaw health --json   # gateway health snapshot (WS; default can return a fresh cached snapshot)

Les journaux se trouvent sous /tmp/openclaw/ (par défaut : openclaw-YYYY-MM-DD.log).

Étapes suivantes

Associé