Aller au contenu

Configuration de l'assistant personnel

OpenClaw est une passerelle auto-hébergée qui connecte WhatsApp, Telegram, Discord, iMessage 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 actif.

Vous mettez un agent en position de :

  • exécuter des commandes sur votre machine (selon votre politique d’outil)
  • lire/écrire des fichiers dans votre espace de travail
  • renvoyer des messages via WhatsApp/Telegram/Discord/Mattermost (plugin)

Commencez prudemment :

  • Définissez toujours channels.whatsapp.allowFrom (ne lancez jamais ouvert au monde sur votre Mac personnel).
  • Utilisez un numéro WhatsApp dédié pour l’assistant.
  • Les battements de cœur (Heartbeats) sont désormais par défaut toutes les 30 minutes. Désactivez-les jusqu’à ce que vous fassiez confiance à la configuration en définissant agents.defaults.heartbeat.every: "0m".
  • OpenClaw installé et intégré — voir Getting Started si ce n’est pas encore fait
  • Un deuxième numéro de téléphone (SIM/eSIM/prépayé) pour l’assistant

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

Section intitulée « La configuration à deux téléphones (recommandée) »

Vous voulez ceci :

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

Si vous liez votre WhatsApp personnel à OpenClaw, chaque message que vous recevez devient une “entrée d’agent”. C’est rarement ce que vous voulez.

  1. Appairer WhatsApp Web (affiche un QR code ; scannez avec le téléphone de l’assistant) :
Fenêtre de terminal
openclaw channels login
  1. Démarrer la passerelle (laissez-la en cours d’exécution) :
Fenêtre de terminal
openclaw gateway --port 18789
  1. Mettez une configuration minimale dans ~/.openclaw/openclaw.json :
{
channels: { whatsapp: { allowFrom: ["+15555550123"] } },
}

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

Lorsque l’intégration est terminée, nous ouvrons automatiquement le tableau de bord et affichons un lien propre (non tokenisé). S’il demande une authentification, collez le jeton de gateway.auth.token dans les paramètres de l’interface de contrôle (Control UI). Pour rouvrir plus tard : openclaw dashboard.

OpenClaw lit les instructions de fonctionnement et la “mémoire” à partir de 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 (ainsi que les fichiers de démarrage AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) automatiquement lors de la configuration/première exécution de l’agent. BOOTSTRAP.md n’est créé que lorsque l’espace de travail est tout neuf (il ne devrait pas réapparaître après l’avoir supprimé). MEMORY.md est optionnel (non créé automatiquement) ; lorsqu’il est présent, il est chargé pour les sessions normales. Les sessions de sous-agent n’injectent que AGENTS.md et TOOLS.md.

Conseil : traitez ce dossier comme la « mémoire » de OpenClaw et faites-en un dépôt git (idéalement privé) afin que vos AGENTS.md + fichiers de mémoire soient sauvegardés. Si git est installé, les nouveaux espaces de travail sont initialisés automatiquement.

Fenêtre de terminal
openclaw setup

Guide complet de l’espace de travail et de sauvegarde : Agent workspace Flux de travail de la mémoire : Memory

Optionnel : choisir un espace de travail différent avec agents.defaults.workspace (prend en charge ~).

{
agent: {
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 de fichiers d’amorçage :

{
agent: {
skipBootstrap: true,
},
}

La configuration qui le transforme en “assistant”

Section intitulée « La configuration qui le transforme en “assistant” »

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

  • persona/instructions dans SOUL.md
  • valeurs par défaut de réflexion (si souhaité)
  • battements de cœur (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,
},
},
}
  • Fichiers de session : ~/.openclaw/agents/<agentId>/sessions/{{SessionId}}.jsonl
  • Métadonnées de session (utilisation des jetons, dernière route, etc.) : ~/.openclaw/agents/<agentId>/sessions/sessions.json (obsolète : ~/.openclaw/sessions/sessions.json)
  • /new ou /reset démarre une nouvelle session pour cette discussion (configurable via resetTriggers). S’il est envoyé seul, l’agent répond par un court bonjour pour confirmer la réinitialisation.
  • /compact [instructions] compacte le contexte de la session et signale le budget contextuel restant.

Par défaut, OpenClaw exécute un battement de cœur toutes les 30 minutes avec l’invite : 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 (seulement des lignes vides et des en-têtes markdown comme # Heading), OpenClaw ignore l’exécution du battement de cœur pour économiser les appels API.
  • Si le fichier est manquant, le battement de cœur s’exécute toujours et le modèle décide de ce qu’il faut 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 battement de cœur.
  • Par défaut, la livraison des battements de cœur vers les cibles user:<id> de type DM est autorisée. Définissez agents.defaults.heartbeat.directPolicy: "block" pour supprimer la livraison directe tout en maintenant les battements de cœur actifs.
  • Les battements de cœur exécutent des tours complets de l’agent — des intervalles plus courts consomment plus de jetons.
{
agent: {
heartbeat: { every: "30m" },
},
}

Les pièces jointes entrantes (images/audio/docs) peuvent être présenté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 de 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 en tant que médias accompagnant le texte.

Le comportement du chemin local suit le même modèle de confiance de lecture de fichiers que l’agent :

  • Si tools.fs.workspaceOnly est true, les chemins locaux MEDIA: sortants restent limités à la racine temp d’OpenClaw, au cache multimé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 est false, les MEDIA: sortants peuvent utiliser des fichiers locaux de l’hôte que l’agent est déjà autorisé à lire.
  • Les envois locaux à l’hôte n’autorisent toujours que les types de médias et de documents sécurisés (images, audio, vidéo, PDF et documents Office). Les fichiers en texte brut et ceux ressemblant à des secrets ne sont pas considérés comme des médias envoyables.

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

Fenêtre de terminal
openclaw status # local status (creds, sessions, queued events)
openclaw status --all # full diagnosis (read-only, pasteable)
openclaw status --deep # adds gateway health probes (Telegram + Discord)
openclaw health --json # gateway health snapshot (WS)

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