Que se passe-t-il lorsque vous planifiez un projet d'envergure sans personne pour diriger ? La plupart des piles logicielles reposent sur l'idée d'un orchestrateur unique. Un processus détient l'état, met les tâches en file d'attente et les distribue. Si ce coordinateur redémarre, l'ensemble du flux de travail trébuche. Un nouveau projet renverse totalement ce postulat. Il montre comment un essaim d'agents IA peut décomposer un objectif tel que « planifier un voyage de deux semaines au Japon » en un arbre de tâches complet, sans qu'aucun nœud ne détienne le plan complet à un instant donné.

Pourquoi construire un système sans leader ?

Les planificateurs centralisés sont faciles à appréhender. Vous envoyez une requête à un serveur, il répartit le travail et les exécutants font leur rapport. Le problème est que le serveur devient un goulot d'étranglement cognitif et physique. Il détient la vérité.

Dans une configuration distribuée, la vérité devient une image partagée sur laquelle le réseau converge grâce au protocole de gossip. Cette implémentation Python spécifique relie deux concepts distincts. Le premier est une boucle d'affinement itérative : un agent rédige une proposition, un autre la note, et un troisième la peaufine. Le second est une couche de réseau peer-to-peer basée sur libp2p, qui permet aux agents de se découvrir automatiquement sans registre ni équilibreur de charge. Le résultat est un cluster où les pairs apparaissent, proposent, votent et exécutent sans qu'aucun chef d'orchestre ne soit présent.

Les quatre rôles

Le système attribue à chaque participant l'une des quatre personnalités. Vous n'avez pas besoin de quatre machines physiques. Elles peuvent coexister sur un seul ordinateur portable ou être réparties sur un réseau domestique. Les rôles sont :

  • Décomposeur. Cet agent reçoit l'objectif de haut niveau et propose une division en sous-objectifs. Comme le système exécute plusieurs décomposeurs en parallèle, vous pourriez obtenir trois recettes différentes pour le même voyage au Japon. L'un pourrait diviser le voyage par géographie : Tokyo, Kyoto, Osaka. Un autre pourrait diviser par activité : transport, hébergement, restauration, visites. Un troisième pourrait séquencer par jour. Le réseau prend tous ces éléments en compte.

  • Évaluateur. Ces agents agissent comme un comité de rédaction. Ils inspectent une division proposée et la notent. Un score reflète si les sous-objectifs sont suffisamment concrets, non redondants et collectivement exhaustifs. Plus important encore, un évaluateur décide si une proposition est assez bonne pour être acceptée. Sans son approbation, une division reste en suspens.

  • Exécuteur. Une fois que l'arbre atteint des nœuds feuilles suffisamment petits pour être traités, les exécuteurs se précipitent pour les revendiquer. Ils n'attendent pas la permission d'une file d'attente centrale. Au lieu de cela, ils utilisent un protocole d'horodatage (timestamp) pour déterminer qui a la priorité sur une tâche. Le vainqueur exécute le travail via un appel LLM local et diffuse le résultat.

  • Observateur. C'est le spectateur discret dont tout réseau a besoin. Il écoute silencieusement le gossip, reconstruit l'arbre de planification à partir des échanges et affiche un instantané lisible. Comme il ne parle jamais, il prouve un point important : toute personne rejoignant le réseau tardivement peut comprendre l'intégralité du plan simplement en écoutant les échanges.

Le gossip comme source de vérité

La couche libp2p gère la découverte et la messagerie. Les agents se trouvent les uns les autres grâce à la découverte de pairs intégrée au protocole, puis diffusent des messages sur un sujet partagé. Il n'y a pas de base de données de référence, pas de cache Redis détenant le plan canonique.

Chaque pair conserve sa propre copie de l'arbre de planification et la met à jour en fonction du gossip qu'il entend. Lorsqu'un décomposeur diffuse une proposition, tous les autres nœuds la reçoivent, valident le format et ajoutent la branche à leur arbre local. Lorsque les évaluateurs votent, le décompte se propage de la même manière. Si deux exécuteurs publient des revendications conflictuelles pour la même tâche, le protocole d'horodatage résout la collision. Le réseau retient la revendication la plus ancienne et rejette la plus tardive.

Au fil du temps, l'arbre croît vers le bas à partir de l'objectif initial, à travers des couches de sous-objectifs acceptés, jusqu'à atteindre des tâches de taille réduite. Le processus ressemble à une blockchain atteignant un consensus, à la différence que la charge utile est un itinéraire de voyage ou une spécification logicielle plutôt qu'un registre de pièces.

Vote et course à l'exécution

La démocratie coûte cher, et ce système en paie le prix en termes de latence. Une division ne l'emporte que si suffisamment d'évaluateurs sont d'accord. Ce seuil peut être une simple majorité ou un quorum plus strict, selon la configuration du cluster. Les décomposeurs ne cessent de proposer, le réseau évalue donc souvent plusieurs arbres concurrents à la fois. Finalement, l'un d'eux atteint le nombre de votes requis et ses sous-objectifs passent du statut de brouillon à celui d'acceptés.

Les exécuteurs ajoutent une couche supplémentaire de coordination. Comme les tâches sont publiques sur le canal de gossip, plusieurs exécuteurs peuvent tenter de saisir le même nœud feuille attrayant. Le protocole d'horodatage sert d'élément de départage. Chaque revendication porte un horodatage monotone, et le réseau honore le plus ancien. Le perdant passe simplement à la tâche suivante disponible. C'est rudimentaire, mais cela évite d'avoir besoin d'un ordonnanceur centralisé verrouillant des lignes dans une base de données.

La résilience par conception

L'architecture prouve sa valeur lorsque des problèmes surviennent. Si un décomposeur plante après avoir proposé la moitié des sous-objectifs, les décomposeurs survivants continuent de proposer des divisions. Le plan ne se bloque pas en attendant un redémarrage. Si un évaluateur quitte le réseau, les votants restants peuvent toujours atteindre le quorum, à condition d'avoir dimensionné le cluster de manière appropriée.

Le véritable avantage réside dans les arrivées tardives. Un nouvel agent qui démarre à mi-parcours n'a pas besoin d'un instantané ou d'un