Hier soir, on a mis un chef d’orchestre devant nos agents, avec cinq patterns en poche. Mais un chef d’orchestre suit une partition qui va de gauche à droite — et le réel, lui, ne va pas de gauche à droite. Si les tests échouent, reviens en arrière. Si le dossier est sensible, appelle un humain. Attends que ces deux-là aient fini avant de continuer. Une partition ne sait pas écrire ça.

Vous savez qui sait ? Le réseau ferroviaire : des gares, des rails, des aiguillages qui envoient le train à gauche ou à droite selon la charge, des boucles de retour, des passages obligés en gare de contrôle. Décrire l’orchestration comme un réseau de rails, c’est le graph-driven agent orchestration — l’approche vers laquelle tous les frameworks convergent. Montez à bord — c’est pas sorcier.

Ce que la partition ne sait pas écrire

Reprenez les patterns d’hier : le pipeline est une ligne droite, le fan-out un éventail. Tant que le trajet est connu d’avance, tout va bien. Mais dès que le flux réel s’invite, la ligne casse :

  • la condition : « si la revue trouve un problème critique → retour au développeur ; sinon → déploiement » ;
  • la boucle : « régénère tant que les tests échouent — mais pas plus de trois fois » ;
  • la jonction : « la synthèse ne part que quand les trois relecteurs ont rendu leur copie » ;
  • l’arrêt en gare : « avant de merger, un humain valide » — le checkpoint d’avant-hier, devenu un citoyen du flux.

Vous pouvez enfouir tout ça dans le prompt d’un agent-chef et espérer. Ou vous pouvez le poser sur des rails : c’est exactement le choix qu’on va outiller.

Le réseau, pièce par pièce

Un graphe d’orchestration, c’est la même grammaire que le graphe de connaissances d’hier — nœuds et arêtes — mais avec un sens tout différent :

  • Un nœud = une gare, c’est-à-dire une étape. Et surprise : tout peut être une gare — un agent (probabiliste), une fonction classique (déterministe : parser, valider, compter), ou un humain (la gare de contrôle où le train attend le feu vert).
  • Une arête = un rail, la transition d’une étape à l’autre. L’arête peut être inconditionnelle (toujours ce rail) ou porter un aiguillage : une condition, évaluée sur ce que le train transporte.
  • L’état = le wagon de marchandises. Ce qui circule de gare en gare : le diff à relire, les verdicts accumulés, le compteur d’essais. Chaque gare lit le wagon, le complète, le renvoie sur les rails.
  • La boucle = le rail de retour — autorisée, mais bornée (trois tours max), sinon vous venez de construire un manège.
  • Le checkpoint = la photo du wagon en gare. L’état est persisté à chaque étape : si le réseau tombe à la gare 7, on reprend à la gare 7 — pas au dépôt.

Les cinq patterns d’hier, vus du ciel

Prenez de l’altitude, et regardez les patterns d’hier comme des formes de réseau : le pipeline est une ligne droite ; le fan-out, une étoile qui diverge puis converge en jonction ; l’orchestrateur-ouvriers, une étoile dont les branches se décident en route ; le handoff, un aiguillage dont la décision appartient à la gare ; le panel de juges, une étoile qui converge vers une gare de vote.

C’est le déclic de l’article : les cinq patterns ne sont pas cinq outils différents — ce sont cinq formes du même graphe. Voilà pourquoi les frameworks convergent : offrir le graphe, c’est offrir tous les patterns, plus tous ceux que vous dessinerez vous-même.

Pourquoi les rails changent tout

Le bénéfice profond tient en une phrase : le déterminisme reprend la structure, le probabiliste reste confiné dans les gares.

  • La structure devient du code : versionnée, relue en PR, testable — et dessinable. Un graphe d’orchestration se donne en diagramme as code : la doc et l’exécution sont la même chose.
  • L’observabilité est offerte : chaque arête franchie se journalise. Le débogage « à l’oreille » d’hier devient une lecture de trajet : le train est passé par ces gares, dans cet ordre, avec ce wagon.
  • La reprise est native : grâce aux checkpoints, un incident ne coûte que l’étape en cours — précieux quand le trajet complet se compte en heures et en tokens.
  • L’humain a une gare à son nom : le human-in-the-loop n’est plus un « pense à demander » dans un prompt, c’est un nœud — le train ne peut pas passer sans le feu vert.

Côté outils : c’est le modèle de LangGraph — qui a popularisé le nom — et, dans notre monde .NET, des workflows de Microsoft Agent Framework : des exécuteurs (les gares) reliés par des arêtes conditionnelles (les aiguillages), avec état et checkpoints. Les sous-agents de Copilot, vus ce matin, sont l’étoile simple ; le graphe est la généralisation.

Deux graphes, ne les confondez pas

La semaine vous a fait croiser deux graphes — et la confusion serait facile :

  Graphe de connaissances (hier) Graphe d’orchestration (aujourd’hui)
Les nœuds sont des entités (Paiement, ACME) des étapes (agents, code, humains)
Les arêtes sont des relations (dépend de) des transitions (si échec, retour)
Le graphe décrit ce que l’IA sait ce que les agents font
On le parcourt pour répondre exécuter

Et ils s’emboîtent naturellement : dans une gare du graphe d’exécution, un agent peut très bien interroger le graphe de connaissances — le détective consulte son mur pendant que le train roule. Deux mécaniques, deux rôles, zéro concurrence.

Le mot d’honnêteté

Les rails ont un prix, et le billet n’est pas donné :

  • La sur-ingénierie guette. Trois gares en ligne droite = un pipeline = trente lignes de script. Le graphe ne commence à payer qu’avec des aiguillages, des boucles ou des reprises. Dessiner une cathédrale ferroviaire pour un aller simple, c’est le piège classique du premier projet.
  • L’état partagé est un métier. Le wagon que tout le monde lit et modifie, c’est le problème des systèmes distribués — les conflits d’écriture et les schémas d’état qui gonflent n’ont pas disparu parce qu’on a dit « agent ».
  • Les rails figent. Un agent sur rails ne prendra jamais le raccourci génial que sa liberté lui aurait permis. C’est un arbitrage assumé : de la souplesse contre de la prévisibilité. Pour un flux de production, c’est presque toujours le bon échange — mais dites-le avec les yeux ouverts, et mesurez-le.

Le conseil pratique : dessinez d’abord sur papier. Si votre feutre ne trace ni losange (condition) ni flèche de retour (boucle), rangez le framework — un script suffit.

En résumé

  • Le graphe d’orchestration = gares (agents, code, humains), rails (transitions), aiguillages (conditions), wagon (état), photos du wagon (checkpoints).
  • Les cinq patterns d’hier sont cinq formes du même graphe — l’apprendre, c’est tous les avoir.
  • Le gain profond : structure déterministe, jugement confiné — traçable, reprennable, dessinable, avec l’humain comme vraie gare.
  • Ne confondez pas les deux graphes de la semaine : l’un sait (connaissances), l’autre fait (exécution) — et ils s’emboîtent.
  • Le graphe paie quand il y a conditions, boucles ou reprise — sinon, un script honnête fait l’affaire.

Le chef d’orchestre d’hier improvisait avec talent ; aujourd’hui, il a un plan de réseau sous les yeux — et vous savez désormais lire les deux cartes de la semaine : celle du savoir, celle du travail. La prochaine fois qu’un train d’agents déraille à 3 h du matin, vous saurez exactement à quelle gare regarder. Et ça, franchement… c’est pas sorcier.