00:00:00Lorsque vous travaillez avec Cloud Code, Codex ou tout autre outil d'ingénierie agentique, un concept
00:00:05vraiment important, pris en charge par tous ces outils, que vous devriez comprendre et utiliser,
00:00:12est celui des compétences d'agent (agent skills). Il est facile de les ignorer car il ne s'agit que
00:00:18de fichiers Markdown ou parce que leur configuration peut sembler fastidieuse, mais d'après mon expérience,
00:00:24cela en vaut la peine. Il y a quelques jours, un membre de l'équipe Cloud Code, donc quelqu'un d'Anthropic,
00:00:31a publié un message partageant les différents types de compétences qu'ils utilisent en interne.
00:00:37Car en effet, on peut différencier les types de compétences que l'on souhaite créer. Au final,
00:00:42ce ne sont que des fichiers Markdown, même si on peut y ajouter d'autres éléments, j'y reviendrai.
00:00:49Bien sûr, le contenu de ce fichier Markdown peut varier considérablement. Cette image ici et ce post
00:00:56peuvent paraître accablants et vous décourager, car vous pourriez vous dire : "Si je dois passer une semaine"
00:01:02à configurer des compétences, je préfère ne pas les utiliser du tout. C'est pourquoi je propose une alternative.
00:01:08Je pense qu'il suffit de se concentrer sur trois types de compétences clés pour obtenir de meilleurs résultats.
00:01:15Au fait, comme je l'ai mentionné, tous ces outils supportent les compétences. J'explique comment les configurer,
00:01:20comment les invoquer activement et comment les créer pour Cloud Code ou Codex dans mes cours respectifs.
00:01:26Si vous voulez accéder à ces cours ou à l'ensemble de mes formations, y compris les futures,
00:01:31je propose actuellement une promotion sur l'abonnement annuel qui vous donne un accès illimité
00:01:35pour un prix très bas. Le lien est ci-dessous. Concernant ces compétences, ce sont
00:01:41simplement des fichiers Markdown stockés dans un endroit spécifique, qui dépend de l'outil utilisé.
00:01:46En fin de compte, ils servent de modèles de prompts (prompts templates) ou de morceaux de contexte
00:01:52supplémentaires qui peuvent être injectés dans vos sessions d'ingénierie agentique. Le premier type
00:02:01de compétence est la compétence de documentation ou de connaissance. Qu'est-ce que j'entends par là ?
00:02:09Ici, je suis dans mon projet academy.com, le projet de mon site web. J'y ai un ensemble
00:02:15de compétences d'agent qui sont en fait des types de documentation ou de savoir que j'expose à l'agent IA.
00:02:25Par exemple, des connaissances sur TypeScript, ou sur des fonctionnalités plus avancées
00:02:33de TypeScript, peut-être des nouveautés comme le mot-clé "satisfies" qui n'existe pas
00:02:40depuis dix ans. Ce sont des choses dont je veux que l'agent soit conscient ou qu'on lui rappelle,
00:02:50car ce ne sont peut-être pas les premières solutions vers lesquelles il se tournera, n'en ayant pas vu autant
00:02:58dans ses données d'entraînement. C'est donc quelque chose que l'on pourrait trouver
00:03:04dans la documentation officielle de TypeScript. Le problème est que, à moins de lui demander explicitement,
00:03:11l'agent n'ira probablement pas consulter cette documentation. Je préfère donc avoir ma propre compétence.
00:03:17Et cette compétence possède des métadonnées. Celles-ci sont cruciales car l'idée est que
00:03:24toutes les compétences disponibles ne sont pas chargées dans la fenêtre de contexte à chaque fois.
00:03:30Au lieu de cela, seules les métadonnées sont chargées, puis l'agent IA peut décider de lire
00:03:37une compétence plus en détail en fonction de votre prompt et de la tâche confiée. Vous pouvez aussi
00:03:43les invoquer activement selon l'outil, mais l'idée principale est que l'agent les charge seul
00:03:47grâce aux métadonnées. Ici, j'ai des métadonnées pour donner à l'agent une idée du moment
00:03:55opportun pour utiliser cette compétence. C'est donc le premier type de compétence : fournir de la documentation
00:04:02ou des connaissances supplémentaires que l'agent n'a peut-être pas. Peut-être travaillez-vous avec
00:04:08une bibliothèque flambant neuve absente des données d'entraînement, ou dont l'agent sait peu de choses
00:04:13et vous voulez qu'il en soit informé. Voilà pour le premier type de compétence.
00:04:18Le deuxième type concerne les comportements, les bonnes pratiques et les approches. L'idée est
00:04:29qu'évidemment, sur un projet, vous pouvez avoir certaines préférences concernant le style de code
00:04:37ou la manière de réaliser certaines tâches. Par exemple, j'ai cette compétence "code React propre et moderne"
00:04:45qui ne sert pas tant à documenter les fonctionnalités de React qu'à établir des règles
00:04:50que l'agent doit suivre lorsqu'il écrit du code React, afin de s'assurer que certains
00:04:59anti-patterns soient moins fréquents. Pour l'instant, les agents IA ont tendance à générer
00:05:08un code qui n'est pas toujours de la plus haute qualité. On peut débattre de l'importance
00:05:13de cette qualité de code ; j'ai d'ailleurs fait une vidéo séparée à ce sujet sur une autre chaîne.
00:05:18Je dirais que c'est important, car la qualité facilite la révision du code. Cela peut avoir
00:05:23des conséquences sur les performances, sur la maintenabilité ou l'extensibilité du code. Donc,
00:05:29c'est important. Et si vous avez des comportements ou des schémas spécifiques que vous voulez imposer,
00:05:36alors une compétence comportementale expliquant comment écrire du bon code React, par exemple
00:05:43en évitant l'usage de "useEffect" et comment s'en passer, peut être très intéressante.
00:05:50Ici, il ne s'agit pas de fournir du savoir supplémentaire, mais plutôt de dicter des comportements.
00:05:55Ce qui est intéressant avec cette compétence, c'est que j'ai des fichiers liés, comme un fichier
00:06:02donnant plus de détails sur "useEffect". Comme ces fichiers sont chargés de manière paresseuse (lazy loading),
00:06:09on peut, dans une compétence, référencer un autre fichier comme ce "useEffect.md" situé dans le dossier
00:06:15des références. L'IA peut alors décider de charger ce fichier uniquement lorsqu'elle sait qu'elle
00:06:21travaille sur "useEffect" ou qu'elle manipule ce concept. J'y ai mis plus de détails sur les
00:06:27anti-patterns à surveiller. Mettre en place ces compétences vaut vraiment le coup, car
00:06:33je peux les copier dans n'importe quel projet React sans avoir à tout réécrire, et cela permet d'obtenir
00:06:39un meilleur code. C'est le deuxième type de compétence que je recommande. Vous n'avez pas
00:06:45besoin de penser à tous les schémas possibles d'un coup. Procédez plutôt étape par étape.
00:06:52Si vous remarquez que l'agent IA fait systématiquement quelque chose que vous ne voulez pas,
00:06:58ajoutez une compétence avec une bonne description pour maximiser les chances qu'elle soit chargée
00:07:04au bon moment, puis insérez-y vos instructions pour corriger le problème. Au fil du temps,
00:07:11vous vous bâtirez une bibliothèque de compétences avec vos propres bonnes pratiques et comportements,
00:07:17réutilisable dans vos futurs projets. Ne voyez pas cela comme une tâche initiale énorme
00:07:22et intimidante, mais construisez cette base progressivement. Maintenant, le troisième type,
00:07:29bien différent, ce sont les compétences axées sur les fonctionnalités. Jusqu'ici, nous avons parlé
00:07:37de documentation et de comportements. Mais ces outils d'ingénierie agentique, comme Cloud Code ou Codex,
00:07:43peuvent faire énormément de choses. Ils écrivent du code, certes, mais vous ne vous limitez pas
00:07:49à l'écriture de code. Puisqu'ils peuvent coder, ils peuvent tout faire sur votre ordinateur si vous le voulez.
00:07:55Vous pouvez les utiliser pour analyser des documents PDF, par exemple. J'ai aussi des compétences globales
00:08:03sur mon système qui ne sont pas spécifiques à la programmation. Vous pourriez créer une compétence
00:08:09qui explique à un agent comment générer une image. Qu'est-ce que je veux dire par là ?
00:08:16Il existe divers services ou API pour générer des images ou des vidéos avec l'IA, comme Fal.ai.
00:08:24Cette vidéo n'est pas sponsorisée, d'ailleurs. Il y a aussi Replicate et d'autres services. Bien sûr,
00:08:29si vous voulez générer une image, par exemple une image factice pour votre site web ou
00:08:34quelque chose de totalement différent à imprimer pour votre mur, vous pouvez utiliser ces
00:08:41services. Vous pourriez utiliser Codex, Cloud Code ou l'agent CLI que j'aime beaucoup, et lui demander
00:08:49de générer une image. Par défaut, il échouera probablement car ces outils n'ont pas
00:08:54de capacités de génération d'images intégrées. Mais si vous lui donnez la bonne compétence,
00:09:00qui reste un simple fichier Markdown, vous pouvez y décrire comment interagir avec
00:09:06une API tierce pour générer cette image. Décrire l'interaction est une chose, mais vous pouvez
00:09:12aller plus loin. Vos compétences peuvent aussi inclure des scripts. Ce n'est pas toujours nécessaire, mais
00:09:18ma compétence "générer image" en possède un. Ce script a d'ailleurs été écrit par une IA,
00:09:26par "vibe coding". À l'intérieur, j'ai des scripts qui interagissent avec l'API de Fal,” le service
00:09:34de génération d'images. En gros, j'ai pris leur documentation, je l'ai mise dans un prompt
00:09:40et j'ai dit à l'agent IA de m'écrire un outil capable de communiquer avec l'API de Fal
00:09:49pour générer des images. Un petit outil CLI a été créé ici, un script qui peut appeler l'API
00:09:56avec différents paramètres. Ensuite, le fichier Markdown de la compétence explique comment utiliser
00:10:02ce script : il pointe vers lui et indique à l'agent comment l'exécuter et quels paramètres passer.
00:10:08J'ai aussi un fichier ".env" avec ma clé Fal. Quand ce script est invoqué via Bun,
00:10:18comme je l'indique à l'IA dans le fichier Markdown, le fichier ".env" est chargé automatiquement.
00:10:23Je n'ai pas besoin de donner ma clé à l'agent, ni de lui dire : "Génère une image, voici la clé".
00:10:29Je lui demande simplement de générer l'image. Grâce à la description, il chargera
00:10:34cette compétence au besoin et apprendra qu'il doit juste exécuter un script.
00:10:39Il n'a pas à se soucier des détails d'implémentation. C'est un autre type de compétence
00:10:45que je trouve intéressant, et pas seulement pour la programmation. Vous pourriez avoir
00:10:52une compétence pilotée par script pour formater du code, par exemple. De manière générale,
00:10:57comme on peut utiliser ces agents pour bien plus que coder, c'est une catégorie
00:11:02à connaître. Dans l'ensemble, ne compliquez pas trop les choses, mais ne les négligez pas non plus.
00:11:08Bâtissez votre bibliothèque de compétences pas à pas. Il est à noter qu'il existe
00:11:14des registres comme skills.sh où vous pouvez explorer les compétences créées par d'autres.
00:11:21Deux points importants cependant : cela peut être très utile, mais je ne dirais pas : "OK, je crée"
00:11:29un projet React avec Tailwind et Better Auth, donc je vais chercher toutes les compétences
00:11:35potentiellement intéressantes et toutes les installer dans mon projet. Ce serait
00:11:40contre-productif, car vous chargeriez trop de métadonnées dans votre fenêtre de contexte,
00:11:47et certaines compétences n'auraient aucune importance. C'est une chose à surveiller.
00:11:53N'essayez pas d'ajouter toutes les compétences théoriquement possibles. Soyez sélectif et ciblez
00:11:57ce que l'IA rate systématiquement ou les points nécessitant une documentation supplémentaire.
00:12:04L'autre point concernant ces registres est que vous incluez des compétences écrites par autrui.
00:12:09Ces compétences, on l'a vu, ne sont que des prompts. S'il y a quelque chose de malveillant
00:12:16dans l'un de ces prompts, cela peut poser problème et mener à une attaque par injection de prompt.
00:12:22Il faut en être conscient. Certains registres comme skills.sh effectuent, à ma connaissance,
00:12:28des analyses pour réduire ce danger, mais on n'est jamais en sécurité à 100 %.
00:12:36C'est donc un point de vigilance. Dès que vous utilisez une compétence écrite par quelqu'un d'autre,
00:12:40lisez-la. Prenez le temps de vérifier s'il n'y a rien de malveillant à l'intérieur.
00:12:47C'était juste une mise en garde. Pour le reste, utilisez les compétences. Ne vous sentez pas obligé
00:12:54de construire un système ultra complexe dès le début. Expérimentez et gardez en tête
00:13:00ces trois types de compétences clés.