IA et automatisation 29 avril 2026

Workspace OpenClaw, openclaw.json et isolation d’état ~/.openclaw sur Mac mini loué partagé (2026)

VmMac Engineering Team 29 avril 2026 ~21 min de lecture

Les ingénieurs plateforme qui hébergent OpenClaw sur un seul Mac mini Apple Silicon loué via VmMac apprennent vite que « ça marche dans mon shell » n’est pas « ça marche sous launchd pour deux squads ». Le joint fragile n’est presque jamais la carte modèle—c’est la racine du workspace, le contrat openclaw.json versionné et l’arbre d’état par utilisateur sous ~/.openclaw. Quand le staging écrit des caches à côté des jetons de prod ou que le WorkingDirectory dérive après un déploiement, la passerelle lit le mauvais fichier et l’incident ressemble à une « régression LLM ». Cette matrice 2026 nomme les frontières et s’appuie sur isolation launchd staging vs prod, hygiène des secrets et des plists et isolation multi-compte pour que les hôtes VmMac à Hong Kong, Japon, Corée, Singapour et États-Unis restent d’un ennuyeux alignement.

Commencez par installation et déploiement, la sémantique d’accès dans l’aide, et les tarifs quand la direction préfère un second mini à une semaine de plus d’archéologie d’état partagé.

Frontière du workspace : racine du dépôt vs checkout runtime

Traitez le workspace OpenClaw comme le répertoire que votre automatisation checkout : openclaw.json, manifestes skills, wrappers locaux couverts par revue de code. Tout ce qui est généré à l’exécution—gros caches, miroirs de poids téléchargés, brouillons—reste hors git sans politique d’artefacts explicite.

Sur VmMac, souvent aucun symlink : la clarté bat la débrouille. Si les ingénieurs clonent dans ~/src/openclaw-tenant-a mais que launchd pointe encore vers le ~/build/openclaw du mois dernier, vous chassez des fantômes. Documentez le chemin absolu canonique par locataire sur la même page que les bastions SSH.

  • Git porte l’intention—défauts, feature flags, listes d’outils auditées.
  • Le disque porte l’entropie—caches, transcripts à masquer plus tard, exports temporaires.
  • Les plists portent la colle—environnement, cwd, session utilisateur, chemins de logs.

openclaw.json comme contrat : versions, revues, formes des secrets

openclaw.json doit se lire comme un schéma d’API : clés stables, défauts explicites, commentaires seulement où votre dialecte JSON l’autorise. Rejetez les diffs qui glissent des clés API longue durée en ligne—elles vont au coffre décrit dans l’hygiène des secrets, pas dans un fichier que tout stagiaire peut cherry-pick.

Taguez les releases pour répondre « quelle config a tourné à Tokyo à 03:14 ? » sans SSH. Hotfix régional : branche, déploiement, merge—les flocons temporaires sur hôtes partagés survivent à leurs auteurs.

Garde-fou : si deux locataires ont des listes d’outils tools différentes, il leur faut d’autres fichiers ou d’autres utilisateurs—jamais basculer le même chemin deux fois à la main chaque jour.

~/.openclaw et associés : ce qui ne doit jamais entrer en collision

Utilisez une matrice pour décider du préfixe d’état home vs workspace.

Artefact Workspace État home
Tables de routes passerelle / manifestes d’outils épinglés Oui—JSON revu Non—éviter le split-brain
Cookies de session, blobs d’appariement appareil Non—jamais committer Oui—chmod strict
Logs structurés Modèles optionnels Oui—gros, rotation
Overrides par développeur Jamais sur hôtes CI partagés Portable perso seulement

« Peut-on supprimer ~/.openclaw pour réinitialiser ? » : répondez avec une section du runbook, pas à l’improviste—la suppression répare des caches empoisonnés mais casse un appariement légitime sans étapes d’export.

Matrice multi-locataire sur un Mac mini

VmMac excelle sur le métal dédié, mais les finances imposent parfois le partage. Classez honnêtement :

Schéma Force d’isolement Charge opérationnelle
Hôtes physiques séparés par locataire Maximale Drame minimal
Utilisateurs macOS séparés sur un hôte Élevée Moyenne—quotas disque et discipline VNC
Même utilisateur, autres répertoires Faible—aimant à erreurs humaines Élevée—audits constants

