Chargement

Les agents représentent un changement par rapport aux workflows structurés que nous avons explorés précédemment. Alors que les workflows excellent lorsque vous connaissez les étapes exactes nécessaires pour accomplir une tâche, les agents brillent lorsque le chemin à suivre n'est pas clair. Plutôt que de définir une séquence rigide, vous donnez à Claude un objectif et un ensemble d'outils, puis vous le laissez déterminer comment combiner ces outils pour atteindre l'objectif.

Cette flexibilité rend les agents attrayants pour les développeurs. Vous pouvez construire un agent une seule fois, vous assurer qu'il fonctionne raisonnablement bien, puis le déployer pour gérer une grande variété de tâches. Cependant, cette approche comporte des inconvénients importants en termes de fiabilité et de coût que nous explorerons plus tard.

Comment les outils façonnent l'agent

La véritable puissance des agents réside dans leur capacité à combiner des outils simples de manière inattendue. Considérez un ensemble basique d'outils de date et d'heure que nous avons abordé précédemment dans le cours :

  • get_current_datetime - Renvoie la date et l'heure actuelles
  • add_duration_to_datetime - Ajoute du temps à une date donnée
  • set_reminder - Crée un rappel pour une heure spécifique

Chaque outil est simple en soi, mais Claude peut les combiner pour traiter des demandes diverses :

Pour « Quelle heure est-il ? », Claude appelle simplement get_current_datetime. Pour « Quel jour de la semaine sera-t-il dans 11 jours ? », il enchaîne get_current_datetime suivi de add_duration_to_datetime. Des demandes plus complexes comme « Mets un rappel pour aller à la salle de sport mercredi prochain » nécessitent les trois outils en séquence.

Claude peut même reconnaître quand il a besoin d'informations supplémentaires. Lorsqu'on lui demande « Quand ma garantie de 90 jours expire-t-elle ? », il demande d'abord à l'utilisateur quand il a obtenu la garantie, puis utilise cette information avec add_duration_to_datetime pour calculer la date d'expiration.

Les outils doivent être abstraits

L'idée clé pour construire des agents efficaces est de fournir des outils raisonnablement abstraits plutôt que des outils hyper-spécialisés. Claude Code illustre parfaitement ce principe.

Claude Code a accès à des outils génériques et flexibles :

  • bash - Exécuter des commandes
  • glob - Trouver des fichiers
  • grep - Rechercher dans le contenu des fichiers
  • read - Lire un fichier
  • write - Créer un fichier
  • edit - Modifier un fichier
  • webfetch - Récupérer une URL

Remarquez ce que Claude Code n'a pas - des outils spécialisés comme « Refactoriser » ou « Exécuter les tests » ou « Installer les dépendances ». Au lieu de cela, il détermine comment accomplir ces tâches en combinant les outils de base disponibles. Pour installer des dépendances, il lit les fichiers du projet pour comprendre la configuration, puis utilise bash pour exécuter les commandes d'installation appropriées.

Bonne pratique : fournir des outils raisonnablement abstraits

Lorsque vous construisez des agents, concentrez-vous sur des outils que Claude peut combiner de manière créative plutôt que sur des outils qui résolvent un problème spécifique unique. Considérez un agent de création de vidéos pour les réseaux sociaux :

Les outils efficaces pour cet agent pourraient inclure :

  • bash - Fournit un accès à FFMPEG pour le traitement vidéo
  • generate_image - Crée des images à partir d'invites textuelles
  • text_to_speech - Convertit du texte en audio
  • post_media - Publie du contenu sur les réseaux sociaux

Cet ensemble d'outils permet des interactions à la fois simples et complexes. Un utilisateur pourrait demander « Crée et publie une vidéo sur la programmation Python », et l'agent gère tout automatiquement. Alternativement, l'interaction pourrait être plus collaborative :

L'utilisateur pourrait dire « Je veux que tu fasses une vidéo sur Python, mais je veux d'abord choisir une image initiale pour la vidéo ». L'agent peut générer un exemple d'image, le montrer à l'utilisateur pour approbation, puis procéder à la création de la vidéo une fois confirmé.

Cette flexibilité émerge naturellement du fait de fournir le bon niveau d'abstraction dans vos outils. Chaque outil doit être suffisamment général pour être utile dans plusieurs contextes, mais suffisamment spécifique pour accomplir un travail significatif lorsqu'il est combiné avec d'autres.