Codex vient de devenir LE MEILLEUR harnais pour les agents longue durée
CChase AI
Computing/SoftwareVideo & Computer GamesInternet Technology
Transcript
00:00:00Codex pourrait bien battre Claude Code ici avec la sortie de sa toute nouvelle fonctionnalité expérimentale Goals
00:00:05Codex est désormais le moyen le plus simple d'exécuter des tâches de codage autonomes de longue durée sans
00:00:10avoir à inclure de couches d'orchestration supplémentaires ; Goals agit comme une boucle
00:00:15RALPH intégrée plus sophistiquée. Vous lui donnez un objectif et il travaillera
00:00:19pendant potentiellement des heures et des heures pour résoudre ce problème sans que vous ayez besoin d'intervenir
00:00:25et aujourd'hui, je vais vous montrer comment ça marche, comment le configurer et nous ferons
00:00:29une démo réelle pour voir la bête en action. Aujourd'hui, nous allons créer Rift Salvage, notre jeu vidéo
00:00:35de combat en 2D qui utilise des assets originaux et que nous avons construit strictement via Goals. Cette fonction
00:00:42est l'un des vrais différenciateurs de Codex en ce moment et elle est ridiculement simple à utiliser.
00:00:47On parle d'une seule commande slash, donc il y a énormément de valeur ici. Que
00:00:51vous utilisiez l'application de bureau Codex ou le CLI Codex, vous devez activer Goals car c'est une
00:00:56fonctionnalité expérimentale. Vous pouvez demander à Codex de le faire ou le faire vous-même rapidement
00:01:01dans l'application Codex. Je vais simplement aller dans les paramètres, puis dans la configuration.
00:01:07Ici, là où il est écrit "open config.toml", je clique dessus pour l'ouvrir dans VS Code
00:01:15et ici, vous devez ajouter deux lignes si elles n'y sont pas déjà : features et goals = true.
00:01:22C'est tout, ça prend deux secondes. Si c'est trop compliqué, vous pouvez aussi dire à Codex :
00:01:27"Hé, peux-tu activer Goals pour moi ?" donc features goals equals true. C'est tout. Maintenant, pour utiliser Goals
00:01:35dans l'application de bureau et le CLI, vous faites juste /goal. Pour une raison
00:01:40que j'ignore, sûrement car c'est expérimental, quand vous faites /goal, vous n'aurez pas
00:01:43de notification indiquant que ça fonctionne, mais vous verrez une fois le prompt lancé
00:01:48qu'on aura un petit badge confirmant que Goal est actif. Si vous l'activez, assurez-vous de
00:01:53redémarrer Claude Code après pour que les changements s'appliquent. Mais quand vous faites /goal,
00:01:58vous ne verrez rien au début, contrairement à d'habitude quand vous lancez une "skill" ou
00:02:02quelque chose qui donne un retour immédiat. Mais c'est normal. Avant la
00:02:08démo dans l'appli, laissez-moi expliquer comment ça fonctionne réellement sous le capot.
00:02:13Mais d'abord, un mot de notre sponsor : moi-même. Comme vous le savez, dans Chase AI Plus, j'ai la
00:02:18Masterclass Claude Code, mais je viens aussi de sortir la Masterclass Codex. Vous avez maintenant deux outils
00:02:24pour passer de zéro à développeur AI. C'est le meilleur endroit pour apprendre
00:02:29car je pars du principe que vous n'avez aucune connaissance technique et on se focalise sur des cas réels.
00:02:34Si vous voulez y accéder ou écouter mon webinaire gratuit dans quelques jours, le lien est
00:02:40dans le commentaire épinglé. J'espère vous y voir. Comme dit en intro, Codex Goals est
00:02:46en gros une boucle RALPH intégrée plus sophistiquée. Qu'est-ce qu'une boucle RALPH, me direz-vous ?
00:02:51Petit rappel pour ceux qui auraient oublié. À la base, une boucle RALPH, si on l'utilise dans
00:02:57quelque chose comme Claude Code, c'est juste une ligne de code. C'est une boucle bash, exactement ce
00:03:03que vous voyez ici. L'idée est de lancer cette ligne et ce qui va se passer,
00:03:09c'est que ça va démarrer Claude Code ou Codex ou n'importe quel système d'IA qui va lire un fichier prompt.md.
00:03:16Ce prompt dira : "Hé, voici ce qu'on essaie de faire, voici comment je veux le faire et
00:03:21voici les critères de réussite". Dans cet exemple, on veut augmenter la couverture des tests sur
00:03:28les fichiers d'authentification, ce qui signifie créer plus de tests, et on s'arrête quand la couverture
00:03:33atteint 75 %. C'est le but final. La boucle commence alors,
00:03:41consulte le prompt et l'injecte dans la session d'IA. La session effectue un tour,
00:03:48lit le prompt ainsi qu'un fichier state.md. Ce fichier d'état permet de voir :
00:03:56"Ok, si on a les tâches 1, 2 et 3, qu'est-ce qui a été fait et est-ce que
00:04:03ça marche ?". Disons qu'au premier tour elle finit la tâche 1, au tour suivant elle va
00:04:10voir le fichier d'état et se dire : "Hé, la tâche 2 n'est pas faite, devinez ce qu'on va faire
00:04:14dans cette session ou la suivante ?". Si ça ne marche pas du premier coup, elle dit :
00:04:18"Hé, voici ce que j'ai tenté", et ainsi de suite jusqu'à ce que toutes les tâches soient finies. Une fois que l'agent
00:04:25a fini son tour, il met à jour le fichier, le tour se termine et la boucle continue. On obtient ce genre de
00:04:30boucle continue où le système vérifie constamment différents fichiers pour voir ce qui a été fait,
00:04:35ce qu'il reste à faire, quel est l'objectif final et, une fois les critères de réussite atteints,
00:04:41il dit : "Hé, on a fini", tout ça de manière autonome. C'est l'idée des boucles RALPH. Maintenant,
00:04:48pour que les boucles RALPH fassent plus de choses, il faut un échafaudage supplémentaire, gérer la facturation,
00:04:53l'usage intelligent des tokens... pas forcément évident. Et si ça plante ? Si
00:04:58l'agent crash ou si vous faites Ctrl+C, comment sait-il s'il a vraiment fini ? Y a-t-il
00:05:02un tiers intégré qui vérifie tout ? Pas vraiment, car à la base, c'est juste une
00:05:08ligne de code. Comparez ça à Goals. Goals, dans l'ensemble, fonctionne de la même manière : on lui dit
00:05:15de faire quelque chose, il a un plan et il met à jour constamment des fichiers internes disant :
00:05:19"Voici ce que j'ai fait, voici ce qu'il reste à faire", pour atteindre l'état final. Donc globalement,
00:05:23c'est assez similaire, mais il y a des différences. D'abord, on a ces deux fichiers
00:05:29Markdown qui vous sont invisibles : continuation et budget limit. Que
00:05:35font-ils ? Ils permettent à Codex d'agir différemment si vous
00:05:40approchez de vos limites d'utilisation, ce qui est crucial. Il y a une fin
00:05:46plus élégante de la part du système par rapport à une boucle RALPH classique. Dans une boucle RALPH,
00:05:52si le budget est atteint, c'est fini. Avec Codex, il trouvera un moyen de vous
00:05:57laisser dans un état où vous pourrez reprendre plus tard. En pratique, Codex effectue son tour
00:06:03dans sa boucle Goals ou RALPH, peu importe comment on l'appelle, et à la fin
00:06:08du tour, il a quatre chemins possibles. Un : s'il y a encore du travail et que le budget est bon,
00:06:13on continue. Deux : si on approche de la limite de tokens, ce qu'il va faire,
00:06:19c'est injecter le fichier budget limit.md et conclure le tour proprement
00:06:25en vous donnant un rapport final de ce qui a été fait et ce qu'il reste à faire si vous augmentez
00:06:29votre limite. Trois : si le projet est fini, il va appeler l'outil update goal.
00:06:34Il va changer son statut, s'assurer que tous les livrables sont audités et si
00:06:39tout est validé : objectif atteint, c'est fini. Enfin, on a des moyens de mettre en pause,
00:06:45modifier l'objectif ou gérer les crashs. Si quelque chose tourne mal pendant la boucle,
00:06:49ce n'est pas comme une boucle RALPH traditionnelle où l'on est un peu coincé.
00:06:54C'est plus sophistiqué, très similaire globalement, et on n'a pas besoin d'orchestration
00:06:59supplémentaire. Tout cela devrait vous sembler familier si vous avez déjà travaillé avec
00:07:05des outils comme GSD ou GSD Superpowers. Ce sont des couches d'orchestration au-dessus de Claude Code pour
00:07:11faire ce qu'on fait ici avec une seule commande slash dans Codex avec Goals. Et comme c'est
00:07:18littéralement une seule commande slash, c'est super facile à exécuter. Pas besoin de regarder
00:07:24une démo de 40 minutes sur les subtilités de GSD. On fait juste /goal et Codex s'en charge.
00:07:30Ceci étant dit, mettons-le à l'épreuve. D'abord, on va se mettre
00:07:35en mode planning car on peut passer facilement du mode planning aux objectifs,
00:07:39et on va lui demander de créer un jeu de survie d'arcade en vue de dessus, avec
00:07:44tous ses propres assets. L'avantage de Codex par rapport à Claude Code,
00:07:49Claude Code, par exemple, c'est que comme c'est un produit OpenAI, on a accès aux images GPT
00:07:56donc il va créer tous les assets du jeu : le sprite du drone joueur,
00:08:01trois ennemis, un boss, un cœur d'énergie, une mine, un arrière-plan, l'UI...
00:08:07je vais lui en demander pas mal. Le prompt est assez complexe car ça peut
00:08:15durer très longtemps. J'aurais dû vous montrer la capture d'écran d'un gars
00:08:18qui l'a fait tourner 50 heures d'affilée... Je ne sais pas si 50 heures
00:08:23est la meilleure façon de faire, mais l'idée est de partir d'une idée floue, passer en mode plan
00:08:31pour obtenir quelque chose de très précis. C'est très important :
00:08:36vous devez être extrêmement spécifique sur le résultat final attendu. Si
00:08:43on ne vise pas un résultat très spécifique avec des éléments quantifiables pour
00:08:50terminer la boucle, vous aurez un résultat médiocre, peut-être incomplet.
00:08:55Je suggère donc de passer par le mode plan et de prendre le temps de bien le détailler,
00:09:02au lieu de juste dire : "/goal, fais-moi un SaaS qui rapporte un milliard". Voici
00:09:07le plan de notre jeu. Pour la vérification, voici ce qu'il va regarder.
00:09:12C'est ce qu'il va tester avant de se dire qu'il a fini. Évidemment,
00:09:17il doit lancer npm run build, corriger les erreurs, lancer le serveur dev, fournir l'URL,
00:09:24lancer un script de vérification automatisé Playwright qui ouvre l'application, confirme le chargement,
00:09:29vérifie que le canvas n'est pas vide, simule les touches, les collectibles, les dégâts,
00:09:34la santé, l'état de victoire contre le boss, l'UI, etc. C'est ça qu'il faut
00:09:39soigner. Si vous regardez la vérification et que vous vous dites : "Si tout ça est
00:09:44fait, je serai content", alors vous pouvez y aller. Quand il propose d'implémenter le plan,
00:09:49vous lui dites quoi faire. On peut faire /goal, utiliser Goal
00:09:54pour implémenter ce plan, et on valide. Et juste ici, que voyez-vous ?
00:10:02Il y a ce petit badge qui dit "Goal". Maintenant je sais qu'on est en mode objectif.
00:10:09Comme je vous l'ai dit, quand vous faites /goal, vous ne voyez pas de commande, mais
00:10:12ça marche. C'est juste un bug d'UI car c'est expérimental. Il dit qu'il est
00:10:17toujours en mode plan... on annule ça. "Utilise Goal pour implémenter ce plan". C'est encore
00:10:28un peu brut par moments, mais voyons ce qu'il fait. L'idée est que je n'interviens plus du tout.
00:10:34Il va exécuter sa petite boucle RALPH, son petit Goal, et à la fin on aura
00:10:39un produit fini. Ça fait environ 12 minutes qu'il travaille et il est
00:10:43déjà en train de créer tous les assets avec le modèle Image Gen 2,
00:10:49ce qui est super. L'autre avantage de l'appli de bureau par rapport au
00:10:54terminal brut, c'est que tout est présenté directement dans l'interface, c'est agréable.
00:11:00J'ai été très impressionné par l'application de bureau Codex. Ça ne veut pas dire que je n'aime plus
00:11:06Claude Code, j'utilise les deux indifféremment. Vous pouvez voir ma dernière vidéo là-dessus.
00:11:11L'idée qu'il faille choisir entre les deux est un peu stupide.
00:11:15Pourquoi ne pas utiliser les deux, et souvent en tandem ? Avec Claude Code, je suis
00:11:20purement dans le terminal, mais avec Codex, j'apprécie vraiment l'application de bureau.
00:11:26C'est peut-être aussi juste pour changer un peu d'air plutôt que d'être toujours
00:11:32dans le terminal. Jusqu'ici, j'aime beaucoup. Après 30 minutes, il a dit avoir fini,
00:11:38plus vite que prévu même. Voyons ce que ça donne au premier essai et comme
00:11:44il a été rapide, je lui demanderai sûrement d'autres trucs après. Il dit avoir implémenté
00:11:49Rift Salvage. Le serveur dev tourne. C'est un jeu sur canvas avec clavier et tactile,
00:11:56ennemis, mines, score, boucliers, boss, victoire/défaite, pause et redémarrage. 11 assets
00:12:03Image Gen générés avec transparence, vérificateur Playwright... il nous montre tout ce qu'il a fait,
00:12:10c'est cool. Voyons si ça marche et ce qu'on peut ajouter pour pousser le bouchon un
00:12:17peu plus loin. Testons ça dans le vrai navigateur. Ok, j'ai un petit écran de chargement.
00:12:27Le contraste est un peu bas, c'est dur à voir, peut-être pour vous aussi,
00:12:32mais j'ai mon petit vaisseau. Ça c'est une mine, je crois que je dois ramasser des trucs
00:12:39pendant que des ennemis me pourchassent. Ça marche, c'est plutôt cool. On pourrait
00:12:49sans doute améliorer les graphismes, mais c'est sympa que tout ait été créé
00:12:56en tant qu'images uniques. On pourrait ajouter... d'abord je veux voir
00:13:00à quoi ressemble le combat de boss, si on peut l'accélérer et aussi ajouter un
00:13:04système de tir, des lasers ou un truc du genre. On va faire
00:13:11ça avant de s'éterniser. Je repasse en mode planning
00:13:15pour le faire travailler un peu plus. C'était un bon premier jet,
00:13:19tout fonctionne, mais j'aimerais complexifier un peu. Peut-on ajouter un
00:13:24système de combat ? Des lasers pour tirer sur les ennemis qui nous
00:13:31rendent la pareille. Faire arriver le boss plus vite ou ajouter un bouton pour
00:13:37le faire apparaître. Et changer un peu le contraste car pour l'instant,
00:13:42tout se fond dans le décor. Si vous avez d'autres idées pour
00:13:49compliquer les choses et vous pousser dans vos retranchements,
00:13:53montrez-moi ça. Voici le plan qu'il a proposé. Notez qu'avec le
00:13:58système Goals, chaque exécution est liée au fil ou à la session en cours.
00:14:07On est dans le même chat, donc le même fil d'objectif. Si je veux relancer
00:14:12un deuxième objectif sur le même projet, c'est possible, mais il faut le faire dans
00:14:18un deuxième fil ou chat, comme ouvrir un autre terminal. Je vais juste copier
00:14:24ce plan, ouvrir un autre chat, faire /goal et
00:14:33coller ça. 15 minutes après, le deuxième objectif est rempli. Les améliorations
00:14:40de combat sont là. Voyons à quoi ça ressemble. L'écran de chargement est
00:14:44similaire au premier, sauf qu'il a ajouté des widgets en haut : on a le combo
00:14:50de cibles et le signal du boss. Si on lance, je peux tirer avec mon
00:14:56vaisseau, les ennemis ripostent et ont des points de vie. Je peux aussi
00:15:01appeler le boss. Le voilà... il a vraiment de l'allure. Le plus impressionnant
00:15:09dans ce qu'il a fait, ce sont tous ces assets uniques. Le fait que tout soit
00:15:13original et généré via Image Gen 2, c'est
00:15:19super. Ça n'a pris que 45 minutes en tout entre les deux sessions.
00:15:24On a vu des gens faire des sessions de trois jours, mais le plus
00:15:30fort ici, c'est la simplicité d'exécution. On lui donne un objectif
00:15:36et il se lâche. Est-ce qu'on a gagné ? Je ne sais pas si
00:15:43on est morts ou pas. Comme je le disais, l'intérêt des Goals,
00:15:48c'est que si vous avez un cap clair et des critères de succès précis,
00:15:54vous pouvez en tirer énormément et ça peut tourner indéfiniment. Au lieu de configurer
00:15:59votre propre boucle RALPH et son échafaudage ou d'utiliser une couche
00:16:05d'orchestration externe comme GSD, c'est directement intégré. Et
00:16:10on peut ajouter des choses complexes. Avec Claude Code, on aurait pu le faire
00:16:15aussi, c'est certain, mais il aurait fallu
00:16:18implémenter le CLI Higgsfield ou le MCP Higgsfield pour la génération d'images,
00:16:24au lieu d'avoir un système holistique intégré. J'espère que vous avez
00:16:31appris des choses. Je vous conseille vivement de tester Codex. J'adore
00:16:35l'application de bureau comme je l'ai déjà dit, c'est vraiment top.
00:16:40On aurait pu faire ça en tandem avec Claude Code également. On aurait pu créer le plan
00:16:44dans Claude Code puis le basculer dans Codex pour les objectifs, puis laisser
00:16:49Claude Code analyser le travail fait. C'est là qu'on tire le plus de valeur.
00:16:53C'est l'idée que le tout est plus grand que la somme des parties. Dites-moi
00:17:02ce que vous en pensez. Allez voir Chase AI Plus, le lien est dans le
00:17:07commentaire épinglé. Le webinaire a lieu dans quelques jours, lien aussi en dessous. On s'y voit !
00:17:12Sinon, à bientôt !