L'Architecture OpenClaw Complète Qui Scale Vraiment — Mémoire, Cron Jobs, Dashboard et les Erreurs Que Tout le Monde Fait

11 min read

Comme un fichier de sauvegarde Skyrim corrompu parce que vous avez installé 200 mods en croisant les doigts.
Mise à jour (20 fév. 2026) : Ce guide d'architecture a été écrit avant qu'Anthropic bannisse les tokens OAuth de Claude Max. Les patterns ci-dessous (mémoire, cron, dashboard, skills) n'ont pas changé — mais la couche modèle, si.

Ce qui a changé : Ma stack tourne maintenant sur Kimi K2.5 principal + MiniMax M2.5 de secours, via OpenRouter sur deux VPS à 5$/mois (Hostinger + Hetzner). 200$/mois → 15$. L'architecture est devenue plus simple — plus de gestion OAuth, plus de jonglage avec les rate limits. Migration complète : reconstruit pour 15$.

J'utilise OpenClaw quotidiennement depuis qu'il s'appelait encore Clawdbot. J'ai reconstruit mon architecture trois fois. La première version était un bordel de fichiers markdown qui s'est effondré sous son propre poids au bout de 10 jours. La deuxième était mieux mais n'avait aucune notion du temps — mon agent référençait avec assurance une réunion de janvier comme si elle avait eu lieu ce matin. La troisième version, c'est ce que je partage aujourd'hui, et elle tourne nickel depuis des semaines.

Décorticage complet : structure mémoire, tâches cron, dashboard, entraînement vocal, gestion API, et la sécurité que la plupart des gens zappent. Pas de théorie. Juste le système que j'utilise tous les jours pour gérer mes projets depuis un message Slack.

Architecture OpenClaw organisée avec dossiers mémoire structurés et système de fichiers hiérarchique
Quand ton agent IA a une meilleure organisation que ton bureau

Pourquoi votre OpenClaw n'arrête pas d'oublier

Voilà ce qui se passe réellement. Vous installez OpenClaw, vous le connectez à Slack ou WhatsApp, vous commencez à l'alimenter en infos — réunions, tâches, préférences, contexte projet — et pendant les premiers jours c'est magique. Votre propre Jarvis. Puis la fenêtre de contexte se remplit, la compaction mémoire se déclenche, et soudain votre agent pense que votre projet Supabase est une recette de cuisine qu'il a hallucinée.

Ce qui fait tenir le tout ensemble, c'est le fichier index

Balancer plus de mémoire sur le problème ne fait qu'agrandir le bordel. Ce qui a vraiment marché pour moi, c'est d'organiser ça comme un malade. Pensez-y comme à la gestion d'inventaire dans n'importe quel RPG — vous pouvez porter 200 objets, mais s'ils sont tous entassés dans un seul sac, vous ne trouverez jamais votre potion de vie quand le boss fight commence.

Mon architecture utilise six dossiers avec une hiérarchie claire :

  • soul/ — fichiers d'identité. Qui est l'agent, comment il se comporte, quels outils il peut utiliser. La fiche de personnage.
  • user/ — qui je suis, mon fuseau horaire, mes préférences, ma stack. Des trucs qui ne changent jamais. Les infos de quête PNJ.
  • daily/ — briefs quotidiens vivants. Un par jour, mis à jour tout au long de la journée, archivé après 7 jours.
  • projects/ — contexte détaillé sur les projets actifs. Travail d'agence, builds SaaS, pipeline de contenu.
  • meetings/ — sous-catégorisé par type (agence, contenu, interne, externe). Chaque réunion a un résumé, pas la transcription complète.
  • archive/ — tout ce qui a plus de 7 jours. Priorité plus faible dans la récupération, toujours accessible. Le stockage froid. La salle d'attente du /dev/null.

Ce qui fait tenir le tout ensemble, c'est le fichier index. Il se trouve à la racine du dossier mémoire, fait office de table des matières.

Chaque fois que l'agent traite une nouvelle entrée, il met d'abord à jour l'index — comme ça il sait toujours chercher avant de commencer à chercher.

