AI Frontier

OpenClaw 2026 sur macOS : approbation d'exécution d'outils et boucle humaine—matrice de politiques, holds destructifs, staging, Mac mini cloud

MacHTML Lab2026.05.2228 min de lecture

Les équipes qui font tourner OpenClaw sur une passerelle macOS en 2026 routent déjà les modèles et gèrent les 429—mais un outil mal classé peut encore supprimer des dépôts, poster sur Slack client ou exécuter shell avec des secrets de production. L'approbation d'exécution d'outils et les gates human-in-the-loop suspendent les appels destructifs jusqu'à validation humaine, avec timeouts et pistes d'audit. Ce tutoriel montre la classification des outils dans ~/.openclaw/openclaw.json et les exercices de hold sur un port de staging avant promotion LaunchAgent. À lire avec diagnostic doctor, profils JSON et environnement, profils staging/production, disjoncteurs amont et bascule modèle (dégradation fournisseur uniquement, pas substitut à l'approbation).

Vous repartez avec un modèle de menace, un modèle de matrice de politiques, des garde-fous (120 s max en attente, deny-on-timeout, canal staging séparé) et une checklist de déploiement sur un Mac mini Apple Silicon loué environ 16,9 $ par jour (tarif MacHTML publié).

Pourquoi l'approbation d'exécution existe

Les grands modèles convainquent mais n'assument pas la responsabilité. Si la passerelle expose write, shell ou browser, un chemin halluciné peut effacer un workspace, exfiltrer des clés API depuis ~/.openclaw/.env ou poster sur Slack client. Les gates d'approbation insèrent une décision humaine avant les effets irréversibles, avec deny explicite au timeout pour éviter les bots silencieux.

L'approbation n'est pas anti-automation : c'est un contrôle de risque par niveaux. Lecture seule en auto ; niveaux destructifs validés dans Slack, Telegram ou l'UI macOS. Documentez les niveaux dans une matrice lisible à 3 h du matin sans ouvrir le code.

Modèle de menace pour les outils agent

Partez de ce que la passerelle peut faire sur macOS : lire les chemins de l'utilisateur LaunchAgent, écrire dans git, shell avec variables d'environnement, navigateur avec cookies. Surfaces : injection via HTML collé, webhooks compromis, collage du .env production dans le staging.

Cartographiez le rayon d'impact : read (fuite d'info), write (intégrité), shell (compromission hôte), browser (détournement de session). Un read qui liste le home passe au niveau write sans liste blanche de chemins.

Matrice par canal et outil

Classe d'outilMode par défautNotes
read / grepAuto-approuverReclasser sans liste blanche
write / patchHumainAperçu diff dans le fil Slack
shellToujours approuverJamais auto en production
browserApprouver + domainesBloquer file:// et IP internes
DM / privéPlus strict que #generalSensibilité élevée

Publiez la matrice à côté du runbook. Si le produit exige « writes auto pour la vitesse », imposez un owner nommé et une date de fin—sinon chaque release érode le gate.

Squelette d'approbation openclaw.json

Politique d'approbation dans ~/.openclaw/openclaw.json à côté du routage modèle, pas dans le HTML versionné. Clés dans ~/.openclaw/.env avec chmod 600. Structure : classes d'outils, overrides par canal, timeouts.

{
  "tools": {
    "approval": {
      "default": "auto",
      "classes": {
        "read": "auto",
        "write": "human",
        "shell": "human",
        "browser": "human"
      },
      "pendingTimeoutMs": 120000,
      "onTimeout": "deny"
    },
    "channels": {
      "slack:#ops-alerts": { "write": "auto" },
      "slack:#customer-support": { "shell": "deny" }
    }
  }
}

Les noms de champs évoluent selon les versions OpenClaw—différez les release notes avant déploiement. Puis openclaw doctor et un hold par classe en staging.

Drills staging sans risque production

Liez les exercices à un port passerelle staging et un profil sans secrets production. Prompts fixes demandant shell et write ; carte d'approbation obligatoire avant exécution. Testez deny et timeout—message clair « refusé après 120 s », pas un « réflexion… » infini.

Alignez avec profils LaunchAgent staging/production. Ne répétez pas d'approbations destructives sur des bases clients depuis un portable qui signe aussi les plists production.

Contrôles doctor et journaux d'audit

À chaque changement de politique, joignez openclaw doctor --json au ticket. Middleware sain, webhooks joignables, pas de file pending orpheline après crash. Journalisez les correlation id sur approve/deny.

Si doctor signale un décalage d'enregistrement d'outils, corrigez le JSON avant LaunchAgent—approuver un outil inexistant entraîne des clics aveugles.

Checklist de déploiement production

  1. Empreintes de openclaw.json (sans secrets) en stockage ignoré par git.
  2. Classifier chaque outil ; mettre à jour la matrice wiki.
  3. Holds staging pour write, shell, browser avec captures.
  4. Approbation humaine en production, deny-on-timeout à 120 s.
  5. Surveiller la profondeur pending ; alerte si > 5 holds concurrents.
  6. Documenter le rollback : JSON + launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway.

FAQ

Les outils lecture seule sans approbation ?

Oui avec liste blanche de chemins ; reclasser les listages larges.

L'approbation ralentit-elle Slack ?

Regrouper par tour ; 120 s avec deny explicite.

Tester sans production ?

Profils staging et appels d'outils synthétiques—jamais de secrets production sur un portable.

Louer un Mac mini Apple Silicon via MacHTML garde les drills sur les mêmes builds WebKit, Keychain et Node que vos dirigeants—pas un conteneur Linux qui imite macOS. SSH pour les logs, VNC pour les boutons GUI. Consommation au repos souvent 6–12 W ; une semaine HITL coûte moins qu'un incident shell sur une branche de release.

Tarif publié environ 16,9 $ par jour. Fin du drill : arrêter l'instance ; la matrice reste dans la doc, pas de CapEx 36 mois de hardware.

Répéter l'approbation d'outils OpenClaw sur macOS réel

Louez un Mac mini cloud pour valider les gates HITL, les timeouts et les sondes doctor avant de promouvoir la politique d'approbation en LaunchAgents production.

Drill approbation sur Mac
Dès ~16,9 $/jour