Eigene Tools erstellen

Agentische Systeme mit LangChain entwerfen

Dilini K. Sumanapala, PhD

Founder & AI Engineer, Genverv, Ltd.

Quadratmeter berechnen

Rechteckiger Grundriss eines Studio-Apartments

Agentische Systeme mit LangChain entwerfen

Quadratmeter berechnen

Rechteckiger Grundriss eines Studio-Apartments mit Länge und Breite, bezeichnet als „Seite a“ bzw. „Seite b“.

Agentische Systeme mit LangChain entwerfen

Ein Mathe-Tool erstellen

Interne Query-Verarbeitung von LangChain

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

input = " 5, 7"

     

  • Eingabe in natürlicher Sprache

         
  • Zahlenwerte als Strings extrahieren

Agentische Systeme mit LangChain entwerfen

Ein Mathe-Tool erstellen

Definiere deine Tool-Funktion

@tool

def rectangle_area(input: str) -> float:
"""Berechnet die Fläche eines Rechtecks mit den Seitenlängen a und b."""
sides = input.split(',')
a = float(sides[0].strip()) b = float(sides[1].strip())
return a * b

 

  • Nutze den @tool-Decorator
  • Funktion benennen
  • Docstring erstellen
  • Eingabe mit .split() trennen
  • Mit .strip() Leerzeichen entfernen und in float umwandeln
  • a und b multiplizieren und Ergebnis zurückgeben
Agentische Systeme mit LangChain entwerfen

Tools und Query einrichten

# 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)
Agentische Systeme mit LangChain entwerfen

Tools und Query einrichten

# Invoke the agent and print the response
response = app.invoke({"messages": [("human", query)]})
print(response['messages'][-1].content)
The area of the rectangle with sides 5 and 7 is 35 square units.
Agentische Systeme mit LangChain entwerfen

Vorgefertigte und eigene Tools

    Symbol für Tools

 

Agentische Systeme mit LangChain entwerfen

Lass uns üben!

Agentische Systeme mit LangChain entwerfen

Preparing Video For Download...