L’orchestration d’agents tient la route quand la revue de code part en sessions enfants. Sous OpenClaw 2026.4.x, sessions_spawn autorise un fork de contexte ou un mode isolé : le parent reste léger pendant que les relecteurs traitent les diffs. Ajoutez un Bearer court, des allowlists Session, maxSpawnDepth et un JSON d’échec stable — le motif se reproduit sur un Mac distant comme en local, sans noyer le fil principal.

Sur cette page : Scénarios · Frictions · Fork ou isolé · Frontière d’isolation · Jeton et passerelle · Gabarit de remontée · Étapes · FAQ

Suite aux guides CrewAI, AutoGen et Task Brain, ce volet cible l’isolation des sessions enfants : portée réelle du jeton, disparition de sessions_spawn dans le catalogue, séparation orchestrateur / feuille de revue. Achat, tarifs et documentation : consultation sans compte.

Où ce schéma rapporte le plus

Utilisez sessions_spawn quand une session unique absorberait des artefacts énormes (fichiers, linter, traces) tout en gardant un parent accountable : sweeps PR nocturnes sur Apple Silicon loué, audits multi-dépôts bornés, graphes relecteur→correcteur où seul l’orchestrateur écrit. En 2026.4.x, le mode est explicite : fork hérite d’un extrait curé du parent, isolated repart surtout de la tâche — une bifurcation « produit conversationnel », mais avec une frontière d’exécution outillée par OpenClaw. Les notes de version fixent aussi quels outils Session apparaissent par défaut et comment runId / childSessionKey nourrissent l’audit ; gardez openclaw --version dans la chronologie d’incident.

Trois façons de perdre encore des heures

1) Coller tout le diff dans le parent (budget jetons, bruit). 2) Bearer valide mais sessions_spawn encore en deny sur tools/invoke (catalogue vide, 401 obscurs). 3) Récursion illimitée : la feuille hérite d’outils d’écriture et la « lecture seule » dérape. Correctifs : enfants dédiés, allow explicites, profondeur plafonnée — avant de lancer les agents.

Choisir entre contexte fork et isolé

context: "fork" et "isolated" sont complémentaires : le premier sert à coller au dernier accord PR, le second à contenir une entrée non fiable. Documentez le choix par flux (« fork alignement », « isolated risque ») pour les revues d’architecture.

Mode Hérite Idéal pour Points de vigilance
fork Fragments de transcript que l’orchestrateur marque comme pertinents Revue PR standard où l’enfant doit refléter le dernier accord humain Resserrez la charge utile pour ne pas sur-partager des consignes privées
isolated Surtout le texte de tâche et la politique d’outils, pas l’historique parent complet Invites non fiables, balayages de plugins, échantillonnages par lots Ajoutez des listes de contrôle explicites pour compenser le contexte manquant

Frontière d’isolation : ce qui traverse, ce qui s’arrête

Traverse : auth locataire + extrait voulu par fork. Stop : transcript enfant complet, outils inutiles, récursion infinie. sessions_spawn est non bloquant côté orchestration : runId et childSessionKey pour corrélation pendant que la voie enfant travaille. Feuilles quasi lecture seule : pas de sessions_spawn imbriqué, pas d’outils destructeurs large. Si vous utilisez aussi openclaw agent --spawn, séparez les étiquettes de corrélation des graphes de revue nocturne.

Jeton Bearer et visibilité des outils

Le Bearer ouvre la passerelle ; la politique d’outils décide ce qui est invocable. Les outils Session restent souvent sur allow explicite : l’orchestrateur voit sessions_spawn, pas la feuille — moindre privilège via règles et patchs de session, même si la même chaîne de jeton « pourrait » passer. En HTTP tools/invoke, dupliquez l’allow et vos retries ; le tour in-agent reste la surface la plus cohérente (modèle + catalogue + policy alignés).

Gabarit de remontée d’échec (contrat JSON)

Le parent fusionne des résumés, pas des dumps. Champs stables, enveloppe unique, citations optionnelles redactées — référence pour sessions_yield ou callback :

{ "kind": "review_round_summary", "correlation": "runId-or-request-id", "verdict": "pass|fail|needs_human", "top_findings": ["...", "..."], "failure": { "class": "timeout|tool_denied|schema|gateway_401|unknown", "retryable": true, "message": "une seule ligne lisible par un humain" } }

Branchez failure.class, correlation et journaux ; needs_human part en ticket sans importer le brouillon enfant. Même correlation parent/enfant sur timeout pour éviter les pistes fantômes.

Étapes minimales reproductibles (six jalons)

  1. Node 22+ (LTS), node -v.
  2. CLI 2026.4.x — ex. npm install -g [email protected] — puis openclaw --version vs notes de version.
  3. openclaw doctor sur le Mac distant : URL passerelle, trust store, droits, proxy ; archivez avec le premier spawn OK.
  4. Bearer court ; manifeste orchestrateur avec outils Session + sessions_spawn. HTTP : lever le deny minimal sur tools/invoke.
  5. maxSpawnDepth / allowAgents : récursion réservée à l’orchestrateur ; task avec chemins, interdits, livrables ; context selon le tableau.
  6. JSON seulement via sessions_yield ; rejouer 401 et timeout pour valider la télémétrie.

Rappels runbook : fork vs isolé documenté par flux ; Bearer ≠ allowlist ; JSON fixe pour CI et humains.

FAQ

Isolé quand ? Entrée douteuse ou consignes sensibles à ne pas propager — même sur Mac mini loué.

401 + jeton neuf ? Souvent outils Session encore bloqués malgré le chat OK.

Modèle plus petit = moins de spawns ? Non — plafonds et catalogues, pas le poids.

En résumé : figez Node 22+, exécutez openclaw doctor sur 2026.4.x, alignez la portée du Bearer avec une autorisation explicite de sessions_spawn, choisissez fork ou isolé par voie de revue, et ne remontez que le résumé JSON d’échec. C’est la trajectoire la plus courte vers une orchestration de sous-agents fiable sur un Mac distant.