LangGraph est une extension puissante de la bibliothèque
LangChain, spécialement conçue pour orchestrer des workflows complexes et dynamiques impliquant des agents LLM. Parmi ses fonctionnalités les plus innovantes, on trouve l'intégration d'outils externes tels que les moteurs de recherche, qui permettent à un agent conversationnel de s'enrichir et de s'adapter aux besoins spécifiques des utilisateurs.
Dans cet article, nous allons vous guider pas à pas dans la création d'un agent LangGraph capable d'utiliser un outil de recherche comme Tavily afin d'effectuer des requêtes Web en temps réel, ce qui permet de répondre à des questions bien au-delà de ses capacités internes pré-entraînées.
Pourquoi ajouter des outils à votre agent LangGraph ?
Les agents basés sur des grands modèles de langage (LLM) sont puissants mais intrinsèquement limités par leur corpus d'entraînement. Ils peuvent difficilement accéder à des faits très récents ou à des données à jour. C'est ici que l'ajout d'outils prend tout son sens. Ces outils permettent à l'agent de :
Accéder à des informations actualisées via des moteurs de recherche comme Tavily ou SerpAPI.
Se connecter à des API tierces pour exécuter des actions ou récupérer des données spécifiques.
Réaliser des opérations de calcul, des traitements de texte ou toute autre logique d'entreprise.
En d'autres termes, les outils permettent à l'agent d'étendre ses capacités bien au-delà de sa base de connaissances statique, le rendant plus réactif, adaptatif et utile dans des contextes variés.
Prérequis
Avant de démarrer, assurez-vous de disposer des éléments suivants :
Les dépendances nécessaires installées dans votre environnement Python :
Étape 1 : Créer l'outil Tavily
Commencez par créer une instance de l'outil Tavily que l'agent pourra invoquer pour effectuer des recherches.
Étape 2 : Initialiser le LLM avec support d'outils
Ensuite, initialisez le modèle de langage en l'associant à la liste d'outils que vous souhaitez activer.
Étape 3 : Définir l'état et le graphe de conversation
LangGraph repose sur un modèle de graphe à états. Chaque étape du dialogue est stockée dans une variable d'état typée.
Étape 4 : Ajouter les nœuds du graphe
Commencez par ajouter le nœud principal, représentant le chatbot qui analyse les messages et décide s'il faut invoquer un outil.
Ajoutez ensuite le nœud qui exécutera effectivement les appels d'outils.
Étape 5 : Ajouter la logique de routage conditionnel
Ce routage permet à LangGraph de décider dynamiquement s'il faut exécuter un outil ou clôturer la réponse.
Vous pouvez visualiser le graph en utilisant la méthode get_graph:

Étape 6 : Compiler et exécuter le graphe
Une fois tous les nœuds définis et connectés, compilez le graphe et utilisez-le dans votre application.
-> Lors de l'exécution du graphe, on peut aussi
streamer les événements pour avoir une réponse de l'agent en temps réel.
Code complet
Voici l'ensemble du code regroupé pour une implémentation complète et autonome (pensez bien à remplacer la clé Tavily dans le code) :
Conclusion
L'ajout d'outils à un agent LangGraph transforme fondamentalement ses capacités. Il ne s'agit plus seulement d'un chatbot statique, mais d'un agent adaptatif capable d'explorer le Web, de réagir à des données en temps réel, et d'interagir avec des systèmes externes. LangGraph offre une infrastructure robuste et flexible pour développer ces agents augmentés. Une fois que vous avez assimilé cette base, vous pouvez aller plus loin en intégrant des outils personnalisés, en ajoutant de la mémoire conversationnelle ou en gérant des cycles d'interaction plus complexes. C'est une véritable boîte à outils pour construire les agents intelligents de demain.