Sans ça, votre agent fait basiquement un grep -r sur 400 fichiers en espérant que ça marche. (Spoiler : ça ne trouve pas ce dont vous avez besoin. Ça trouve une liste de courses d'il y a 2 semaines et un prompt cron à moitié écrit.)

Maintenant les briefs quotidiens. Ils méritent leur propre paragraphe parce que sans eux, j'ai découvert qu'OpenClaw oubliait des trucs entre le matin et le soir le même jour. Imaginez dire à votre programmeur en binôme qu'il y a un bug critique à 10h et qu'à 16h il vous demande sur quel projet vous bossez. C'est ce qui arrive sans les briefs quotidiens.

Le brief est un document vivant : créé à 7h avec les priorités, mis à jour toutes les 3 heures avec les progrès, bouclé en fin de journée avec les résultats. Ça donne à l'agent une ancre temporelle — un sens de "ce qui s'est passé aujourd'hui" que la mémoire plate ne peut tout simplement pas fournir.

Je sauvegarde ça dans Supabase au lieu de me reposer uniquement sur le markdown :

-- table daily_briefs  
create table daily_briefs (  
  id uuid default gen_random_uuid() primary key,  
  brief_date date not null unique,  
  priorities jsonb default '[]',  
  completed jsonb default '[]',  
  notes text,  
  meeting_summaries jsonb default '[]',  
  archived boolean default false,  
  created_at timestamptz default now(),  
  updated_at timestamptz default now()  
);  
  
-- Auto-archivage après 7 jours  
create or replace function archive_old_briefs()  
returns void as $$  
  update daily_briefs   
  set archived = true   
  where brief_date < current_date - interval '7 days'  
  and archived = false;  
$$ language sql;

Pourquoi s'embêter avec une base de données quand OpenClaw gère la mémoire tout seul

Parce que les fichiers markdown se font compacter silencieusement par le LLM. Un jour vos notes de réunion sont là, le lendemain elles ont été fusionnées dans un résumé vague que vous reconnaissez à peine. C'est comme un git squash mais personne ne l'a demandé et il n'y a pas de reflog. Supabase me donne des données persistantes et requêtables qui ne disparaissent pas. En plus je peux construire des dashboards dessus. (Et si vous avez besoin d'un VPS pour faire tourner tout ça 24h/24, j'utilise la config OpenClaw one-click de Contabo — j'en reparle plus tard.)


Les tâches Cron qui font tourner tout pendant que je dors

Les tâches cron, c'est là qu'OpenClaw passe de "chatbot fancy" à véritable agent. Pensez-y comme programmer votre PNJ pour qu'il grinde pendant que vous êtes hors ligne. Évidemment ça ne marche que si votre agent tourne 24h/24 — un VPS dédié au lieu de votre laptop qui s'endort chaque fois que vous fermez l'écran. Mon planning :

crons:  
  - name: "morning-brief"  
    schedule: "0 7 * * *"  
    prompt: "Crée le brief quotidien d'aujourd'hui. Récupère mes 3 priorités   
    principales basées sur les tâches incomplètes d'hier et le calendrier d'aujourd'hui.   
    Sauvegarde dans le dossier daily/ et met à jour l'index."  
  - name: "brief-update"  
    schedule: "0 */3 * * *"  
    prompt: "Met à jour le brief quotidien d'aujourd'hui avec les éléments terminés,   
    les nouvelles entrées, et tous changements. Reste concis."  
  - name: "meeting-sync"  
    schedule: "0 21 * * *"  
    prompt: "Récupère les réunions d'aujourd'hui depuis Fathom. Catégorise par   
    projet. Sauvegarde les résumés dans le dossier meetings/. Croise avec   
    les projets actifs."  
  - name: "day-wrap"  
    schedule: "0 3 * * *"  
    prompt: "Boucle la journée. Archive les briefs de plus de 7 jours.   
    Résume les résultats clés. Prépare le contexte pour demain."  
  - name: "content-draft"  
    schedule: "0 9 * * 0"  
    prompt: "Rédige le contenu de cette semaine basé sur les projets récents,   
    les victoires, et les observations. Utilise le profil vocal. Output dans content/."  
  - name: "heartbeat"  
    schedule: "*/30 * * * *"  
    prompt: "Vérifie Slack pour les messages sans réponse. Fait tourner les emails.   
    Signale les éléments du calendrier dans les 2 prochaines heures."  
  - name: "weekly-compaction"  
    schedule: "0 2 * * 1"  
    prompt: "Consolide la mémoire de la semaine dernière en un seul résumé   
    hebdomadaire. Supprime les fichiers redondants. Met à jour l'index."

