GuideFortgeschrittenTool Use

Tool Use: Claude eigene Werkzeuge geben

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.

Stable Aktualisiert: Mai 2026 Plattform: API / SDK Plan: API / Pro / Max / Team
Für wen
Alle, die Claude an echte Systeme anbinden – APIs, Datenbanken, Berechnungen, externe Aktionen.
Wann nutzen
Wenn Claude auf aktuelle/externe Daten zugreifen oder eine Aktion in einem System auslösen soll, die er nicht aus dem Training kennt.
Wann nicht
Für reine Textaufgaben ohne externen Datenbedarf – da ist Tool Use unnötiger Overhead.

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 wen ist das?

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.

Was lernst du?

  • Wie der Round-Trip zwischen deiner App und Claude bei Tool Use abläuft
  • Wie du Tools mit Name, Beschreibung und JSON-Schema korrekt definierst
  • Was tool_choice bewirkt und welche Optionen es gibt
  • Wie parallele Tool-Aufrufe in einer einzigen Antwort funktionieren
  • Wo MCP aufhört, eine neue Mechanik zu sein – und wo es einfach nur Tool Use in einer standardisierten Hülle ist

Wann nutzen?

  • Aktuelle Daten: Wettervorhersagen, Börsenkurse, Live-Datenbankabfragen – Dinge, die nicht im Training stecken
  • Externe Aktionen: Einen Kalender-Eintrag anlegen, eine E-Mail versenden, eine API aufrufen
  • Berechnungen: Exakte Währungsumrechnungen, Hypothekenrechner, Geometrie – überall, wo Claude lieber rechnen lassen sollte als schätzen
  • Strukturierter Output: Wenn du willst, dass Claude einen Wert in ein festes Schema zwingt, ist ein Tool mit präzisem Schema der sauberste Weg

Wann nicht?

  • Für reine Textaufgaben ohne externen Datenbedarf: Zusammenfassungen, Korrekturen, kreatives Schreiben. Tool Use wäre unnötiger Overhead.
  • Wenn die Daten bereits im Kontext liegen: Gib sie direkt mit. Kein Tool-Aufruf nötig.
  • Wenn du nur strukturierten Output willst, aber keinen echten Funktionsaufruf brauchst: Eine klare Prompt-Vorgabe reicht oft aus. Willst du ein erzwungenes Schema, definierst du ein einzelnes Tool, dessen input_schema die gewünschte Struktur abbildet – Claude befüllt es dann ohne echten Funktionsaufruf.

Der Round-Trip

1

Tools definieren

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.

Tipp Die description ist das Wichtigste – Claude entscheidet auf Basis des Textes, ob das Tool zur Aufgabe passt. Schreibe sie wie eine Beschreibung für einen neuen Kollegen: präzise, konkret, mit Beispielen wann zu nutzen.
2

Anfrage senden

Du sendest die Nutzernachricht wie gewohnt an die Messages-API – zusätzlich mit dem tools-Parameter. Claude verarbeitet beides gemeinsam.

3

stop_reason: tool_use

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.

Tipp Claude kann auch mehrere tool_use-Blöcke in einer einzigen Antwort zurückgeben, wenn er parallel verschiedene Tools aufrufen will.
4

Tool ausführen

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.

5

Ergebnis als tool_result zurückgeben

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.

Tipp Das Zurückgeben des Ergebnisses ist nicht optional – Claude wartet darauf, bevor er antwortet. Ohne tool_result bekommst du keinen sinnvollen Abschluss.
6

Finale Antwort

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.

tool_choice: Wer entscheidet?

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.

Verstehen Tool Use und MCP – dieselbe Mechanik, andere Verpackung

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.

Gut vs. Schlecht
Name: search – Description: Does a search. – Schema: nur ein query-String ohne Pflichtfeld-Markierung. Vage, kein Kontext wann zu nutzen, kein Hinweis auf Rückgabewert.
Name: search_products – Description: Search the product catalog by keyword. Use when the user asks about product availability, pricing, or specifications. Returns up to 10 matching products with name, price, and stock status. – Schema mit required-Feld query und optionalem max_results mit Default.

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.

Quick Check

Du hast einen tool_use-Block in Claudes Antwort erhalten. Wer führt den eigentlichen Funktionsaufruf aus?

HINWEIS

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.

Typische Fehler

  • tool_result vergessen: Claude wartet auf das Ergebnis, bevor er antwortet. Ohne tool_result endet die Konversation in einem unvollständigen Zustand.
  • tool_use_id falsch referenzieren: Jeder tool_result-Block muss exakt die id aus dem tool_use-Block referenzieren. Copy-paste-Fehler hier führen zu API-Fehlern.
  • Schema zu locker: Wenn dein input_schema keine required-Felder definiert, kann Claude optionale Argumente weglassen. Definiere, was du brauchst.
  • Description als Platzhalter: „Does stuff” oder „Helper function” – Claude wählt Tools auf Basis dieser Texte. Schwache Descriptions führen zu falschen oder überhaupt keinen Tool-Aufrufen.
  • Fehler nicht zurückgeben: Wenn dein Tool-Aufruf fehlschlägt, gib den Fehler als 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.

Nächster Schritt

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.

Lerncoach regelbasiert
Sofort-Hilfe aus dem Inhalt dieser Seite.
War das hilfreich?
Guide abgeschlossen
Damit kannst du jetzt: Tools sauber mit Name, Beschreibung und JSON-Schema definieren, tool_choice bewusst wählen, das Tool-Ergebnis IMMER zurück an Claude geben – und verstehen, dass MCP nur eine standardisierte Verpackung derselben Mechanik ist.
Lernstatus 24 von 25 Guides
Neu → In Arbeit → Verstanden → Praxis

Gelesen?
Dann anwenden.

Wissen testen, Entscheidungen trainieren oder den nächsten Guide starten.

Esc

Wonach suchst du?

Begriffe wie MCP, Prompt, Desktop oder Haiku probieren.