Guide de déploiement 2026-04-27 10 min

2026 — OpenClaw Active Memory et sous-agents sur Mac physique distant : migration MEMORY.md, chaleur d'écriture et audits JSONL alignés sur la sandbox passerelle — runbook 7j/7 pour longues sessions (extraits de configuration + FAQ)

Les équipes plateforme qui font tourner OpenClaw en sessions longues 7j/7 sur des Mac physiques distants loués butent souvent sur trois échecs : MEMORY.md qui dérive des répertoires de travail des sous-agents, une chaleur d'écriture qui sature les SSD, et des JSONL d'audit passerelle non joignables aux journaux hôte. Cet article livre deux matrices de décision, un runbook reproductible en sept étapes, des extraits prêts à coller, trois seuils de validation et une FAQ — avec des liens vers le déploiement de nœuds physiques et le pilotage multi-région sur la même classe de matériel.

2026 — OpenClaw Active Memory, sous-agents et alignement des audits JSONL sur Mac distant

1. Périmètre et public visé

On suppose OpenClaw déjà installé sur macOS avec une passerelle, et l'usage ou le projet d'Active Memory (mémoire de travail durable entre tours) ainsi que de sous-agents (processus séparés, souvent avec un autre cwd pour les outils). Hors périmètre : quotas d'API cloud et routage de modèles — ici seulement contrats de chemin, cadence de vidage, champs d'audit et listes blanches sandbox.

L'essentiel : garder MEMORY.md (ou équivalent) sur un chemin absolu déclaré dans la configuration ; les sous-agents n'écrivent que via ce chemin ou un RPC contrôlé ; maîtriser la chaleur d'écriture avec demi-vie et vidage par lots ; émettre un requestId au bord passerelle pour que le JSONL dedans et dehors de la sandbox partage le même nom de champ. Pour fiabiliser le déploiement sur nœuds loués et la cohérence multi-région, croisez ce runbook avec Déploiement OpenClaw 2026 : pourquoi le déploiement local de nœuds Mac physiques est la seule solution et Guide de déploiement mondial 2026 : Choisir le meilleur nœud macOS par région.

2. Points de friction

  1. Contrainte : chemins relatifs × plusieurs cwd. Les sous-agents lancés depuis un sous-dossier du dépôt écrivent MEMORY.md profond dans l'arbre tandis que le parent lit encore l'ancien emplacement — scission de chemins, pas une amnésie inexplicable.
  2. Coût caché : chaleur d'écriture = amplification. Réécritures complètes à chaque tour avec fsync, combinées au JSONL d'audit, peuvent saturer l'iowait sur des hôtes 7j/7 avant même le trafic métier.
  3. Stabilité et audit : deux rédacteurs, deux arbres. Quand la sandbox bloque les chemins hôte, les sous-agents déposent les audits dans des répertoires privés et les jointures jq côté hôte échouent — en général requestId et politique des chemins inscriptibles n'ont jamais été unifiés.

3. Matrices de décision

Utilisez-les avant la mise en production pour trancher où vit la mémoire et à quelle cadence vous videz sur disque.

Support mémoire Cas d'usage idéal Risque principal
MEMORY.md unique Petites équipes, revue humaine, moins de quelques milliers d'entrées Écritures concurrentes ; queues de taille de fichier
Fichiers fragmentés (sujet ou session) Longues sessions avec LRU et archives Index et références croisées entre fichiers
Index vectoriel externe seul Rappel orienté recherche, passerelle hors hôte Partition réseau — chemin de dégradation à définir à l'avance
Stratégie chaleur d'écriture Bilan disque Risque cohérence
Réécriture complète à chaque tour Faible Faible
Seuil + vidage par fenêtre temporelle Élevé Fenêtre de crash peut perdre le dernier lot (ajouter WAL ou double écriture)
Événements à forte valeur uniquement Maximal Mauvais prompts sous-documentent le contexte

4. Extraits de configuration (alignés sandbox)

JSON illustratif — les noms de champs doivent correspondre à votre version OpenClaw figée. Non négociables : chemins absolus, listes blanches et propagation du requestId.

{
  "memory": {
    "path": "/Users/ocagent/workspace/MEMORY.md",
    "encoding": "utf-8",
    "flush": { "maxEvents": 32, "intervalMs": 5000, "halfLifeRounds": 12 }
  },
  "subagents": {
    "defaultCwd": "/Users/ocagent/workspace",
    "inheritEnv": ["OPENCLAW_REQUEST_ID", "MEMORY_PATH"]
  },
  "gateway": {
    "auditJsonl": "/Users/ocagent/logs/gateway-audit.jsonl",
    "sandbox": {
      "writable": [
        "/Users/ocagent/workspace/.sandbox/scratch",
        "/Users/ocagent/logs/sandbox-audit.jsonl"
      ]
    }
  }
}