Le wrap-up de 3h du matin au lieu de minuit — c'est volontaire. Si vous bossez tard, vous ne voulez pas que votre session du soir soit coupée entre deux briefs. Je l'ai mis à 3h parce que, bon, il m'est arrivé de pusher des commits à 2h47 un mardi et j'en suis pas fier mais je vais pas faire semblant que ça n'arrive pas.

La compaction hebdomadaire c'est celle qui a sauvé ma config d'elle-même. Après 3 semaines sans, mon dossier memory/ avait grossi à 400+ fichiers et OpenClaw était confus sur quelle "mise à jour projet" je voulais dire quand je disais "la mise à jour projet". C'était comme demander de quel "Jean" vous parlez dans une boîte où 40% des employés s'appellent Jean. Lundi 2h, consolider tout de la semaine dernière en un seul fichier résumé, nettoyer le reste. Différence du jour à la nuit.

Pour les trucs plus complexes (comme les pipelines réunion-vers-tâche), je passe par des webhooks n8n au lieu de faire faire des appels API directs à OpenClaw. L'agent envoie un payload JSON structuré à n8n, n8n gère le flux Fathom → Supabase → notification. Bien plus fiable que de faire jongler un LLM avec 4 endpoints à la fois — j'ai essayé l'autre méthode d'abord et ça s'est passé aussi bien qu'un déploiement en prod un vendredi après-midi.


Le fix pour "l'amnésie API"

## tools-reference.md (dans soul/)  
## APIs disponibles  
- **Supabase**: REST à [URL], clé dans env, RLS activé  
- **webhooks n8n**: POST vers [webhook-url] pour les flux complexes  
- **GitHub**: token dans env, repos: [liste]  
- **Fathom**: transcriptions réunions via /api/v1/meetings  
## Règles  
- NE JAMAIS me demander les clés API. Elles sont dans ton environnement.  
- Pour les écritures en base, TOUJOURS utiliser l'API REST Supabase.  
- Pour les automations multi-étapes, déclencher le webhook n8n.  
- En cas de doute sur un outil, vérifier ce fichier D'ABORD.

Ce fichier là a résolu un des problèmes les plus chiants que j'avais. OpenClaw... oublie ses propres outils parfois. En pleine session, après compaction du contexte, votre agent va vous demander une clé API qu'il a littéralement utilisée 20 minutes plus tôt. Comme un dev qui ferait rm -rf sur son propre .env et se demanderait ensuite pourquoi rien ne marche.

