« Le Task Brain n’a de valeur opposable que s’il reflète l’état réellement exécutable : lorsqu’un parent disparaît pendant que des enfants invoquent encore des outils ou écrivent sur disque, vous héritez de processus orphelins et d’une dérive des secrets. Ce tutoriel d’orchestration agentique rend explicites le traçage parent-enfant, l’ordre d’annulation et l’isolation des profils sur un Mac distant. »

Sur cette page : initialisation · gabarits flows · isolation des répertoires · annulation · FAQ

Croisez CrewAI, Instructor, LiteLLM et retries JSON pour un même récit ports et jetons.

Ruptures fréquentes

  1. Lignée perdue : la racine est annulée alors que des boucles HTTP enfants poursuivent sans parent_task_id dans les journaux.
  2. Répertoires partagés : deux dépôts réutilisent le même arbre maison et lisent un JSON d’identité agent dans le désordre après rotation.
  3. Dérive opérateur : aucun export JSON horodaté n’est conservé ; l’astreinte se rabat sur des captures d’écran non grepables.

Matrice de décision

Sujet Liste plate Parent-enfant Mac distant
Inventaire liste plate opaque parent_task_id + corrélation SSH : ids aussi sur disque
Annulation racine tuée → orphelins feuilles puis parents ; pgrep même user launchd et shell
Identité home global profil 0700 par dépôt chemins absolus stables
Artefacts logs + secrets mélangés scratchconfig gros caches → scratch rapide

Objectif plateforme : chaque graphe agentique publie la même lignée dans Task Brain, les journaux passerelle et les tickets sans improvisation shell. Sur Mac distant, cette discipline coûte moins cher qu’un week-end à traquer des zombies nés d’un cancel racine trop hâtif ou d’un profil importé par erreur depuis une autre équipe.

Initialisation

Exportez OPENCLAW_PROFILE par dépôt et OPENCLAW_HOME vers ~/openclaw-profiles/<slug>. Créez config, scratch, logs, lancez openclaw doctor --json, archivez le couple dans le coffre CI. Alignez la passerelle locale sur LiteLLM pour un port unique.

Sessions parallèles : épinglez le profil dans le shell ou tmux ; un cd vers un autre dépôt ne doit pas emporter d’exports fantômes sous peine de casser la lignée avant fan-out.

Opérations flows : gabarits de commandes

Les verbes évoluent selon les versions ; l’intention reste stable. Remplacez les drapeaux selon votre build ; ne collez jamais de jetons dans un dépôt.

openclaw flows tasks list --profile "${OPENCLAW_PROFILE}" --format json > "${OPENCLAW_HOME}/scratch/tasks-$(date +%Y%m%d-%H%M).json"
openclaw flows tasks tree --parent TASK_PARENT_ID --profile "${OPENCLAW_PROFILE}"
openclaw flows events tail --profile "${OPENCLAW_PROFILE}" --limit 40 > "${OPENCLAW_HOME}/scratch/events.txt"

Enchaînez list, tree, tail avant annulation ; horodatez scratch pour l’audit.

Isolation des répertoires

Jetons sous config/*.token en 0600 ; JSON d’identité à côté ; stdout verbeux → scratch seulement. Pas de symlink dépôt → home partagé ; utilisez .openclaw-local. Voir Haystack et vLLM pour caches jetables.

Documentez chemins absolus dans le runbook post-reboot pour éviter les écritures croisées entre profils.

Annulation et gestion des échecs

Annulez d’abord les enfants (sockets, shells), état terminal, puis parents. Comparez pgrep -fl openclaw au tail : curl détaché survit sans groupe ni pkill filtré par corrélation.

openclaw flows tasks cancel --task CHILD_ID --profile "${OPENCLAW_PROFILE}" --reason disjoncteur-ouvert
openclaw flows tasks cancel --task PARENT_ID --profile "${OPENCLAW_PROFILE}" --reason file-vide
openclaw flows tasks list --profile "${OPENCLAW_PROFILE}" --state running

Annulation idempotente si disjoncteur amont ; journalisez --reason.

Checklist incident (reproductible)

  1. Vérifier le profil actif ; openclaw doctor --json vert.
  2. Instantané list/tree/events vers scratch horodaté.
  3. Annoter les paires parent-enfant depuis la sortie tree.
  4. Annuler les feuilles, contrôler les processus, annuler les parents.
  5. Relister l’état running jusqu’à vide ou jusqu’aux seuls démons attendus.
  6. Reporter les identifiants de corrélation dans le pied de ticket ops.

Repères opposables

  • Un profil par projet supprime les surprises de rotation sur hôte partagé.
  • Identifiant parent sur chaque fan-out aligne exports Task Brain et journaux passerelle.
  • Scratch isolé du config évite que les sauvegardes aspirateurs n’avalent les jetons avec les journaux.
  • Annulation enfant d’abord plus pgrep reste la garde minimale lorsque coexistent HTTP et shell.

FAQ

Workers après parent ? Jobs détachés : grepez la corrélation, tuez PID résiduels.

Preuve d’isolation ? Arbres distincts, modes, jetons + schémas retries pour borner scratch.

CI ? Mêmes exports que prod, vault, validation manuelle si verbes changent.

Verbes différents ? Versionnez openclaw flows --help ; gabarits = intention.

Parcours sans connexion : prolongez sur le blog technique OpenClaw et agents, le centre d’aide, les pages tarifs et achat — accessibles sans authentification.

Résumé : profils distincts, gabarits flows documentés, répertoires d’identité étanches, annulation ordonnée avec contrôle processus et exports JSON — le Task Brain reste digne de confiance sur Mac distant longue durée.