▲ Session communautaire : Plugin Vercel pour Claude Code

VVercel
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Bonjour à tous. Bienvenue au Vercel Community Livestream de cette semaine. Je suis Amy, et voici
00:00:26Jacob. Nous faisons partie de l'équipe communautaire ici chez Vercel. Juste un rappel, nous diffusons
00:00:31ceci sur X et YouTube, mais si vous voulez être sûr que nous voyions vos questions et commentaires
00:00:36dans le chat, allez sur la communauté et connectez-vous. C'est sur [community.vercel.com/live](https://community.vercel.com/live) et vous
00:00:43verrez que c'est le premier événement.
00:00:44Oui, à la fin de la session, nous aurons un peu de temps pour quelques questions. Si vous
00:00:49allez participer au chat pendant que vous regardez la session, n'oubliez pas de suivre
00:00:55notre code de conduite et oui, vous pouvez poser toutes les questions que vous avez en cours de route et
00:00:59nous nous assurerons de les poser. J'aimerais présenter notre invité. Nous avons Jon Lindquist ici pour
00:01:05nous montrer le nouveau plugin Vercel pour Claude Code. Salut, Jon.
00:01:09Salut, Jacob. Salut, Amy. Merci de m'avoir invité. Très bien. Commençons à partager
00:01:16mon écran tout de suite pour que nous puissions montrer ce qui se passe ici. Depuis un certain temps déjà, les
00:01:23compétences sont à la mode et tout le monde parle des compétences à utiliser pour améliorer vos projets
00:01:29et pour permettre à vos agents de faire des choses qu'ils ne sont normalement pas capables de faire. Maintenant, émergeant des
00:01:37compétences, la sorte de prochaine évolution de cela est ce que nous appelons les plugins. Et c'est quelque chose
00:01:43qui commence vraiment à prendre de l'ampleur. Il n'y a pas encore beaucoup de plugins et les gens sont encore
00:01:48en train d'explorer exactement comment les construire. J'ai construit la première version du plugin Vercel et ce
00:01:56dont j'aimerais parler, c'est pourquoi construire un plugin, quand devriez-vous construire un plugin, pourquoi un plugin
00:02:03plutôt que des compétences et comment ils se complètent, et toutes ces sortes de questions. Donc
00:02:09si vous avez des questions sur ce qu'est, j'en parlerai, mais ce qu'un plugin peut
00:02:16permettre pour vous, si vous devriez en construire un en interne ou personnellement, j'aimerais en discuter
00:02:22et nous en parlerons pendant la session d'aujourd'hui. Donc tout d'abord, un plugin est initialement
00:02:32lancé par Claude Code et Gemini également, mais ils ont adopté des approches très différentes. Et la
00:02:39standardisation des plugins est un effort continu. Et c'est quelque chose que nous espérons avoir,
00:02:44je pourrai en parler davantage bientôt, où un seul plugin peut fonctionner sur tous les éditeurs. Donc
00:02:49pour l'instant, nous parlons de Claude Code et le support de Cursor également. CodeX arrive très,
00:02:54très bientôt, sinon déjà aujourd'hui, et beaucoup d'autres aussi. Il y a un standard de plugin
00:03:01en cours d'élaboration. Nous pouvons donc nous attendre à ce que les plugins soient quelque chose que vous pouvez emballer et partager
00:03:08sur n'importe quel outillage que vous utilisez. Cela étant dit, vous connaissez peut-être les compétences
00:03:15car ce sont des fichiers markdown qui peuvent être chargés par votre agent pour lui donner des instructions supplémentaires.
00:03:23Soit vous l'invoquez manuellement, comme avec un slash pour appeler votre compétence, soit l'agent
00:03:29détecte, d'après la description, que la compétence doit être chargée. C'est donc très dépendant de l'invocation par l'utilisateur ou
00:03:36de la décision de l'agent basée sur une condition dans la description. Maintenant, le niveau supérieur d'un plugin
00:03:44est qu'ils possèdent ce qu'on appelle des crochets (hooks). Et si vous pensez à un plugin, ou si vous pensez à une session
00:03:53que vous avez avec Claude Code ou avec n'importe quel harnais d'agent, vous pouvez imaginer qu'ils ont des cycles de vie.
00:03:59Donc là, je suis dans le répertoire du plugin Vercel, je lance juste Claude Code ici, et je vais
00:04:07lui demander quels sont les crochets qu'il utilise. Et cela va lister les crochets
00:04:18qui définissent en quelque sorte un cycle de vie. Et un cycle de vie, c'est le moment où votre session commence, quand les outils
00:04:27comme avant que les outils ne soient appelés, après qu'ils ont été appelés, quand un utilisateur y insère du texte, et
00:04:33quand votre session se termine. Il y a tout un tas d'autres crochets là-dedans. Mais pour nos besoins
00:04:39dans le plugin Vercel, ce sont ceux que nous utilisons actuellement basés sur nos objectifs initiaux.
00:04:44Donc pour être clair, l'objectif initial du plugin Vercel était d'aider les gens à déployer
00:04:51des agents sur Vercel. L'idée est : comment allons-nous rendre les agents conscients de l'écosystème Vercel,
00:05:02comme tout ce qui se trouve sur la plateforme en rapport avec l'IA SDK, la passerelle (gateway).
00:05:11Et nos flux de travail (workflows) sont presque là. Donc tout ce qui concerne les workflows, et essentiellement,
00:05:19la CLI de Vercel a été beaucoup mise à jour. Et toutes ces choses concernant l'agent SDK, ou pardon,
00:05:26autour du déploiement d'agents sur Vercel. Ce sont toutes des choses qui ont été publiées ces derniers jours, dernières semaines,
00:05:33derniers mois. Et n'importe lequel de ces harnais d'agents comme Claude Code, ils ont ces limites de
00:05:39connaissances datant probablement d'il y a six mois à un an. Donc cela dépend du modèle, cela dépend
00:05:46de tout un tas de variables. Mais ce sont toutes des choses que tous ces agents ne connaissent pas
00:05:52parmi toutes les dernières nouveautés incroyables que nous avons publiées. Donc l'objectif du plugin Vercel
00:05:57est d'empêcher l'agent d'écrire du code en quelque sorte obsolète, des pratiques dépassées, et de le
00:06:06mettre à niveau avec tout ce qu'il y a de plus récent sur la plateforme Vercel. C'est donc
00:06:11un gain énorme car les modèles sont intelligents, mais ils ne sont tout simplement pas au courant de tout cela.
00:06:19Et au lieu de leur demander de faire des recherches à chaque fois, ou d'avoir un énorme
00:06:25ensemble de compétences pour chaque petite chose, si nous pouvons trouver un moyen d'imposer
00:06:32essentiellement à un agent de charger les meilleures informations sur la plateforme Vercel, alors c'est une grande victoire pour
00:06:38nous. Donc si vous regardez ces crochets dans le cycle de vie d'un agent, et encore une fois, il y en a beaucoup, beaucoup
00:06:45d'autres que nous pourrons exploiter à l'avenir ou que vous pourrez exploiter. Mais les principaux
00:06:49pour l'instant sont le début de session (session start). Et nous l'utilisons de différentes manières. Prutilisation d'outil,
00:06:56soumission du prompt utilisateur, post-utilisation d'outil et fin de session. Donc le début et la fin de session sont, vous savez, le début
00:07:03et la fin d'une conversation avec un agent. Et vous pouvez considérer que votre fichier agents.md ou cloud.md
00:07:12est typiquement la chose que vous faites au début de la session. Alors que pouvons-nous faire au début de la session pour
00:07:19la plateforme Vercel ? Ce que nous pourrions faire, c'est charger un fichier de la plateforme Vercel, ce qui signifie que
00:07:27si nous regardons, je vais juste dire décris vercel.md. Donc ce fichier est quelque chose que nous pouvons inclure
00:07:40au début de la session aux côtés d'un cloud.md. Essentiellement, vous pourriez avoir un plugin qui, si tout ce que vous
00:07:48voulez faire est de partager un fichier cloud.md et de donner à quelqu'un un moyen facile de
00:07:52l'installer. Vous pourriez construire un plugin dont le seul but est d'injecter ceci, c'est un graphe de connaissances
00:07:59de Vercel. Et c'est quelque chose que nous peaufinons continuellement. Nous cherchons
00:08:04des moyens de le compresser et de le rendre aussi petit que possible tout en gardant de bonnes performances
00:08:08et un équilibre entre ce qui devrait y figurer ou non. Il est très difficile
00:08:15de faire des évaluations sur tous les différents modèles et harnais. Mais nous
00:08:21comprenons peu à peu ces choses. Donc ce qu'il y a dedans, ce sont essentiellement les relations dans l'écosystème
00:08:28Vercel autour de l'IA, quand utiliser quels produits, quand appeler quelles choses
00:08:35comme une compréhension structurée de l'ensemble de l'écosystème Vercel. Donc le concept de... j'aime
00:08:44comment il appelle ça une table des matières. C'est comme le début d'un livre quand on commence une conversation.
00:08:50Et la façon dont nous avons structuré cela et y avons pensé, c'est si vous réfléchissez à : comment puis-je parler
00:08:56à un agent de certaines choses, j'ai un certain vocabulaire, ils ont un certain vocabulaire.
00:09:02Et si vous pouvez lui donner un glossaire de termes, les lier à des documents, les lier à des
00:09:07compétences, les lier à des choses qu'il devrait charger. Une fois que vous avez ces éléments, vous pouvez
00:09:12penser à quelles sont les choses que je vais dire et quelles sont les choses que l'agent
00:09:19devrait charger et appeler, et essayer de développer cette carte mentale dès le départ afin que je puisse juste
00:09:24parler naturellement et ne pas avoir à m'inquiéter de parler de, ou même de mentionner
00:09:30l'ASDK du tout. Et même sans mentionner aucune des fonctionnalités. Et si je peux juste trouver un
00:09:38moyen de dire simplement "construis-moi cette application et déploie-la". Et qu'ensuite tout soit géré dans
00:09:45le plugin. Excusez-moi, tout est géré dans le plugin pour qu'une magnifique
00:09:52application soit déployée sur Vercel et qu'ils puissent itérer à partir de là. Un peu comme la façon dont v0 et
00:09:57certains autres projets fonctionnent pour nous. Si nous pouvons juste faire en sorte que vous ayez une merveilleuse
00:10:02expérience, sans avoir à penser à l'écosystème. Et c'est une énorme victoire. Est-ce que
00:10:09ça fait sens ? Jacob, Amy, des questions initiales là-dessus ou quelque chose dans le chat ?
00:10:16Jacob, je crois que tu as une question pour ta réunion. Désolé, vraiment désolé. J'avais une question
00:10:24pour toi, John. Oui. Puisque ce plugin fonctionne comme une table des matières, est-ce pour cela qu'il n'a pas besoin de,
00:10:30pourquoi le plugin n'a pas besoin d'être constamment mis à jour à chaque fois qu'une nouvelle documentation
00:10:38sort ? Parce que c'est fondamentalement une collection d'URLs que les agents peuvent ensuite suivre pour trouver
00:10:43les docs à jour ? Ou est-ce que le plugin a un système de mise à jour immédiate ? Comment
00:10:49est-ce que cette approche fonctionne ? Oui. Donc essentiellement, si vous pensez au graphe de connaissances au départ,
00:10:58une grande partie de ce qu'il peut faire est simplement de pointer vers les dernières docs. Donc si vous réfléchissez à,
00:11:07c'est une question qui revient souvent avec les compétences et comment nous gérons les compétences par bibliothèques.
00:11:14Et si vous avez quelqu'un sur la version cinq de tel SDK et quelqu'un d'autre sur la version
00:11:18six du SDK, et que vous essayez de les influencer avec des compétences de versions différentes qui sont
00:11:22en conflit, comment faites-vous cela ? Et beaucoup repose sur ce que quelqu'un
00:11:31a installé, vous pouvez vérifier leur fichier package.json, vous pouvez vérifier la version. Et sur
00:11:36cette base, trouver un moyen intelligent de regarder quelles URLs de docs il devrait consulter et quelles
00:11:44compétences devraient être chargées et tout ce genre de choses. Et donc c'est une autre partie de la sorte
00:11:51de phase de préchargement au début de la session qui consiste juste à inspecter le projet de la personne.
00:11:58Et encore une fois, tout cela est local. Il regarde juste le projet pour voir quelles bibliothèques
00:12:02vous utilisez. Quelles configurations vous utilisez pour savoir comment vous orienter dans la bonne direction.
00:12:07L'une des erreurs les plus courantes est, par exemple, d'essayer d'utiliser "generate object" sur la dernière
00:12:12version d'un SDK alors que vous savez que l'API a changé. Donc, oui, il n'y a pas vraiment de... les plugins
00:12:21gèrent juste cela, vous ne devriez pas avoir à vous inquiéter si vous utilisez ceci sur un projet
00:12:27existant ou si vous l'utilisez sur un tout nouveau projet de pointe, le plugin devrait
00:12:32être capable de gérer cela, vous ne devriez pas avoir à vous soucier des numéros de version, vous ne devriez
00:12:34pas avoir à vous soucier des noms de paquets, vous ne devriez vous soucier de rien parce que
00:12:41laissez Vercel faire cela pour vous. D'accord. Et nous travaillons continuellement sur de... nous avons
00:12:49beaucoup plus d'idées sur la façon de mieux faire cela. Et le plugin continuera à se mettre à jour et à faire
00:12:54avancer cela. D'autres questions ?
00:12:58Oui, alors quelle est la portée totale du plugin ? Est-ce qu'il gère seulement les
00:13:04services Vercel ? Tout ce que je peux trouver dans le tableau de bord ? Ou est-ce aussi les bibliothèques open source
00:13:11que nous supportons comme Next.js, l'AISDK, les workflows, et ainsi de suite ?
00:13:16Oui, donc la portée initiale, ce que nous avons décidé au départ, c'est de couvrir autant que possible,
00:13:25et d'avoir chaque bibliothèque, tout sur la plateforme, enfin tout là-dedans,
00:13:32voir ce qui est le plus utilisé. En interne, nous demandons à tout le monde d'activer leur télémétrie, et
00:13:36vous pouvez choisir de partager la télémétrie. Et nous découvrirons quelles compétences sont réellement
00:13:40utilisées et lesquelles ne le sont pas. De cette façon, nous pourrons supprimer certaines choses dont nous pourrions
00:13:48avoir moins besoin ou en ajouter d'autres basées sur ce qui semble le plus utilisé. Évidemment
00:13:53Next.js, l'AISDK, et vous savez, les choses les plus populaires téléchargées devraient avoir le plus d'informations.
00:13:59C'est donc un équilibre au départ, où nous sommes intentionnellement allés assez loin avec la
00:14:08version initiale, et nous allons la réduire à quelque chose de beaucoup plus épuré, je suppose, pour
00:14:15la suite. Donc
00:14:16oui, ça a beaucoup de sens. Merci. Oui. Très bien. Donc oui, si vous
00:14:24construisez un plugin, et l'une des raisons pour lesquelles j'en parle en termes assez généraux
00:14:29c'est parce que je suis très porté sur le développement piloté par les agents. Et plutôt que de vous montrer
00:14:36exactement comment tout fonctionne, je pense qu'il est bien plus important d'apprendre comment en
00:14:40parler, et de retenir une partie de la terminologie. Ainsi, vous pouvez simplement demander à votre assistant IA
00:14:45de faire des choses similaires. Si vous dites à Claude Code de construire un plugin pour Claude
00:14:52Code, et que vous lui donnez les docs, il peut le faire. Il est donc bien plus important
00:14:58de discuter des concepts et des idées autour de cela que de trop creuser dans le code.
00:15:05Cela étant dit, le début de session est un excellent endroit pour injecter une sorte de table des matières
00:15:11de la plateforme, comme toutes les choses qui sont obsolètes par rapport aux choses qui
00:15:19sont importantes pour moi et qui sont obsolètes d'après les modèles ou pour la plupart des modèles. Donc
00:15:24c'est ce qui remet tout au niveau de : voici à quoi ressemble Vercel aujourd'hui. Et ainsi,
00:15:31même si c'est la seule chose qui se passe dans le plugin, il sait qu'il devrait aller
00:15:37vérifier les choses à l'avenir. Mais ce que nous sommes aussi capables de faire, et juste comme
00:15:44note secondaire, une raison pour laquelle on fait ça : chaque session dans Claude Code a son propre identifiant unique, ce qui
00:15:52vous permet, au fur et à mesure de la session, de vous assurer qu'il a, par exemple, un budget de compétences,
00:16:01et qu'il a les compétences qui ont déjà été chargées et des choses de cette nature. Nous pouvons donc
00:16:07mettre... vous pouvez écrire des choses dans l'environnement de la session, ou dans un espace de stockage de session
00:16:15où tout au long de cette session, au fur et à mesure, nous nous assurons de ne pas
00:16:20charger des choses qui ont déjà été chargées, ou d'éviter de dupliquer des efforts, parce que nous pouvons garder
00:16:26une trace de ce qui s'est déjà produit. C'est donc un autre aspect formidable. Un grand avantage de
00:16:30la session est qu'elle vous donne une chance de saisir un ID de session afin qu'à travers n'importe
00:16:35quel crochet futur, tout ce qui est exécuté à l'intérieur de la session, vous ayez
00:16:40un ID auquel vous accrocher et stocker des informations sur la session pour votre propre plugin.
00:16:47Claude Code fait aussi cela si vous regardez dans leur répertoire .claude avec les projets où
00:16:50vous pouvez voir des sessions et des choses là-dedans. Vous prenez donc ce même concept pour vos propres plugins
00:16:56et vos propres outils. Très bien, ceci étant dit, qu'est-ce que la préutilisation d'outil et nous allons parler de
00:17:05la pré et post-utilisation en même temps, ce que cela vous donne, c'est une chance
00:17:11de voir les modifications de fichiers. Donc en préutilisation, vous pouvez obtenir le contenu du fichier qui est
00:17:20sur le point de changer. Et il s'agit donc de lire des fichiers, écrire des fichiers,
00:17:29enfin lire des fichiers, éditer des fichiers, créer des fichiers. Et la préutilisation couvre aussi beaucoup d'autres
00:17:34outils utilisés, comme l'exécution de commandes dans bash. Vous avez donc cette opportunité de : avant que
00:17:40cette chose n'arrive, y a-t-il quelque chose que je veuille faire ? Par exemple, si nous voyons quelqu'un
00:17:47essayer de lancer une commande CLI Vercel spécifique, et que nous remarquons qu'il existe un meilleur
00:17:55moyen de le faire maintenant dans la CLI Vercel, comme par exemple l'option API que la CLI possède désormais et
00:18:00qui permet des requêtes bien plus avancées. Et la CLI de Vercel a été mise à jour. Si vous ne l'avez pas
00:18:05mise à jour récemment, elle a plein de super nouvelles fonctionnalités. Nous pouvons suggérer ces choses et
00:18:11dire que vous essayez de faire ceci, ou même vérifier si votre CLI Vercel est obsolète. Ce
00:18:17serait bien de la mettre à jour. Vous avez donc beaucoup plus d'options ici. Cela vous donne une chance de,
00:18:21vérifier s'il va faire un appel d'outil, que ce soit un appel CLI. C'est
00:18:27super important pour la CLI sandbox, pour la CLI workflow, pour toutes ces toutes nouvelles
00:18:34CLIs dont les modèles ne savent encore rien, parce qu'elles viennent de sortir après les
00:18:39limites de connaissances, pour s'assurer qu'ils font les choses correctement. C'est là que pour
00:18:47les appels d'outils, comme les appels bash, c'est pour les éditions de fichiers, ça devient vraiment intéressant avec les
00:18:52éditions de fichiers. Quelque chose que nous explorons davantage, c'est la comparaison de fichiers (diffing) : ce fichier ressemblait à ça,
00:18:59l'agent essaie de le faire ressembler à ceci. Est-ce que c'est le bon changement, par rapport à nos bibliothèques,
00:19:06est-ce correct ? Ou y a-t-il quelque chose de suspect là-dedans ? Et cela nous amène à,
00:19:11je vais reprendre l'exemple de : vous avez le SDK v6 installé et il essaie d'utiliser "generate
00:19:18object" comme API, ce qui est fréquent. Et si vous voyez cela à ce moment-là, comme "je vois
00:19:25que tu essaies d'utiliser generate object", arrêtons-nous et rappelons-leur à quoi ressemble réellement l'AISDK
00:19:32pour qu'avant même d'arriver aux tests ou au déploiement ou quoi que ce soit, vous l'ayez intercepté
00:19:36au moment exact où l'agent essayait de modifier le fichier. Et c'est l'une de ces
00:19:46choses où, si vous essayez de compter sur une compétence... les compétences sont comme des indices textuels du type
00:19:54si vous avez déjà essayé d'écrire dans votre cloud.md ou dans une compétence, comme "ne jamais valider (commit) tels
00:20:03fichiers" ou "ne jamais pousser (push) sans être dans une branche" ou quelque chose comme ça. Vous avez probablement
00:20:13vécu cela : ça ne vous protège pas toujours de ces erreurs. La préutilisation d'outil
00:20:21vous donne la chance de littéralement... elle peut empêcher ces choses d'arriver de manière programmatique
00:20:28et technique. Et vous pouvez lui donner différentes instructions et différents
00:20:32exemples de manières de le faire. C'est donc la grande différence ici entre les compétences, entre
00:20:41vos fichiers cloud.md et agents.md : c'est que vous pouvez réellement contrôler ce qui change et
00:20:47si, ou ce qui se passe. Et si vous voulez que cela arrive ou ce qui change, si vous
00:20:51voulez que cela change, c'est le point où ça devient génial. À partir de là,
00:21:01vous obtenez des capacités similaires en post-utilisation d'outil. L'opportunité de vérifier exactement ce qui a changé
00:21:07après qu'un fichier bash, une commande bash a été lancée, quelles sont les choses qui sont différentes maintenant qu'un
00:21:13outil a été appelé ? Cela ne vous permet pas d'empêcher quelque chose de
00:21:19se produire, mais vous permet de voir le résultat de ce qui s'est passé. Et si,
00:21:25s'il a changé quelque chose ou fait quelque chose d'inattendu, c'est une autre chance d'obtenir
00:21:31un diff et de se dire : ça a l'air bizarre. Disons à l'agent que ça nous semble louche.
00:21:38Ce sont donc deux énormes crochets de cycle de vie à connaître lors de la construction. Et pour nous, c'est
00:21:43encore une fois beaucoup de cela... tout tourne autour de cette limite de connaissances. C'est la
00:21:49chose contre laquelle Vercel doit en quelque sorte lutter parce que nous livrons vite, nous livrons souvent et
00:21:55nous poussons toutes ces nouvelles technologies si rapidement. Et c'est juste ce truc incroyable
00:22:00que nous voulons faire découvrir aux gens. Et c'est là qu'un plugin peut s'avérer très utile.
00:22:09Des questions à ce sujet ?
00:22:11Oui. Donc s'il utilise des chemins de fichiers pour décider quelles compétences injecter, cela signifie-t-il
00:22:21qu'on a beaucoup à gagner en limitant la portée des fichiers de nos projets pour qu'ils soient
00:22:27un peu plus à usage unique afin qu'il puisse déterminer plus précisément de quelles compétences
00:22:34il a besoin d'ajouter. Par exemple, si j'ai un gros fichier qui utilise peut-être cinq ou six
00:22:39de nos bibliothèques, et qu'il ne peut maintenant ajouter que trois compétences, ou qu'il ne sait pas
00:22:47lesquelles en se basant sur le chemin du fichier. Pensez-vous que cela devrait être une considération
00:22:51lors de la création de logiciels avec ces outils ?
00:22:54Je dirais que vous ne devriez pas avoir à vous soucier du code que l'agent écrit et que
00:23:02c'est aux auteurs de plugins. C'est aux auteurs de structures de faire en sorte que
00:23:12ces choses fonctionnent bien. Comme les personnes qui effectuent réellement les évaluations pour voir
00:23:17si cela fait une différence ou non. Alors que je pense qu'il est très facile de repasser
00:23:27en mode ingénieur et de se dire : je vais résoudre ça parce que c'est ce qu'un humain ferait.
00:23:33Et c'est certainement ce qu'un agent voudrait. C'est l'une des plus grandes tentations des développeurs
00:23:39en ce moment : la résolution de problèmes, comme trouver des problèmes qui n'en sont pas. Parce que
00:23:50si vous essayez de réparer quelque chose et que vous ne savez pas comment le tester, comme
00:23:53si vous savez comment tester cela contre un agent, alors allez-y. Si vous n'avez aucune envie
00:24:00de faire cela, alors laissez simplement les personnes qui construisent les plugins et les structures
00:24:05s'en occuper car les tests et les évaluations coûtent cher. Cela coûte
00:24:12beaucoup d'argent de faire tourner tous ces modèles contre ces changements. Cela prend beaucoup de temps
00:24:17et c'est une grosse galère. Donc, j'espère que personne n'aura à s'en soucier.
00:24:23Et je pense que je consacrerais mes efforts à d'autres choses pour l'instant. Ouais.
00:24:33Je vois, je vois. Donc, aucun intérêt à changer ma façon de construire les choses si la prochaine version
00:24:40du modèle est construite d'une manière qui rendrait toutes ces altérations inutiles,
00:24:47essentiellement.
00:24:48Oui. Et je pense, je veux dire, l'objectif final pour toutes les structures et pour Vercel est que
00:24:56vous n'ayez vraiment pas à réfléchir ou à regarder le code tant que ça. Je ne dis pas que
00:25:01c'est le cas actuellement. Je dis que c'est l'objectif final. C'est ce vers quoi
00:25:07nous tendons : vous voulez livrer de superbes logiciels. Vous voulez être capable de
00:25:11réfléchir, vous voulez laisser libre cours à vos idées et obtenir des variations pour voir lesquelles résonnent
00:25:19vraiment avec vous, puis l'épurer pour en faire quelque chose qui soit beau pour vous,
00:25:25votre famille ou vos clients. Nous voulons juste une belle expérience où
00:25:33vous ne vous demandez pas si vos fichiers sont trop gros. Si vous écrivez
00:25:39les bons modèles de conception ou quelles bibliothèques vous choisissez. Et je suis tout à fait d'accord.
00:25:48La tentation de se dire : utilisons tous ces modèles parce que les agents sont
00:25:53meilleurs avec. Faisons toutes ces choses. C'est définitivement quelque chose que nous
00:25:58expérimentons avec le plugin et les tests. Mais encore une fois, si vous ne pouvez pas le tester,
00:26:07il est si tentant de dire : j'ai fait ce changement et ça marche évidemment mieux maintenant.
00:26:18Et c'est l'un de ces pièges où, maintenant que vous avez fait ce changement, vous
00:26:23ne regardez pas comment cela fonctionnait avant et quel impact cela a ailleurs. Et oui,
00:26:28peut-être que ça a bien marché pour cette session unique... l'ingénierie est différente maintenant. Désolé,
00:26:35je deviens philosophique, je suppose. Oui, je pense que nous comprenons. D'accord.
00:26:44Un autre hook est la soumission du prompt utilisateur. C'est un point très important car il vous permet
00:26:50de prendre le texte tapé par l'utilisateur. Et s'ils mentionnent une bibliothèque, s'ils mentionnent
00:26:55un concept, s'ils mentionnent le mot "planning", alors importons
00:27:00la compétence "cron". C'est très similaire au fonctionnement des compétences, genre si l'utilisateur ou
00:27:07si quelque chose est détecté dans la conversation et correspond à la description. Mais cela
00:27:12vous donne en fait la chance d'exécuter une regex sur un prompt utilisateur. Et si vous détectez certains mots-clés
00:27:20ou motifs, chargez ces compétences, suggérez des choses à l'agent,
00:27:26comme peut-être poser plus de questions de suivi. C'est la partie interactive où
00:27:33vous avez la possibilité de dire : l'utilisateur a dit ça, peut-être devrions-nous obtenir plus de clarifications
00:27:38ou devrions-nous simplement charger tout ça et avancer. Vous pouvez faire
00:27:44des choses vraiment amusantes avec la soumission du prompt utilisateur si vous voulez avoir
00:27:48votre propre glossaire personnalisé ou langage de commandes, et que vous voulez
00:27:56préfixer des choses avec des signes dollar. Si ça commence par un signe dollar, alors fais ceci. Ou
00:28:00si quelque chose contient... c'est un peu comme écrire des petits scripts bash ou quelque chose
00:28:07à l'intérieur du prompt utilisateur : si vous détectez cela, vous pouvez exécuter un outil immédiatement et
00:28:13cela peut exécuter n'importe quel script bash, script node ou autre
00:28:20à l'intérieur de ce hook qui est en dehors du contexte de la session. Vous pouvez donc faire
00:28:28toutes sortes de choses ultra rapides là-dedans. Si vous voulez détecter le mot "commit"
00:28:37pour éviter que l'agent ne prenne plusieurs étapes pour valider quelque chose. À la place,
00:28:47vous avez juste un script qui fait le commit. Juste après le prompt
00:28:53de commit, vous pouvez dire à l'agent : "J'ai exécuté ce commit, ne t'en fais pas".
00:28:59Et vous pouvez faire gagner quelques tours à l'agent. Il y a des petites astuces vraiment
00:29:03intéressantes à faire pour vraiment accélérer s'il y a beaucoup de choses
00:29:09répétitives, plutôt que de demander à l'agent de le faire à chaque fois. C'est
00:29:15un projet amusant si vous voulez construire votre propre hook de prompt et
00:29:19créer votre propre langage pour parler à l'agent. Mais pour nous,
00:29:25c'est plutôt : s'ils ont dit ça, ils parlaient de ce concept, qu'est-ce que ça signifie
00:29:30dans la terminologie Vercel, donc on fait correspondre des mots spécifiquement comme
00:29:37"scheduling" avec les crons et les workflows. Et des mots comme "parallèle" ou "performance" ou autre,
00:29:45vous pouvez diriger l'agent vers des choses spécifiques que vous connaissez sur Vercel. C'est très
00:29:53amusant de jouer avec le prompt utilisateur si vous avez un week-end pour explorer ça.
00:29:58Et encore une fois, je le répète, il est tout à fait possible de venir ici et de dire :
00:30:03"aide-moi à construire un plugin Claude Code avec un hook de prompt qui détectera les signes dollar"
00:30:09"et si c'est le cas, exécute un commit à l'intérieur du hook pour que je puisse..."
00:30:14avec ce prompt, j'aurais pu construire ça, donc ne vous inquiétez pas trop pour
00:30:19le code, vous pouvez juste commencer à jouer avec. Bon, maintenant que tout cela
00:30:26est bien ficelé, la fin de session est l'occasion de nettoyer les fichiers ou tout ce que vous avez écrit
00:30:32pendant la session. Donc si vous avez commencé à noter quelles compétences ont été exécutées, ou
00:30:39des informations sur les résultats des outils appelés, ou n'importe quel type de
00:30:48budget ou de suivi pendant la session, c'est le moment d'aller faire le ménage.
00:30:51Il y a des choses fascinantes à faire à la fin de la session. Parce que ça s'exécute
00:30:57essentiellement sur le Ctrl+C, donc à la sortie. Vous pouvez lancer d'autres agents
00:31:05pour dire : d'accord, regarde tous les fichiers qui ont changé dans la session. Correspondent-ils à...
00:31:09nous ne faisons pas ça. C'est juste qu'il y a des choses vraiment intéressantes
00:31:13que l'on peut faire en fin de session. Ma session est finie. Cette session représente-t-elle
00:31:20un progrès dans ce projet ? Est-ce du superflu ? Examine tous les fichiers modifiés.
00:31:26Est-ce une duplication de choses déjà présentes dans le projet ? Si c'est le cas, va
00:31:30nettoyer et alerte l'utilisateur par une notification système ou par
00:31:37d'autres moyens puisque votre session est terminée. C'est vraiment très intéressant
00:31:43ce qu'on peut faire là. Bon. Ceci étant dit, je vais
00:31:50juste écrire une petite démo rapide ici. Je vais lancer une version de Claude Code avec
00:31:56le plugin Vercel par rapport à une version sans le plugin Vercel. Je vais utiliser
00:32:04"Claude dangerously skip permissions", je vais laisser le débug activé, je montrerai ça dans un instant.
00:32:08Et ce modèle sera réglé sur Haiku. C'est le modèle le plus rapide et le moins intelligent
00:32:13pour Claude Code. Et je vais dire : écris juste un tutoriel sur l'IA SDK.
00:32:26Et on verra ce qui se passe. On va comparer ça côte à côte.
00:32:30On voit déjà qu'il commence à charger la compétence. Et celle-ci a le plugin chargé.
00:32:37Si je veux démarrer une session sans aucun plugin chargé, il y a un flag de sources de
00:32:46paramètres qui permet de désactiver les sources ou paramètres au niveau utilisateur ou
00:32:53au niveau projet, essentiellement pour ignorer tout réglage. Comme ça je peux charger sans
00:32:59les plugins. Le "no flicker", oups. Ce "no flicker" est nouveau d'hier, c'est pratique pour
00:33:05avoir un défilement fluide dans Claude Code. Donc je l'active aussi. Et puis je
00:33:12vais régler le modèle sur Opus, le plus intelligent. Et si je donne le même prompt pour
00:33:20un tutoriel sur le SDK. Voici la version standard ici. Et nous allons
00:33:28comparer les résultats. Oh, oups, je n'avais pas supprimé le précédent. Recommençons.
00:33:36Lançons ceci et exécutons cela. Je faisais tourner ça ce matin
00:33:50et je n'ai pas nettoyé avant de commencer. Donc laissez-moi relancer ça.
00:33:56Juste pour faire une comparaison. Ouais.
00:34:01Très bien. Alors
00:34:04la grande différence ici est qu'on a Haiku 4.5 contre Opus 4.6, n'est-ce pas ? Celui-ci est
00:34:15un million de fois moins cher et beaucoup, beaucoup plus rapide. Et il contient bien plus
00:34:22d'informations sur Vercel. Donc même si vous comparez le coût budgétaire des tokens
00:34:32supplémentaires que nous incluons, entre Haiku et Opus... pendant que ça tourne,
00:34:38j'aurais dû dire de créer un fichier markdown. Je suppose qu'il est en train d'écrire du code,
00:34:45mais ce sera assez intéressant. Voyons voir. C'est une chose à noter sur l'une
00:34:59des approches que nous adoptons pour beaucoup de nos compétences, comme je l'ai dit avant,
00:35:05à cause du numéro de version, car les compétences peuvent changer, nous fixons
00:35:13les versions. Laissez-moi reformuler. Différentes versions de nos bibliothèques nécessiteraient
00:35:21différentes compétences. Beaucoup de nos compétences disent : s'il vous plaît, regardez node modules,
00:35:28où nous regroupons beaucoup de docs pour qu'elles soient aussi liées à la version. En regardant ici,
00:35:34vous voyez qu'il lisait en fait les docs locales. Et il continue
00:35:40en préparant ce tutoriel. Bon. Donnons-lui ça. Celui-ci n'a pas fait
00:35:53de recherche du tout. Ce sera intéressant. La dernière fois j'avais fait plus de recherches. Et
00:36:01je peux déjà voir qu'il utilise un modèle obsolète, Sonnet 4 au lieu de
00:36:074.6. C'est dépassé. Il a mentionné "generate object", ce qui n'est pas ce qu'on veut. On
00:36:15utilise la V6. Et il y a déjà plein de choses qui sont juste obsolètes. Je ne dirais pas qu'elles
00:36:23sont fausses, mais elles sont très datées si vous voulez les meilleures performances
00:36:28et les meilleures pratiques du SDK. Bon. Est-ce que ça a capté quelque chose
00:36:37ici ? Oui, on dirait que la compétence SDK a vu qu'il avait écrit un tutoriel initialement
00:36:51ici. Et la compétence a capté qu'il n'était pas à jour pour la V6, sans que je dise
00:36:58quoi que ce soit. Et maintenant il se met à jour. Il est passé de "generate object" à "generate text".
00:37:03Et il met tout à jour pour s'assurer d'utiliser les dernières versions. Bien,
00:37:10je peux comparer les deux. Je vais juste ouvrir une nouvelle session. Allons-y et comparons
00:37:23la précision du tutoriel sans plugin face au tutoriel avec le plugin Vercel. Et ce sera
00:37:44intéressant car chaque fois que j'ai fait ça avant, Opus écrivait un fichier markdown,
00:37:48cette fois il a fait des extraits de code. Ce sera amusant de voir la différence.
00:37:54Quand vous faites ça, surtout si vous avez d'autres compétences qui tournent en même temps
00:38:03que ce plugin, y a-t-il un risque de conflit qui ferait que des trucs obsolètes
00:38:10soient préférés, ou est-ce que le plugin va avoir une sorte de priorité ?
00:38:16Le plugin va essentiellement, je dirais, injecter de force des compétences basées sur ses motifs. Donc
00:38:27il y a toujours ce risque, tout n'est qu'une question de contexte,
00:38:34tous ces fichiers ne sont que du texte envoyé dans une session. Je dirais donc
00:38:41de n'utiliser que ce que vous voulez pour le projet en cours car, très rarement,
00:38:49on installe une compétence au niveau utilisateur à moins de la vouloir pour chaque projet.
00:38:58Et même pour le plugin Vercel, nous cherchons les meilleurs moyens possibles pour
00:39:06ne charger que ce dont vous avez besoin pour le projet en cours. On a plein d'idées là-dessus.
00:39:11Mais l'une des idées les plus probablement controversées est la suivante : quand est-ce
00:39:23qu'un utilisateur dirait qu'il a installé un plugin Vercel ? Quelle supposition faire ?
00:39:30S'ils installent le plugin Vercel, mais qu'ils sont sur la plateforme d'un concurrent et qu'ils ouvrent un
00:39:35projet là-bas ? Devrions-nous leur parler de nos trucs ? C'est très
00:39:42controversé, n'est-ce pas ? Si une personne voit ça et qu'elle ne voulait pas,
00:39:47et qu'elle n'est pas intéressée par une migration vers Vercel, elle sera très mécontente.
00:39:53Une autre sera ravie. C'est donc fascinant. Si vous adhérez à la théorie selon laquelle
00:39:59tout le monde va interagir avec des agents... quelle est l'étiquette d'un plugin pour
00:40:05informer les agents des nouveautés géniales de votre plateforme sans
00:40:15marcher sur les pieds des autres plateformes ? Il y a beaucoup de choses. C'est très pertinent
00:40:24par rapport à ce que je fais en ce moment : nous allons passer en GA avec Workflow très bientôt.
00:40:31J'écris donc des guides de migration. Si quelqu'un veut migrer depuis un concurrent de Workflow,
00:40:37on pourrait directement utiliser une compétence pour dire : migrez de ceci vers Workflow. Voici
00:40:43comment faire. Si vous voulez faire ça, à quel moment dans un agent devrais-je en informer
00:40:49quelqu'un ? Ça, c'est vraiment très intéressant pour moi. C'est une priorité absolue
00:40:55puisque c'est ce sur quoi je travaille en ce moment même. Mais oui, les conflits
00:41:00de contexte vont être un problème à l'avenir. Je ne sais pas comment essayer
00:41:07de déduire ce que l'utilisateur veut en fonction du contexte du projet et de ce qu'il a demandé.
00:41:14Ce serait génial : on pourrait techniquement regarder les conversations passées pour voir ce qu'il
00:41:19a fait. On pourrait regarder l'historique des commits. On pourrait dire au CLI GitHub : va voir
00:41:27n'importe quoi dans le projet. On peut faire plein de choses pour rassembler du contexte,
00:41:35mais c'est aussi franchir certaines limites, comme appeler des outils qu'ils n'ont pas demandé d'appeler.
00:41:40Plein de trucs super intéressants... il est bien plus simple de tout faire
00:41:46dans Vercel et d'avoir juste un agent avec un ensemble spécifique
00:41:53de règles et un plugin qui livre tout magnifiquement là-bas sans
00:42:00avoir à se soucier de tous ces conflits. Bref. J'espère l'avoir mentionné, oui.
00:42:05À quel stade de ce processus les compétences se trouvent-elles normalement ? Par exemple,
00:42:14si j'avais une compétence pour migrer de "Create React App" vers "Next.js" dans mon dossier de compétences,
00:42:19est-elle plus susceptible d'être invoquée automatiquement chaque fois que
00:42:26je suis sur un projet Create React App ? Alors que si j'ai le plugin Vercel ici, je peux
00:42:32décider quand elle sera invoquée et, si j'ai construit cette migration comme un plugin,
00:42:39je peux faire en sorte qu'elle ne se produise que si l'utilisateur le demande explicitement. Est-ce le bon
00:42:47modèle mental ?
00:42:52Je pense que oui. Nous avons discuté du
00:42:59concept de compétences "one-shot" ou à usage unique qui sont plutôt : je veux
00:43:06faire une tâche comme une migration. C'est une tâche spécifique, ou
00:43:12une compétence liée à une tâche que vous ne voulez charger à aucun autre moment, sauf pour cette tâche.
00:43:17Vous voulez qu'elle soit limitée à la tâche. Pas au projet.
00:43:22Pas à l'utilisateur, mais à la tâche. Ce sont des discussions que nous avons.
00:43:27Et je n'ai pas de réponse parfaite car actuellement, si vous avez une compétence
00:43:33chargée, elle va influencer la structure et les modèles en fonction
00:43:41du modèle et des autres compétences. C'est difficile à dire sans savoir exactement ce qu'il y a d'autre
00:43:47dans le projet. Mais oui, les compétences limitées à une tâche
00:43:55sont aussi une priorité. Une autre question me vient à l'esprit : quelle part
00:44:04de cette architecture de plugin est spécifique à Claude Code ? Si je voulais un comportement
00:44:12similaire dans Cursor ou Codex ou les autres, ont-ils leur propre format de plugin ? Me faut-il
00:44:18un plugin pour chacun d'eux ? Comment ça marche ?
00:44:25Oui. Nous devrions avoir des annonces bientôt sur les spécifications des plugins
00:44:33et le fait que tout le monde s'accorde enfin sur des plugins qui fonctionneront universellement avec
00:44:39une compatibilité croisée. Presque tout le monde est d'accord là-dessus.
00:44:45on peut s'attendre à ce qu'il fonctionne avec les autres dans peu de temps.
00:44:54Mais oui, c'est génial. Il y a déjà beaucoup trop de dossiers de compétences. Je suis
00:45:00vraiment content qu'on commence enfin à standardiser tout ça. Oui. Une fois que l'idée,
00:45:07enfin, j'ai adoré quand je parlais avec Anthropic des plugins, la raison pour laquelle
00:45:13ils ont choisi le mot "plugin" plutôt qu'"extension", c'est que plugin implique
00:45:18quelque chose qu'on branche et qu'on débranche. Donc, si vous créez un plugin
00:45:24avec un ensemble de compétences, et que vous ne voulez l'utiliser que pour
00:45:33une seule tâche, cela devrait être tout à fait faisable. Si je suis sur mon projet,
00:45:40que je suis designer, je ne veux pas que toutes mes compétences de design
00:45:46interfèrent avec celles de développeur. On veut pouvoir brancher juste ces éléments.
00:45:52Et je suis tout à fait d'accord avec ces concepts : chaque personne aura ses propres
00:45:59tâches, rôles et projets. Et ils voudront des plugins plus que des compétences,
00:46:05parce qu'ils voudront probablement organiser leurs propres plugins, créer leur propre
00:46:10ensemble de compétences et de hooks entièrement personnalisés à leur façon de travailler.
00:46:16Est-ce que ça veut dire que je devrais envisager de déconnecter le plugin Vercel
00:46:21si je travaille sur un projet qui n'est pas sur Vercel ?
00:46:25Je dirais qu'à l'heure actuelle, oui, parce qu'il est très agressif dans sa façon
00:46:34d'anticiper. J'espère que je ne m'attirerai pas d'ennuis en disant ça. Mais
00:46:39l'intention réelle du plugin Vercel est la suivante : si vous voulez charger votre
00:46:46agent et lui dire "construis-moi ça", alors cette chose apparaît presque
00:46:53magiquement sur Vercel. C'est l'objectif initial. On voit comment ça fonctionne
00:46:59et, d'après les retours, on fait marche arrière un peu car on voit qu'on doit
00:47:04mieux détecter ce qu'il y a dans le projet pour désactiver certaines choses.
00:47:09Et ça arrive très, très, très bientôt. Donc, vous savez, gardez-le probablement
00:47:15installé et activé parce qu'on y travaille activement, on en parlait
00:47:18encore ce matin. Donc...
00:47:23Je vois. C'est donc un compromis où peut-être qu'à l'avenir, il comprendra
00:47:29un peu mieux quand s'invoquer. Mais pour l'instant, le moyen pour l'utilisateur
00:47:36de contrôler l'invocation du plugin est de le brancher ou non pour une session.
00:47:42Oui. Et pour l'instant, si vous tapez juste "/plugin", vous pouvez aller dans vos plugins
00:47:48installés, naviguer avec Tab jusqu'au plugin que vous voulez désactiver.
00:47:54On peut mettre à jour, désinstaller, tout ce qu'on veut. Donc on peut le désactiver ainsi.
00:48:03Et il y a d'autres astuces plus avancées, comme configurer des fonctions ZSH
00:48:10personnalisées qui chargent des paramètres spécifiques selon l'utilisateur... c'est étrange,
00:48:17ce concept de profil de la personne devant l'ordinateur. Genre,
00:48:23quels sont tous les plugins qu'elle veut selon ce qu'elle regarde ? Il n'y a pas
00:48:29de solution parfaite pour ça. J'espère qu'on en trouvera une, cependant.
00:48:34C'est comme quand une Waymo arrive et ajuste tous les sièges pour vous
00:48:39au moment où vous montez dedans.
00:48:40Oui, exactement. Et je pense qu'à un certain point, j'imagine qu'on verra
00:48:49des agents vous poser plus de questions sur vous-même. J'ai l'impression que
00:48:57le concept d'identité de profil et de rôle est une pièce manquante. À moins de
00:49:05vouloir supposer que tout le monde est désormais le chef de projet de tout.
00:49:12Je ne vois pas ça arriver de sitôt. Je pense juste que certaines personnes ont
00:49:19de meilleures idées sur certains sujets que d'autres.
00:49:20Alors, oui, passons cela en revue. Voyons ce qui est intéressant.
00:49:33C'est curieux de voir qu'Opus révise Opus et qu'il se trompe encore, non ?
00:49:37Il recommande toujours "generate object" et la v6. Vérifions avec la doc.
00:49:50Il essaie de vérifier et il dit que ce que j'ai écrit est incorrect.
00:49:56C'est encore valide mais daté. Notre Haiku a recommandé les modèles
00:50:05les plus récents, et pour moi, c'est super important. Je ne sais pas combien
00:50:08de fois vous avez essayé d'utiliser un agent pour écrire quelque chose avec l'IA,
00:50:14et il dit : "Utilisons GPT-4o"... non, c'est vraiment vieux maintenant,
00:50:20et c'est loin de la qualité dont on a besoin. C'est le genre de choses qu'on peut
00:50:25détecter et dire : "Vérifie les derniers modèles dans la passerelle IA".
00:50:31On pourrait dire de détecter les derniers modèles, demander à l'utilisateur
00:50:36ce qu'il veut et les décrire. Alors qu'actuellement, ces agents proposent
00:50:43toujours GPT-4. C'était intéressant de noter, au passage, que Claude Code
00:50:49recommande de plus en plus le SDK d'Anthropic récemment, alors qu'avant non.
00:50:55On se dit que quelqu'est en train de modifier les prompts système en coulisses
00:51:03pour recommander leur propre SDK. Je ne les blâme pas, c'est le business. Bien.
00:51:13Oui, "generate object" est toujours là. C'était bien. Après avoir vérifié la doc,
00:51:19le tutoriel est plus précis. Plusieurs choses que j'ai cru inventées existent.
00:51:25C'est Opus qui réalise que ce sont des choses réelles... c'est Haiku
00:51:32avec un plugin. Et Opus, qui écrit le tutoriel, essaie de le valider.
00:51:39J'ai dû lui dire de regarder précisément la doc pour trouver ce que Haiku
00:51:44avec le plugin a fait d'un coup. Et si vous connaissez la différence entre Opus
00:51:53et Haiku, c'est important. Voici un diff de tout ce qu'il a réussi pour les défis.
00:52:04Bref, j'espère que cela démontre de façon simple l'un des scénarios.
00:52:15Le SDK AI, c'est bien plus. Pour des choses comme le workflow et le sandbox
00:52:21avec les technologies Vercel plus récentes qui sont incroyables, mais pas encore
00:52:28dans les données d'entraînement des modèles. Ces distinctions s'accentuent
00:52:35car les modèles ne les connaissent même pas. C'est à ça que sert le plugin Vercel.
00:52:41Si vous avez des questions, contactez-moi sur X ou ailleurs. J'adore en parler,
00:52:48ravi de répondre aux inquiétudes. C'est un travail en cours, on va
00:52:52itérer sans cesse jusqu'à ce que ce soit une expérience magique.
00:52:59J'espère que vous en voyez les débuts aujourd'hui. Si vous avez
00:53:04des questions, j'y répondrai. Si vous avez des idées de plugins à explorer,
00:53:14j'en parlerai avec plaisir. Voilà, à moins que quelqu'un veuille
00:53:20que j'approfondisse autre chose. C'est ce que j'avais prévu pour aujourd'hui.
00:53:25J'apprécie vraiment que tu aies pris le temps. C'est beaucoup d'infos.
00:53:28C'est un grand changement. On avance si vite avec tous ces outils IA.
00:53:33Oui, ça ne va pas ralentir, malheureusement.
00:53:38Une question : si les gens veulent contribuer ou s'ils trouvent un bug
00:53:41et veulent le signaler, quel est le meilleur moyen de vous contacter ?
00:53:49Oh, oui, le dépôt pour ça. Vercel slash, Vercel slash plugin ou est-ce
00:53:51Vercel slash Vercel plugin ?
00:53:58Oui, c'est vercel/vercel-plugin.
00:54:03Parfait. Je vais mettre ça dans le chat aussi pour que les gens l'aient.
00:54:10Merci. Oui, les issues dessus sont parfaites. Ça va changer rapidement.
00:54:14Je sais que j'ai approuvé une grosse PR juste avant cet appel.
00:54:20Génial. Très bien, Jacob, d'autres questions de ton côté ?
00:54:24Non, non, je pense qu'on a tout couvert pendant le stream. Oui, merci
00:54:30pour cette démo si complète et géniale. Je me sens prêt à construire
00:54:37mes propres plugins Claude maintenant. Au lieu de juste crier sur l'agent
00:54:42quand il décide de faire un force push sur main, je sais maintenant
00:54:45quels hooks lui dire d'utiliser pour qu'il ne recommence pas. C'est super utile.
00:54:51Les pre-tools sont tes amis, c'est ta meilleure défense contre ce que tu ne veux pas.
00:54:56Super. Merci beaucoup, John. Je t'en prie. Merci à tous.
00:55:01Et merci à tous de nous avoir rejoints. Retrouvez les prochaines sessions sur
00:55:05[community.vercel.com/events](https://community.vercel.com/events). À la prochaine !

Key Takeaway

Le plugin Vercel pour Claude Code optimise le développement piloté par l'IA en injectant un graphe de connaissances à jour et des contrôles de cycle de vie qui forcent l'usage des dernières normes techniques, rendant les modèles légers comme Haiku plus performants que les modèles lourds non assistés.

Highlights

Le plugin Vercel pour Claude Code utilise des crochets de cycle de vie (hooks) pour intercepter et corriger les actions de l'agent en temps réel.

L'utilisation du modèle Haiku avec le plugin Vercel surpasse la précision du modèle Opus standard en forçant l'adoption des dernières API comme la version 6 du SDK IA.

Le graphe de connaissances injecté au début de la session permet aux agents de compenser une limite de connaissances datant de six à douze mois.

Les fonctions de pré-utilisation d'outil (pre-tool hooks) permettent d'empêcher de manière programmatique des actions indésirables comme des déploiements obsolètes ou des erreurs de syntaxe SDK.

Un standard d'interopérabilité est en cours de développement pour permettre aux plugins de fonctionner de manière identique sur Claude Code, Cursor et Codex.

Timeline

Évolution des compétences vers les plugins standardisés

  • Les plugins représentent l'évolution technique des compétences (skills) traditionnelles basées sur le Markdown.
  • Un effort de standardisation industrielle vise à rendre les plugins compatibles avec Claude Code, Cursor et Codex.
  • Le plugin Vercel constitue la première implémentation concrète de ce nouveau standard pour l'écosystème de déploiement.

L'industrie passe des simples fichiers d'instructions statiques à des modules dynamiques capables de s'intégrer profondément dans les éditeurs de code. Cette transition permet de partager des outils complexes entre différentes plateformes d'IA sans modification majeure du code source. L'objectif est de créer un écosystème où un seul outil de développement peut servir sur n'importe quel harnais d'agent.

Contrôle du cycle de vie via les hooks de session

  • Les crochets de cycle de vie permettent d'intervenir au début de la session, avant et après l'utilisation d'un outil, et à la soumission du prompt.
  • L'injection d'un graphe de connaissances au démarrage de la session synchronise l'agent avec l'état actuel de la plateforme Vercel.
  • L'analyse locale du fichier package.json permet au plugin d'adapter les conseils de l'agent en fonction des versions spécifiques des bibliothèques installées.

Le système de hooks offre un contrôle granulaire que les simples instructions textuelles ne peuvent atteindre. Au début d'une session, le plugin charge une table des matières de l'écosystème Vercel, incluant des glossaires et des liens vers la documentation la plus récente. Cela évite que l'agent ne travaille sur des bases de connaissances périmées, tout en restant entièrement local et respectueux de la confidentialité du projet.

Prévention programmatique des erreurs de développement

  • Le hook de pré-utilisation d'outil intercepte les tentatives d'édition de fichiers pour vérifier la conformité aux meilleures pratiques.
  • Le contrôle programmatique empêche l'agent de valider du code utilisant des API obsolètes avant même l'exécution des tests.
  • L'automatisation du contexte libère le développeur de la gestion manuelle des versions et des modèles de conception.

Contrairement aux compétences qui agissent comme des suggestions, les pre-tool hooks peuvent bloquer techniquement une action néfaste. Par exemple, si l'agent tente d'utiliser une méthode dépréciée d'un SDK, le plugin détecte l'anomalie et réinjecte la documentation correcte instantanément. Cette approche déplace la responsabilité de la précision technique de l'utilisateur vers l'auteur du plugin.

Optimisation du prompt utilisateur et gain de performance

  • L'analyse par expressions régulières des prompts utilisateur déclenche le chargement automatique de compétences spécifiques comme les Crons ou les Workflows.
  • Le plugin peut exécuter des scripts bash ou Node de manière autonome pour accélérer les tâches répétitives comme les commits Git.
  • La fin de session permet d'automatiser le nettoyage des fichiers temporaires et l'analyse de la progression globale du projet.

Le hook de soumission de prompt permet de créer un langage de commande personnalisé au sein de la conversation. En détectant des mots-clés comme "planning" ou "parallèle", le plugin oriente immédiatement l'agent vers les services Vercel adéquats. Cela réduit le nombre d'itérations nécessaires pour accomplir une tâche complexe en fournissant le bon contexte au moment précis où il est requis.

Démonstration comparative : Haiku assisté contre Opus standard

  • Le modèle Haiku équipé du plugin produit un code SDK v6 plus actuel que le modèle Opus fonctionnant seul.
  • Le plugin identifie et corrige en temps réel l'utilisation de méthodes obsolètes telles que generateObject au profit de generateText.
  • La gestion de l'identité et des rôles au sein des plugins est identifiée comme la prochaine frontière pour la personnalisation des agents.

Les tests montrent qu'un modèle moins coûteux et plus rapide peut surpasser un modèle haut de gamme si son contexte est rigoureusement géré par un plugin. Le plugin Vercel force la mise à jour des connaissances, évitant ainsi les recommandations de modèles d'IA datés. L'avenir des plugins s'oriente vers une détection encore plus fine du contexte projet pour éviter les conflits entre les différentes plateformes de cloud.

Community Posts

View all posts