Progettare sistemi agentici 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 decorator per etichettare lo strumento e impostare l'input come stringa @tooldef date_checker(date: str) -> str:"""Fornisci un elenco di importanti eventi storici per una data data in qualsiasi formato."""try: # Richiama l'LLM per interpretare la data e generare eventi storici answer = llm.invoke(f"List important historical events that occurred on {date}.")# Restituisci la risposta return answer.content# Gestisci eccezioni per errori nel recupero except Exception as e: return f"Error retrieving events: {str(e)}"
@tool# Imposta l'input come stringa def check_palindrome(text: str):"""Verifica se una parola o frase è un palindromo."""# Rimuovi i caratteri non alfanumerici e converti in minuscolo cleaned = ''.join(char.lower() for char in text if char.isalnum())# Controlla se il testo invertito coincide con l'originale 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 i moduli necessari per definire i nodi degli strumenti from langgraph.prebuilt import ToolNode# Elenco degli strumenti tools = [wikipedia_tool, date_checker, check_palindrome]# Passa gli strumenti a ToolNode() tool_node = ToolNode(tools)# Collega gli strumenti all'LLM model_with_tools = llm.bind_tools(tools)
Progettare sistemi agentici con LangChain