Crear herramientas personalizadas

Diseño de sistemas agénticos con LangChain

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Calcular metros cuadrados

Plano rectangular de un estudio

Diseño de sistemas agénticos con LangChain

Calcular metros cuadrados

Plano rectangular de un estudio con largo y ancho marcados respectivamente como "lado a" y "lado b".

Diseño de sistemas agénticos con LangChain

Crear una herramienta de matemáticas

Gestión interna de consultas de LangChain

"What is the area of a rectangle with 
sides 5 and 7?"

input = " 5, 7"

     

  • Entrada en lenguaje natural

         
  • Extraer valores numéricos como cadenas

Diseño de sistemas agénticos con LangChain

Crear una herramienta de matemáticas

Define tu función herramienta

@tool

def rectangle_area(input: str) -> float:
"""Calculates the area of a rectangle given the lengths of sides a and b."""
sides = input.split(',')
a = float(sides[0].strip()) b = float(sides[1].strip())
return a * b

 

  • Usa el decorador @tool
  • Nombra la función
  • Crea un docstring
  • Divide la entrada con .split()
  • Quita espacios con .strip() y convierte a float
  • Multiplica a y b y devuelve el resultado
Diseño de sistemas agénticos con LangChain

Configurar herramientas y consulta

# Define the tools that the agent can access
tools = [rectangle_area]

# Create a query using natural language query = "What is the area of a rectangle with sides 5 and 7?"
# Pass in the hypotenuse length tool and invoke the agent app = create_react_agent(model, tools)
Diseño de sistemas agénticos con LangChain

Configurar herramientas y consulta

# Invoke the agent and print the response
response = app.invoke({"messages": [("human", query)]})
print(response['messages'][-1].content)
El área del rectángulo con lados 5 y 7 es 35 unidades cuadradas.
Diseño de sistemas agénticos con LangChain

Herramientas predefinidas y personalizadas

    Icono de herramientas

 

Diseño de sistemas agénticos con LangChain

¡Vamos a practicar!

Diseño de sistemas agénticos con LangChain

Preparing Video For Download...