SWARMRecherche en IA agentique et cybersécurité
Swarm

Agents IA : pourquoi j’ai placé un moteur déterministe au cœur de Swarm

Fabrice Pizzi · Projet Swarm

Un contrôle réussi sur V1 suit une modification V2 ; une comparaison des preuves et entrées refuse la preuve périmée, puis un nouveau contrôle permet de réexaminer V2.
Un contrôle réussi sur V1 ne qualifie pas V2 : la preuve doit correspondre au candidat effectivement évalué.
Image fixeOuvrir le GIF

Un agent peut produire un résultat convaincant et se tromper sur l’état de son propre travail. Dans un processus à plusieurs agents, un résultat peut aussi être correct au moment du contrôle et ne plus correspondre au candidat livré. C’est une raison centrale de mon choix d’un moteur déterministe pour Swarm : rendre les préconditions et les transitions explicites pendant l’exécution.

Les travaux de Cursor sur les agents autonomes de longue durée ont nourri cette réflexion, notamment autour de la séparation entre planification et exécution et des difficultés de coordination. Les mécanismes retenus pour Swarm sont mes choix d’architecture.

Quand le vert ne concerne plus le bon candidat

Considérons une tâche de développement. Un premier agent produit V1 et les contrôles identifiés réussissent. Un second agent corrige ensuite un détail, créant V2. Si le système conserve seulement une étiquette « tests verts », il peut autoriser la suite sur la foi d’un résultat qui ne porte plus sur les fichiers actuels.

Cette confusion peut laisser entrer une régression ou une configuration incorrecte dans une livraison. Elle n’exige ni attaque sophistiquée ni mauvaise intention : une modification légitime suffit à rendre une preuve obsolète. Le problème est le lien entre le résultat observé et l’objet sur lequel on décide.

Une preuve de contrôle qualifie des entrées identifiées ; elle ne qualifie pas automatiquement leur prochaine version.

Le processus doit conserver la tentative, les commandes réellement exécutées, leurs résultats et les artefacts requis. Avant la transition suivante, il doit vérifier que ces éléments correspondent encore au candidat et à la politique applicables. Si le lien est rompu, il faut reprendre les contrôles concernés, sans réécrire l’historique de V1.

Ce que le moteur peut vérifier

Dans les sources Rust actuelles de Swarm, la vérification des preuves compare notamment la tentative courante, le contrôleur attendu et l’empreinte de la politique. Elle examine les contrôles configurés, leur exécution, leur réussite et les artefacts attendus. Une absence ou une incohérence ne devient pas un succès vide.

Ces vérifications portent sur un contrat défini. Elles ne prouvent pas que la liste des contrôles est suffisante, que les tests couvrent tous les défauts ou que toutes les dépendances non déclarées ont été observées. Un moteur déterministe peut appliquer avec constance une règle insuffisante.

En mode humain, la réussite des contrôles doit rester distincte de l’approbation : un état en attente d’un humain ne doit pas être présenté comme une acceptation. En mode automatique, les exigences de contrôle et de revue applicables restent à établir sur le même candidat.

Le graphe sert à comprendre ce qui bloque

Le graphe devient utile lorsqu’il relie les prérequis, la tâche, la preuve attendue et la cause d’un refus. L’opérateur doit pouvoir distinguer une tâche non lancée, un contrôle échoué, une preuve périmée et une décision encore attendue. Une reprise apporte alors une nouvelle condition ou une nouvelle preuve ; elle ne consiste pas à répéter la même action jusqu’à obtenir un état vert.

Cette visibilité ne fournit pas pour autant un accès complet à l’activité interne d’un fournisseur. Une consommation ou un coût non observé doit rester inconnu. Le moteur n’installe pas non plus, par sa seule présence, un confinement des processus ou du réseau.

Quelle preuve pour la livraison ?

Pour notre scénario, le résultat attendu est précis : conserver la réussite historique de V1, refuser sa réutilisation indue sur V2, puis réévaluer V2 avec les contrôles nécessaires. La preuve d’une vérification locale reste distincte de la preuve du binaire réellement déployé.

Dans Swarm, les agents analysent, proposent et réalisent ; le moteur vérifie les conditions prévues aux frontières qu’il contrôle ; l’humain conserve les décisions qui lui reviennent. La qualité dépend de ces trois responsabilités et des limites que l’on sait encore reconnaître.