Definir varias herramientas

Diseño de sistemas agénticos con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Integrar varias herramientas

Un bot con varias herramientas

   

  • Añade varias herramientas personalizadas

  • Automatiza la selección por consulta

Diseño de sistemas agénticos con LangChain

Mejorar un chatbot educativo

Personas leyendo, sentadas sobre libros grandes.

 

  • Buscar eventos históricos

  • Comprobar palíndromos:

     
    • level = level

    • top spot = tops pot

Diseño de sistemas agénticos con LangChain

Varias formas de crear herramientas

 

  • Invocar el LLM

    Busca fechas históricas con lenguaje natural, p. ej., "5th of November"
      Agent: The 5th of November is famous for the Gunpowder treason and 
      plot...
    
  • Código en Python

    Encuentra palíndromos comparando strings directamente, p. ej., string == string[::-1]
      Agent: Yes, "madam" is a palindrome...
    
Diseño de sistemas agénticos con LangChain

Herramienta de eventos históricos

# Usa un decorador para etiquetar la herramienta y fijar la entrada como string
@tool

def 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)}"
Diseño de sistemas agénticos con LangChain

Herramienta de palíndromos

@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."
Diseño de sistemas agénticos con LangChain

Vincular varias herramientas

# 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

¡Vamos a practicar!

Diseño de sistemas agénticos con LangChain

Preparing Video For Download...