Transcription
Les boucles émergent comme le plus grand déblocage pour les personnes qui créent des logiciels avec l'intelligence artificielle en ce moment. Mais la plupart des gens ne savent même pas ce que sont les boucles. Et donc aujourd'hui, je vais vous dire ce que sont les boucles. Je vais vous montrer pourquoi elles sont précieuses. Et ensuite, je vais vous donner de nombreux cas d'utilisation spécifiques pour lesquels vous pouvez utiliser des boucles dès aujourd'hui.
Alors, qu'est-ce qu'une boucle ? Une boucle est un moyen de permettre à votre agent de codage IA de travailler de manière autonome vers un objectif spécifié. La chose la plus importante concernant les boucles est qu'elles suppriment les humains, ce qui permet à l'agent de travailler beaucoup plus rapidement vers cet objectif défini. Et si cela vous semble très théorique, je vais vous l'expliquer.
Alors, qu'est-ce qu'une boucle plus spécifiquement ? Eh bien, vous avez besoin de deux choses. Vous avez besoin d'un déclencheur et vous avez besoin d'un objectif. Avec ces deux choses, vous pouvez compléter la boucle. Un déclencheur est ce qui lance la boucle. Et il y a trois façons de lancer une boucle. Un, vous pouvez le faire manuellement. Vous dites littéralement à l'agent, va faire cette boucle. Deux, c'est la planification. Vous pouvez planifier une boucle pour qu'elle se produise à une certaine heure de la journée ou selon un calendrier répétitif. Et puis trois, vous avez des actions. Vous pouvez faire en sorte que la boucle se déclenche en fonction d'une action, comme l'ouverture d'une PR.
Pour supprimer complètement l'humain, nous ne voudrions pas tout déclencher manuellement, mais parfois c'est nécessaire. D'accord ? Et pour l'objectif, l'objectif peut être essentiellement l'une des deux choses. Il peut être vérifiable ou nous pouvons utiliser un LLM comme juge. Donc, s'il est vérifiable, c'est quelque chose de concret, un nombre spécifique ou un moyen de le tester de manière déterministe. S'il s'agit d'un LLM comme juge, cela signifie que nous donnons au modèle la capacité de déterminer quand il a atteint l'objectif.
Laissez-moi vous donner deux exemples. Donc, pour une couverture de test 100 % vérifiable dans notre base de code, par exemple, c'est quelque chose que nous savons avec certitude et nous avons un bon moyen de tester quand c'est vrai. Et pour un LLM comme juge, un exemple serait de refactoriser jusqu'à satisfaction. Et la satisfaction signifie simplement que vous, en tant que LLM, décidez quand nous avons suffisamment refactorisé.
D'accord, assez de théorie. Laissez-moi vous montrer quelques exemples. Donc, beaucoup de gens parlent de boucles, mais ils ne donnent pas vraiment de cas d'utilisation concrets. Et je voulais corriger cela. C'est pourquoi je lance la bibliothèque de boucles. C'est une bibliothèque gratuite. Je prends essentiellement toutes les boucles que j'utilise et celles que je vois utiliser par d'autres personnes et je les mets dans un seul endroit pour que vous puissiez les voir. Vous pouvez vous en inspirer pour créer vos propres boucles ou vous pouvez simplement les copier directement d'ici. C'est gratuit. Je vais mettre le lien ci-dessous.
Alors, allons-y. C'est certainement ma boucle préférée et elle va vous montrer exactement comment fonctionnent les boucles. C'est la boucle de chargement de page sub50ms. Laissez-moi cliquer dessus. Et nous y voilà. L'objectif de cette boucle est d'obtenir que chaque chargement de page dans mon application soit inférieur à 50 millisecondes. Et c'est donc l'objectif. C'est un objectif très concret et bien défini qui rend vraiment la construction d'une boucle plus facile.
Alors, ce que je lui dis, c'est de continuer à optimiser le code pour la vitesse. Après chaque changement significatif, mesurez les performances de chargement des pages sur chaque page dans les mêmes conditions de test répétables. Continuez jusqu'à ce que ce soit la boucle, continuez jusqu'à ce que chaque page se charge en moins de 50 millisecondes. Donc, elle va littéralement parcourir toute mon application, chaque fenêtre, chaque page, chaque modal, la charger. Si elle est au-dessus de 50 millisecondes, elle va continuer à l'optimiser jusqu'à ce qu'elle soit en dessous de 50 millisecondes. Une fois qu'elle a terminé avec une, elle passe à la suivante. C'est la boucle. C'est l'objectif.
Mais comment faire concrètement ? Comment la lancer concrètement ? Eh bien, le déclencheur dans ce cas, c'est moi. Je suis l'humain et je vais lancer manuellement cette boucle. Vous pouvez certainement la régler sur un calendrier et vous pouvez même la déclencher sur, disons, une PR ouverte. Donc, chaque fois que vous ouvrez une nouvelle PR, vous voulez aussi vous assurer que cette nouvelle PR ne fait pas dépasser le chargement de la page de 50 millisecondes. Alors, lançons-la.
Alors, nous allons cliquer sur copier ici. Tout ce que vous avez à faire, c'est de coller. Donc, j'ai l'invite juste là. Et puis à la fin ou au début, peu importe. Tapez /objectif. Et c'est une fonctionnalité dans CodeX. Claude Code a aussi une fonctionnalité /objectif. Mais dès que vous avez ce /objectif, cela dit à CodeX de continuer à travailler jusqu'à ce que la condition soit remplie. La condition que chaque page se charge en moins de 50 millisecondes. C'est tout. Vous appuyez simplement sur go. Et cela peut prendre 10 minutes. Cela peut prendre 10 heures. Cela continuera simplement à fonctionner jusqu'à ce qu'il atteigne l'objectif. Et vous devez donc le surveiller de près si vous êtes sous une contrainte de budget de jetons.
Voici donc en action. J'ai envoyé cela comme objectif. Recherchez plus d'optimisations pour vous assurer que chaque page se charge en moins de 50 millisecondes en production. Cela a fonctionné pendant près de 50 minutes. Je traite donc cela comme un objectif de performance de production. Je vais d'abord mesurer le chemin de requête de page de l'équipe réelle. Et cela, comme vous pouvez le voir ici, a parcouru chaque page et l'a optimisée pour se charger en moins de 50 millisecondes.
Les boucles sont la frontière des charges de travail IA. Et si vous voulez les alimenter de manière fiable et à l'échelle de la production, utilisez le sponsor de la vidéo d'aujourd'hui, Digital Ocean. Si vous exécutez une inférence de production, vous rencontrez probablement certains de ces problèmes. Votre pile d'inférence est trop complexe à exploiter. les coûts sont imprévisibles et je passe plus de temps à gérer l'infrastructure qu'à construire les choses pour être sur l'infrastructure. Et la plupart des équipes découvrent à leurs dépens que la partie difficile de la construction d'applications IA n'est pas l'utilisation du modèle. C'est en fait tout ce qui entoure le modèle. La surcharge opérationnelle, la complexité de l'inférence de réglage fin, les coûts qui deviennent plus difficiles à prévoir à mesure que vous augmentez. Et c'est pourquoi je veux vous parler de Digital Ocean, le partenaire de cette vidéo. Digital Ocean est conçu pour minimiser le coût total de possession en offrant aux équipes un chemin plus simple vers l'IA de production. Ils fournissent une infrastructure optimisée pour l'inférence et un cœur de cloud intégré verticalement qui offre une efficacité à l'échelle. Intégré verticalement est le mot clé. Et avec une tarification transparente basée sur l'utilisation qui rend les coûts faciles à prévoir.
Donc, si vous voulez passer moins de temps à gérer votre infrastructure et à construire réellement ce qui vous passionne, Digital Ocean est la voie à suivre. Alors, allez y jeter un coup d'œil. Ils ont été un partenaire fantastique. J'utilise Digital Ocean depuis plus d'une décennie dans des entreprises précédentes, donc je peux en témoigner. Allez y jeter un coup d'œil. Lien ci-dessous.
Maintenant, revenons à la vidéo. Voici une autre boucle que j'aime beaucoup. Celle-ci s'appelle le sweep de documentation nocturne. Chaque nuit, examinez la base de code dans son intégralité et assurez-vous que toute la documentation reflète les derniers changements de la veille. Mettez à jour la documentation si nécessaire, puis ouvrez une demande de tirage avec ces changements.
Donc, ce que je fais, c'est m'assurer que nous avons une documentation complète basée sur tous les changements que nous avons pu apporter. C'est un exemple de LLM comme juge. Il n'y a aucun moyen vérifiable de savoir si nous avons une couverture de documentation complète. Il peut y avoir des moyens de dire, d'accord, tant qu'un élément de documentation couvre cette section du code, mais finalement ce que nous faisons, c'est dire, d'accord, LLM, c'est à toi de décider.
Alors, comment l'utiliser concrètement ? Eh bien, une fois de plus, appuyez simplement sur le bouton copier. Nous allons aller dans CodeX. Nous allons cliquer sur cet onglet automatisation. Nous allons créer via chat. Nous allons supprimer cette partie. Je ne sais pas pourquoi ils ont mis ça là, mais je veux configurer une automatisation. Ensuite, nous collons ce que nous venons de copier, et puis chaque nuit, nous examinons la base de code dans son intégralité. Appuyez sur go et laissez-le s'exécuter et espérons qu'il configurera une automatisation comme celle-ci.
Alors voilà. Je vais configurer cela comme une automatisation récurrente. Donc, d'abord, je charge l'outil d'automatisation plutôt que d'écrire une note unique. Parfait. C'est donc un moyen de garder votre documentation toujours à jour. C'est génial. Et d'ailleurs, j'ai créé ce site web avec here.now. Donc, un grand bravo à here.now, le partenaire de la bibliothèque de boucles. Je l'ai créé et j'ai simplement dit déployer sur here.now et c'était fait. C'est tellement facile.
Ensuite, c'est la boucle de satisfaction de l'architecture. C'est une boucle que Peter Steinberger lui-même dit utiliser souvent. Voici. Refactorisez jusqu'à ce que vous soyez satisfait de l'architecture. Voici le déclencheur et l'objectif en une seule phrase. Refactoriser, ce que la boucle va faire, jusqu'à ce que vous soyez satisfait de l'architecture. Satisfait de l'architecture est l'objectif. C'est un autre exemple de LLM comme juge.
Nous pouvons même lui donner plus de directives sur ce que signifie être satisfait de l'architecture. Nous pouvons dire soyez très strict sur la simplicité ou assurez-vous que chaque ligne de code est DRY. Ensuite, après chaque étape importante, testez le système en direct, exécutez la revue automatique et commitez. Suivez les progrès dans et ensuite nous lui donnons un fichier markdown pour suivre les progrès. C'est fantastique. Donc, il suit sa boucle pendant qu'elle boucle.
Maintenant, vous pouvez lancer cela manuellement ou vous pouvez l'exécuter tous les soirs. Donc, disons que pendant la journée, vous déployez beaucoup de code, puis tous les soirs, vous vous assurez simplement qu'il est refactorisé, qu'il est DRY et qu'il a l'air vraiment solide. C'est donc une très bonne façon de garder votre base de code très propre.
Ensuite, une autre de mes préférées, la boucle de couverture de journalisation. Alors, cliquons dessus. Essentiellement, ce que cette boucle va faire, c'est s'assurer que nous avons une journalisation approfondie dans toute notre application. Et il y a une autre boucle qui s'appuie sur celle-ci que je vais vous montrer dans une minute, où ces deux boucles ensemble, vous pouvez commencer à voir à quel point les boucles peuvent devenir puissantes.
Donc, cela dit, "Examinez la journalisation des systèmes et ajoutez la couverture manquante jusqu'à ce que chaque chemin important produise des journaux utiles et testés." Et encore une fois, cela garantit simplement que nous avons une journalisation pour tout. Et cela sera déclenché manuellement. Et ce sera un LLM comme juge car il dit chaque chemin important et important est non déterministe. Cela signifie simplement que le LLM décide de ce qui est important et de ce qui ne l'est pas.
Et d'ailleurs, si vous souhaitez une aide pratique avec les boucles et d'autres sujets d'IA dans votre entreprise, mon équipe propose des sessions de conseil gratuites. Je vais mettre le lien ci-dessous. Nous n'en faisons que quelques-unes, alors postulez si vous êtes intéressé. J'adorerais vous parler.
D'accord, alors imaginez ceci. Vous avez une couverture de journalisation complète, mais qu'en faites-vous concrètement de ces journaux ? Eh bien, j'ai une autre boucle pour vous. Celle-ci s'appelle le sweep d'erreurs de production. Chaque nuit, nous allons examiner nos journaux de production pour détecter les erreurs. Si vous trouvez un problème actionnable, remontez à sa cause première, corrigez-le, vérifiez la correction et ouvrez une demande de tirage. Ensuite, pingez-moi sur Slack avec les conclusions et le lien PR. S'il n'y a pas d'erreurs actionnables, pingez-moi avec ce résultat à la place.
Donc, nous lançons une boucle chaque nuit et la boucle recherche chaque erreur dans les journaux et nous les corrigerons une par une avec l'objectif final d'avoir plus d'erreurs non résolues dans les journaux. C'est donc un objectif très concret pour cette boucle.
D'accord, voici une autre boucle. Quelque chose d'incroyablement important pour tout propriétaire de site web, tout propriétaire d'application, c'est le SEO. Et pas seulement le SEO, maintenant le GEO. Donc, voici la boucle de visibilité SEO GEO. Exécutez une audit SEO GEO sur la crawlabilité, l'indexation, l'intention de page, les titres, les liens internes, les données structurées, les citations sources et le contenu "answer first". Classez les lacunes. Je ne vais pas lire tout ça. Corrigez les problèmes à plus fort effet de levier. Relancez le même crawl. Et voici la boucle. Répétez jusqu'à ce qu'il n'y ait plus de problèmes techniques critiques. Encore une fois, vous pourriez avoir un problème. vous pourriez avoir 50 problèmes. Le point est que nous avons maintenant lancé une boucle qui les corrige tous jusqu'à ce qu'il n'y ait plus de problèmes. C'est donc une boucle vraiment intéressante à exécuter, disons, une fois par semaine.
D'accord, voici l'une de mes boucles préférées et l'une des plus vagues que j'ai, mais écoutez ceci. Celle-ci s'appelle la boucle d'évaluation complète du produit. Créez n scénarios réalistes couvrant chaque capacité majeure. Avant de tester, définissez des critères de succès clairs et choisissez une méthode d'évaluation cohérente telle que des vérifications de réussite/échec ou une grille de notation. Exécutez chaque scénario dans les mêmes conditions et enregistrez des preuves pour chaque résultat. Corrigez la cause sous-jacente de tout ce qui ne répond pas aux critères. Relancez les scénarios affectés, puis relancez le test complet. Continuez jusqu'à ce que chaque scénario atteigne le niveau de qualité initial.
Maintenant, beaucoup d'entre vous pourraient penser : "Wow, cela ressemble juste à des tests, n'est-ce pas ? C'est juste comme une suite de tests." Eh bien, un peu. Mais c'est en fait non déterministe. Cela permet au modèle de parcourir chaque cas d'utilisation de votre application, de votre produit, de déterminer s'il est suffisamment bon, déterminé par le LLM, et de le mettre à jour si nécessaire. Celle-ci fonctionne vraiment. Elle prend parfois 12 heures ou plus, mais elle apporte vraiment de très bonnes optimisations.
Maintenant, vous pouvez également la personnaliser pour votre application spécifique. Par exemple, je suis en train de construire quelque chose qui nécessite que je pose une question à un LLM et qu'il fournisse une réponse vraiment précise avec des sources. Donc, je lui dis, proposez 100 cas d'utilisation différents, des cas d'utilisation variés pour poser des questions au LLM et jugez si la réponse est suffisamment bonne. Si ce n'est pas le cas, itérez et améliorez-la.
Je pourrais continuer, mais si vous voulez trouver toutes les boucles et toutes les nouvelles que je découvre, allez voir la bibliothèque de boucles. Je vais mettre un lien ci-dessous. Et encore une fois, un grand bravo à here.now pour l'hébergement de la bibliothèque de boucles.
D'accord, il y a donc deux mises en garde majeures concernant les boucles que je dois vous dire. La première est que ce n'est pas encore pour tous les problèmes. Concevoir une boucle n'est pas toujours facile. Spécifiquement, trouver l'objectif de la boucle n'est pas facile. Si quelque chose peut être vérifié comme chaque page se chargeant en moins de 50 secondes, c'est parfait pour une boucle. Lorsque nous devons avoir le juge IA, le LLM juge si un objectif est atteint ou non. C'est là que cela devient un peu plus fragile car nous laissons le goût et le jugement au modèle.
Cela devient encore plus difficile lorsque nous parlons de construire des fonctionnalités. Je n'ai pas vraiment trouvé de moyen de construire des fonctionnalités avec des boucles. Vous ne pouvez pas dire boucle jusqu'à ce que nous construisions un système d'autorisation complet. Je veux dire, techniquement vous pouvez, mais je ne le fais pas parce que je ne sais pas dans quelle direction l'IA va aller. Je ne sais pas quelles fonctionnalités elle va construire. Je ne sais pas quand ni comment elle va décider quelles fonctionnalités sont utiles par rapport à quelles ne le sont pas. Cela le rend donc peu idéal pour la création de fonctionnalités dès le premier jour.
Maintenant, un exemple de construction d'un produit à partir de zéro en utilisant une boucle est quelque chose que j'ai fait où j'ai dit au modèle comme objectif de cloner la parité des fonctionnalités d'Excel et cela a fonctionné pendant des jours et des jours jusqu'à ce que je l'arrête finalement. Il a en fait ouvert Excel sur mon ordinateur, utilisé l'utilisation de l'ordinateur, et cliqué littéralement et s'est assuré qu'il avait la parité des fonctionnalités. Et oui, cela a fonctionné pendant des jours avant que je ne l'arrête finalement. Donc, je ne recommande pas de faire cela.
Et cela m'amène à la deuxième mise en garde majeure. Les boucles sont très coûteuses. Elles consomment des jetons de manière autonome jusqu'à ce qu'elles atteignent l'objectif. Certains de ces agents peuvent fonctionner pendant 10 minutes. Certains peuvent fonctionner pendant des jours. Donc, pour vous qui maximisez les jetons, les boucles sont fantastiques. Mais pour ceux d'entre vous qui n'ont pas un budget de jetons illimité, cela pourrait ne pas fonctionner pour vous aujourd'hui.
Et d'ailleurs, si vous aimez coder avec des boucles, vous pourriez aussi aimer ces quatre projets open-source que j'ai passés en revue et que vous pouvez utiliser.