00:00:00[SILENCE]
00:00:30[SILENCE]
00:01:00Bonjour à tous, comment ça va ?
00:01:25Bienvenue à une nouvelle session de la communauté Vercel.
00:01:29Nous sommes ravis de vous accueillir.
00:01:32Si c'est votre première participation à l'une de nos sessions,
00:01:35enchantée, je suis Pauline Navas de l'équipe communauté de Vercel.
00:01:40Vous m'avez peut-être déjà croisée sur les espaces communautaires.
00:01:44C'est toujours un plaisir pour
00:01:46moi de vous parler en direct et de créer du lien avec vous.
00:01:51C'est super de voir que vous êtes déjà nombreux à nous suivre.
00:01:56Si c'est la première fois que vous rejoignez une session et que
00:02:00vous ne voyez pas le chat alors que vous voulez poser des questions,
00:02:02ce que je vous recommande vivement de faire, d'ailleurs,
00:02:06n'hésitez pas à rejoindre notre plateforme sur community.versailles.com.
00:02:12Cliquez ensuite sur "Participer" pour cet événement.
00:02:15Et voilà, vous pourrez utiliser le chat et poser vos questions durant la session.
00:02:20Si vous nous regardez sur X ou une autre plateforme, n'hésitez pas non plus.
00:02:25Je suis vraiment impatiente pour la session d'aujourd'hui.
00:02:28Ça se voit peut-être, mais nous allons aborder un sujet qui
00:02:32révolutionne la façon dont les développeurs travaillent avec les agents IA.
00:02:36Il s'agit des "skills" (compétences) pour Claude Code.
00:02:39Si vous avez déjà rêvé que vos agents IA sachent simplement
00:02:44migrer vers Next.js correctement ou suivre les standards de votre équipe,
00:02:49c'est précisément ce que ces skills permettent de faire.
00:02:51Je suis donc très heureuse de vous présenter John,
00:02:56de l'équipe AI DX ici chez Vercel, qui va animer cet atelier avec vous.
00:03:02Salut John.
00:03:04Salut Pauline.
00:03:05Salut tout le monde.
00:03:05Merci d'être là.
00:03:07C'est un plaisir de te voir.
00:03:09Allez, c'est parti.
00:03:12C'est parti.
00:03:13Alors, parlons des "skills".
00:03:15On dirait qu'elles existent depuis toujours, mais ça fait peut-être deux semaines, qui sait ?
00:03:20Je vais parcourir cette présentation sur les skills.
00:03:24Je vais en montrer quelques-unes ; n'hésitez pas à poser des questions ou à m'interrompre,
00:03:28car j'adore discuter de ce sujet.
00:03:31Pour les skills, nous allons d'abord voir comment les créer et
00:03:35les publier.
00:03:36Cette présentation a été créée par une skill appelée "ReMotion Geist skill".
00:03:42Elle utilise notre charte graphique Vercel, la combine avec ReMotion
00:03:46pour générer ceci, et je vous montrerai ça vers la fin.
00:03:48Mais pour l'instant, je vais juste faire défiler quelques vidéos.
00:03:51Pendant longtemps, on a parlé de "prompt engineering"
00:03:55quand les modèles n'étaient pas encore tout à fait au point.
00:03:58Tout le monde devait peaufiner ses prompts à la perfection et
00:04:00on pensait que le prompt engineering deviendrait une carrière à part entière.
00:04:03Aujourd'hui, on passe au "context engineering" en permettant à ces skills,
00:04:08ces fichiers Markdown, d'être chargés à la demande plus tard.
00:04:13Il y a désormais une séparation entre votre prompt initial et
00:04:17ces éléments de contexte qui peuvent être chargés par la suite.
00:04:19C'est ce que nous appelons les "skills".
00:04:22Le concept des skills a commencé avec Anthropic.
00:04:25Ils devaient enseigner des tâches spécifiques à Claude Code car ils partent d'une
00:04:30page blanche ; chaque modèle redémarre à zéro, sans mémoire.
00:04:33C'est un peu comme un nouveau-né qui n'a aucune compétence.
00:04:37Tout ce qu'ils ont, c'est ce savoir inné injecté dans leur cerveau.
00:04:42Au départ, ils ne savent rien faire de spécifique.
00:04:44Alors Anthropic s'est demandé : comment résoudre ça ?
00:04:48Eh bien, la solution passe par le Markdown, car aujourd'hui, tout problème
00:04:51se règle avec du Markdown, et c'est ainsi que les skills sont nées.
00:04:55À partir de là, vous pouvez maintenant packager ces skills.
00:04:58Ces skills sont des fichiers Markdown que vous pouvez partager avec vos équipes et
00:05:04qui permettent d'encapsuler vos propres flux de travail internes.
00:05:07Vous pouvez les regrouper et les partager sur vos dépôts GitHub.
00:05:12Et nous avons lancé des outils personnalisés.
00:05:15Laissez-moi ouvrir un navigateur rapidement pour gérer les skills communautaires.
00:05:22Le site skills.sh est l'endroit idéal pour ça.
00:05:27Vous pouvez y rechercher des skills créées par la communauté.
00:05:29Vous y trouverez les skills les plus utilisées.
00:05:32Comme toujours, assurez-vous de faire confiance à la source de la skill,
00:05:36qu'elle vienne d'une source sûre ou de quelqu'un de votre équipe.
00:05:38Vérifiez qu'elle correspond bien à ce que vous essayez d'accomplir.
00:05:42Nous en reparlerons plus en détail plus tard.
00:05:45C'est un excellent point d'entrée pour explorer tout l'écosystème et
00:05:48la communauté des skills pour voir ce qui est disponible.
00:05:50Voici maintenant quelques détails sur la façon dont cet atelier est structuré,
00:05:56puis je passerai à la vidéo suivante.
00:06:00Revenons à cette idée de page blanche.
00:06:07Encore une fois, c'est comme un nouveau-né : une fois que votre agent démarre,
00:06:11sachant que l'agent est un modèle piloté par un moteur d'exécution.
00:06:14Je vais agrandir un peu ça.
00:06:16L'agent connaît les bases de React, TypeScript, CSS et SQL.
00:06:23Mais ce qu'il ignore, ce sont vos règles, vos schémas,
00:06:28votre système et votre structure.
00:06:30Vous pouvez donc injecter et combiner vos
00:06:35préférences personnelles avec ses connaissances pour combler ses lacunes.
00:06:40Vous lui apportez ce contexte, et les skills sont chargées pour
00:06:42qu'il puisse agir exactement comme vous le souhaitez.
00:06:45Ils connaissent un langage, ils maîtrisent TypeScript et React.
00:06:51Mais ils ne connaissent pas votre dialecte spécifique de ce langage.
00:06:53C'est une excellente façon de voir les choses.
00:06:54Bien, des questions jusqu'ici ?
00:07:01En ai-je manqué ?
00:07:03Pas de questions pour le moment.
00:07:06Mais il y a beaucoup d'enthousiasme dans le chat.
00:07:08Continue comme ça, John.
00:07:09On y va.
00:07:11J'aime voir cela comme un "moment NPM" pour les skills.
00:07:17NPM étant le gestionnaire de paquets que la plupart d'entre nous connaissons.
00:07:23Les gestionnaires de paquets proposent des ressources communautaires
00:07:27que vous pouvez utiliser pour faciliter le fonctionnement de vos produits.
00:07:30Si vous voyez skills.sh comme un gestionnaire de paquets pour les skills,
00:07:35vous pouvez installer ces capacités directement dans vos agents.
00:07:39Tout comme vous installeriez une bibliothèque,
00:07:41vous pouvez utiliser "npx skills add" pour ajouter du savoir à votre projet.
00:07:45Avant, le prompt engineering consistait à dire dans votre fichier claw.md,
00:07:52ou agents.md : "fais toujours ceci, fais toujours cela".
00:07:55"Utilise cette lib, vérifie Jira", et ainsi de suite.
00:07:59Désormais, nous avons ces skills que nous pouvons ajouter, qui capturent ces
00:08:04instructions et les intègrent à nos projets.
00:08:06Elles sont permanentes.
00:08:08On peut les partager au niveau de l'utilisateur ou du projet.
00:08:11Et elles peuvent être indépendantes de chaque projet individuel.
00:08:14Plus besoin de faire autant de copier-coller.
00:08:17On peut automatiser tout cela pour qu'au lancement d'un nouveau projet,
00:08:21vous puissiez ajouter toutes les skills dont vous avez besoin.
00:08:23Encore une fois, on s'éloigne de cette préoccupation constante
00:08:28de construire des prompts à rallonge.
00:08:30Très bien.
00:08:34Ce sont des capacités permanentes pour toute l'équipe.
00:08:38Et si vous n'avez jamais connu la galère de devoir
00:08:43gérer un fichier agents.md ou claw.md dans votre projet,
00:08:47avec des PR (Pull Requests) sur ces fichiers Markdown,
00:08:50sachez que cela résout aussi ce problème.
00:08:53C'est l'aspect "développeur seul contre toute l'équipe" dont je parlais.
00:08:58Cela aborde aussi un concept que l'on peut appeler
00:09:03"passif vs actif".
00:09:05Passif signifie que ces skills n'ont pas besoin d'être chargées
00:09:12avant d'être réellement nécessaires.
00:09:15Si on regarde les résultats dans agents.md,
00:09:22un fichier Markdown fait office de "system prompt",
00:09:25la chose qui est lue en premier.
00:09:26C'est systématique.
00:09:28L'agent est obligé de le lire.
00:09:31D'après les tests effectués sur tout cela,
00:09:35on voit que si on injecte trop de contexte là-dedans
00:09:38et qu'on sature la fenêtre de contexte,
00:09:41l'agent sera bien plus efficace pour suivre ces règles,
00:09:46comme "utilise toujours TypeScript et Tailwind", par exemple.
00:09:50Ces skills deviennent alors plus actives.
00:09:53Et les agents peuvent soit être invoqués manuellement,
00:09:57soit être chargés "paresseusement" par l'agent,
00:10:00apportant ce dont ils ont besoin juste à temps.
00:10:04Comme par exemple "déployer sur Vercel" ou "créer la base de données".
00:10:08C'est encore une fois l'opposition entre les règles et les outils.
00:10:13Voyez les skills comme des outils,
00:10:15et on a toujours besoin des deux.
00:10:18John, une question vient de tomber,
00:10:21je pense qu'elle tombe à pic pour cette partie.
00:10:24Comment choisir entre implémenter quelque chose en tant que MCP
00:10:28ou en tant que skill ?
00:10:30Je dirais que par défaut,
00:10:33il y a plusieurs niveaux. Si on considère,
00:10:37je veux juste afficher quelque chose à l'écran.
00:10:38Donc je vais mettre ça là-haut.
00:10:39Oui, bien sûr.
00:10:40Par défaut, réglez le problème avec du Markdown.
00:10:44Si le Markdown ne suffit pas, passez par un CLI (interface en ligne de commande).
00:10:47Si le CLI ne suffit pas, utilisez un MCP.
00:10:51Ce sont les différents niveaux d'abstraction.
00:10:53Le principe de simplicité veut que si vous trouvez un moyen
00:10:58de résoudre le problème avec du Markdown,
00:10:59cela s'applique d'ailleurs à n'importe quel outil basé sur l'IA.
00:11:01On peut voir que dans la manière
00:11:05dont Anthropic a conçu Claude Code,
00:11:08et les autres suivent le mouvement concernant les skills,
00:11:11les commandes et les sous-agents.
00:11:13Ce sont tous des fichiers Markdown avec du front-matter
00:11:15et de la configuration, et c'est généralement suffisant.
00:11:19Ces fichiers Markdown peuvent ensuite définir les outils
00:11:21dont ils ont besoin et les outils qu'ils sont autorisés à appeler,
00:11:24ainsi que les restrictions. Cela peut prendre du temps
00:11:29de passer par toutes ces étapes de configuration.
00:11:31Mais si vous vous retrouvez dans un scénario nécessitant un contrôle strict
00:11:37sur les charges utiles (payloads) et les types de données
00:11:40échangés entre l'agent et le MCP,
00:11:42alors là, les MCP sont une excellente solution.
00:11:43Ils sont là pour ça.
00:11:46Mais de manière générale, la tendance actuelle,
00:11:50le paradigme dominant, s'oriente vers les CLI
00:11:54et les fichiers Markdown, en n'utilisant les MCP que si c'est indispensable.
00:11:59Oui, c'est aussi ce que je vois passer
00:12:04dans toutes les discussions en ligne.
00:12:06On a une autre question qui arrive de X.
00:12:10"C'est incroyable. Dans un futur proche,
00:12:13pensez-vous que les skills permettront la découverte d'agent à agent ?
00:12:17Ce serait cool de voir un agent décider
00:12:20d'installer lui-même une skill." Excellente question.
00:12:22J'adore cette question, car l'interaction d'agent à agent
00:12:27est une fonctionnalité encore sous-exploitée, mais c'est un modèle d'avenir.
00:12:32Absolument, je peux tout à fait imaginer un fichier Markdown
00:12:39servant de descripteur pour charger un agent.
00:12:42Claude le permet déjà avec les sous-agents.
00:12:46Et justement aujourd'hui, c'est amusant d'évoquer
00:12:49les fonctionnalités de "Teams" qu'ils viennent de sortir.
00:12:54Ils peuvent désormais générer un groupe de sous-agents
00:12:59qui font ensuite leur rapport au chef d'équipe principal.
00:13:02Ils les appellent des « teams » désormais.
00:13:04Et ces équipes peuvent être essentiellement gérées
00:13:10par ce chef d'équipe unique, et vous pouvez aller vérifier
00:13:12ce que font les agents.
00:13:14Et ces agents ont des définitions de ce qu'ils,
00:13:18je me demande si je pourrais trouver rapidement le document pour ça.
00:13:23- Pendant que John cherche cela,
00:13:30si vous êtes sur le chat et que vous voulez poser une question,
00:13:34c'est le moment, n'hésitez pas à les envoyer toutes sur le chat
00:13:37et nous y répondrons tout au long de la session.
00:13:40- Où est-ce que je peux... je peux probablement poster ça
00:13:42dans le chat Twitter au moins.
00:13:47Alors, il y a,
00:13:51sur cette page, vous verrez comment un sous-agent est défini
00:13:58et vous pouvez voir qu'ils ont une section de métadonnées
00:14:01et dans cette section front matter,
00:14:03vous pouvez définir les compétences auxquelles ce sous-agent a accès.
00:14:08Donc si vous voulez créer un agent, dans ce cas,
00:14:13un sous-agent qui possède une liste de compétences,
00:14:17alors vous pourriez le faire par le nom de la compétence.
00:14:20Et nous n'avons pas encore,
00:14:22les prochaines diapositives concernent l'anatomie des compétences,
00:14:26mais les compétences ne sont essentiellement que des noms.
00:14:28Et vous pourriez donc avoir un sous-agent
00:14:29avec un ensemble spécifique de compétences,
00:14:31un ensemble de compétences très particulier,
00:14:34et vous pourriez charger ce sous-agent de s'attaquer à une tâche.
00:14:38Ce qui se passe avec la fonctionnalité Teams sortie aujourd'hui,
00:14:43c'est qu'ils peuvent,
00:14:45Claude Code peut essentiellement constituer sa propre équipe
00:14:48et créer ses propres agents
00:14:49pour accomplir la tâche du mieux qu'il peut.
00:14:53Mais vous pouvez définir des sous-agents personnalisés avec des compétences propres
00:14:56si vous voulez dire,
00:14:57« s'il te plaît, crée une équipe en utilisant ces sous-agents ».
00:15:00Bon, ce n'est pas tout à fait de la communication agent à agent.
00:15:05C'est une discussion encore plus vaste sur l'architecture
00:15:08de la communication inter-agents,
00:15:11ce qui était un peu hors de portée ici.
00:15:12Mais je vois vraiment ce modèle
00:15:14de définition des sous-agents
00:15:17être adopté pour la façon dont nous définissons les agents
00:15:21et la manière dont ils communiqueront entre eux.
00:15:23Comme la façon dont on expose un agent,
00:15:24j'imagine que ce serait un fichier markdown
00:15:26disant « voici de quoi je suis capable »,
00:15:28un peu comme le modèle « fais-moi entrer, coach » où l'on dit :
00:15:30« J'ai ces compétences, je sais tirer à trois points,
00:15:32je sais prendre des rebonds, fais-moi jouer ».
00:15:34Et ils pourraient se découvrir les uns les autres de cette façon.
00:15:39Et j'imagine que nous aurons un skills.sh pour,
00:15:43un peu comme un gestionnaire de paquets pour les compétences.
00:15:47Nous aurons un gestionnaire de paquets pour les agents
00:15:49et pour les fichiers markdown d'agents.
00:15:51C'est quelque chose qui va simplement arriver.
00:15:54Enfin, je suis sûr que c'est déjà arrivé
00:15:57et que quelqu'un a publié quelque chose,
00:15:58mais ce n'est pas encore devenu courant.
00:16:00- C'est très logique.
00:16:03Merci, merci.
00:16:04Si vous avez d'autres questions, les amis,
00:16:06mettez-les dans le chat.
00:16:08En attendant, tu veux continuer, John ?
00:16:10- Oui, absolument.
00:16:12Alors les compétences (skills), c'est juste un dossier, pas de serveurs ni d'hébergement.
00:16:15Et la compétence se trouve à l'intérieur d'un répertoire
00:16:20et vous lui donnez un nom, puis le nom de la compétence
00:16:24ou le fichier de compétence doit s'appeler skill.md.
00:16:28Cela permet aux agents, dans leurs processus de découverte,
00:16:31de pouvoir les trouver.
00:16:32C'est juste une convention établie pour que les outils
00:16:35fonctionnent mieux avec eux.
00:16:36Cela facilite grandement la création de gestionnaires de paquets,
00:16:39l'organisation et tout le reste.
00:16:41Et la compétence peut aussi avoir des éléments intégrés.
00:16:45Elle peut inclure des scripts, des fichiers de référence,
00:16:49et ainsi de suite, toutes ces fonctionnalités où la compétence
00:16:53peut faire appel à d'autres éléments référencés à l'intérieur.
00:16:56Donc la compétence, vous verrez, aura des métadonnées (front matter).
00:17:01Par défaut, elle a besoin d'un nom et d'une description.
00:17:04Et le nom serait... il correspond au nom du,
00:17:08si vous regardez la structure.
00:17:10Donc si nous en créions une appelée « my-skill »,
00:17:12vous la nommeriez « my-skill » ici.
00:17:17Et puis la description est cruciale
00:17:20car elle indique quand cette compétence
00:17:23sera utilisée par l'agent.
00:17:24L'agent va se dire,
00:17:26il va travailler sur la tâche que vous pourriez lui donner.
00:17:29Et s'il arrive un moment où il voit,
00:17:31« Oh, j'ai besoin de quelque chose qui va appliquer
00:17:33les standards de vente », alors il va charger cette compétence.
00:17:38Il va utiliser l'outil de chargement de compétences pour l'importer.
00:17:41Ces descriptions deviennent donc critiques.
00:17:42La façon dont vous les écrivez,
00:17:43si vous utilisez les compétences de manière paresseuse (lazy loading),
00:17:46sinon vous pouvez invoquer les compétences directement avec un slash
00:17:50et les traiter comme des commandes.
00:17:52Je pense avoir une diapo sur les commandes contre les compétences,
00:17:55mais au départ, c'étaient deux choses distinctes
00:18:00et maintenant elles ont fusionné en une seule.
00:18:03Avant, les compétences n'étaient chargées qu'à la demande,
00:18:04mais maintenant elles peuvent être invoquées par les utilisateurs avec un slash
00:18:08ou chargées automatiquement par l'agent.
00:18:12Et par là, je veux dire que si vous tapez slash ici,
00:18:17vous pouvez voir une liste des compétences disponibles,
00:18:19que vous pouvez invoquer manuellement si vous le souhaitez,
00:18:22ou vous pouvez attendre que l'agent les invoque quand il en a besoin.
00:18:27Alors à partir de là, plus concentré.
00:18:32- Je pense que tu vas y venir, John,
00:18:39mais personnellement, j'aimerais entendre un exemple concret.
00:18:43Quelle serait une petite compétence bien délimitée que tu recommanderais
00:18:47à tout le monde de construire en premier pour comprendre ce modèle ?
00:18:52- Oh, c'est... alors laissez-moi donner ce que je pense
00:18:55être l'un des meilleurs exemples en ce moment.
00:18:57Essentiellement chez Vercel, certains problèmes de compétences
00:19:03que nous rencontrons sont liés au fait que nous sortons des nouveautés
00:19:07à un rythme très soutenu.
00:19:12Les agents et les modèles ont des dates de coupure de connaissances
00:19:15qui remontent à quelques mois, voire un an ou plus.
00:19:19Et donc par défaut, si le...
00:19:24si vous donnez une tâche à l'agent, il pourrait utiliser Next.js 14,
00:19:30alors que c'est déjà dépassé de quelques versions.
00:19:33Il pourrait utiliser l'AISDK qui, vous le savez,
00:19:35a récemment déprécié des fonctions comme « generate object »,
00:19:39qui fait maintenant partie de « generate text »
00:19:41pour que l'API soit plus standardisée et facile à suivre.
00:19:45Et donc vous allez rencontrer ces problèmes où
00:19:50il utilisera une version plus ancienne
00:19:51pendant que vous essayez de faire quelque chose
00:19:53en lisant la documentation,
00:19:54et les choses sont désynchronisées et obsolètes.
00:19:56Et le projet finit par piétiner pendant un moment,
00:20:00à essayer de comprendre pourquoi vous avez fini
00:20:03par ne pas être aligné sur ce dont il a besoin.
00:20:05Donc pour vous aligner avec l'agent,
00:20:08vous pourriez créer une compétence qui dit simplement :
00:20:11« utilise cette version de React, utilise cette version d'AISDK,
00:20:16utilise cette version de workflow ».
00:20:18Et ensuite vous pouvez mettre des références
00:20:19indiquant où trouver les informations les concernant.
00:20:22Par exemple, une compétence que j'ai construite pour Vercel,
00:20:28laissez-moi retrouver ça.
00:20:33La compétence de workflow Vercel est celle-ci,
00:20:40que j'ai publiée il y a quelques jours.
00:20:43Et la façon dont nous procédons,
00:20:46c'est que nous disons essentiellement, parce que les numéros de version nous importent beaucoup,
00:20:49nous avons commencé à publier de la documentation avec nos paquets NPM
00:20:50et nous lui disons : « ton workflow est sorti »,
00:20:54ou « ta connaissance du workflow est dépassée ».
00:20:58On le sait parce que ce workflow est mis à jour
00:20:59presque quotidiennement en ce moment avant sa sortie officielle (GA).
00:21:02Mais ce que nous pouvons faire, c'est dire : « Écoute,
00:21:06on a intégré la doc ».
00:21:10Donc dès que tu as besoin de regarder le workflow,
00:21:11va voir dans la doc qu'on a fournie
00:21:13et vérifie la version la plus récente.
00:21:16Et cela a permis que, chaque fois que je lance un workflow,
00:21:18je n'ai pas à m'inquiéter qu'il trouve des informations obsolètes.
00:21:22Il va toujours trouver les informations intégrées
00:21:25avec le paquet NPM pour être en phase
00:21:27et aligné avec la version elle-même.
00:21:32C'est donc une compétence très simple : essentiellement,
00:21:34« va lire le manuel » avec quelques meilleures pratiques essentielles
00:21:38comme références rapides.
00:21:42Ce sont des compétences qui règlent les problèmes
00:21:44de dates de coupure de connaissances des agents
00:21:48et des soucis de numéros de version.
00:21:53Une compétence que vous pourriez écrire pour vous-même,
00:21:57je dirais que si vous utilisez la compétence,
00:22:01je vais faire une démonstration d'une compétence appelée « create skill ».
00:22:07Si vous cherchez sur skills.sh pour « create skill »,
00:22:11create skill, je ne sais pas si le...
00:22:14si vous en prenez un,
00:22:23prenez probablement celui de l'équipe Claude Code.
00:22:28Voyons Claude, je crois qu'on a publié le leur.
00:22:33Désolé, celle-ci n'était pas prévue à l'avance.
00:22:39- Oui, tu peux... pendant que tu cherches celle-là.
00:22:42Oh, super, vas-y.
00:22:46- J'aurais dû penser à Anthropic
00:22:47au lieu de Claude Code.
00:22:49Oui, donc si vous importez l'un de leurs modèles « create skill »,
00:22:50vous pouvez dire « create skill »
00:22:54et ensuite... oups, vous dites « create skill » et tapez,
00:22:58disons : « analyse mon style d'écriture
00:23:02dans le fichier readme.md et crée une compétence
00:23:09qui suivra toujours ce style d'écriture ».
00:23:12Et cela prendra tout ce qui est dans le readme
00:23:14pour créer une compétence qui est essentiellement
00:23:19votre style d'écriture personnalisé,
00:23:21pour qu'à partir de là, vous puissiez invoquer la compétence,
00:23:23par exemple « style d'écriture John » ou autre.
00:23:26Vous pourriez lui donner des tonnes de documentation,
00:23:28des URLs de vos articles de blog,
00:23:31vos propres posts ou le langage client,
00:23:33et lui fournir tout ça.
00:23:37Je pense que c'est toujours un bon point de départ :
00:23:38qu'est-ce que j'ai déjà
00:23:40que je veux pouvoir reproduire ?
00:23:42Qu'est-ce que j'utilise constamment
00:23:43Comme quelque chose que j'utilise tout le temps
00:23:46et que je vais continuer à utiliser davantage.
00:23:50C'est donc généralement les messages clients,
00:23:53les blogs, le contenu et les documents
00:23:56que vous avez produits par le passé
00:23:57et dont vous voulez produire davantage.
00:23:59C'est donc un excellent premier style à aborder.
00:24:04- C'est un très bon point.
00:24:05Je vais certainement essayer ça.
00:24:06Je voulais juste lire quelques commentaires
00:24:08dans le chat ici.
00:24:10Dave a dit que nous avons créé des compétences
00:24:14pour permettre à un fondateur de startup qui n'avait pas codé depuis 10 ans
00:24:17de pouvoir contribuer au code
00:24:19sans se heurter aux limites architecturales
00:24:23d'une nouvelle base de code.
00:24:24Je trouve que c'est une très bonne utilisation des compétences,
00:24:27aider les gens non techniques ou débutants en code
00:24:30à pouvoir participer à l'acte de coder
00:24:32sans compromettre les normes de qualité, ce qui est génial.
00:24:38Et je voulais aussi dire, Dave a dit plus tôt :
00:24:42Je rejoins ce que dit John,
00:24:45concernant les outils couramment utilisés de nos jours.
00:24:47Oui, les seuls outils MCP qu'il utilise sont les Chrome DevTools,
00:24:52un MCP pour interagir avec un outil de gestion de projet
00:24:56comme Linear ou JIRA, et pour travailler avec une base de données.
00:24:59C'est donc un écho à tout ce que tu as dit plus tôt.
00:25:02Avant de continuer, nous avons aussi eu une question dans le chat
00:25:07sur ton avis concernant le fait que les fichiers agents.md surperformeraient les "skills"
00:25:12dans notre article de blog sur les évaluations d'agents que nous avons publié.
00:25:17Je ne sais pas si tu vas aborder cela
00:25:19plus tard dans ta présentation.
00:25:21Je sais que nous avons fait plusieurs digressions ici,
00:25:25mais veux-tu en parler maintenant ?
00:25:27- Oui, bien sûr.
00:25:28Évaluer des modèles et des agents
00:25:34est une chose terriblement difficile à faire.
00:25:38Parce que souvent, quand on écrit des évaluations pour eux,
00:25:42on les teste sur un projet nouveau et vide
00:25:46qui ne contient aucun contexte.
00:25:49Et on lui donne ce scénario spécifique,
00:25:51comme « avec ce projet vide, essaie Next.js » ou autre.
00:25:56Et si vous écrivez cela comme une évaluation,
00:25:59mais sans prendre en compte le fait que,
00:26:03disons, Opus 4.6 est sorti aujourd'hui,
00:26:05ou quel que soit le modèle utilisé,
00:26:07ou le projet et tout ce contexte supplémentaire,
00:26:10ou le modèle, l'agent ou l'exécuteur.
00:26:13Cloud Code aura un prompt système différent,
00:26:16et Cursor aura un prompt système différent.
00:26:17Il y a tellement de variables,
00:26:21et les modèles eux-mêmes sont,
00:26:24de toute façon, non déterministes,
00:26:26que les tester est une chose très, très ardue.
00:26:31Ceci dit, agents.md par rapport aux compétences (skills),
00:26:37c'est forcer le contexte versus charger le contexte à la demande.
00:26:42Si l'on résume l'article de blog à :
00:26:47« Est-ce que forcer le contexte est mieux que le charger à la demande ? »
00:26:51La réponse sera oui,
00:26:53parce qu'il va le traiter comme
00:26:57l'instruction initiale, la chose la plus importante
00:27:00au début du cycle de vie de l'agent.
00:27:03Cela va simplement lui apprendre :
00:27:08« Voici ce sur quoi nous travaillons. »
00:27:10C'est la meilleure chose que nous puissions faire.
00:27:12En fait, j'ai quelque chose qui traite de ça
00:27:14que je comptais montrer à la fin,
00:27:16où l'on peut aussi amorcer ou précharger des compétences.
00:27:20C'est juste l'une de ces choses
00:27:25inhérentes au fonctionnement des modèles.
00:27:29Et j'espère que l'article de blog n'est pas interprété
00:27:33autrement ; cela ne signifie pas que les compétences sont mauvaises.
00:27:35Cela signifie juste que si vous avez absolument besoin d'instructions
00:27:39qui soient toujours suivies, alors utilisez le fichier agents.md,
00:27:42c'est ainsi que je le lirais.
00:27:44Cela fait une semaine que je n'ai pas relu cet article, cela dit.
00:27:48- Oui, c'est tout à fait logique.
00:27:50Super.
00:27:51Petit rappel pour tout le monde dans la communauté,
00:27:53si vous avez d'autres questions, posez-les.
00:27:56Sinon, John, continue.
00:27:57- D'accord.
00:28:01Donc, un fichier de compétence est juste du Markdown.
00:28:04Vous pouvez voir cet exemple d'instructions :
00:28:06« Lors de la révision du code React, serveur uniquement, optimise ceci »,
00:28:09en mettant simplement une liste de choses
00:28:12que vous voulez voir se produire.
00:28:14Et ensuite, vous pouvez inclure des scripts à référencer
00:28:19ou des éléments que vous voulez pouvoir appeler
00:28:21et avoir n'importe quel type de package, un ensemble de...
00:28:25un ensemble d'éléments que vous voulez qu'il voie.
00:28:30Très bien.
00:28:32Les compétences, c'est un peu comme ajouter un agent,
00:28:37ajouter un ingénieur senior.
00:28:38Bon, on continue.
00:28:42Voici les cas d'utilisation.
00:28:46Passons en plein écran.
00:28:49Alors, pour certains schémas,
00:28:52les bonnes pratiques React sont l'une des...
00:28:57l'une des compétences les plus téléchargées, ou probablement la plus,
00:29:00sur le gestionnaire de paquets de compétences.
00:29:02Et cela permet simplement de renforcer
00:29:08quelles sont les meilleures pratiques,
00:29:09même au-delà de ce sur quoi le modèle a été entraîné.
00:29:12Parce que le modèle est entraîné sur le code de tout le monde
00:29:14et vous voulez qu'il suive vos propres modèles spécifiques.
00:29:18Allons ici.
00:29:21L'automatisation du flux de travail.
00:29:26Si jamais vous voulez regrouper quelque chose
00:29:27sous forme de fichier zip ou autre,
00:29:30c'est presque comme un script en langage naturel.
00:29:34Je pense souvent aux applications de nos jours.
00:29:40Soit elles se réduisent à un script,
00:29:44soit elles évoluent vers un agent,
00:29:47parce que soit vous avez besoin de ce résultat déterministe
00:29:50où l'entrée correspondra toujours à la sortie,
00:29:53soit vous avez besoin d'un agent capable de comprendre
00:29:56ce qui se passe si les données ne correspondent pas tout à fait.
00:29:59Si vous voulez créer ce genre d'automatisation
00:30:02plutôt qu'un script, là où il peut intelligemment
00:30:07regrouper les choses... par exemple,
00:30:10si vous dites à votre agent de faire un « git commit » et qu'il répond :
00:30:15« Eh bien, j'ai remarqué que vous avez une vidéo dans ce projet. »
00:30:20« Je vais l'ignorer parce que les vidéos sont des fichiers volumineux »
00:30:25« et nous ne voulons pas les ajouter. »
00:30:26Il est généralement intelligent sur ces points.
00:30:29Alors qu'avec un script, si vous l'aviez écrit,
00:30:30vous devriez prendre en compte tous ces scénarios.
00:30:33Donc si vous voulez créer une automatisation pour cela,
00:30:36vous pouvez configurer cette chaîne d'événements et il peut le faire.
00:30:41Et puis il y a aussi les garde-fous, où vous pouvez lui dire :
00:30:44« S'il te plaît, consulte les instructions, les directives, »
00:30:49« les couleurs, etc. »
00:30:53Ceux-là sont souvent bons à charger dès le départ
00:30:56pour s'assurer que votre agent ne... enfin, il y a des sous-agents,
00:31:00il y a beaucoup de scénarios avancés pour les garde-fous aussi.
00:31:02C'est probablement un atelier pour un autre jour.
00:31:07D'accord, donc encore une fois : appliquer des standards,
00:31:12automatiser les pipelines et protéger vos systèmes.
00:31:17Très bien, faisons celui-là.
00:31:21Bon, sautons la démonstration en direct pour aujourd'hui.
00:31:30Parlons maintenant de la publication.
00:31:37Publier, c'est essentiellement pousser vers GitHub,
00:31:46et ensuite n'importe qui peut simplement référencer votre dépôt GitHub
00:31:51et ajouter votre compétence.
00:31:52Ils n'ont pas besoin de chercher le lien exact.
00:31:56Si vous regardez sur skills.sh pour ajouter des compétences,
00:32:00je ramène ceci, vous verrez que,
00:32:04si on en prend une au hasard ici dans l'utilisation du navigateur,
00:32:08cela vous donne un lien à copier-coller pour installer une compétence,
00:32:11mais vous pourriez juste ajouter...
00:32:13Je ne pense pas avoir "browser use" installé.
00:32:14Je vais prendre ceci et juste faire une démo,
00:32:18ouvrir un onglet et procéder ainsi.
00:32:23Donc si je ne spécifie pas manuellement la compétence
00:32:29mais que je donne juste un dépôt GitHub,
00:32:31il ira chercher les compétences,
00:32:34utilisera "install skill package".
00:32:36Il vous demandera quels éditeurs vous voulez utiliser.
00:32:39Je vais juste mettre Cloud Code pour l'instant.
00:32:42Il demandera si vous la voulez dans votre projet ou globalement,
00:32:45je dirai projet, et le lien symbolique permet à tous
00:32:49de référencer le même fichier, puis on continue.
00:32:53Et vous pouvez voir que même si je n'ai pas spécifié
00:32:55le fichier exact, il est allé trouver les compétences Claude.
00:33:00Le dépôt "browser use" contient ce fichier skill.md.
00:33:09Et si on le regarde, faisons ça.
00:33:13Oups, et skill.
00:33:18Vous pouvez voir ce qu'ils ont inclus ici
00:33:22comme compétence "browser use", ça commence
00:33:26par le Markdown en haut.
00:33:27C'est une compétence assez longue.
00:33:32Juste avec le nom, la description, elle a des outils autorisés,
00:33:35indiquant que c'est une compétence qui permet d'utiliser
00:33:39l'outil de navigation sans que l'utilisateur ait à approuver.
00:33:42Cela lui donne des permissions pour que tout ce qui
00:33:47concerne "browser use" soit autorisé.
00:33:49Si vous invoquez cette compétence,
00:33:50vous n'avez pas besoin d'approuver l'utilisation du navigateur.
00:33:53Ensuite, ça montre que si vous ne l'avez pas installé,
00:33:56ça lui apprendrait comment l'installer,
00:33:58ça lui apprend les bases et comment utiliser cet outil.
00:34:04D'accord, revenons à notre...
00:34:09Et oui, tout ce que vous avez à faire est de pousser un fichier Markdown
00:34:15sur un dépôt GitHub et ensuite "impact skills add" peut l'ajouter.
00:34:19Encore une fois, n'installez que des compétences de confiance
00:34:23car vous pouvez les traiter
00:34:26comme des paquets NPM ou des scripts ; vous ne voulez pas utiliser
00:34:31n'importe quelle compétence ou paquet NPM au hasard
00:34:35parce que vous ne savez pas ce que les gens publient.
00:34:38Assurez-vous de leur faire confiance.
00:34:40Bien, et vous pouvez utiliser des dépôts privés
00:34:45ainsi que des sous-modules Git.
00:34:48Et puis notre registre communautaire,
00:34:51je l'ai déjà montré quelques fois.
00:34:54Très bien, super.
00:34:55À partir de là, vous créez simplement un fichier Markdown,
00:35:00vous le publiez sur un dépôt GitHub
00:35:02et nous pouvons ensuite le découvrir et l'installer.
00:35:05Je veux vous montrer comment utiliser "awesome skills".
00:35:09Des questions à aborder avant que je ne me lance là-dedans ?
00:35:13— Oui, il y a une question qui a été posée plus tôt.
00:35:16De combien d'exemples d'un paquet ou d'une bibliothèque totalement inconnus
00:35:21un LLM a-t-il besoin, en supposant qu'ils ne figurent pas
00:35:26dans les données d'entraînement du LLM,
00:35:28pour utiliser ce paquet ou cette bibliothèque comme une compétence
00:35:31et obtenir de bons résultats ?
00:35:33— Combien pour obtenir de bons résultats ?
00:35:36Désolé, peux-tu relire la question une fois de plus ?
00:35:39— Oui, bien sûr.
00:35:40De combien d'exemples d'un paquet ou d'une bibliothèque
00:35:45totalement inconnus un LLM a-t-il besoin, en supposant qu'ils ne figurent pas
00:35:49dans ses données d'entraînement pour utiliser le paquet, voilà.
00:35:53— Donc, en gros, combien d'exemples devriez-vous intégrer
00:35:55dans la compétence ?
00:35:56— Oui, c'est ça.
00:35:57Essentiellement, une façon de voir les choses,
00:36:00plutôt que de penser en nombre d'exemples à inclure,
00:36:05c'est de l'envisager comme un livre
00:36:09avec une table des matières, des chapitres, etc.
00:36:12Si l'agent se retrouve dans un scénario précis
00:36:14et que vous lui donnez un manuel d'instructions,
00:36:17un peu comme le manuel de votre voiture par exemple,
00:36:21vous ne voulez tourner les pages que pour trouver
00:36:26le cas où le voyant moteur est allumé.
00:36:29Je n'ai pas besoin de lire les pages sur les pneus
00:36:32ou autre chose, n'est-ce pas ?
00:36:33Donc, si vous structurez votre compétence de manière
00:36:36à avoir une compétence principale,
00:36:38qui est : "voici le manuel de votre voiture".
00:36:40Et ensuite, si vous avez besoin d'en savoir plus sur le voyant moteur
00:36:44— je ne suis pas mécanicien — ou sur la boîte à gants,
00:36:49alors vous pouvez aller à cette page spécifique
00:36:51et l'agent peut charger un autre fichier markdown
00:36:53ou plus d'informations spécifiques à la tâche
00:36:57en cours.
00:36:58Ainsi, au lieu d'essayer de balancer des tas d'exemples
00:37:01sur le fonctionnement global d'une voiture,
00:37:06sur la machine entière, vous pouvez la décomposer.
00:37:11Et je ne parle pas de tout taper manuellement.
00:37:14Je dis que lorsque vous demandez à votre agent de créer une compétence,
00:37:18faites en sorte qu'il l'organise pour que la compétence liste les éléments
00:37:23en fonction du moment où il aura besoin de chapitres spécifiques
00:37:26de ce livre.
00:37:27De même, les compétences peuvent avoir des références
00:37:30et charger du contexte supplémentaire au besoin,
00:37:33selon la tâche à accomplir.
00:37:35Comme avec la plupart des bibliothèques,
00:37:39si vous prenez un paquet NPM, pour beaucoup d'entre eux,
00:37:43vous n'importez jamais que quelques méthodes
00:37:45car vous n'avez pas besoin de toutes les fonctions de date
00:37:48d'une bibliothèque de dates.
00:37:50Vous n'avez pas besoin de chaque composant
00:37:52d'une bibliothèque de composants.
00:37:53Vous avez seulement besoin d'exemples de ceux qui sont
00:37:57nécessaires pour votre tâche spécifique.
00:37:59Essayez donc de voir les choses sous cet angle : décomposez
00:38:03par besoin, par tâche, par exigence,
00:38:07plutôt que d'essayer de gaver le projet
00:38:11avec une base de code entière.
00:38:12— C'est très logique.
00:38:14Une autre question : comment tester
00:38:17si l'agent a vraiment appris un nouveau paquet
00:38:21via la compétence ?
00:38:22Y a-t-il des prompts simples ou des modèles d'évaluation
00:38:25que vous recommandez pour valider cela avant un déploiement en équipe ?
00:38:29— Le consensus général, et ce que je soutiens,
00:38:37c'est simplement de créer quelque chose, de l'utiliser,
00:38:40de voir où ça échoue et d'itérer.
00:38:43C'est beaucoup l'état d'esprit du développement par agents :
00:38:49au lieu de trop réfléchir à l'organisation,
00:38:54à la planification et à ce qu'est la compétence parfaite,
00:38:57faites quelque chose, voyez là où ça pêche,
00:39:00puis améliorez-le.
00:39:01En ce qui concerne... j'ai exploré des moyens de lancer
00:39:08neuf sessions différentes, voire bien plus,
00:39:13de Claude Code, toutes chargeant des compétences différentes
00:39:15pour voir lesquelles sont les plus performantes.
00:39:17Et là, vous obtenez tous ces exemples différents
00:39:19et vous essayez de déterminer lesquels
00:39:24semblent les meilleurs à l'œil nu,
00:39:26ou vous demandez à Claude d'évaluer ses propres résultats.
00:39:29Ça devient vite une tâche quasi impossible pour l'instant.
00:39:34Donc, concrètement, quand vous utilisez la compétence,
00:39:37ce n'est qu'un fichier markdown.
00:39:39Demandez simplement à votre équipe d'aller le mettre à jour,
00:39:40ou demandez à l'agent de le faire.
00:39:43À la fin de n'importe quelle conversation,
00:39:46si quelque chose a échoué, vous pouvez simplement dire :
00:39:49"Veuillez mettre à jour la compétence en fonction de cette conversation",
00:39:54ou quelque chose de ce genre.
00:39:56L'agent pourra aller trouver le fichier markdown,
00:40:00le modifier et pousser les changements.
00:40:02C'est tout simplement comme ça que nous travaillons
00:40:08avec en ce moment.
00:40:09Évidemment, il y a des histoires de numéros de version
00:40:13et d'autres choses qui compliquent l'affaire.
00:40:16Mais nous en sommes au point où les modèles
00:40:19deviennent meilleurs pour charger des compétences.
00:40:21Je ne connais pas les benchmarks exacts
00:40:24pour Opus 4.6 contre 4.5 ou GPT 5.3 contre 5.2 sur ce point,
00:40:29mais je parie qu'ils sont meilleurs maintenant
00:40:33qu'ils ne l'étaient ce matin même.
00:40:35C'est typiquement le genre de problèmes
00:40:40où l'on se dit : "Oh, je dois rendre ce truc parfait".
00:40:42Puis on y passe quelques semaines avant de le sortir.
00:40:44Et au moment où c'est prêt,
00:40:46les modèles ont déjà changé cinq fois
00:40:48depuis que vous avez commencé.
00:40:49Mieux vaut livrer et itérer
00:40:52que d'essayer de sortir un truc parfait d'emblée,
00:40:56c'est le meilleur conseil que je puisse donner.
00:40:58— Oui, l'excellence par l'itération.
00:41:00On est d'accord, John ?
00:41:01— ITG : Iterate To Greatness.
00:41:02— Voilà, ITG.
00:41:04Juste une dernière question avant de te laisser continuer.
00:41:08As-tu observé un point de rendement décroissant,
00:41:10où ajouter plus d'exemples à une compétence
00:41:13cesse d'améliorer le comportement ou finit par perdre le modèle ?
00:41:17— Non, je n'ai pas vu ça.
00:41:23Je ne mets pas énormément de choses dans mes fichiers de compétences.
00:41:27La compétence de création de compétence que j'utilise sépare beaucoup.
00:41:33Il faut que je retrouve laquelle c'est exactement
00:41:35car j'utilise celle de quelqu'un d'autre.
00:41:37Laisse-moi chercher ça hors écran.
00:41:40C'est peut-être quelque chose qui...
00:41:42car ça touche à des fichiers de configuration qui...
00:41:45— Oui, coupe ton partage d'écran
00:41:47et on le remettra quand tu seras prêt.
00:41:49— Alors, voyons.
00:41:52— Je voulais juste dire que nous avons environ 200 personnes
00:41:57sur le stream, ce qui est génial.
00:41:58Bonjour à tous.
00:41:59Si vous venez d'arriver,
00:42:01n'hésitez pas à poser une question dans le chat
00:42:03et nous la transmettrons à John.
00:42:07— Avec plaisir pour y répondre.
00:42:12— Oui, il faut que je retrouve celle que j'utilise.
00:42:16Ok, ça a l'air bon.
00:42:19Celle que j'utilise, je dois trouver d'où elle vient.
00:42:27Je ne sais pas si une fois installée,
00:42:29l'URL d'origine est conservée,
00:42:32ou si via NPX ou "skills",
00:42:36on peut avoir cette info,
00:42:37mais je ne veux pas lancer de commandes au hasard en direct.
00:42:43Celle-ci dit en fait à l'agent
00:42:44d'utiliser un système de chargement à trois niveaux
00:42:47avec des métadonnées et des ressources groupées,
00:42:49où on lui demande explicitement de tout décomposer
00:42:54en ressources et instructions supplémentaires.
00:42:57Donc j'utilise des agents pour générer des compétences
00:43:02et à partir de là... j'ai toujours fait comme ça,
00:43:07soit avant en copiant-collant la doc
00:43:11de Claude Code dans l'agent en disant :
00:43:13"Crée une compétence basée sur cette doc".
00:43:15Et maintenant, j'utilise cette compétence dédiée pour ça.
00:43:17Je n'ai jamais essayé de forcer trop d'exemples.
00:43:23Je sais qu'il y a des règles générales pour garder,
00:43:28disons, votre fichier de compétence sous les 200 lignes environ,
00:43:31mais encore une fois, ça dépend du modèle
00:43:35et les modèles s'améliorent.
00:43:36Oui, celle-ci recommande moins de 200 lignes.
00:43:39Donc n'en faites pas trop, restez minimaliste.
00:43:44Et si vous trouvez des lacunes, comblez-les,
00:43:47surtout si vous êtes expert dans le domaine,
00:43:50vous saurez identifier ce qui manque.
00:43:52Si vous n'êtes pas expert
00:43:56et que vous utilisez une compétence qui ne vous est pas familière,
00:43:58gardez un œil plus attentif dessus au lieu de la laisser tourner.
00:44:01N'espérez pas mettre en place
00:44:03un énorme système d'orchestration d'agents,
00:44:06installer des compétences dont vous ne savez rien
00:44:08et que tout fonctionne exactement comme prévu.
00:44:11Il faudra surveiller tout ça.
00:44:13— Oui, c'est globalement un très bon conseil, à 100 %.
00:44:17Génial.
00:44:20— Très bien.
00:44:22Par exemple, les vidéos que j'ai faites ici pour ce projet
00:44:28ont toutes été créées avec une compétence "create remotion guide",
00:44:34qui est disponible sur skills.sh.
00:44:37Si vous la cherchez.
00:44:39Et Geist.
00:44:43Geist étant un système de design de Brazil,
00:44:48et Remotion étant... laissez-moi chercher hors écran.
00:44:53C'est un moyen de créer des vidéos par programmation.
00:45:01Et j'ai combiné une compétence de Remotion
00:45:05pour créer essentiellement la compétence Geist.
00:45:09Je suis allé dans l'un de nos dépôts Brazil.
00:45:12Je crois que c'était à partir de tout ce qu'il y a sur la page d'accueil et la doc.
00:45:15Et j'ai dit : "S'il te plaît, extrais toutes les informations,
00:45:19les infos de design, compétences, thèmes, polices,
00:45:23mises en page, conseils, absolument tout,
00:45:25et crée une compétence à partir de ça".
00:45:27Et juste en faisant ça, en disant :
00:45:30"Prends cette compétence Remotion
00:45:32et toutes ces informations de design
00:45:37de ces sites, crée une nouvelle compétence
00:45:41et appelle-la 'create remotion Geist'".
00:45:43Rien qu'avec ce travail, j'ai pu créer
00:45:48de créer ce genre de vidéos, qui sont très,
00:45:57vous savez, axées sur le design de Vercel.
00:46:01Je devrais probablement zoomer un peu sur les vidéos.
00:46:04En regardant ces résultats finaux,
00:46:07je devrais zoomer un peu plus,
00:46:09mais concrètement, tout a été généré
00:46:12pendant que j'allais me chercher un sandwich, d'accord ?
00:46:14Pour toutes ces vidéos, j'avais ce plan
00:46:16de la manière dont je voulais que l'atelier se déroule.
00:46:18J'ai dit : "Hé, fais toutes ces vidéos d'après mon plan
00:46:20et les recherches que j'ai faites."
00:46:22Et toutes ces vidéos sont sorties à la fin.
00:46:24Donc encore une fois, les "skills" consistent juste à,
00:46:29cela aurait été de créer un skill à l'intérieur
00:46:33des dépôts de Vercel
00:46:36et de dire : "Récupère tout ça,
00:46:38combine-le avec le skill de création Remotion."
00:46:41Et voilà, je l'avais.
00:46:42Ensuite, je l'ai partagé avec l'équipe
00:46:43et maintenant, n'importe qui peut l'utiliser.
00:46:45Encore une fois, c'était comme si,
00:46:47la quantité d'efforts et de travail que j'y ai mis
00:46:50n'était probablement que de quelques minutes.
00:46:54Bien sûr, l'agent a pris,
00:46:55il a fallu un certain temps pour tout trouver,
00:46:57pour trouver tout le design et le reste.
00:46:59Le temps de travail total était d'environ deux heures,
00:47:03mais l'effort réel que j'ai fourni
00:47:06était extrêmement minimaliste,
00:47:08ça tournait simplement en arrière-plan
00:47:09pendant que je faisais autre chose.
00:47:11Alors, prenez n'importe quel travail existant
00:47:15et voyez ce que vous pourriez regrouper
00:47:17et construire de cette façon.
00:47:19De même, si je regarde un skill de design Geist,
00:47:24si je veux faire un site plus joli,
00:47:27je peux prendre notre design Geist et dire,
00:47:31dans un dossier d'atelier,
00:47:35"S'il te plaît, construis une page de destination pour cet atelier."
00:47:39Et cela va simplement créer un dossier d'atelier,
00:47:46puis injecter toutes ces informations de design
00:47:50et le construire en utilisant ces informations.
00:47:55Et cela peut fonctionner ou non, selon
00:47:58l'humeur d'Opus 4.6 aujourd'hui.
00:48:01Je n'ai pas vraiment eu la chance de tester
00:48:04puisqu'il a été lancé quelques minutes avant qu'on commence.
00:48:06Mais il aura toutes ces informations
00:48:11et il pourra commencer à travailler dessus.
00:48:14Et de la même manière, je pourrais lancer
00:48:17un fil de discussion totalement différent pour un autre site,
00:48:20si je voulais en faire un autre dans un,
00:48:25appelons-le dossier "voiture",
00:48:29une page de destination pour de belles voitures.
00:48:34Je ne sais pas, je ne suis pas un fan de voitures.
00:48:36Et à partir de là, on peut commencer à faire
00:48:40toutes ces choses.
00:48:41L'un des meilleurs prompts que vous puissiez faire est de dire,
00:48:46si vous essayez de trouver des idées et des designs,
00:48:49surtout avec la nouvelle fonctionnalité d'Équipes,
00:48:54on pourrait utiliser ce design Geist et dire,
00:48:57dans un dossier d'atelier,
00:48:59faisons un dossier "variations d'atelier".
00:49:09S'il te plaît, construis une page de destination.
00:49:12Disons : "S'il te plaît, construis neuf variations de pages"
00:49:17"de destination pour cet atelier."
00:49:22Et maintenant qu'ils ont une fonction Équipes,
00:49:23on pourrait dire : "Utilise un membre de l'équipe."
00:49:28"Crée une équipe pour concevoir ces neuf variations"
00:49:34ou quelque chose comme ça.
00:49:38Juste en anglais courant.
00:49:40Et maintenant, cela peut même générer une équipe.
00:49:41Et voilà tout ce travail qui se met en route.
00:49:44Et maintenant, je peux aller chercher mon sandwich, non ?
00:49:47Parce que j'ai faim, c'est l'heure du déjeuner.
00:49:49Et quand je reviendrai,
00:49:52ça utilise Tailwind 4,
00:49:54je vois que ça fonctionne plutôt bien.
00:49:55Et une fois de retour,
00:49:56je pourrai voir toutes ces variations
00:49:58et itérer dessus jusqu'à ce que j'en trouve une qui me plaise.
00:50:03Et comme celle-ci sera bientôt terminée,
00:50:09je pourrai montrer quelques outils de débogage.
00:50:11- Quelqu'un vient de dire dans le, désolé John,
00:50:12quelqu'un vient de dire dans le chat :
00:50:14"L'un des meilleurs prompts que je fais est d'ajouter s'il vous plaît à la fin."
00:50:17- Oh oui. - C'est vrai.
00:50:18- S'il vous plaît.
00:50:21Il y a beaucoup d'études sur les différents modèles
00:50:23et comment ils réagissent aux encouragements.
00:50:27L'un de mes personas préférés pour donner des prompts
00:50:33ou pour ces agents était du genre :
00:50:36"S'il te plaît, comporte-toi comme un contributeur Stack Overflow"
00:50:41qui serait extrêmement critique envers tout ce que je demande,
00:50:45en disant que la réponse existe déjà ou autre,
00:50:48mais ses réponses seraient extrêmement concises
00:50:51et précisément limitées à ma question.
00:50:56Ouais, je ne sais pas, on ne parle plus trop des personas,
00:51:02plus autant qu'avant, car les modèles n'étaient pas,
00:51:04les modèles sont tellement meilleurs maintenant.
00:51:06On n'a plus vraiment besoin de les forcer
00:51:10à accomplir des tâches comme avant.
00:51:11- Quelqu'un a aussi dit dans le chat,
00:51:15certains modèles réussissent mieux si on leur dit
00:51:18qu'ils vont se faire licencier.
00:51:20- Oh oui. - S'ils ne le font pas correctement.
00:51:22Je ne sais pas si c'est vrai, mais c'est hilarant.
00:51:25- C'est absolument vrai.
00:51:27Certains modèles se rebiffent maintenant.
00:51:32Je pense que beaucoup de modèles GPT disaient :
00:51:34"Ne me parle pas sur ce ton."
00:51:35- Incroyable, wow.
00:51:38- Ils jouent les chefs et tout.
00:51:39Je vais juste lui dire de lancer le serveur en arrière-plan.
00:51:46(bruit de clavier)
00:51:49Je pourrais créer un skill.
00:51:50Il arrive un moment où, après avoir écrit
00:51:52un paragraphe entier, on se demande :
00:51:54"Est-ce que c'est quelque chose que je vais taper souvent ?"
00:51:56Et si c'est le cas, si vous venez de l'écrire,
00:51:59vous pouvez simplement dire :
00:52:01"Crée un skill à partir du dernier paragraphe."
00:52:03Voici donc notre site de voitures.
00:52:07Voyons le résultat.
00:52:09Oups, "Des voitures qui font vibrer votre âme".
00:52:14Très noir et blanc, style Vercel.
00:52:16Je ne sais pas d'où il sort les images.
00:52:18J'imagine qu'il trouve que ce sont des voitures cool.
00:52:22Et voilà.
00:52:27Je sais qu'on a probablement vu des pages de destination
00:52:29un million de fois, mais c'est assez standard.
00:52:34Il suit les directives de design
00:52:36de ce à quoi ressemble Geist.
00:52:42Et à partir de là, nous pouvons en fait,
00:52:44uno de los paquetes increíbles que lanzamos recientemente
00:52:47chez Vercel, ça s'appelle Agent Browser.
00:52:54Et il y a un skill appelé Agent Browser,
00:52:56qui devrait être disponible sur Vercel Labs.
00:53:01Cela ouvre les outils de développement Chrome
00:53:06et établit une connexion
00:53:08pour que vous puissiez dire des choses comme : "Évalue..."
00:53:11Je vais juste taper.
00:53:13"Évalue la performance de cette page web"
00:53:15"pour voir si on peut faire quelque chose"
00:53:17"pour l'optimiser pour nos utilisateurs."
00:53:18Et là, Agent Browser,
00:53:23utilise ces outils d'automatisation et de dev Chrome
00:53:26pour aller voir les logs.
00:53:28Il peut consulter les outils réseau
00:53:30et prendre des captures d'écran.
00:53:32C'est d'ailleurs l'une de mes choses préférées
00:53:36de lui demander d'itérer en prenant des captures
00:53:41pour qu'il voie ce qu'il a créé.
00:53:44Ensuite, on peut lui dire :
00:53:47"S'il te plaît, oriente ce design vers quelque chose"
00:53:49"qui ressemble plus à X, Y et Z."
00:53:52Et puis lui faire prendre des captures d'écran
00:53:54et faire des commits à chaque capture.
00:53:56Ainsi, on peut naviguer
00:54:00entre ce qu'étaient ces commits
00:54:04et les changements de design.
00:54:06Et on voit qu'il est en train de parcourir
00:54:09et de regarder les sélecteurs de requête
00:54:11pour voir comment optimiser la performance.
00:54:13On peut ouvrir celui-là, lancer le serveur de dev.
00:54:20D'autres questions pendant que tout ça
00:54:25tourne en arrière-plan ?
00:54:26- J'aime juste voir combien d'agents tournent en ce moment.
00:54:30C'est super cool.
00:54:31Pas vraiment de questions dans le chat.
00:54:34Juste des gens qui discutent de différents prompts,
00:54:37d'idées de prompts, ce qui est génial.
00:54:40J'avais une question, John,
00:54:43quand tu laisses les agents mettre à jour les skills
00:54:47en se basant sur des conversations qui ont échoué,
00:54:49comment empêches-tu ces modifications automatiques
00:54:52de dériver, d'éloigner le skill
00:54:55de l'intention originale ou du niveau de qualité ?
00:54:58- Bonne question.
00:55:05Ouais, ils sont généralement assez bons
00:55:09pour faire des petits changements isolés.
00:55:12Si vous avez une conversation,
00:55:13comme il voit ce qui a fonctionné
00:55:17et ce qui n'a pas fonctionné.
00:55:20Donc si vous signalez que telle chose n'a pas marché
00:55:24dans la conversation actuelle,
00:55:26il peut trouver et mettre à jour uniquement
00:55:30les parties spécifiques qui doivent l'être.
00:55:33Il ne va pas s'amuser à
00:55:35tout réécrire depuis le début.
00:55:37Donc je n'ai jamais vu ça devenir un vrai problème,
00:55:42même si je ne dirais pas que c'est impossible,
00:55:45mais je ne l'ai pas encore constaté.
00:55:47- Ouais, je vois.
00:55:48- Très bien, voici notre page d'atelier.
00:55:54On publie, non ?
00:55:56C'est magnifique.
00:55:57Voici nos variations.
00:55:59Ouvrons les serveurs de dev pour chacune d'elles.
00:56:03Et puis ouvrons un tas d'onglets.
00:56:11Mais je pense qu'on arrive au bout de mon temps.
00:56:16S'il y a des dernières questions
00:56:17avant de conclure, je peux montrer,
00:56:22j'ai ça dans les skills... j'ai perdu mes skills.
00:56:29Navigateur, reviens.
00:56:30lisez-en un qui correspond à ce que vous faites.
00:56:36lee uno que se alinee un poco con lo que estás haciendo.
00:56:40J'ai un “publish skill”, auquel, si vous avez confiance,
00:56:43c'est sous mon nom.
00:56:45Si vous autorisez un agent à lancer le CLI GitHub,
00:56:50encore une fois, c'est un grand niveau de confiance.
00:56:54C'est la confiance que j'ai.
00:56:57Il prendra la compétence que vous créez.
00:57:00Vous pourriez dire “create skill”, puis “publish skill”.
00:57:02Et ensuite, ça ira dans un...
00:57:04je fais ça hors écran un instant.
00:57:07Je cherche un de mes dépôts qui a,
00:57:16je crois qu'il s'est même publié lui-même.
00:57:21Je peux donc vous montrer celui-là.
00:57:22Laissez-moi vérifier qu'il n'y a rien de privé.
00:57:24Ok, désolé.
00:57:27Je peux donc créer un dépôt GitHub pour vous
00:57:29et publier la compétence elle-même
00:57:32pour que vous n'ayez vraiment rien à faire
00:57:35à part “create skill”, puis “publish skill”.
00:57:38créez-le sous... je me trompe toujours d'organisation
00:57:43créalo bajo el, siempre me confundo con la organización
00:57:45car je fais partie de plusieurs organisations,
00:57:47puis vérifiez qu'il est disponible dans l'outil skills.
00:57:52Ainsi, si vous prenez ceci,
00:57:56encore une fois, les instructions sont là,
00:57:58il peut aller de l'avant et créer cela
00:58:00ou publier cette compétence pour vous
00:58:01afin que vous puissiez la partager avec votre équipe,
00:58:02avec des amis, peu importe.
00:58:03Et un autre outil sur lequel j'ai travaillé
00:58:08juste aujourd'hui, c'est essentiellement un guide de skills,
00:58:14où si je sais qu'il y aura quelques compétences
00:58:19que je veux charger dès le départ,
00:58:20je sais que je veux l'agent browser, comme le Geist,
00:58:24je veux, disons, les meilleures pratiques Remotion
00:58:29et les meilleures pratiques Vercel React.
00:58:33C'est essentiellement l'un de ces outils
00:58:37qui gère l'imposition du contexte dès le début.
00:58:40Et ça va forcer un prompt dans cloud code,
00:58:44c'est uniquement pour cloud code pour l'instant.
00:58:45Mais ça va le forcer et dire :
00:58:48voici toutes les compétences dont je sais que j'aurai besoin
00:58:50et voici le contenu,
00:58:51pour qu'une fois la conversation lancée,
00:58:53même si je n'ai rien dit sur l'agent browser,
00:58:58aunque no dije nada sobre el navegador de agentes,
00:59:06il va évidemment choisir l'agent browser.
00:59:10Comme il aurait pu le faire avant, et c'était souvent le cas.
00:59:14Je ne sais pas à quoi ressemble la description de l'agent browser.
00:59:18Je ne sais pas si le mot “évaluer” s'y trouve
00:59:21il doit le charger.
00:59:24debería cargarlo.
00:59:24Mais de cette façon, je le force dès le départ
00:59:29pour que quand j'utilise ces phrases, ce soit déjà chargé.
00:59:33Ce package se trouve sur,
00:59:36laissez-moi trouver le skills primer.
00:59:41- On pourra aussi partager ces liens à la fin.
00:59:45- Ok, super.
00:59:45- On les a, parfait.
00:59:46- Je mets ça là-dedans.
00:59:50- Et je dirais, comme toujours,
00:59:53vu l'état actuel des logiciels,
00:59:55allez cloner le dépôt et appropriez-le-vous.
00:59:59Nous sommes dans l'ère de la personnalisation des CLI
01:00:02et de la personnalisation des logiciels.
01:00:04Si vous voulez que ça ait un nom totalement différent
01:00:07ou des fonctionnalités complètement différentes,
01:00:08si vous voulez personnaliser ça pour Codex
01:00:11ou Cursor ou n'importe quoi, clonez-le et adaptez-le.
01:00:14Dites par exemple : “fais en sorte que ça marche avec Cursor”
01:00:18et laissez votre agent le construire pour Cursor.
01:00:20C'est souvent possible de tout faire
01:00:23en une seule fois de nos jours, c'est fou.
01:00:26- C'est incroyable, vive les logiciels personnalisés.
01:00:29Je voulais poser juste une dernière question
01:00:31qui est arrivée dans le chat.
01:00:32Je sais qu'on n'a plus de temps,
01:00:35mais comme les skills sont des dépôts GitHub
01:00:37et semblent aussi être installés localement,
01:00:40comment s'assure-t-on d'avoir les mises à jour ?
01:00:42Est-ce que le CLI a une commande “update skill” ?
01:00:48- Je ne me rappelle plus des commandes exactes
01:00:52je ferme tout ça.
01:00:53Skills, oups, je ne l'ai même pas installé globalement.
01:00:59- J'adore ça.
01:01:02- Je prends la dernière version dans la liste des skills.
01:01:05Alors oui, “skills update” est bien là.
01:01:07- Une question qui en découle est :
01:01:11voulez-vous que les skills soient mis à jour souvent ?
01:01:13- C'est une excellente question.
01:01:18Je ne sais pas si quelqu'un a la réponse idéale
01:01:23parce que pour l'instant, les règles des skills,
01:01:28comme le front matter ou le versionnage,
01:01:30je ne pense pas que tout le monde soit d'accord,
01:01:32tout comme pour les compétences elles-mêmes,
01:01:34sur les répertoires et les structures à adopter.
01:01:37Tout cet écosystème est en pleine croissance.
01:01:41Donc pour ce qui est du versionnage,
01:01:47c'est un peu l'attente,
01:01:49on fait du mieux qu'on peut pour l'instant
01:01:51et on attend de voir quelles seront les meilleures pratiques.
01:01:54Car je n'en ai pas à proposer actuellement
01:01:57à part de tout mettre à jour à chaque fois.
01:01:59En partant du principe que c'est le mieux.
01:02:03Mais voilà, je n'ai pas vraiment de conseil là-dessus.
01:02:06- Oui, et ça change tout le temps.
01:02:08Je suis sûr que quelqu'un aura un nouvel avis
01:02:12d'ici quelques jours, ça évolue quotidiennement.
01:02:18Formidable, John.
01:02:18Y a-t-il autre chose que tu souhaites montrer
01:02:20à la communauté aujourd'hui ?
01:02:21- C'est-à-dire que...
01:02:25- Il y en a tellement.
01:02:26- On en fera beaucoup d'autres
01:02:28et j'ai plein d'autres choses à montrer,
01:02:30mais je pourrais en parler pendant des heures.
01:02:32- Oui, tout à fait.
01:02:34John, merci beaucoup d'être venu
01:02:36sur notre plateforme communautaire
01:02:38pour échanger avec la communauté,
01:02:39et merci à vous tous d'être là.
01:02:42Et comme nous l'avons dit,
01:02:44John reviendra certainement pour une autre session.
01:02:46Alors restez à l'écoute.
01:02:48- Merci à tous.
01:02:49- Merci.
01:02:50Très bien, si vous voulez suivre
01:02:53notre prochaine session communautaire,
01:02:55nous avons les histoires open source lundi
01:02:58et je crois une autre session
01:03:00avec un partenaire de la marketplace la semaine prochaine,
01:03:03mais vous trouverez tous les détails
01:03:04sur notre calendrier d'événements communautaires,
01:03:08à l'adresse [community.vercel.com/events](https://www.google.com/search?q=https://community.vercel.com/events).
01:03:12Mais oui, merci infiniment d'avoir été présents.
01:03:15C'était vraiment super et oui,
01:03:17on se retrouve ici la semaine prochaine.