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)
- Node 22+ (LTS),
node -v. - CLI 2026.4.x — ex.
npm install -g [email protected]— puisopenclaw --versionvs notes de version. openclaw doctorsur le Mac distant : URL passerelle, trust store, droits, proxy ; archivez avec le premier spawn OK.- Bearer court ; manifeste orchestrateur avec outils Session +
sessions_spawn. HTTP : lever le deny minimal surtools/invoke. maxSpawnDepth/allowAgents: récursion réservée à l’orchestrateur ;taskavec chemins, interdits, livrables ;contextselon le tableau.- 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.