Concevoir des systèmes agentiques avec LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.


Agent: Le 5 novembre est célèbre pour la conspiration des Poudres…
string == string[::-1] Agent: Oui, « madam » est un palindrome…
# Utiliser un décorateur pour étiqueter l’outil et définir l’entrée comme chaîne @tooldef date_checker(date: str) -> str:"""Fournit une liste d’événements historiques importants pour une date donnée, dans tout format."""try: # Appeler le LLM pour interpréter la date et générer des événements answer = llm.invoke(f"List important historical events that occurred on {date}.")# Renvoyer la réponse return answer.content# Gérer les erreurs de récupération except Exception as e: return f"Erreur lors de la récupération des événements : {str(e)}"
@tool# Définir le format d’entrée comme chaîne def check_palindrome(text: str):"""Vérifie si un mot ou une phrase est un palindrome."""# Supprimer les caractères non alphanumériques et passer en minuscules cleaned = ''.join(char.lower() for char in text if char.isalnum())# Vérifier si l’inversé est identique au texte d’origine if cleaned == cleaned[::-1]: return f"La phrase ou le mot '{text}' est un palindrome." else: return f"La phrase ou le mot '{text}' n’est pas un palindrome."
# Importer les modules requis pour définir des nœuds d’outils from langgraph.prebuilt import ToolNode# Liste des outils tools = [wikipedia_tool, date_checker, check_palindrome]# Passer les outils à ToolNode() tool_node = ToolNode(tools)# Lier les outils au LLM model_with_tools = llm.bind_tools(tools)
Concevoir des systèmes agentiques avec LangChain