Si la troisième ligne est imposée : au minimum des labels LaunchAgent disjoints, des ports localhost distincts et une automatisation nocturne qui diff les plists actives contre git. Mieux : suivre l’isolation staging jusqu’à ce qu’un second mini soit approuvé.

launchd WorkingDirectory, EnvironmentVariables et précédence des chemins

WorkingDirectory n’est pas décoratif—il définit comment les chemins relatifs dans openclaw.json se résolvent et quel arbre node_modules se charge. Ajoutez des EnvironmentVariables explicites pour tout ce que vous exporteriez dans ~/.zshrc sur un portable. Après modification, validez toujours avec launchctl print gui/$UID/com.example.openclaw (adapter le domaine).

Test odeur : si le README dit de faire cd avant OpenClaw, la plist est incomplète.

À travers Hong Kong, Japon, Corée, Singapour et États-Unis, gardez des modèles de plist identiques ; mettez les endpoints régionaux dans de petits fichiers env référencés par chemins absolus pour des diffs lisibles en audit.

Runbook incident : empoisonnement d’état vs vraie régression modèle

  1. Capturer le pwd de la passerelle depuis la sortie launchctl print.
  2. Hasher openclaw.json dans ce cwd et comparer au tag git déployé.
  3. Lister taille et mtime du sous-arbre d’état ; chercher SQLite ou JSONL qui explosent.
  4. Couper le nouveau trafic, vider les files, snapshotter les logs.
  5. Déplacer l’état empoisonné—pas effacer—pour garder la preuve post-mortem.
  6. Rejouer la requête en échec contre un hôte canari VmMac propre.
  7. Avant de fermer le ticket, documenter si le correctif était config, disque ou modèle.

Beaucoup de faux « baisses de qualité modèle » en 2026 sont en fait des listes d’outils obsolètes ou des jetons OAuth expirés côte à côte dans le même arbre d’état—le LLM va bien ; le système de fichiers non.

FAQ : workspace et état OpenClaw sur Mac mini loué

openclaw.json doit-il vivre dans git sur un Mac mini loué partagé ? Oui pour le schéma et les défauts non secrets, mais jamais comme seul foyer des secrets—associez les fichiers dépôt à un plan de secrets documenté unique et à des préfixes d’état par locataire pour que le staging ne lise pas les jetons de prod depuis le disque.

Que mettre dans ~/.openclaw vs le checkout workspace ? Caches machine durables, appariement appareil et matériel runtime sensible sous l’arbre d’état home ; configuration revue par l’équipe dans le workspace ; launchd définit WorkingDirectory explicitement.

Comment isoler deux équipes sur un hôte VmMac sans mélanger l’état OpenClaw ? Préférez des utilisateurs macOS séparés ou des hôtes séparés ; si partage obligatoire : préfixes façon OPENCLAW_HOME disjoints, labels LaunchAgent sans chevauchement, ports localhost distincts selon notre runbook d’isolation staging.

WorkingDirectory launchd change-t-il quel openclaw.json est lu ? Les chemins relatifs se résolvent depuis WorkingDirectory et l’environnement utilisateur ; un cwd ambigu est la première cause pour que le staging lise des copies workspace de prod—épinglez des chemins absolus dans les plists après validation.

Comment aligner les hôtes à Hong Kong, Japon, Corée, Singapour et États-Unis ? Conservez la même révision git d’openclaw.json en n’autorisant que des overrides d’environnement régionaux intentionnels ; diff des plists chaque mois ; refusez les edits ad hoc par hôte sans ticket.

Pourquoi un second Mac mini VmMac coûte moins cher que la chirurgie d’état partagé

Séparer les locataires sur un autre mini transforme les puzzles chmod ambigus en frontières joignables par le réseau que la sécurité comprend. La location marginale apparaît nettement dans les COGS ; la semaine-ingénieur de merges forensiques souvent pas.

Si la direction hésite, montrez le nombre d’incidents du trimestre dont la cause racine était « mauvais cwd » ou « cache partagé ». Si ce n’est pas zéro, la physique est d’accord—il fallait un autre hôte.

Cloner l’état, pas le mystère

Louez un second Mac mini VmMac pour le staging OpenClaw afin que le ~/.openclaw de prod ne voie jamais les caches expérimentaux.