Parce que ce fichier vit dans soul/ (la couche identité de l'agent), il se charge avec une priorité élevée dans chaque session. C'est basiquement un fichier .env pour le cerveau de votre agent. L'agent a arrêté de me demander des credentials le jour même où j'ai ajouté ça. Je me suis senti con de ne pas l'avoir fait plus tôt.


Le débat Dashboard

Je vais dire un truc qui va peut-être me faire ratio dans la communauté OpenClaw : arrêtez de construire des dashboards avec des outils no-code si vous savez déjà coder.

Il y a eu une vague récemment. Se connecter à Supabase, glisser-déposer un tableau Kanban, câbler l'API, sortir un tuto YouTube. Les démos ont l'air géniales, les vidéos font des vues, tout le monde construit son "système d'exploitation."

Ça marche bien. J'ai vu les démos, elles ont l'air propres.

Mais si vous avez déjà Supabase dans votre stack et que vous savez écrire un composant React, pourquoi vous ajoutez une dépendance que vous ne contrôlez pas ? C'est comme installer une extension VS Code pour écrire une boucle for. Chaque fois que la plateforme no-code met à jour son API ou change ses prix, c'est un problème que vous devez maintenant résoudre. Pour un dashboard.

Mon approche — Next.js qui lit depuis la même instance Supabase :

// app/dashboard/page.tsx  
import { createClient } from '@supabase/supabase-js'  
const supabase = createClient(  
  process.env.NEXT_PUBLIC_SUPABASE_URL!,  
  process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!  
)  
export default async function Dashboard() {  
  const { data: tasks } = await supabase  
    .from('tasks')  
    .select('*')  
    .order('updated_at', { ascending: false })  
  const columns = {  
    todo: tasks?.filter(t => t.status === 'todo') || [],  
    in_progress: tasks?.filter(t => t.status === 'in_progress') || [],  
    done: tasks?.filter(t => t.status === 'done') || [],  
  }  
  return (  
    <div className="grid grid-cols-3 gap-4 p-6">  
      {Object.entries(columns).map(([status, items]) => (  
        <Column key={status} title={status} tasks={items} />  
      ))}  
    </div>  
  )  
}

Même Kanban. Contrôle total. Déploiement sur Vercel en 30 secondes. OpenClaw écrit dans Supabase, le dashboard lit depuis Supabase. Pas de middleware, pas de câblage supplémentaire, pas de prière pour qu'un service tiers ne sunset pas votre fonctionnalité préférée mardi prochain.

Peut-être que je suis biaisé parce que j'aime vraiment construire des frontends avec Claude Code et que je trouve les outils no-code frustrants — chaque fois que j'en utilise un j'ai l'impression de jouer à un jeu d'aventure point-and-click où la logique du puzzle n'a de sens pour personne. Mais le point reste valable — si vous savez coder, vous devriez probablement juste coder. Une chose de moins qui peut péter à 3h du matin quand vous déboguez déjà autre chose.


Entraînement vocal : Apprendre à votre agent à ne pas sonner comme un post LinkedIn 🤓

Donc ma tâche cron de rédaction de contenu produisait de la merde pendant les 2 premières semaines. Chaque dimanche matin j'avais un brouillon qui sonnait comme "Je suis ravi d'annoncer" rencontre "vos avis ? 👇" — le genre de trucs qui vous fait scroller plus vite qu'une bannière de cookies. Le problème c'est que j'avais juste balancé 50 posts dans la mémoire en disant "apprends ma voix". C'est pas comme ça que ça marche.

Ce qui l'a réparé, c'est les annotations. Sérieusement, c'est toute l'astuce. Ne balancez pas juste des posts bruts.

## voice-profile.md (dans soul/)  
## Règles de style  
- Paragraphes courts. 2-3 phrases max.  
- Ouvrir avec un résultat ou une prise contrariante, jamais une question  
- Exemples de code de vrais projets, pas des démos jouets  
- Humour : sec, auto-dépréciatif, références dev  
- Pas de tirets. Pas de langue de bois corporate.  
## Top posts (annotés)  
### Post 1 (2 400 impressions - a marché grâce aux chiffres $ spécifiques)  
[contenu]  
### Post 2 (1 800 impressions - a marché grâce à l'analogie inattendue)    
[contenu]  
### Post 3 (900 impressions - la structure thread l'a porté)  
[contenu]

Sans annotations, l'agent fait la moyenne de votre style — et la moyenne de tous vos posts c'est la version la plus fade possible de vous. Avec elles, il capte ce qui performe vraiment — les patterns, les structures, les ouvertures qui accrochent les gens.

La prose a encore besoin d'édition, je dirais qu'elle me fait 70% du chemin, mais comme moteur de premier brouillon ça me fait économiser des heures chaque dimanche. C'est des heures que je peux passer à faire littéralement n'importe quoi d'autre, y compris fixer mon terminal en faisant semblant d'être productif.


À propos de l'architecture virale à 250K$ 🦞

Vous avez peut-être vu le buzz cette semaine. Un tweet qui a explosé prétendait qu'une agence à 250K$/mois tourne entièrement sur une config OpenClaw — structures mémoire, templates de tâches cron, entraînement vocal, dashboard custom. Des milliers de gens qui commentent pour se faire DM l'architecture. Énergie "file-moi le meta build" au maximum.

Personne ne fait 250K$ par mois à cause de sa config OpenClaw

J'ai regardé. L'architecture est vraiment solide — beaucoup des idées d'organisation mémoire recoupent avec ce que j'ai décrit plus haut, et les patterns de tâches cron sont quasi identiques aux miens. Du bon boulot, vraiment utile.

Mais soyons réalistes. Personne ne fait 250K$ par mois à cause de sa config OpenClaw. C'est comme dire que vous avez gagné le tournoi à cause de votre clavier. Ils le font parce qu'ils ont des clients, ils livrent des résultats, et ils concluent des deals. L'agent IA vous rend plus rapide. Il ne vous remplace pas. Les gens qui se ruent pour copier l'exacte structure de dossiers en pensant que c'est une sorte de code de triche — c'est pas comme ça que ce jeu marche.

Ce qui vaut la peine d'être volé de ces configs : la hiérarchie mémoire, l'ancrage temporel avec les briefs quotidiens, le pattern de référence API. Empruntez les principes, adaptez-les à votre propre stack et workflow. C'est ce que j'ai fait et ça a marché bien mieux que quand j'ai essayé de copier la config de quelqu'un d'autre un-pour-un.


Sécurité. Lisez vraiment cette partie, s'il vous plaît.

Je sais, je sais. Les sections sécurité sont les conditions générales des articles tech — tout le monde les zappe. Mais celle-ci est différente parce que les chiffres sont vraiment terrifiants.

SecurityScorecard a trouvé plus de 135 000 instances OpenClaw exposées sur internet public cette semaine.

Plus de 50 000 vulnérables à un bug d'exécution de code distant connu. Hier — littéralement hier — OpenClaw a poussé la version 2026.2.12 qui patche 40+ vulnérabilités. SSRF dans la gateway, directory traversal dans les skills, détournement de session via webhooks. Quarante. Plus. C'est pas un patch, c'est une mission de sauvetage.

Si vous faites tourner quelque chose comme la config que j'ai décrite, avec des creds Supabase, des clés API, des transcriptions de réunions, et des données business qui transitent par votre agent — vous devez faire ça aujourd'hui :

  • Binder sur localhost, pas 0.0.0.0. La config par défaut expose votre agent à tout internet. C'est comme laisser votre clé SSH dans un repo GitHub public sauf que le repo c'est toute votre vie numérique.
  • Activer l'authentification gateway. Par défaut c'est grand ouvert.
  • Garder Row Level Security activé dans Supabase. Ne désactivez pas RLS parce que "l'API en a besoin." Utilisez des clés service role avec un scope approprié.
  • Auditez vos skills. Bitdefender a trouvé ~900 packages malveillants sur ClawHub. Installez depuis les sources, vérifiez avant de faire confiance.
  • Lancez **openclaw update** maintenant. Le patch 2026.MM.DD n'est pas optionnel.

Votre agent a vos enregistrements de réunions, vos credentials de base de données, votre contexte business. Si la gateway est exposée, tout ça est exposé aussi. J'essaie pas de vous faire peur, juste — faites-le maintenant, pas "plus tard ce weekend". Ça prend 10 minutes. 🔒


La version courte

  • Mémoire : 6 dossiers + fichier index. Briefs quotidiens mis à jour toutes les 3 heures. Archivage après 7 jours. Sauvegardez dans Supabase pour que le LLM ne puisse pas silencieusement supprimer votre contexte.
  • Automatisation : 6–7 tâches cron couvrant brief matinal, mises à jour, sync réunions, wrap-up, rédaction contenu, heartbeat, compaction hebdomadaire.
  • Dashboard : construisez-le vous-même si vous savez coder. Next.js + Supabase + Vercel. Zappez la couche no-code, c'est une chose de plus à maintenir.
  • Sécurité : localhost, auth, RLS, skills auditées, derniers patches. Faites-le avant de faire quoi que ce soit d'autre. Si vous avez besoin d'un VPS qui gère tout ça out of the box, Contabo a un déploiement OpenClaw one-click qui vient pré-configuré — c'est ce que j'utilise.

L'architecture n'est pas le fossé. Se pointer tous les jours et vraiment l'utiliser, ça c'est le fossé. 🧱


Si ça vous a évité les trois reconstructions que j'ai traversées — suivez-moi pour plus de breakdowns testés sur le terrain de workflows d'agents IA, configs d'automatisation, et les trucs de sécurité dont personne ne veut parler. La suite : câbler OpenClaw à n8n pour un pipeline de monitoring auto-réparant qui attrape les problèmes avant vos utilisateurs.


Découvrez l'architecture OpenClaw qui transforme votre agent IA d'un chaos de fichiers à un assistant ultra-organisé, sans théorie creuse.

Rejoindre la newsletter