Dans le plist launchd, exportez MEMORY_PATH et OPENCLAW_REQUEST_ID (ou faites définir ces variables par enveloppe passerelle à chaque requête) afin qu'une session SSH au premier plan ne diverge pas du démon sans présence humaine.

5. Runbook en sept étapes (Mac physique distant)

  1. Geler les chemins faisant foi. Documentez fichier MEMORY, JSONL d'audit et répertoire scratch sandbox en chemins absolus sur la page de garde du runbook — aucune divergence wiki / commentaires.
  2. Migrer MEMORY.md. Copie en maintenance ou lecture seule, vérifiez avec diff, horodatez les métadonnées migratedAt dans le bloc d'en-tête.
  3. Normaliser le cwd des sous-agents. Forcez defaultCwd vers le workspace principal ou passez un drapeau mémoire explicite équivalent.
  4. Activer le schéma JSONL. Accordez-vous sur ts, level, requestId, actor, memoryOp, durationMs pour la passerelle et les enfants.
  5. Acceptation sandbox. Sondes : écritures hors liste blanche échouent et émettent des lignes deny ; les succès restent sous writable.
  6. Régler la chaleur d'écriture. En passant du vidage complet par tour aux lots fenêtrés, rejouez un script de conversation 24 h et observez iostat plus la croissance JSONL.
  7. Rejouage des jointures. Jointure externe des JSONL hôte et sandbox sur requestId avec jq ; toute paire manquante bloque la promotion en production.

6. Seuils réutilisables

  • Fenêtre de vidage par lots (démarrage) : environ 3–8 s ou 16–32 événements, selon la première limite atteinte ; allongez avec la demi-vie pour les sessions très longues.
  • Rotation JSONL d'audit : découpez vers 128–256 Mo pour que la synchro stockage objet ne traîne pas des queues multi-gigaoctets.
  • SLA de jointure : en préprod, 0 % de paires requestId manquantes sur une heure ; alerte production si le taux dépasse durablement 0,1 % hors classes de dérive d'horloge que vous documentez.

7. FAQ

Q : EACCES en écrivant MEMORY.md ?

R : Vérifiez que le propriétaire correspond au UserName du plist ; sur volumes partagés, contrôlez que le montage n'est pas réservé à root.

Q : Les journaux des sous-agents indiquent un chemin mémoire différent de la config principale ?

R : Ordre des surcharges d'environnement — retirez MEMORY_PATH obsolète des profils shell et fixez des EnvironmentVariables explicites dans launchd.

Q : Les lignes JSONL sont énormes et le disque explose ?

R : N'enregistrez pas les prompts complets par défaut — journalisez hashes, longueurs et alias de modèle ; placez les gros contenus derrière des pointeurs vers stockage objet.

Q : Le fichier d'audit sandbox est écrit mais jamais collecté ?

R : Ajoutez le chemin aux listes blanches de l'agent de collecte ou exposez un montage APFS en lecture seule au hôte avec revue de sécurité documentée.

8. Synthèse : pourquoi le Mac mini convient à la mémoire active et à l'I/O d'audit sur longues sessions

Active Memory avec audit JSONL, c'est en pratique de petites écritures fréquentes plus des processus longue durée : la qualité du disque, l'équité du planificateur et le comportement énergétique déterminent si votre stratégie de chaleur d'écriture tient. Le Mac mini Apple Silicon (par exemple M4) combine bande passante mémoire unifiée et une consommation au repos d'environ ~4 W, ce qui convient à des passerelles 7j/7 silencieuses gardant mémoire et journaux sur stockage local rapide.

macOS fournit aussi launchd, Unified Logging et des instantanés APFS pour raccourcir le triage lorsqu'apparaît une ligne deny de sandbox ou une régression de vidage — en complément du durcissement Gatekeeper et SIP face à l'exposition malware typique des boîtiers Windows toujours allumés.

Si vous déplacez des longues sessions d'un portable vers un Mac physique distant pour que sous-agents, sandbox passerelle et rotation JSONL partagent une base prévisible, le Mac mini M4 reste l'un des ancres les plus rentables aujourd'hui — figez les chemins une fois et laissez le même profil matériel porter votre runbook de la préprod à la production.

Offre limitée

Prêt pour un nœud OpenClaw 7j/7 ?

Louez un Mac mini physique sur ZoneMac, figez chemins absolus et plists launchd, et exécutez la même pile Active Memory + JSONL que celle validée en préproduction.

Paiement à l'usage Activation rapide Socle sécurisé
Location cloud macOS Offre à prix mini
Obtenir maintenant