À quoi servent Loop et Graph dans osFoundry, et lequel choisir ?
Il est 18 h 40 et l'assistant IA vient de vous annoncer que les tests en échec sont corrigés. Vous les lancez vous-même. Deux sont toujours rouges. Vous pourriez recoller la sortie et redemander, ou confier le travail à
Il est 18 h 40 et l'assistant IA vient de vous annoncer que les tests en échec sont corrigés. Vous les lancez vous-même. Deux sont toujours rouges. Vous pourriez recoller la sortie et redemander, ou confier le travail à quelque chose qui ne s'arrête que lorsque le test runner est d'accord. Le lendemain matin, une collègue du marketing pose une tout autre question : est-ce qu'un outil du même genre pourrait vérifier trois sites concurrents chaque jour ouvré avant son arrivée ?
Ces deux tâches se trouvent au même endroit dans osFoundry, sous deux entrées de menu voisines : Loop et Graph.
Deux façons de lancer des agents sans les surveiller
Un Loop est une façon réutilisable de faire travailler une équipe d'agents vers un objectif. Il regroupe une liste d'agents, un objectif rédigé en langage courant, un moyen de vérifier si cet objectif est atteint, des limites strictes (combien de tours, combien d'échecs consécutifs avant d'abandonner) et, en option, un déclencheur comme une planification. Il avance par tours, note chaque tour par rapport à l'objectif et s'arrête tout seul. Un Graph est un programme de workflow enregistré, pour les cas où le chemin n'est pas fixé : il peut bifurquer selon un résultat, refaire une partie jusqu'à ce qu'elle passe, répartir le travail entre plusieurs agents en même temps, se mettre en pause pour une validation humaine et appeler d'autres graphs. Les deux se trouvent dans la barre latérale principale de l'application de bureau osFoundry, Loop d'abord et Graph juste en dessous, et la distinction en une ligne donnée par l'application elle-même est celle à retenir : un Loop prend toujours le même chemin, un Graph décide de son chemin en cours de route.
Ce que l'on voit pendant qu'un Loop tourne
Voici une session Loop terminée (les tests et les noms de fichiers sont des données d'exemple). Les éléments à connaître :
- La colonne des sessions à gauche. Chaque exécution d'un Loop est une session à part, avec un statut en dessous. Ici, "Verified" signifie que le dernier tour a passé la vérification, pas que l'IA l'a affirmé.
- Le bandeau des tours en haut de la colonne centrale. "Round 3 of 4", plus la vérification utilisée ("Runs npm test — a zero exit code means done") et un compteur d'échecs de vérification consécutifs, c'est lui qui arrête un loop qui tourne en rond.
- L'onglet Rounds. Une ligne par tour avec le nombre de critères remplis ("1 of 3 met", "2 of 3 met", "3 of 3 met"). Ouvrez un tour pour voir exactement quels critères y sont passés.
- L'inspecteur à droite, avec les onglets Goal, Trigger et Hooks.
- Pause et Cancel au-dessus des panneaux, quand vous voulez qu'il s'arrête tout de suite et pas à la prochaine vérification.
Cas 1 : un développeur qui veut des tests vraiment au vert
Qui : un développeur solo en fin de journée, avec une suite JavaScript au rouge et un assistant qui crie victoire à chaque fois.
Vous ouvrez Loop et cliquez sur New session. La boîte de dialogue New loop run liste des loops prêts à l'emploi, et une recherche sur "JS suite" trouve Get the JS suite green. Avant de le lancer, la carte de droite indique comment il se comporte : Who runs it (un agent débogueur qui dirige trois spécialistes des tests), How it stops (4 tours au maximum, arrêt après 3 échecs consécutifs) et How it grades itself (il lance npm test, et seul un code de sortie nul compte comme terminé).
Sous Start it, vous choisissez Run once now au lieu de Just add it, sélectionnez le projet et le dossier dans lequel les agents doivent travailler, puis cliquez sur Run it now. Ensuite, vous ouvrez l'onglet Rounds et vous regardez. Dans l'exécution d'exemple, le premier tour a validé un test sur trois, le deuxième deux, et le troisième les trois ; à ce moment-là, le loop s'est arrêté de lui-même et la session a été marquée Verified.
Au final, vous n'avez pas un message de chat qui prétend avoir corrigé le problème, mais un historique tour par tour de quel test est passé et quand, noté par votre propre test runner. La même liste propose des loops pour les suites Python, Go, Rust et Java, les erreurs de typage, le lint et les tests instables.
Cas 2 : une marketeuse qui veut un rapport sur la concurrence chaque jour ouvré
Qui : une personne du marketing ou du produit qui vérifie les sites concurrents à la main et ne code pas.
Dans la même boîte de dialogue New loop run, la section du haut s'intitule "Start here — these need nothing set up", et Watch the competitors y figure, parce qu'il se contente de chercher sur le web et ne touche jamais à vos fichiers. Vous indiquez qui surveiller et quoi chercher dans Goal for this run (par exemple les prix, les nouvelles fonctionnalités et les recrutements), choisissez Run once now et cliquez sur Run it now. Le premier rapport ne liste que ce qui a changé, avec une date et une source sur chaque ligne, et les affirmations d'une entreprise sur elle-même sont signalées comme non vérifiées.
Pour le rendre récurrent, vous ouvrez l'onglet Trigger et cliquez sur Add a schedule. La boîte de dialogue Run this on a schedule propose des préréglages (Every 30 min, Hourly, Daily 09:00, Weekdays 09:00), affiche la ligne cron et les trois prochaines exécutions, et pose deux questions pratiques : que faire si une exécution est encore en cours quand la suivante arrive (Skip it, ou Wait, then run), et que faire si l'ordinateur était en veille (Up to an hour late, Up to 12 hours late ou However late).
Après Save schedule, l'onglet Trigger affiche "On a schedule" avec l'heure de la prochaine exécution. Elle a désormais un rapport qui l'attend chaque matin de la semaine, sans jamais ouvrir de terminal. Les planifications tournent tant que l'application de bureau est ouverte, et c'est à ça que sert le réglage de rattrapage.
Cas 3 : un lead dont le workflow doit bifurquer
Qui : un responsable d'équipe qui veut que chaque fichier d'un gros changement soit relu séparément, puis un rapport fusionné, avec une validation humaine avant toute action irréversible.
C'est là qu'un Loop n'a plus la bonne forme. Un Loop répète le même plan à chaque tour, alors que ce responsable a besoin d'un relecteur par fichier, puis d'une étape de fusion, et parfois d'une pause pour validation. C'est un Graph.
Vous ouvrez Graph et cliquez sur le bouton plus à côté de la liste. Create a Graph propose deux voies : Start with a working graph (un programme sûr et exécutable que vous ajustez ensuite) ou Choose a starter. Les starters sont des exemples complets de structures courantes, chacun avec une courte note sur le moment où l'utiliser. Review each item, then merge lance un agent par élément en parallèle, puis une seule passe de fusion. Triage and route classe une entrée une fois et l'envoie à exactement un spécialiste. Propose, ask, then apply prépare un changement, s'arrête pour attendre la réponse d'un humain et n'agit qu'en cas de oui.
Le programme lui-même est du code, pas un diagramme en glisser-déposer, parce que les bifurcations et les reprises bornées sont du vrai flux de contrôle. En général, on laisse Maestro ou un agent l'écrire ou l'ajuster, et on gère ce qui compte au quotidien dans Configure session : Maximum agents at once, une alerte de tokens, un Hard token ceiling, l'entrée par défaut, et l'agent et le modèle utilisés à chaque étape.
À l'exécution, le panneau a trois onglets. Run affiche les étapes en direct, avec Pause, Resume ou Cancel. Si le graph arrive à une étape de validation, une carte vous demande Approve ou Decline, et le reste du travail en parallèle continue pendant l'attente. Changes liste les fichiers créés ou modifiés par l'exécution, et certains de ces changements peuvent être annulés. History liste les exécutions précédentes, si bien qu'une exécution ratée et celle qui l'a corrigée se retrouvent côte à côte. Le responsable obtient une relecture reproductible dont les exécutions et les modifications de fichiers peuvent toutes être examinées plus tard. Les graphs se consultent dans un navigateur, mais il faut l'application de bureau pour en exécuter un.
Là où Loop et Graph se passent le relais
Aucune des deux fonctions ne travaille seule. Les agents du Team roster d'un Loop viennent d'Agent team et d'Agent Registry, et le loop lui-même est un preset réutilisable que vous pouvez versionner dans osStudio : relever un seuil de qualité ou une limite de reprises laisse donc un historique plutôt qu'une modification silencieuse. Un Graph reçoit un identifiant stable à sa création justement pour que des loops et d'autres graphs puissent l'appeler, ce qui veut dire qu'un Loop planifié peut lancer un Graph à bifurcations à 9:00. Dans Message, loops et graphs peuvent être membres d'un canal aux côtés de personnes et d'agents individuels, et leurs mises à jour arrivent donc dans le salon habituel de l'équipe. Pour la partie planification en détail, voir planifier des agents avec cron et les déclencheurs d'agents.
Les questions que posent les débutants
Un Loop, ce n'est pas juste une tâche cron ?
Non. La planification n'en est qu'une partie optionnelle. Un Loop, c'est une équipe, plus un objectif, plus une vérification, avec des limites de tours, et il tient un registre des critères remplis à chaque tour. Vous pouvez en lancer un une seule fois à la main sans jamais lui donner de déclencheur.
Si un Loop peut aussi faire tourner des agents en parallèle, pourquoi aurais-je besoin de Graph ?
Le parallélisme n'est pas la différence. Choisissez Graph quand l'étape suivante dépend du résultat de la précédente : router vers un spécialiste, ne refaire que la partie qui a échoué, attendre le oui d'un humain ou appeler un autre workflow. Si chaque exécution suit les mêmes étapes, un Loop est plus simple.
Un loop peut-il tourner indéfiniment et épuiser mon budget API ?
Chaque loop prêt à l'emploi a un plafond de tours et s'arrête après un nombre fixe d'échecs consécutifs, et la carte affiche les deux avant le lancement. Les graphs ont Maximum agents at once et un Hard token ceiling dans leurs réglages de session.
Est-ce que je dois écrire du code ?
Pas pour les Loops : vous en choisissez un, puis réglez l'objectif et le déclencheur dans des boîtes de dialogue. Le programme d'un Graph est du code, mais vous pouvez partir d'un starter, laisser Maestro ou un agent le modifier, et changer les entrées, les limites et les agents par étape sans toucher au programme.
Vous pouvez essayer les deux dans l'application de bureau, disponible sur osfoundry.io/fr/download.
Originally published by Dev.to AI. Aggregated on AIWithGhost for educational purposes — full credit and traffic to the original publisher.



