Claude entscheidet selbst, wann er eine von dir definierte Funktion aufruft – Wetter-API, Datenbank, Rechner. Wie der Round-Trip funktioniert und wann er sich lohnt.
Tool Use ist die Brücke zwischen Claude und der echten Welt: Du definierst Funktionen mit einem JSON-Schema, Claude entscheidet selbst, ob und welches Tool er aufrufen will, und gibt dir strukturierte Argumente zurück – deine Anwendung führt den eigentlichen Code aus, schickt das Ergebnis zurück, und Claude formuliert daraus die Antwort. Claude selbst führt nie Code aus: Er wählt das Tool, du betreibst es.
Für alle, die Claude per API in ihre eigenen Systeme einbinden wollen – sei es eine Wetter-API, eine interne Datenbank, ein Berechnungsservice oder eine Aktion in einem externen System. Tool Use ist der Standard-Weg, um Claude von einem reinen Sprachmodell zu einem handlungsfähigen Agenten zu machen.
tool_choice bewirkt und welche Optionen es gibtinput_schema die gewünschte Struktur abbildet – Claude befüllt es dann ohne echten Funktionsaufruf.Du schickst mit deiner ersten API-Anfrage ein Array von Tool-Definitionen. Jede Definition hat name, description und ein input_schema (JSON Schema). Claude liest diese Liste und entscheidet, ob und welches Tool er aufrufen will.
Du sendest die Nutzernachricht wie gewohnt an die Messages-API – zusätzlich mit dem tools-Parameter. Claude verarbeitet beides gemeinsam.
Wenn Claude ein Tool aufrufen will, endet seine Antwort mit stop_reason: "tool_use". Im content-Array findest du einen Block vom Typ tool_use mit id, name und input – einem JSON-Objekt, das exakt dem Schema entspricht, das du definiert hast.
Deine Anwendung – nicht Claude – führt jetzt den tatsächlichen Code aus: API-Aufruf, Datenbankabfrage, Berechnung. Du prüfst die Argumente, führst aus, fängst Fehler ab.
Du schickst eine neue API-Anfrage, die die gesamte bisherige Konversation plus eine neue user-Nachricht enthält. Diese Nachricht hat type: "tool_result", verweist per tool_use_id auf den passenden tool_use-Block und enthält das Ergebnis als String.
Claude bekommt das Tool-Ergebnis und formuliert daraus die eigentliche Antwort auf die ursprüngliche Frage. stop_reason ist jetzt "end_turn" – der Round-Trip ist abgeschlossen.
Standardmäßig entscheidet Claude selbst, ob er ein Tool aufruft. Du kannst das mit dem Parameter tool_choice steuern:
auto (Standard): Claude wählt frei, ob er ein Tool aufruft oder direkt antwortet.any: Claude muss ein Tool aufrufen – welches, entscheidet er selbst. Nützlich, wenn du garantiert strukturierte Argumente brauchst.{"type": "tool", "name": "get_weather"}: Claude muss genau dieses Tool aufrufen. Kein Spielraum.Parallele Tool-Aufrufe passieren automatisch: Wenn Claude erkennt, dass zwei Informationen unabhängig voneinander beschaffbar sind – etwa Wetter für Berlin und für München – , gibt er in einer einzigen Antwort mehrere tool_use-Blöcke zurück. Deine Anwendung kann beide Aufrufe parallel ausführen und beide Ergebnisse in einer einzigen user-Nachricht mit mehreren tool_result-Blöcken zurückgeben.
MCP (Model Context Protocol) ist kein neues Konzept auf der Modell-Ebene. MCP-Server stellen Tools, Ressourcen und Prompts über ein standardisiertes Protokoll bereit – aber wenn Claude einen MCP-Tool aufruft, läuft darunter exakt derselbe tool_use-Round-Trip wie bei direkter API-Nutzung. Der Unterschied: Die Tool-Definition, Ausführung und Rückgabe des Ergebnisses passieren automatisch durch den MCP-Client, statt von dir manuell geschrieben zu werden. MCP ist also Tool Use mit standardisiertem Infrastruktur-Layer. Den vollständigen Setup-Prozess erklärt der Guide MCP-Server konfigurieren.
Claude wählt Tools auf Basis der description, nicht des Namens. Eine präzise Beschreibung mit Anwendungskontext und Rückgabewert-Information führt zu deutlich besseren Entscheidungen.
Du hast einen tool_use-Block in Claudes Antwort erhalten. Wer führt den eigentlichen Funktionsaufruf aus?
Stand Mai 2026: Die Tool-Use-API ist stabil und wird aktiv weiterentwickelt. Das tool_choice-Feld unterstützt auto, any und die gezielte Tool-Auswahl per Name. Alle aktuellen Modelle – Haiku 4.5, Sonnet 4.6 und Opus 4.8 – unterstützen Tool Use vollständig, einschließlich paralleler Tool-Aufrufe. Prüfe für Streaming-Responses die entsprechende Streaming-Dokumentation, da tool_use-Blöcke in Events stückweise ankommen können.
tool_result endet die Konversation in einem unvollständigen Zustand.tool_result-Block muss exakt die id aus dem tool_use-Block referenzieren. Copy-paste-Fehler hier führen zu API-Fehlern.input_schema keine required-Felder definiert, kann Claude optionale Argumente weglassen. Definiere, was du brauchst.tool_result zurück (das Feld is_error: true gibt es im API-Format). Claude kann dann sinnvoll reagieren – statt bei leerem Ergebnis zu halluzinieren.Du kennst jetzt den vollständigen Round-Trip. Wenn du Tool Use nicht manuell implementieren, sondern auf einer standardisierten Infrastruktur aufbauen willst, ist MCP-Server konfigurieren der nächste Guide – dort siehst du, wie dieselbe Mechanik über einen MCP-Server automatisiert wird.
Wissen testen, Entscheidungen trainieren oder den nächsten Guide starten.