Diseño de sistemas agénticos con LangChain
Dilini K. Sumanapala, PhD
Founder & AI Engineer, Genverv, Ltd.


Agent: The 5th of November is famous for the Gunpowder treason and
plot...
string == string[::-1] Agent: Yes, "madam" is a palindrome...
# Usa un decorador para etiquetar la herramienta y fijar la entrada como string @tooldef date_checker(date: str) -> str:"""Proporciona una lista de eventos históricos importantes para una fecha dada en cualquier formato."""try: # Invoca el LLM para interpretar la fecha y generar eventos históricos answer = llm.invoke(f"List important historical events that occurred on {date}.")# Devuelve la respuesta return answer.content# Bloque de excepción para errores de recuperación except Exception as e: return f"Error retrieving events: {str(e)}"
@tool# Establece el formato de entrada como string def check_palindrome(text: str):"""Comprueba si una palabra o frase es un palíndromo."""# Elimina caracteres no alfanuméricos y pasa a minúsculas cleaned = ''.join(char.lower() for char in text if char.isalnum())# Comprueba si el texto invertido coincide con el original if cleaned == cleaned[::-1]: return f"The phrase or word '{text}' is a palindrome." else: return f"The phrase or word '{text}' is not a palindrome."
# Importa los módulos necesarios para definir nodos de herramientas from langgraph.prebuilt import ToolNode# Lista de herramientas tools = [wikipedia_tool, date_checker, check_palindrome]# Pasa las herramientas a ToolNode() tool_node = ToolNode(tools)# Vincula las herramientas al LLM model_with_tools = llm.bind_tools(tools)
Diseño de sistemas agénticos con LangChain