Tool Use & Function Calling
Wissen
Ein LLM allein kann nur Text erzeugen. Erst durch Tool Use wird es zum Agent: Es kann APIs abfragen, Datenbanken durchsuchen, Dateien lesen, Code ausführen und E-Mails versenden. Tools sind die Hände und Augen des Agents.
Was ist Function Calling?
Function Calling ist der Mechanismus, mit dem ein LLM strukturiert ein Tool aufruft. Statt freitext zu antworten, gibt das Modell einen JSON-Block zurück, der genau beschreibt, welches Tool mit welchen Parametern aufgerufen werden soll.
Der Ablauf
- Du gibst dem LLM eine Liste verfügbarer Tools (Name, Beschreibung, Parameter)
- Das LLM entscheidet, ob und welches Tool es aufrufen will
- Es gibt einen strukturierten Tool-Call zurück (JSON)
- Dein System führt den Call aus und gibt das Ergebnis zurück
- Das LLM verarbeitet das Ergebnis und antwortet oder ruft ein weiteres Tool auf
Tool-Definition
So sieht eine typische Tool-Definition aus:
{
"name": "search_database",
"description": "Durchsucht die Produktdatenbank nach Artikeln",
"parameters": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Suchbegriff"
},
"category": {
"type": "string",
"enum": ["elektronik", "kleidung", "buecher"],
"description": "Produktkategorie (optional)"
},
"max_results": {
"type": "integer",
"description": "Maximale Anzahl Ergebnisse",
"default": 10
}
},
"required": ["query"]
}
}
Tool-Call durch das LLM
Wenn das LLM entscheidet, das Tool zu nutzen, antwortet es so:
{
"tool_calls": [{
"name": "search_database",
"arguments": {
"query": "USB-C Kabel",
"category": "elektronik",
"max_results": 5
}
}]
}
iWichtig
Das LLM führt den Tool-Call nicht selbst aus! Es generiert nur die Absicht. Dein Code (der "Orchestrator") führt den tatsächlichen API-Call durch und gibt das Ergebnis an das LLM zurück.
Typische Tool-Kategorien
Informationsbeschaffung:
- Web Search -- Aktuelle Informationen aus dem Internet
- Database Query -- Strukturierte Daten aus Datenbanken
- File Read -- Dokumente und Dateien lesen
- API Calls -- Externe Services abfragen (Wetter, Börse, CRM)
Aktionen ausführen:
- File Write -- Dateien erstellen oder ändern
- Email Send -- Nachrichten versenden
- Code Execute -- Python, JavaScript etc. ausführen
- Database Write -- Daten speichern oder aktualisieren
Analyse und Verarbeitung:
- Calculator -- Mathematische Berechnungen
- Image Analysis -- Bilder beschreiben oder analysieren
- Data Transform -- Daten konvertieren (CSV zu JSON, etc.)
Was passiert technisch, wenn ein LLM ein Tool 'aufruft'?
Verstehen
Best Practices für Tool-Design
1. Klare Beschreibungen
Das LLM entscheidet anhand der Tool-Beschreibung, ob es ein Tool nutzen soll. Eine vage Beschreibung führt zu falschen oder ausbleibenden Tool-Calls.
// Schlecht
{ "name": "do_stuff", "description": "Macht Sachen" }
// Gut
{
"name": "get_customer_orders",
"description": "Ruft alle Bestellungen eines Kunden der letzten 30 Tage ab. Gibt Bestellnummer, Datum, Status und Gesamtbetrag zurück."
}
2. Wenige, fokussierte Tools
Gib dem Agent nicht 50 Tools auf einmal. Je mehr Tools verfügbar sind, desto häufiger wählt das LLM das falsche. 5-10 gut beschriebene Tools sind besser als 50 vage.
3. Sinnvolle Defaults
Mach Parameter optional, wo es sinnvoll ist. Das LLM muss nicht jeden Parameter explizit setzen, wenn ein guter Default existiert.
Multi-Tool-Orchestrierung
In der Praxis nutzen Agents oft mehrere Tools in Kombination. Ein Support-Agent könnte zum Beispiel:
get_customer_info(email)-- Kundendaten ladensearch_orders(customer_id)-- Bestellungen suchencheck_return_policy(order_id)-- Rückgaberichtlinie prüfencreate_return_ticket(order_id, reason)-- Rückgabe einleiten
Das LLM entscheidet bei jedem Schritt, welches Tool als nächstes sinnvoll ist -- basierend auf den Ergebnissen der vorherigen Tools.
*Parallele Tool-Calls
Moderne APIs wie Claude und GPT unterstützen parallele Tool-Calls. Wenn der Agent erkennt, dass zwei Abfragen unabhängig sind, kann er beide gleichzeitig starten. Das spart Zeit und Kosten.
Warum sollte man einem Agent nicht 50 Tools gleichzeitig zur Verfügung stellen?
Anwenden
Aufgabe
Finde den aktuellen Bitcoin-Preis
Drücke Starten oder Space um den Agent-Loop zu starten.
Vervollständige die Tool-Definition für eine Wetter-API:
Reflektieren
Tool Use macht LLMs von Texterzeugern zu Handelnden. Die Qualität hängt von präzisen Tool-Beschreibungen und einer begrenzten Auswahl ab -- 5 bis 10 fokussierte Tools führen zu besseren Ergebnissen als eine überladene Toolbox. Weniger ist hier tatsächlich mehr.