Oubliez Codex vs Claude Code, Goal Buddy résout enfin les deux problèmes
AAI LABS
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00Voici Gary l'escargot, qui a identifié une opportunité de marché pour créer une plateforme de rencontre pour escargots.
00:00:04Mais comme il est super lent, il veut que Claude Code gère ses tâches de longue haleine de manière autonome.
00:00:09Heureusement pour lui, les agents sont devenus très bons pour les tâches de longue durée. Claude Code a une
00:00:13commande "goal" qui permet à l'agent de continuer à travailler jusqu'à ce que la tâche soit terminée. Mais lors de nos
00:00:18tests, nous avons découvert beaucoup de problèmes avec cette commande. Comme Gary vient de traverser un
00:00:22divorce et que nous voulons qu'il soit heureux, nous avons trouvé cet outil open source qui corrige réellement le problème,
00:00:28et il ne fonctionne pas seulement avec Claude Code, mais aussi avec Codex. Répandre l'amour, tout comme ta mère qui, j'en
00:00:32suis sûr, t'aime autant que ton frère qui a un emploi. Claude Code avait précédemment sorti une commande appelée
00:00:38"goal" qui permet à l'agent de travailler jusqu'à ce qu'une certaine condition soit remplie. Nous n'avons pas couvert celle-ci sur notre
00:00:42chaîne, mais vous en avez probablement déjà entendu parler. Avant cela, il y avait un plugin appelé Ralph Wiggum
00:00:47qui a gagné beaucoup en popularité et qui faisait essentiellement la même chose. Il utilisait des hooks pour renvoyer le prompt
00:00:52à Claude Code jusqu'à ce que la condition soit réellement atteinte. Mais le problème, c'est que ces conditions doivent correspondre
00:00:57exactement, car la boucle Ralph utilise un script shell pour vérifier la condition littéralement, comme
00:01:02le garde à l'aéroport qui ne vous laisse pas passer parce que votre déodorant dépasse la limite
00:01:06de bagages. La commande "goal" fonctionne différemment : elle prend la condition et la conversation jusqu'ici et les transmet
00:01:11à un petit modèle, Haiku, et ce modèle évalue intelligemment si la tâche est terminée ou non.
00:01:17Il renvoie une décision oui ou non, et un "non" dit à Claude de continuer à itérer sur la même tâche, comme quand votre patron
00:01:22vous dit d'améliorer l'expérience utilisateur parce qu'il ne trouve tout simplement pas un bouton sur la page. Cela rend
00:01:27l'évaluation subjective, et pour des choses que nous ne pouvons pas quantifier par nous-mêmes, c'est une vraie amélioration.
00:01:32La commande "goal" fonctionne bien pour beaucoup de tâches, mais elle présente encore beaucoup de problèmes. Le premier est qu'elle
00:01:37n'utilise aucune base de connaissances ou système de fichiers qui suit la progression de la tâche. Comme elle ne
00:01:42fait pas ça, la seule source de vérité pour l'agent devient le contexte de la discussion. Cela pourrait vous rappeler
00:01:47ce souvenir douloureux, comme quand c'était votre père qui avait écrit la fortune en crypto sur un post-it tombé du frigo en
00:01:522017. Une fois que la session se termine pour une raison quelconque et que l'objectif n'a pas été atteint, vous pouvez bien sûr reprendre avec
00:01:58la commande de reprise de Claude. L'objectif ne sera pas perdu, mais la seule façon dont il sait où il s'est arrêté est le
00:02:03contexte du chat. Et comme cette commande est destinée à des tâches de longue haleine et non à des tâches simples, les choses peuvent devenir
00:02:08brouillonnes entre-temps. Bien sûr, avec l'objectif tournant pendant des heures, le gonflement du contexte et l'atteinte de la compaction
00:02:13deviennent forcément un vrai problème à un moment donné. Après la compaction, le résultat de l'agent se dégrade.
00:02:18Il commence à se comporter comme ma grand-mère qui, à cause de sa démence, commence à oublier le nom de
00:02:22cette chaîne. J'ai besoin que vous regardiez la dernière vidéo pour elle. Un autre problème est qu'il ne
00:02:27décompose pas les tâches en tâches plus petites. Au lieu de cela, il utilise simplement l'agent principal et effectue la décomposition des tâches
00:02:32par lui-même, comme Claude Code le fait normalement. Il n'y a donc pas de plan structuré et l'agent peut perdre la trace
00:02:37de ce qu'il reste à faire. Même si cela peut bien fonctionner dans certains cas, une définition peu claire
00:02:42de ce à quoi ressemble la fin d'une tâche pour les agents n'est jamais la bonne chose. L'objectif repose entièrement sur
00:02:47le modèle pour évaluer l'achèvement, donc cela pourrait ne pas être aussi efficace dans certains cas. C'est mieux que
00:02:52Ralph Wiggum qui est complètement rigide avec ses scripts, mais il devrait au moins y avoir une mesure
00:02:56qui indique à l'agent à quoi ressemble la fin, tout comme votre photographe de mariage qui ne cessait de dire
00:03:01"une dernière photo" jusqu'à ce que tout l'événement soit terminé. C'est là que l'objectif échoue, et ces choses
00:03:05peuvent sembler mineures, mais dans des flux de travail réels et lourds, elles peuvent entraîner de sérieux problèmes.
00:03:10Maintenant, Goal Buddy est un outil qui a été conçu avec un seul but : faire fonctionner la commande "goal"
00:03:16comme elle le devrait. Il résout tous les problèmes dont nous venons de parler, mais il n'obtient pas vraiment autant
00:03:20d'attention qu'il le devrait étant donné son utilité. C'est comme la baby-sitter sexy, sauf qu'au lieu de flirter
00:03:25avec vous, elle garde simplement vos tâches de longue haleine. L'objectif natif ne préserve pas l'état du travail
00:03:30localement, donc cet outil corrige cela et force l'objectif à lire et mettre à jour l'état local au lieu de compter sur
00:03:36l'historique de chat. Il termine également avec des preuves, de sorte que l'agent sait réellement à quoi ressemble la fin avant
00:03:42de commencer. Pour suivre la progression, il inclut également un tableau de bord complet où vous pouvez regarder
00:03:46votre agent travailler pendant qu'il est en activité. Et pour gérer tout cela, il est construit sur trois agents qui sont le
00:03:51scout, le travailleur et le juge. En gros, une équipe de startup Y Combinator où l'un fait tout le travail, l'un
00:03:56le regarde faire, et l'autre les juge tous les deux sur Twitter. L'installation est assez simple : il suffit de
00:04:01copier la commande d'installation et de la coller dans le dossier de votre projet. Il sera installé en tant que plugin
00:04:06disponible à la fois pour Claude Code et Codex. Une fois que vous commencez une nouvelle session, vous pouvez voir la commande
00:04:10disponible pour utilisation. Ces trois agents ont chacun un rôle strictement défini et un niveau d'accès. Comme cet
00:04:16outil est construit pour Codex également, les agents sont définis en TOML au lieu du format Markdown standard. Le
00:04:21premier agent est le juge, qui n'a qu'un accès en lecture seule. Il analyse de manière sceptique les décisions difficiles comme les portées risquées,
00:04:26les sources contradictoires et d'autres modèles pour s'assurer que la tâche est accomplie en toute sécurité. Ses
00:04:31instructions interdisent l'édition parce qu'il existe uniquement pour rendre des jugements, rien d'autre. Et comme sa
00:04:36tâche est hautement critique, le raisonnement de cet agent est réglé au maximum afin que les décisions soient prises correctement.
00:04:42C'est exactement comme quand vous composez ce SMS à votre crush depuis quatre heures d'affilée en
00:04:47plein milieu de la nuit. Une fois qu'il a fini de travailler, il renvoie une structure JSON avec les décisions approuvées et
00:04:52rejetées, ainsi que la justification. Le scout est un autre agent en lecture seule qui cartographie une tâche active
00:04:57et crée un reçu de preuve compact pour celle-ci. Comme son travail est simplement de vérifier l'état de la tâche,
00:05:02son effort de raisonnement est maintenu bas, tout comme le videur de votre club de strip-tease préféré : il ne se soucie pas
00:05:07vraiment de grand-chose. Et puis il y a l'agent travailleur, le seul avec un accès en édition. Il fait le travail réel et
00:05:12il n'est autorisé à exécuter qu'une seule tâche à la fois. Il y a aussi le rôle de PM, qui est le thread principal qui
00:05:17coordonne le flux de travail. Il se comporte comme un véritable chef de projet, en faisant le travail minimal possible.
00:05:22C'est la seule autorité qui peut réellement marquer la tâche comme terminée. Le flux de travail principal commence par exprimer
00:05:27l'intention de la tâche avec des mots appropriés, non pas vaguement comme nous, les homo sapiens, le faisons habituellement, mais d'une manière que
00:05:33l'agent peut correctement comprendre. Ensuite, l'oracle est défini. L'oracle est essentiellement un signal observable
00:05:38qui identifie le résultat. C'est ce contre quoi le système itère pour voir si la tâche peut être
00:05:43marquée comme terminée ou non. Cela pourrait être n'importe quoi : une suite de tests, un parcours navigateur, n'importe quels benchmarks d'artefacts ou le code
00:05:49qui transforme mon micro-ondes en machine à remonter le temps, parce que pourquoi pas ? Les agents IA font n'importe quoi à ce stade.
00:05:54Ensuite, l'étape suivante est le "surface" : il décompose la tâche en étapes exploitables, crée le tableau de bord et cartographie
00:06:00les tâches dans un format visuel. La dernière pièce est le PM : il est le manager dans ce cas et maintient l'objectif en cours
00:06:06jusqu'à ce que l'audit final marque l'objectif comme atteint. Pour utiliser Goal Buddy, il suffit de lancer la commande "goal prep".
00:06:11C'est celle qui initialise le flux de travail et vous définissez l'objectif que vous voulez qu'il atteigne. Il
00:06:16s'assure d'abord que les agents sont installés et prêts à être utilisés. Il lance ensuite le flux de travail, mais contrairement
00:06:21à la commande "goal" native, il est extrêmement conscient de lui-même et il supprime d'abord ses propres ambiguïtés en vous posant
00:06:27des questions afin que vous puissiez clairement définir l'implémentation. Et tout comme votre femme soupçonneuse,
00:06:32il continuera à poser des questions jusqu'à ce qu'il ait compris. La première étape se concentre sur la création des fichiers d'objectifs. Il place
00:06:38la demande originale avec nos réponses et les mappe ensuite vers l'objectif approprié dans un langage
00:06:43compréhensible par l'agent. Il contient un résumé de toutes les informations, puis définit l'oracle,
00:06:48ce qui est la partie la plus importante. L'oracle pour cette tâche est simple : tous les tests doivent passer avec
00:06:53un comportement approprié. Ce type d'objectif est spécifique car il peut être évalué
00:06:57programmatiquement, contrairement à votre couverture d'hier soir que votre femme ne croit absolument pas. Goal Buddy décompose tout le flux de travail
00:07:03en petites tâches réalisables. Ce sont des "slices" (tranches), mais contrairement au monde réel, la taille n'a pas d'importance ici
00:07:08parce qu'une petite tranche ne signifie pas une petite tâche : cela signifie quelque chose qui est sûr, peut être vérifié facilement
00:07:14et peut être exécuté individuellement. Il définit explicitement la taille de découpage sécurisée dans le document également. Il crée
00:07:19le state.yaml qui suit le projet et les tâches et définit à quoi ressemblerait la boucle PM. Le state.yaml consiste en
00:07:26tous les objectifs et règles, avec toutes les tâches décomposées par leurs identifiants et l'agent assigné. Il contient
00:07:31un champ pour suivre la tâche active également. Il mentionne aussi le tableau de bord lié. Il liste toutes les tâches à faire
00:07:36et les tâches en cours. Dans notre cas, l'agent scout est actuellement en cours et cartographie tous
00:07:42les fichiers et points de terminaison. Donc, pour démarrer la boucle, il suffit de copier cette commande et de l'exécuter. Elle demande à Claude de
00:07:47se fixer pour objectif de tout faire dans le fichier goal.md. À partir de là, il prendra la première tâche
00:07:52active comme un roi, puis fera appel à ses agents subordonnés pour l'effectuer. Une fois que le scout a terminé
00:07:58le travail, il met à jour le fichier de progression avec toutes ses découvertes et les documente dans un répertoire séparé.
00:08:03Il met également à jour le tableau de "en cours" à "terminé". Ensuite, la boucle prend la tâche suivante, la marque comme
00:08:08active et démarre l'agent juge. Le juge examine de manière critique les conclusions et séquence le rapport
00:08:13en le plus petit nombre possible de tranches verticales, ce qui constitue la décomposition des tâches pour que le travailleur puisse l'effectuer
00:08:18indépendamment. Il met ensuite à jour le compte des tranches et met à jour le fichier d'état en conséquence. Chaque tâche
00:08:22liste explicitement les fichiers autorisés, comment les vérifier et quand s'arrêter. C'est ainsi qu'il définit chaque tranche
00:08:28afin que les agents aient un résultat attendu clair, des vérifications et tous les détails nécessaires. Ensuite, un par un, il
00:08:33initialise l'agent travailleur et commence avec la première tranche. La progression de chaque agent peut être suivie
00:08:39via le tableau de bord. Vous saurez ce que fait chaque tâche, quel agent est actif, quelles tâches sont en attente et
00:08:44lesquelles sont terminées. Vous n'avez donc pas à surveiller les choses vous-même et pouvez réellement donner à vos enfants
00:08:48le temps dont ils ont besoin. Une fois que toutes les tâches sont terminées, il effectue le dernier audit en tant que PM,
00:08:53en s'assurant que tous les tests ont été correctement menés. Une fois l'audit terminé, il marque la tâche d'audit finale du
00:08:58juge comme terminée, puis marque l'objectif comme accompli. Après cela, vous devez commencer
00:09:03les prières et espérer que ces agents n'ont pas halluciné. Globalement, cela a très bien fonctionné compte tenu de la
00:09:09complexité et de l'échelle de l'application que nous lui avons donnée, mais nous pensons qu'une parallélisation plus efficace pourrait être
00:09:13ajoutée, car il a tout fait de manière séquentielle. Il a traité une tâche à la fois et n'a pas du tout utilisé
00:09:18les capacités de parallélisation de Claude Code. Dario aurait été réellement déçu de voir cela,
00:09:23mais étant donné la qualité de la planification du flux de travail, cela a très bien fonctionné. Aussi, si vous appréciez notre contenu,
00:09:28envisagez d'appuyer sur le bouton "hype", car cela nous aide à créer plus de contenu comme celui-ci et à atteindre plus
00:09:33de gens. Nous voulions aussi tester Goal Buddy sur quelque chose de plus générique, comme concevoir une interface utilisateur pour voir comment il
00:09:38gère des tâches qui ne peuvent pas être évaluées programmatiquement. Le test précédent portait sur un flux de travail spécifique avec
00:09:44des critères de réussite et d'échec clairs, mais tout comme votre nouvelle coupe de cheveux chez le coiffeur, certaines tâches
00:09:49n'ont tout simplement pas cela. Donc, nous avons d'abord donné à la commande "goal" habituelle un prompt vague. Il a initialisé les objectifs,
00:09:54consulté l'advisor et livré un site web en un rien de temps. En étant paresseux, il a juste créé une page HTML simple
00:10:00et n'a utilisé aucun framework, mais la landing page n'était pas mal. Nous avons donc donné le même prompt exact à
00:10:05Goal Buddy également. Une fois lancé, il a suivi le même flux de travail et a eu une session de questions similaire
00:10:10pour clarifier l'intention avec nous. Ici, Goal Buddy a également demandé la stack technologique. Normalement,
00:10:14j'appellerais ça du cirage de pompes, mais comme je prends mon agent IA au sérieux, je dirai qu'il est minutieux. De même, il
00:10:20a créé le tableau et le fichier goal.md et a traduit notre demande originale en un objectif approprié. Il a aussi
00:10:26correctement identifié l'oracle, mais l'oracle de la tâche précédente était simple, il devait juste réussir tous les
00:10:31tests. Celui-ci avait des objectifs différents : il a défini la tâche comme terminée lorsque le serveur de développement serait opérationnel
00:10:36et que les parcours dans le navigateur confirmeraient que toutes les sections fonctionnent comme défini. C'est ainsi qu'il a transformé une
00:10:41tâche non quantifiable en quelque chose de quantifiable. Il a également créé le state.yaml à nouveau avec l'oracle,
00:10:47les règles, les agents et toutes les tâches listées, puis a commencé à travailler de la même manière. Cela a pris plus
00:10:52de temps que la commande "goal" normale, mais il a fini par implémenter l'application correctement. Ce ne sera pas un
00:10:57problème pour Gary l'escargot, mais vous devriez faire des pompes en attendant, je vois que vous avez grossi.
00:11:02Comparativement, le site web complet était nettement meilleur que ce que la simple commande "goal" avait créé.
00:11:07Si vous voulez vraiment devenir un fondateur SaaS B2B dans l'IA qui aime construire plutôt que juste regarder des tutoriels,
00:11:12alors vous devriez rejoindre AI Labs Pro. Vous y trouverez des nerds partageant les mêmes idées que notre équipe, avec
00:11:17des ressources provenant des vidéos et plein d'autres avantages. Le lien sera dans la description et
00:11:22vous pouvez vérifier cela. Cela nous amène à la fin de cette vidéo. Si vous souhaitez soutenir la chaîne
00:11:27et nous aider à continuer à faire des vidéos comme celle-ci, vous pouvez le faire en utilisant le bouton "super thanks" ci-dessous. Comme toujours,
00:11:32merci d'avoir regardé et je vous verrai dans la prochaine.
Community Posts
No posts yet. Be the first to write about this video!
Write about this video