Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Verwendung des Tools
Warnung
Einige der folgenden Funktionen werden, wie angegeben, in der Betaversion angeboten. Diese Funktionen werden Ihnen als „Beta-Service“ gemäß der Definition in den AWS Servicebedingungen zur Verfügung gestellt. Es unterliegt Ihrer Vereinbarung mit AWS und den AWS Servicebedingungen sowie der geltenden Muster-EULA.
Bei Anthropic-Claude-Modellen können Sie ein Tool angeben, mit dem das Modell eine Nachricht beantworten kann. Sie könnten beispielsweise ein Tool angeben, das den beliebtesten Song eines Radiosenders ermittelt. Wenn der Benutzer die Nachricht weitergibt Was ist der beliebteste Song bei WZPZ?, stellt das Modell fest, dass das von Ihnen angegebene Tool bei der Beantwortung der Frage helfen kann. In seiner Antwort fordert das Modell Sie auf, das Tool in seinem Namen auszuführen. Anschließend führen Sie das Tool aus und übergeben das Tool-Ergebnis an das Modell, das dann eine Antwort für die ursprüngliche Nachricht generiert. Weitere Informationen finden Sie unter Verwendung des Tools (Funktionsaufruf)
Tipp
Es wird empfohlen, die Converse-API zur Integration der Tool-Nutzung in Ihre Anwendung zu verwenden. Weitere Informationen finden Sie unter Verwenden eines Tools, um eine Amazon-Bedrock-Modellantwort zu vervollständigen.
Wichtig
Claude Sonnet 4.5 behält jetzt die absichtliche Formatierung der Zeichenfolgenparameter für Tool-Aufrufe bei. Bisher wurden nachfolgende Zeilenumbrüche in Zeichenfolgenparametern manchmal fälschlicherweise entfernt. Mit dieser Korrektur wird sichergestellt, dass Tools, die eine genaue Formatierung erfordern (wie Text-Editoren), Parameter genau wie vorgesehen erhalten. Dies ist eine behind-the-scenes Verbesserung, für die keine API-Änderungen erforderlich sind. Tools mit Zeichenfolgenparametern können jetzt jedoch Werte mit abschließenden Zeilenumbrüchen empfangen, die zuvor entfernt wurden.
Anmerkung
Claude Sonnet 4.5 beinhaltet automatische Optimierungen zur Verbesserung der Modellleistung. Durch diese Optimierungen können Anfragen kleine Mengen an Token hinzugefügt werden. Diese vom System hinzugefügten Token werden Ihnen jedoch nicht in Rechnung gestellt.
Sie geben die Tools, die Sie einem Modell zur Verfügung stellen möchten, im Feld tools an. Das folgende Beispiel bezieht sich auf ein Tool, das den beliebtesten Song eines Radiosenders ermittelt.
[ { "name": "top_song", "description": "Get the most popular song played on a radio station.", "input_schema": { "type": "object", "properties": { "sign": { "type": "string", "description": "The call sign for the radio station for which you want the most popular song. Example calls signs are WZPZ and WKRP." } }, "required": [ "sign" ] } } ]
Wenn das Modell ein Tool benötigt, um eine Antwort auf eine Nachricht zu generieren, gibt es Informationen über das angeforderte Tool und die Eingabe für das Tool im content-Nachrichtenfeld zurück. Außerdem wird der Grund für den Stopp der Antwort auf tool_use festgelegt.
{ "id": "msg_bdrk_01USsY5m3XRUF4FCppHP8KBx", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "stop_sequence": null, "usage": { "input_tokens": 375, "output_tokens": 36 }, "content": [ { "type": "tool_use", "id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "name": "top_song", "input": { "sign": "WZPZ" } } ], "stop_reason": "tool_use" }
In Ihrem Code rufen Sie das Tool im Namen des Tools auf. Anschließend übergeben Sie das Tool-Ergebnis (tool_result) in einer Benutzernachricht an das Modell.
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }
In seiner Antwort verwendet das Modell das Tool-Ergebnis, um eine Antwort auf die ursprüngliche Nachricht zu generieren.
{ "id": "msg_bdrk_012AaqvTiKuUSc6WadhUkDLP", "type": "message", "role": "assistant", "model": "claude-3-sonnet-20240229", "content": [ { "type": "text", "text": "According to the tool, the most popular song played on radio station WZPZ is \"Elemental Hotel\"." } ], "stop_reason": "end_turn" }
Differenziertes Tool-Streaming
Differenziertes Tool-Streaming ist eine Anthropic-Claude-Modellfunktion, die mit Claude Sonnet 4.5, Claude Haiku 4.5, Claude Sonnet 4 und Claude Opus 4 verfügbar ist. Mit differenziertem Tool-Streaming können Claude-Entwickler Parameter für die Verwendung von Tools ohne Pufferung oder JSON-Validierung streamen, wodurch die Latenz beim Empfang großer Parameter reduziert wird.
Anmerkung
Wenn Sie differenziertes Tool-Streaming verwenden, erhalten Sie möglicherweise ungültige oder unvollständige JSON-Eingaben. Bitte achten Sie darauf, diese Grenzfälle in Ihrem Code zu berücksichtigen.
Wenn Sie dieses Feature nutzen möchten, fügen Sie einfach den Header fine-grained-tool-streaming-2025-05-14 zu einer Anfrage zur Verwendung eines Tools hinzu.
Hier ist ein Beispiel dafür, wie der Header beim differenzierten Tool-Streaming angegeben werden kann:
{ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 1024, "anthropic_beta": ["fine-grained-tool-streaming-2025-05-14"], "messages": [ { "role": "user", "content": "Can you write a long poem and make a file called poem.txt?" } ], "tools": [ { "name": "make_file", "description": "Write text to a file", "input_schema": { "type": "object", "properties": { "filename": { "type": "string", "description": "The filename to write text to" }, "lines_of_text": { "type": "array", "description": "An array of lines of text to write to the file" } }, "required": [ "filename", "lines_of_text" ] } } ] }
In diesem Beispiel ermöglicht es Claude durch differenziertes Tool-Streaming, die Zeilen eines langen Gedichts ohne Pufferung in den Tool-Aufruf make_file zu streamen, um zu überprüfen, ob es sich bei dem Parameter lines_of_text um einen gültigen JSON-Wert handelt. Das bedeutet, dass Sie den Parameter-Stream sehen können, sobald er eingeht, ohne darauf warten zu müssen, dass der gesamte Parameter gepuffert und validiert ist.
Bei differenziertem Tool-Streaming beginnen die Chunks, die das Tool verwenden, schneller zu streamen. Sie sind oft länger und enthalten weniger Wortumbrüche. Dies ist auf Unterschiede im Chunking-Verhalten zurückzuführen.
Ein Beispiel ohne differenziertes Streaming (Verzögerung von 15 Sekunden):
Chunk 1: '{"' Chunk 2: 'query": "Ty' Chunk 3: 'peScri' Chunk 4: 'pt 5.0 5.1 ' Chunk 5: '5.2 5' Chunk 6: '.3' Chunk 8: ' new f' Chunk 9: 'eatur' ...
Mit differenziertem Streaming (3 Sekunden Verzögerung):
Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3' Chunk 2: ' new features comparison'
Anmerkung
Da beim differenzierten Streaming Parameter ohne Pufferung oder JSON-Validierung gesendet werden, gibt es keine Garantie dafür, dass der resultierende Stream in einer gültigen JSON-Zeichenfolge abgeschlossen wird. Insbesondere wenn der Stopp-Grund max_tokens erreicht ist, kann es sein, dass der Stream nach der Hälfte eines Parameters endet und unvollständig ist. In der Regel müssen Sie spezielle Support-Programme schreiben, um zu regeln, was passiert, wenn der Wert erreicht max_tokens ist.
Computer Use (Beta)
Computer Use ist eine Funktion des Anthropic-Claude-Modells (in der Betaversion), die mit Claude 3.5 Sonnet v2, Claude Sonnet 4.5, Claude Haiku 4.5, Claude 3.7 Sonnet, Claude Sonnet 4 und Claude Opus 4 verfügbar ist. Mithilfe von Computer Use kann Claude Aufgaben durch grundlegende GUI-Aktionen automatisieren.
Warnung
Die Funktion zur Computernutzung wird Ihnen als „Beta-Service“ gemäß der Definition in den AWS Servicebedingungen zur Verfügung gestellt. Sie unterliegt Ihrer Vereinbarung mit AWS und den AWS Servicebedingungen sowie der geltenden Muster-EULA. Bitte beachten Sie, dass die Computer-Use-API besondere Risiken birgt, die sich von Standard-API-Features oder Chat-Schnittstellen unterscheiden. Diese Risiken steigen, wenn die Computer-Use-API für die Interaktion mit dem Internet verwendet wird. Zur Minimierung der Risiken sollten Sie folgende Vorsichtsmaßnahmen in Betracht ziehen:
-
Verwenden Sie das Computer-Use-Feature in einer dedizierten virtuellen Maschine oder in einem Container mit minimalen Berechtigungen, um gezielte oder versehentliche Angriffe auf das System zu verhindern.
-
Zur Verhinderung von Informationsdiebstahl sollten Sie der Computer-Use-API keinen Zugriff auf sensible Konten oder Daten gewähren.
-
Beschränkung des APIs Internetzugangs zur Computernutzung auf die erforderlichen Domänen, um das Risiko bösartiger Inhalte zu verringern.
-
Um eine adäquate Aufsicht zu gewährleisten, sollte bei sensiblen Aufgaben (wie Entscheidungen, die erhebliche Auswirkungen auf die reale Welt haben könnten) sowie Aufgaben, die eine ausdrückliche Zustimmung erfordern (wie die Annahme von Cookies, die Ausführung von Finanztransaktionen oder die Zustimmung zu Nutzungsbedingungen), ein HITL einbezogen werden.
Alle Inhalte, für die Sie Claude Anzeige- oder Zugriffsberechtigungen erteilen, können möglicherweise Anweisungen außer Kraft setzen oder Claude zu Fehlern oder unbeabsichtigten Aktionen verleiten. Daher ist es wichtig, angemessene Vorsichtsmaßnahmen zu treffen und Claude z. B. von sensiblen Oberflächen fernzuhalten, auch zur Vermeidung von Risiken im Zusammenhang mit einer Promptinjektion. Bevor Sie die Computer-Use-Features in eigenen Produkten aktivieren oder die erforderlichen Genehmigungen anfordern, informieren Sie die Endbenutzer bitte über alle einschlägigen Risiken und holen Sie gegebenenfalls deren Zustimmung ein.
Die Computer-Use-API bietet mehrere vordefinierte Computer-Use-Tools, die Sie verwenden können. Sie können dann einen Prompt mit Ihrer Anfrage erstellen, z. B. „Sende Ben eine E-Mail mit den Notizen von meinem letzten Treffen“ und einen Screenshot (falls erforderlich). Die Antwort enthält eine Liste von tool_use-Aktionen im JSON-Format (z. B. scroll_down, left_button_press, screenshot). Ihr Code führt die Computeraktionen aus und stellt Claude einen Screenshot zur Verfügung, der die Ausgaben zeigt (falls angefordert).
Seit Veröffentlichung von Claude 3.5 v2 wurde der Parameter „tools“ aktualisiert und akzeptiert nun polymorphe Tooltypen. Zu ihrer Unterscheidung wurde eine neue tool.type-Eigenschaft hinzugefügt. Der Parameter type ist optional. Wenn er weggelassen wird, wird davon ausgegangen, dass es sich bei dem Tool um ein benutzerdefiniertes Tool handelt (bisher der einzige unterstützte Tooltyp). Für den Zugriff auf Computer-Use-Feature müssen Sie den anthropic_beta-Parameter mit einer entsprechenden Aufzählung verwenden, deren Wert von der verwendeten Modellversion abhängt. Weitere Informationen können Sie der folgenden Tabelle entnehmen.
Nur Anfragen, die mit diesem Parameter und enum gestellt wurden, können die Computer-Use-Tools verwenden. Er kann wie folgt angegeben werden: "anthropic_beta":
["computer-use-2025-01-24"].
| Modell | Beta-Header |
|---|---|
|
Claude Opus4.5 Claude Opus4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet |
computer-use-2025-01-24 |
| Claude 3.5 Sonnet v2 | computer-use-2024-10-22 |
Weitere Informationen finden Sie unter Computer Use (Beta)
Im Folgenden finden Sie ein Antwortbeispiel, bei dem davon ausgegangen wird, dass die Anfrage einen Screenshot Ihres Desktops mit einem Firefox-Symbol enthielt.
{ "id": "msg_123", "type": "message", "role": "assistant", "model": "anthropic.claude-3-5-sonnet-20241022-v2:0", "content": [ { "type": "text", "text": "I see the Firefox icon. Let me click on it and then navigate to a weather website." }, { "type": "tool_use", "id": "toolu_123", "name": "computer", "input": { "action": "mouse_move", "coordinate": [ 708, 736 ] } }, { "type": "tool_use", "id": "toolu_234", "name": "computer", "input": { "action": "left_click" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 3391, "output_tokens": 132 } }
Anthropic-definierte Tools
Anthropic bietet eine Reihe von Tools, mit denen bestimmte Claude-Modelle Computer effektiv nutzen können. Bei der Angabe eines Anthropic-definierten Tools sind die Felder description und tool_schema nicht erforderlich oder zulässig. Anthropic-definierte Tools werden durch Anthropic definiert. Sie müssen die Ergebnisse des Tools jedoch explizit auswerten und tool_results an Claude zurückgeben. Wie bei jedem Tool führt das Modell das Tool nicht automatisch aus. Jedes Anthropic-definierte Tool hat Versionen, die für bestimmte Modelle Claude 3.5 Sonnet (neu) und Claude 3.7 Sonnet optimiert sind:
Modell |
Tool |
Hinweise |
|---|---|---|
|
ClaudeClaude Opus4.1 ClaudeClaude Opus4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 |
|
Aktualisierung des bestehenden Tools |
|
Claude 3.7 Sonnet |
|
Beinhaltet neue Aktionen für eine genauere Steuerung |
|
Claude 3.7 Sonnet |
|
Gleiche Funktionen wie in der Version 20241022 |
|
Claude 3.5 Sonnet v2 |
|
Gleiche Funktionen wie in der Version 20241022 |
|
Claude 3.5 Sonnet v2 |
|
|
|
Claude 3.5 Sonnet v2 |
|
|
|
Claude 3.5 Sonnet v2 |
|
Das Feld type identifiziert das Tools und seine Parameter zu Validierungszwecken. Das Feld name ist der Tool-Name, der dem Modell zur Verfügung gestellt wird.
Wenn Sie das Modell auffordern möchten, eines dieser Tools zu verwenden, können Sie das Tool explizit anhand des Felds name referenzieren. Das Feld name muss innerhalb der Tool-Liste eindeutig sein. Sie können ein Tool nicht mit demselben name definieren wie ein Anthropic-definiertes Tool in demselben API-Aufruf.
Automatisches Löschen von Tool-Aufrufen (Beta)
Warnung
Das automatische Löschen von Tool-Aufrufen wird als „Beta-Service“ gemäß der Definition in den AWS Servicebedingungen zur Verfügung gestellt.
Anmerkung
Diese Funktion wird derzeit von Claude Sonnet 4.5, Claude Haiku 4.5 und Claude Opus 4.5 unterstützt. Die Support für Claude Opus 4, Claude Opus 4.1 und Claude Sonnet 4 wird bis zum 15. Januar 2026 hinzugefügt.
Das automatische Löschen von Werkzeugaufrufen ist eine Funktion des Modells Anthropic Claude (in der Beta-Phase). Mit dieser Funktion kann Claude alte Ergebnisse der Werkzeugnutzung automatisch löschen, wenn Sie sich den Token-Grenzwerten nähern, was ein effizienteres Kontextmanagement in Szenarien mit mehreren Werkzeugeinsätzen ermöglicht. Wenn Sie das Löschen von Tool-Aufrufen nutzen möchten, müssen Sie dem Anforderungsparameter anthropic_beta in der Liste der Beta-Header context-management-2025-06-27 hinzufügen. Sie müssen außerdem die Verwendung von angeben clear_tool_uses_20250919 und aus den folgenden Konfigurationsoptionen auswählen.
Dies sind die verfügbaren Steuerelemente für die Kontextmanagement-Strategie von clear_tool_uses_20250919. Alle sind optional oder haben Standardwerte:
| Konfigurationsoption | Beschreibung |
|---|---|
|
Standard: 100 000 Eingabe-Token |
Definiert, wann die Strategie zur Kontextbearbeitung aktiviert wird. Sobald der Prompt diesen Schwellenwert überschreitet, beginnt der Löschvorgang. Sie können diesen Wert entweder in input_tokens oder tool_uses angeben. |
|
Standard: 3 Tool-Anwendungen |
Definiert, wie viele aktuelle use/result Werkzeugpaare nach dem Löschen beibehalten werden sollen. Die API entfernt zuerst die ältesten Tool-Interaktionen, wobei die neuesten beibehalten werden. Dies ist hilfreich, wenn das Modell Zugriff auf die letzten Tool-Interaktionen benötigt, um die Konversation effektiv fortzusetzen. |
|
|
Dadurch wird sichergestellt, dass bei jeder Aktivierung der Strategie eine Mindestanzahl an Token gelöscht wird. Wenn die API nicht mindestens die angegebene Menge löschen kann, wird die Strategie nicht angewendet. Dies ist nützlich, um festzustellen, ob es sich lohnt, den Prompt-Cache für das Löschen von Kontexten zu unterbrechen. |
|
|
Liste der Tool-Namen, deren Tool-Anwendungen und Ergebnisse niemals gelöscht werden sollten. Dies ist nützlich, um wichtigen Kontext zu bewahren. |
|
|
Steuert, ob die Tool-Aufruf-Parameter zusammen mit den Tool-Ergebnissen gelöscht werden. Standardmäßig werden nur die Tool-Ergebnisse gelöscht, wobei die ursprünglichen Tool-Aufrufe von Claude sichtbar bleiben, sodass Claude auch nach dem Entfernen der Ergebnisse sehen kann, welche Operationen ausgeführt wurden. |
Anmerkung
Durch das Löschen von Tools wird Ihr Cache ungültig, wenn Ihre Präfixe Ihre Tools enthalten.
Anmerkung
Bedrock unterstützt derzeit kein clear_tool_uses_20250919 Kontextmanagement auf der CountTokens API.
Speicher-Tool (Beta)
Warnung
Memory Tool wird als „Beta-Service“ gemäß der Definition in den AWS Servicebedingungen zur Verfügung gestellt.
Claude Sonnet 4.5 umfasst ein neues Speicher-Tool, das Kunden die Möglichkeit bietet, den Speicher für alle Konversationen zu verwalten. Mit diesem Feature können Kunden Claude ermöglichen, Informationen außerhalb des Kontextfensters abzurufen, indem sie Zugriff auf ein lokales Verzeichnis gewähren. Dieses Feature wird als Beta-Feature verfügbar sein. Wenn Sie dieses Feature nutzen möchten, müssen Sie den Beta-Header context-management-2025-06-27 verwenden.
Tool-Definition:
{ "type": "memory_20250818", "name": "memory" }
Beispielanforderung:
{ "max_tokens": 2048, "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["context-management-2025-06-27"], "tools": [{ "type": "memory_20250818", "name": "memory" }], "messages": [ { "role": "user", "content": [{"type": "text", "text": "Remember that my favorite color is blue and I work at Amazon?"}] } ] }
Beispielantwort:
{ "id": "msg_vrtx_014mQ5ficCRB6PEa5k5sKqHd", "type": "message", "role": "assistant", "model": "claude-sonnet-4-20250514", "content": [ { "type": "text", "text": "I'll start by checking your memory directory and then record this important information about you." }, { "type": "tool_use", "id": "toolu_vrtx_01EU1UrCDigyPMRntr3VYvUB", "name": "memory", "input": { "command": "view", "path": "/memories" } } ], "stop_reason": "tool_use", "stop_sequence": null, "usage": { "input_tokens": 1403, "cache_creation_input_tokens": 0, "cache_read_input_tokens": 0, "output_tokens": 87 }, "context_management": { "applied_edits": [] } }
Überlegungen zu den Kosten bei der Tool-Nutzung
Die Preise für Anfragen zur Nutzung von Tools basieren auf folgenden Faktoren:
-
Die Gesamtzahl der an das Modell gesendeten Eingabe-Token (einschließlich des Parameters tools)
-
Die Anzahl der generierten Ausgabe-Token
Tools haben denselben Preis wie alle anderen Claude-API-Anfragen, enthalten jedoch zusätzliche Token pro Anfrage. Die zusätzlichen Token, die sich aus der Nutzung des Tools ergeben, stammen aus den folgenden Quellen:
-
Parameter
toolsin den API-Anfragen. Zum Beispiel Tool-Namen, Beschreibungen und Schemas. -
Alle
tool_use-Inhaltsblöcke in API-Anfragen und -Antworten. -
Alle
tool_result-Inhaltsblöcke in API-Anfragen.
Wenn Sie Tools nutzen, enthalten die Anthropic-Modelle automatisch einen speziellen System-Prompt, der die Verwendung von Tools ermöglicht. Die Anzahl der für jedes Modell erforderlichen Tool-Nutzungstoken ist in der folgenden Tabelle aufgeführt. In dieser Tabelle sind die zuvor beschriebenen zusätzlichen Token nicht enthalten. Beachten Sie, dass in dieser Tabelle davon ausgegangen wird, dass mindestens ein Tool bereitgestellt wird. Wenn keine Tools bereitgestellt werden, werden bei der Toolauswahl „Keine“ 0 zusätzliche System-Prompt-Token verwendet.
| Modell | Auswahl des Tools | Anzahl der System-Prompt-Token für die Tool-Nutzung |
|---|---|---|
|
Claude Opus4.5 Claude Opus4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
auto oder none |
346 |
|
Claude Opus4,5 Claude Opus4.1 Claude Opus 4 Claude Sonnet 4.5 Claude Haiku 4.5 Claude Sonnet 4 Claude 3.7 Sonnet Claude 3.5 Sonnet v2 |
any oder tool |
313 |
|
Claude 3.5 Sonnet |
auto oder none |
294 |
|
Claude 3.5 Sonnet |
any oder tool |
261 |
|
Claude 3 Opus |
auto oder none |
530 |
|
Claude 3 Opus |
any oder tool |
281 |
|
Claude 3 Sonnet |
auto oder none |
159 |
|
Claude 3 Sonnet |
any oder tool |
235 |
|
Claude 3 Haiku |
auto oder none |
264 |
|
Claude 3 Haiku |
any oder tool |
340 |
Tool zur Werkzeugsuche (Beta)
Das Tool Search Tool ermöglicht Claude die Arbeit mit Hunderten oder sogar Tausenden von Tools, ohne dass alle ihre Definitionen im Voraus in das Kontextfenster geladen werden müssen. Anstatt alle Tools sofort zu deklarieren, können Sie sie mit defer_loading:
true markieren und über den Claude Werkzeugsuchmechanismus nur die Tools finden und laden, die Sie benötigen.
Um auf diese Funktion zugreifen zu können, müssen Sie den Beta-Header tool-search-tool-2025-10-19 verwenden. Beachten Sie, dass diese Funktion derzeit nur über InvokeModelund verfügbar ist InvokeModelWithResponseStream APIs.
Tool-Definition:
{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }
Anfragebeispiel:
{ "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": [ "tool-search-tool-2025-10-19" ], "max_tokens": 4096, "tools": [{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_files", "description": "Search through files in the workspace", "input_schema": { "type": "object", "properties": { "query": { "type": "string" }, "file_types": { "type": "array", "items": { "type": "string" } } }, "required": ["query"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather in Seattle?" }] }
Beispiel für eine Antwort
{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with this task." }, { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex", "input": { "pattern": "weather" } }, { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }, { "type": "text", "text": "Now I can check the weather." }, { "type": "tool_use", "id": "toolu_01XYZ789", "name": "get_weather", "input": { "location": "Seattle", "unit": "fahrenheit" } } ], "stop_reason": "tool_use" }
Beispiel für Streaming
# Event 1: content_block_start(with complete server_tool_use block) { "type": "content_block_start", "index": 0, "content_block": { "type": "server_tool_use", "id": "srvtoolu_01ABC123", "name": "tool_search_tool_regex" } } # Event 2: content_block_delta(input JSON streamed) { "type": "content_block_delta", "index": 0, "delta": { "type": "input_json_delta", "partial_json": "{\"regex\": \".*weather.*\"}" } } # Event 3: content_block_stop(tool_use complete) { "type": "content_block_stop", "index": 0 } # Event 4: content_block_start(COMPLETE result in single chunk) { "type": "content_block_start", "index": 1, "content_block": { "type": "tool_search_tool_result", "tool_use_id": "srvtoolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } } } # Event 5: content_block_stop(result complete) { "type": "content_block_stop", "index": 1 }
Suchwerkzeuge für benutzerdefinierte Tools
Sie können benutzerdefinierte Tools zur Werkzeugsuche implementieren (z. B. mithilfe von Einbettungen), indem Sie ein Tool definieren, das Blöcke zurückgibttool_reference. Das benutzerdefinierte Tool muss dies haben, defer_loading: false während andere Tools dies tun sollten. defer_loading: true Wenn Sie Ihr eigenes Tool für die Werkzeugsuche definieren, sollte es ein Werkzeugergebnis mit tool_reference Inhaltsblöcken zurückgeben, die auf die Tools verweisen, die Sie verwenden Claude möchten.
Das erwartete, vom Kunden definierte Antwortformat für das Ergebnis des Tool Search Tools:
{ "type": "tool_result", "tool_use_id": "toolu_01ABC123", "content": [{ "type": "tool_reference", "tool_name": "get_weather" }, { "type": "tool_reference", "tool_name": "weather_forecast" } ] }
Das tool_name muss mit einem in der Anfrage definierten Tool übereinstimmen. defer_loading: true Claude hat dann Zugriff auf die vollständigen Schemas dieser Tools.
Benutzerdefinierte Suchwerkzeuge — detailliertes Beispiel
Sie können benutzerdefinierte Tools zur Werkzeugsuche implementieren (z. B. mithilfe von Einbettungen oder semantischer Suche), indem Sie ein Tool definieren, das Blöcke zurückgibt. tool_reference Dies ermöglicht ausgeklügelte Mechanismen zur Werkzeugerkennung, die über den Regex-Abgleich hinausgehen.
Beispiel mit benutzerdefiniertem TST anfordern:
{ "model": "claude-sonnet-4-5-20250929", "anthropic_version": "bedrock-2023-05-31", "anthropic_beta": ["tool-search-tool-2025-10-19"], "max_tokens": 4096, "tools": [{ "name": "semantic_tool_search", "description": "Search for available tools using semantic similarity. Returns the most relevant tools for the given query.", "input_schema": { "type": "object", "properties": { "query": { "type": "string", "description": "Natural language description of what kind of tool is needed" }, "top_k": { "type": "integer", "description": "Number of tools to return (default: 5)" } }, "required": ["query"] }, "defer_loading": false }, { "name": "get_weather", "description": "Get current weather for a location", "input_schema": { "type": "object", "properties": { "location": { "type": "string" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"] } }, "required": ["location"] }, "defer_loading": true }, { "name": "search_flights", "description": "Search for available flights between locations", "input_schema": { "type": "object", "properties": { "origin": { "type": "string" }, "destination": { "type": "string" }, "date": { "type": "string" } }, "required": ["origin", "destination", "date"] }, "defer_loading": true } ], "messages": [{ "role": "user", "content": "What's the weather forecast in Seattle for the next 3 days?" }] }
ClaudeAntwort (Aufruf von benutzerdefiniertem TST):
{ "role": "assistant", "content": [{ "type": "text", "text": "I'll search for the appropriate tools to help with weather information." }, { "type": "tool_use", "id": "toolu_01ABC123", "name": "semantic_tool_search", "input": { "query": "weather forecast multiple days", "top_k": 3 } } ], "stop_reason": "tool_use" }
Vom Kunden bereitgestelltes Werkzeugergebnis
Nach der Durchführung einer semantischen Suche in der Werkzeugbibliothek gibt der Kunde passende Werkzeugreferenzen zurück:
{ "role": "user", "content": [{ "type": "tool_search_tool_result", "tool_use_id": "toolu_01ABC123", "content": { "type": "tool_search_tool_search_result", "tool_references": [{ "type": "tool_reference", "tool_name": "get_weather" }] } }] }
ClaudeNachverfolgung (unter Verwendung des entdeckten Tools)
{ "role": "assistant", "content": [{ "type": "text", "text": "I found the forecast tool. Let me get the weather forecast for Seattle." }, { "type": "tool_use", "id": "toolu_01DEF456", "name": "get_weather", "input": { "location": "Seattle, WA" } } ], "stop_reason": "tool_use" }
Fehlerbehandlung
-
Die Einstellung
defer_loading: truefür alle Tools (einschließlich des Tool Search Tools) führt zu einem 400-Fehler. -
Die Übergabe von a
tool_referenceohne entsprechende Werkzeugdefinition führt zu einem 400-Fehler
Beispiele für die Verwendung von Tools (Beta)
Claude Opus4.5 unterstützt vom Benutzer bereitgestellte Beispiele in Werkzeugdefinitionen, um die Leistung Claude der Werkzeugnutzung zu erhöhen. Sie können Beispiele als vollständige Funktionsaufrufen bereitstellen, die genau so formatiert sind, wie es echte LLM-Ausgaben wären, ohne dass eine Übersetzung in ein anderes Format erforderlich ist. Um diese Funktion nutzen zu können, müssen Sie den Beta-Header übergeben. tool-examples-2025-10-29
Beispiel für eine Werkzeugdefinition:
{ "name": "get_weather", "description": "Get the current weather in a given location", "input_schema": { "type": "object", "properties": { "location": { "type": "string", "description": "The city and state, e.g. San Francisco, CA" }, "unit": { "type": "string", "enum": ["celsius", "fahrenheit"], "description": "Temperature unit" } }, "required": ["location"] }, "input_examples": [{ "location": "San Francisco, CA", "unit": "fahrenheit" }, { "location": "Tokyo, Japan", "unit": "celsius" }, { "location": "New York, NY" } ] }
Validierungsregeln
-
Schemakonformität: Jedes Beispiel in
input_examplesmuss gemäß den Angaben desinput_schemaTools gültig sein.-
Erforderliche Felder müssen in mindestens einem Beispiel vorhanden sein.
-
Feldtypen müssen dem Schema entsprechen.
-
Aufzählungswerte müssen aus dem zulässigen Satz stammen.
-
Wenn die Überprüfung fehlschlägt, geben Sie einen 400-Fehler mit Details darüber zurück, in welchem Beispiel die Überprüfung fehlgeschlagen ist.
-
-
Array-Anforderungen:
input_examplesmuss ein Array sein (kann leer sein).-
Ein leeres Array
[]ist gültig und entspricht dem Auslassen des Felds. -
Ein einzelnes Beispiel muss immer noch in ein Array eingeschlossen werden:
[{...}] -
Längenbeschränkung: Beginnen Sie mit einem Limit von 20 Beispielen pro Werkzeugdefinition.
-
Beispiele für Fehler:
// Invalid: Example doesn't match schema (missing required field) { "type": "invalid_request_error", "message": "Tool 'get_weather' input_examples[0] is invalid: Missing required property 'location'" } // Invalid: Example has wrong type for field { "type": "invalid_request_error", "message": "Tool 'search_products' input_examples[1] is invalid: Property 'filters.price_range.min' must be a number, got string" } // Invalid: input_examples on server-side tool { "type": "invalid_request_error", "message": "input_examples is not supported for server-side tool" }