Einen Agenten mit benutzerdefinierten Tools erstellen

AI-Agents mit Hugging Face smolagents

Adel Nehme

VP of AI Curriculum, DataCamp

AI-Agents mit Hugging Face smolagents

Vorteile benutzerdefinierter Tools

  • Zuverlässigkeit: Logik explizit schreiben und testen, statt den Agenten raten zu lassen
  • Wiederverwendbarkeit: Tools in verschiedenen Projekten und Agenten nutzen
  • Konsistenz: Vorhersehbares Verhalten bei jedem Lauf (ideal zum Debuggen)
  • Kontrollierter Zugriff: Nur das freigeben, was du möchtest (Dateien, APIs, Datenbanken, etc.)
AI-Agents mit Hugging Face smolagents

Szenario: Du betreibst ein Einzelhandelsgeschäft

  • Bestandsdaten sind in einer CSV-Datei gespeichert (Größe, Farbe, Menge und Preis)
  • Code-Agenten können Code schreiben, um CSVs zu lesen
  • Aber sie haben standardmäßig keinen Zugriff auf Dateien
  • Du musst den Dateizugriff in ein benutzerdefiniertes Tool einbinden

AI-Agents mit Hugging Face smolagents

Anatomie eines benutzerdefinierten Tools

from smolagents import tool
import pandas as pd

@tool
def check_inventory(product_name: str) -> int:
    """
    Überprüfe die verfügbare Menge eines Produkts in der Bestands-CSV.

    Args:
        product_name (str): Der Name des zu suchenden Produkts.

    Returns:
        int: Die Menge auf Lager. Gibt 0 zurück, wenn das Produkt nicht gefunden wird.
    """
    df = pd.read_csv("store_inventory.csv")
    match = df[df["product_name"] == product_name]
    stock_quantity = int(match.iloc[0]["quantity"]) if not match.empty else 0
    return stock_quantity
AI-Agents mit Hugging Face smolagents

Best Practices für benutzerdefinierte Tools

AI-Agents mit Hugging Face smolagents

Haben wir T-Shirts auf Lager?

AI-Agents mit Hugging Face smolagents

Ein benutzerdefiniertes Tool beim Agenten registrieren

from smolagents import CodeAgent

agent = CodeAgent(
    tools=[check_inventory], # Benutzerdefiniertes Tool hinzufügen
    model=InferenceClientModel(),
    additional_authorized_imports=["pandas"]  # Externes Paket erlauben
)

agent.run("Haben wir große T-Shirts auf Lager?")
Ja, wir haben 8 große T-Shirts auf Lager.
AI-Agents mit Hugging Face smolagents

Benutzerdefinierte Tools in Produktionsprojekten

AI-Agents mit Hugging Face smolagents

Lass uns üben!

AI-Agents mit Hugging Face smolagents

Preparing Video For Download...