Hier ist ein Beispiel, wie Sie Claude Tools über die Messages API zur Verfügung stellen können:
Wie Tool-Nutzung funktioniert
Claude unterstützt zwei Arten von Tools:-
Client-Tools: Tools, die auf Ihren Systemen ausgeführt werden, dazu gehören:
- Benutzerdefinierte Tools, die Sie erstellen und implementieren
- Von Anthropic definierte Tools wie Computer-Nutzung und Text-Editor, die eine Client-Implementierung erfordern
- Server-Tools: Tools, die auf Anthropics Servern ausgeführt werden, wie die Web-Suche und Web-Abruf Tools. Diese Tools müssen in der API-Anfrage spezifiziert werden, erfordern aber keine Implementierung Ihrerseits.
Von Anthropic definierte Tools verwenden versionierte Typen (z.B.
web_search_20250305
, text_editor_20250124
), um die Kompatibilität zwischen Modellversionen zu gewährleisten.Client-Tools
Integrieren Sie Client-Tools mit Claude in diesen Schritten:1
Stellen Sie Claude Tools und eine Benutzeraufforderung zur Verfügung
- Definieren Sie Client-Tools mit Namen, Beschreibungen und Eingabeschemata in Ihrer API-Anfrage.
- Fügen Sie eine Benutzeraufforderung hinzu, die diese Tools benötigen könnte, z.B. “Wie ist das Wetter in San Francisco?”
2
Claude entscheidet, ein Tool zu verwenden
- Claude bewertet, ob Tools bei der Benutzeranfrage helfen können.
- Falls ja, erstellt Claude eine korrekt formatierte Tool-Nutzungsanfrage.
- Bei Client-Tools hat die API-Antwort einen
stop_reason
vontool_use
, der Claudes Absicht signalisiert.
3
Führen Sie das Tool aus und geben Sie Ergebnisse zurück
- Extrahieren Sie den Tool-Namen und die Eingabe aus Claudes Anfrage
- Führen Sie den Tool-Code auf Ihrem System aus
- Geben Sie die Ergebnisse in einer neuen
user
-Nachricht zurück, die einentool_result
-Inhaltsblock enthält
4
Claude verwendet das Tool-Ergebnis, um eine Antwort zu formulieren
- Claude analysiert die Tool-Ergebnisse, um seine endgültige Antwort auf die ursprüngliche Benutzeraufforderung zu erstellen.
Server-Tools
Server-Tools folgen einem anderen Workflow:1
Stellen Sie Claude Tools und eine Benutzeraufforderung zur Verfügung
2
Claude führt das Server-Tool aus
- Claude bewertet, ob ein Server-Tool bei der Benutzeranfrage helfen kann.
- Falls ja, führt Claude das Tool aus, und die Ergebnisse werden automatisch in Claudes Antwort eingebunden.
3
Claude verwendet das Server-Tool-Ergebnis, um eine Antwort zu formulieren
- Claude analysiert die Server-Tool-Ergebnisse, um seine endgültige Antwort auf die ursprüngliche Benutzeraufforderung zu erstellen.
- Keine zusätzliche Benutzerinteraktion ist für die Server-Tool-Ausführung erforderlich.
Tool-Nutzungsbeispiele
Hier sind einige Code-Beispiele, die verschiedene Tool-Nutzungsmuster und -techniken demonstrieren. Der Kürze halber sind die Tools einfache Tools, und die Tool-Beschreibungen sind kürzer als ideal wäre, um die beste Leistung zu gewährleisten.Einzelnes Tool-Beispiel
Einzelnes Tool-Beispiel
JSON
get_weather
-Funktion mit der bereitgestellten Eingabe ausführen und das Ergebnis in einer neuen user
-Nachricht zurückgeben:JSON
Parallele Tool-Nutzung
Parallele Tool-Nutzung
Claude kann mehrere Tools parallel innerhalb einer einzigen Antwort aufrufen, was für Aufgaben nützlich ist, die mehrere unabhängige Operationen erfordern. Bei der Verwendung paralleler Tools sind alle Für umfassende Beispiele, Testskripte und bewährte Praktiken zur Implementierung paralleler Tool-Aufrufe siehe den Abschnitt über parallele Tool-Nutzung in unserem Implementierungsleitfaden.
tool_use
-Blöcke in einer einzigen Assistant-Nachricht enthalten, und alle entsprechenden tool_result
-Blöcke müssen in der nachfolgenden Benutzer-Nachricht bereitgestellt werden.Wichtig: Tool-Ergebnisse müssen korrekt formatiert werden, um API-Fehler zu vermeiden und sicherzustellen, dass Claude weiterhin parallele Tools verwendet. Siehe unseren Implementierungsleitfaden für detaillierte Formatierungsanforderungen und vollständige Code-Beispiele.
Mehrere Tools-Beispiel
Mehrere Tools-Beispiel
Sie können Claude mehrere Tools zur Auswahl in einer einzigen Anfrage zur Verfügung stellen. Hier ist ein Beispiel mit sowohl einem In diesem Fall kann Claude entweder:
get_weather
- als auch einem get_time
-Tool, zusammen mit einer Benutzeranfrage, die nach beiden fragt.- Die Tools sequenziell verwenden (eines nach dem anderen) — zuerst
get_weather
aufrufen, dannget_time
nach Erhalt des Wetterergebnisses - Parallele Tool-Aufrufe verwenden — mehrere
tool_use
-Blöcke in einer einzigen Antwort ausgeben, wenn die Operationen unabhängig sind
user
-Nachricht zurückgeben, wobei jedes Ergebnis in seinem eigenen tool_result
-Block steht.Fehlende Informationen
Fehlende Informationen
Wenn die Benutzeraufforderung nicht genügend Informationen enthält, um alle erforderlichen Parameter für ein Tool zu füllen, erkennt Claude Opus viel eher, dass ein Parameter fehlt und fragt danach. Claude Sonnet kann fragen, besonders wenn es aufgefordert wird, vor der Ausgabe einer Tool-Anfrage zu denken. Aber es kann auch sein Bestes geben, um einen vernünftigen Wert zu schließen.Zum Beispiel, wenn Sie mit dem obigen Dieses Verhalten ist nicht garantiert, besonders bei mehrdeutigeren Aufforderungen und bei weniger intelligenten Modellen. Wenn Claude Opus nicht genügend Kontext hat, um die erforderlichen Parameter zu füllen, ist es viel wahrscheinlicher, dass es mit einer klärenden Frage antwortet, anstatt einen Tool-Aufruf zu machen.
get_weather
-Tool Claude fragen “Wie ist das Wetter?” ohne einen Ort anzugeben, kann Claude, insbesondere Claude Sonnet, eine Vermutung über Tool-Eingaben anstellen:JSON
Sequenzielle Tools
Sequenzielle Tools
Einige Aufgaben können das Aufrufen mehrerer Tools in Folge erfordern, wobei die Ausgabe eines Tools als Eingabe für ein anderes verwendet wird. In einem solchen Fall wird Claude ein Tool nach dem anderen aufrufen. Wenn es aufgefordert wird, alle Tools auf einmal aufzurufen, wird Claude wahrscheinlich Parameter für Tools weiter unten raten, wenn sie von Tool-Ergebnissen für Tools weiter oben abhängig sind.Hier ist ein Beispiel für die Verwendung eines In diesem Fall würde Claude zuerst das
Dieses Beispiel demonstriert, wie Claude mehrere Tool-Aufrufe verketten kann, um eine Frage zu beantworten, die das Sammeln von Daten aus verschiedenen Quellen erfordert. Die wichtigsten Schritte sind:
get_location
-Tools, um den Standort des Benutzers zu erhalten, und dann diesen Standort an das get_weather
-Tool zu übergeben:get_location
-Tool aufrufen, um den Standort des Benutzers zu erhalten. Nachdem Sie den Standort in einem tool_result
zurückgegeben haben, würde Claude dann get_weather
mit diesem Standort aufrufen, um die endgültige Antwort zu erhalten.Die vollständige Unterhaltung könnte so aussehen:Rolle | Inhalt |
---|---|
Benutzer | Wie ist das Wetter dort, wo ich bin? |
Assistant | Ich werde zuerst Ihren aktuellen Standort finden und dann das Wetter dort überprüfen. [Tool-Nutzung für get_location] |
Benutzer | [Tool-Ergebnis für get_location mit passender ID und Ergebnis San Francisco, CA] |
Assistant | [Tool-Nutzung für get_weather mit der folgenden Eingabe]{ “location”: “San Francisco, CA”, “unit”: “fahrenheit” } |
Benutzer | [Tool-Ergebnis für get_weather mit passender ID und Ergebnis “59°F (15°C), größtenteils bewölkt”] |
Assistant | Basierend auf Ihrem aktuellen Standort in San Francisco, CA, ist das Wetter gerade 59°F (15°C) und größtenteils bewölkt. Es ist ein ziemlich kühler und bedeckter Tag in der Stadt. Sie sollten vielleicht eine leichte Jacke mitnehmen, wenn Sie nach draußen gehen. |
- Claude erkennt zuerst, dass es den Standort des Benutzers benötigt, um die Wetterfrage zu beantworten, also ruft es das
get_location
-Tool auf. - Der Benutzer (d.h. der Client-Code) führt die tatsächliche
get_location
-Funktion aus und gibt das Ergebnis “San Francisco, CA” in einemtool_result
-Block zurück. - Mit dem nun bekannten Standort ruft Claude das
get_weather
-Tool auf und übergibt “San Francisco, CA” alslocation
-Parameter (sowie einen geratenenunit
-Parameter, daunit
kein erforderlicher Parameter ist). - Der Benutzer führt erneut die tatsächliche
get_weather
-Funktion mit den bereitgestellten Argumenten aus und gibt die Wetterdaten in einem weiterentool_result
-Block zurück. - Schließlich integriert Claude die Wetterdaten in eine natürlichsprachliche Antwort auf die ursprüngliche Frage.
Chain of Thought Tool-Nutzung
Chain of Thought Tool-Nutzung
Standardmäßig wird Claude Opus aufgefordert, vor der Beantwortung einer Tool-Nutzungsanfrage zu denken, um am besten zu bestimmen, ob ein Tool notwendig ist, welches Tool zu verwenden ist und die angemessenen Parameter. Claude Sonnet und Claude Haiku werden aufgefordert, Tools so viel wie möglich zu verwenden und rufen eher ein unnötiges Tool auf oder schließen fehlende Parameter. Um Sonnet oder Haiku aufzufordern, die Benutzeranfrage besser zu bewerten, bevor Tool-Aufrufe gemacht werden, kann die folgende Aufforderung verwendet werden:Chain of Thought-Aufforderung
Beantworten Sie die Anfrage des Benutzers mit relevanten Tools (falls verfügbar). Bevor Sie ein Tool aufrufen, führen Sie eine Analyse durch. Denken Sie zuerst darüber nach, welches der bereitgestellten Tools das relevante Tool ist, um die Anfrage des Benutzers zu beantworten. Zweitens, gehen Sie jeden der erforderlichen Parameter des relevanten Tools durch und bestimmen Sie, ob der Benutzer direkt bereitgestellt oder genügend Informationen gegeben hat, um einen Wert zu schließen. Bei der Entscheidung, ob der Parameter geschlossen werden kann, berücksichtigen Sie sorgfältig den gesamten Kontext, um zu sehen, ob er einen bestimmten Wert unterstützt. Wenn alle erforderlichen Parameter vorhanden sind oder vernünftig geschlossen werden können, fahren Sie mit dem Tool-Aufruf fort. ABER, wenn einer der Werte für einen erforderlichen Parameter fehlt, rufen Sie die Funktion NICHT auf (auch nicht mit Füllern für die fehlenden Parameter) und bitten Sie stattdessen den Benutzer, die fehlenden Parameter bereitzustellen. Fragen Sie NICHT nach weiteren Informationen zu optionalen Parametern, wenn sie nicht bereitgestellt werden.
JSON-Modus
JSON-Modus
Sie können Tools verwenden, um Claude JSON-Ausgaben produzieren zu lassen, die einem Schema folgen, auch wenn Sie nicht die Absicht haben, diese Ausgabe durch ein Tool oder eine Funktion laufen zu lassen.Bei der Verwendung von Tools auf diese Weise:
- Sie möchten normalerweise ein einzelnes Tool bereitstellen
- Sie sollten
tool_choice
setzen (siehe Tool-Nutzung erzwingen), um das Modell anzuweisen, dieses Tool explizit zu verwenden - Denken Sie daran, dass das Modell die
input
an das Tool weitergibt, also sollten der Name des Tools und die Beschreibung aus der Perspektive des Modells sein.
record_summary
-Tool, um ein Bild in einem bestimmten Format zu beschreiben.Preisgestaltung
Tool use requests are priced based on:- The total number of input tokens sent to the model (including in the
tools
parameter) - The number of output tokens generated
- For server-side tools, additional usage-based pricing (e.g., web search charges per search performed)
- The
tools
parameter in API requests (tool names, descriptions, and schemas) tool_use
content blocks in API requests and responsestool_result
content blocks in API requests
tools
, we also automatically include a special system prompt for the model which enables tool use. The number of tool use tokens required for each model are listed below (excluding the additional tokens listed above). Note that the table assumes at least 1 tool is provided. If no tools
are provided, then a tool choice of none
uses 0 additional system prompt tokens.
Model | Tool choice | Tool use system prompt token count |
---|---|---|
Claude Opus 4.1 | auto , none any , tool | 346 tokens 313 tokens |
Claude Opus 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 4 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.7 | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (Oct) (deprecated) | auto , none any , tool | 346 tokens 313 tokens |
Claude Sonnet 3.5 (June) (deprecated) | auto , none any , tool | 294 tokens 261 tokens |
Claude Haiku 3.5 | auto , none any , tool | 264 tokens 340 tokens |
Claude Opus 3 (deprecated) | auto , none any , tool | 530 tokens 281 tokens |
Claude Sonnet 3 | auto , none any , tool | 159 tokens 235 tokens |
Claude Haiku 3 | auto , none any , tool | 264 tokens 340 tokens |
usage
-Metriken aus.
Nächste Schritte
Erkunden Sie unser Repository mit sofort implementierbaren Tool-Nutzungs-Code-Beispielen in unseren Kochbüchern:Rechner-Tool
Lernen Sie, wie Sie ein einfaches Rechner-Tool mit Claude für präzise numerische Berechnungen integrieren.
Kundenservice-Agent
Erstellen Sie einen reaktionsschnellen Kundenservice-Bot, der Client-Tools nutzt, um
den Support zu verbessern.
JSON-Extraktor
Sehen Sie, wie Claude und Tool-Nutzung strukturierte Daten aus unstrukturiertem Text extrahieren können.