Configurer un assistant personnel avec OpenClaw
OpenClaw est une passerelle WhatsApp + Telegram + Discord + iMessage pour les agents Pi. Des plugins ajoutent Mattermost. Ce guide couvre la configuration « assistant personnel » : un numéro WhatsApp dédié qui se comporte comme votre agent toujours disponible.
⚠️ La sécurité avant tout
Vous confiez à un agent la capacité de :
- exécuter des commandes sur votre machine (selon la configuration de vos outils Pi)
- lire et écrire des fichiers dans votre espace de travail
- envoyer des messages via WhatsApp/Telegram/Discord/Mattermost (plugin)
Commencez prudemment :
- Définissez toujours
channels.whatsapp.allowFrom(ne laissez jamais un accès ouvert à tous sur votre Mac personnel). - Utilisez un numéro WhatsApp dédié pour l’assistant.
- Les heartbeats sont désormais configurés toutes les 30 minutes par défaut. Désactivez-les tant que vous n’avez pas confiance dans la configuration en définissant
agents.defaults.heartbeat.every: "0m".
Prérequis
- OpenClaw installé et onboardé — consultez Premiers pas si ce n’est pas encore fait
- Un second numéro de téléphone (SIM/eSIM/prépayé) pour l’assistant
La configuration à deux téléphones (recommandée)
Voici ce que vous voulez obtenir :
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>Pi agent"]
Si vous liez votre WhatsApp personnel à OpenClaw, chaque message que vous recevez devient une « entrée pour l’agent ». C’est rarement ce que vous souhaitez.
Démarrage en 5 minutes
- Associez WhatsApp Web (un QR s’affiche ; scannez-le avec le téléphone de l’assistant) :
openclaw channels login
- Démarrez le Gateway (laissez-le tourner) :
openclaw gateway --port 18789
- Créez 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é.
À la fin de l’onboarding, le dashboard s’ouvre automatiquement avec un lien propre (sans token). Si une authentification est demandée, collez le token de gateway.auth.token dans les paramètres du Control UI. Pour réouvrir plus tard : openclaw dashboard.
Donner un espace de travail à l’agent (AGENTS)
OpenClaw lit les instructions opérationnelles et la « mémoire » depuis le répertoire de l’espace de travail.
Par défaut, OpenClaw utilise ~/.openclaw/workspace comme espace de travail de l’agent et le crée automatiquement (ainsi que les fichiers de démarrage AGENTS.md, SOUL.md, TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md) lors de la configuration ou du premier lancement. BOOTSTRAP.md n’est créé que lorsque l’espace de travail est tout neuf (il ne doit pas réapparaître après suppression). MEMORY.md est optionnel (pas créé automatiquement) ; s’il est présent, il est chargé pour les sessions normales. Les sessions de sous-agents n’injectent que AGENTS.md et TOOLS.md.
Astuce : traitez ce dossier comme la « mémoire » d’OpenClaw et transformez-le en dépôt git (idéalement privé) pour sauvegarder vos fichiers AGENTS.md et de mémoire. Si git est installé, les espaces de travail neufs sont automatiquement initialisés en tant que dépôt.
openclaw setup
Organisation complète de l’espace de travail et guide de sauvegarde : Agent workspace Workflow de mémoire : Memory
Optionnel : choisissez un autre espace de travail avec agents.defaults.workspace (supporte ~).
{
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 des fichiers bootstrap :
{
agent: {
skipBootstrap: true,
},
}
La configuration qui en fait un « assistant »
OpenClaw est configuré par défaut pour un bon usage en tant qu’assistant, mais vous voudrez généralement ajuster :
- le persona et les instructions dans
SOUL.md - les paramètres de thinking (si souhaité)
- les heartbeats (une fois que vous avez confiance)
Exemple :
{
logging: { level: "info" },
agent: {
model: "anthropic/claude-opus-4-6",
workspace: "~/.openclaw/workspace",
thinkingDefault: "high",
timeoutSeconds: 1800,
// Commencer à 0 ; activer plus tard.
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 (consommation de tokens, dernier routage, etc.) :
~/.openclaw/agents/<agentId>/sessions/sessions.json(legacy :~/.openclaw/sessions/sessions.json) /newou/resetdémarre une nouvelle session pour ce chat (configurable viaresetTriggers). Envoyé seul, l’agent répond par un bref message de bienvenue pour confirmer la réinitialisation./compact [instructions]compacte le contexte de la 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.mdexiste mais est effectivement vide (uniquement des lignes vierges et des en-têtes markdown comme# Heading), OpenClaw saute le heartbeat pour économiser des 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
HEARTBEAT_OK(éventuellement avec un court complément ; voiragents.defaults.heartbeat.ackMaxChars), OpenClaw supprime la livraison sortante pour ce heartbeat. - Par défaut, la livraison des heartbeats vers les cibles DM de type
user:<id>est autorisée. Définissezagents.defaults.heartbeat.directPolicy: "block"pour supprimer la livraison vers les cibles directes tout en maintenant les exécutions de heartbeat. - Les heartbeats exécutent des tours complets de l’agent — des intervalles plus courts consomment davantage de tokens.
{
agent: {
heartbeat: { every: "30m" },
},
}
Médias entrants et sortants
Les pièces jointes entrantes (images/audio/documents) peuvent être exposées à votre commande via des templates :
{{MediaPath}}(chemin du fichier temporaire local){{MediaUrl}}(pseudo-URL){{Transcript}}(si la transcription audio est activée)
Pièces jointes sortantes de l’agent : incluez MEDIA:<chemin-ou-url> sur sa propre ligne (sans espaces). Exemple :
Here's the screenshot.
MEDIA:https://example.com/screenshot.png
OpenClaw extrait ces références et les envoie en tant que médias avec le texte.
Checklist opérationnelle
openclaw status # état local (identifiants, sessions, événements en file d'attente)
openclaw status --all # diagnostic complet (lecture seule, copiable)
openclaw status --deep # ajoute les sondes de santé du Gateway (Telegram + Discord)
openclaw health --json # instantané de santé du Gateway (WS)
Les logs se trouvent dans /tmp/openclaw/ (par défaut : openclaw-YYYY-MM-DD.log).
Étapes suivantes
- WebChat : WebChat
- Exploitation du Gateway : Gateway runbook
- Cron et réveils : Cron jobs
- Application macOS (barre de menus) : OpenClaw macOS app
- Application nœud iOS : iOS app
- Application nœud Android : Android app
- État Windows : Windows (WSL2)
- État Linux : Linux app
- Sécurité : Security