Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Uso dello strumento Anthropic Claude
avvertimento
Come indicato, molte delle funzioni che seguono sono disponibili in versione beta. Queste funzionalità sono rese disponibili all'utente come «Servizio beta» come definito nei Termini di AWS servizio. È soggetto al Contratto dell'utente AWS e ai Termini AWS di servizio e al modello EULA applicabile.
Con i modelli Anthropic Claude, è possibile specificare uno strumento che il modello può utilizzare per rispondere a un messaggio. Ad esempio, è possibile specificare uno strumento che riproduca il brano più popolare su una stazione radio. Se l’utente trasmette il messaggio Qual è il brano più popolare su WZPZ?, il modello determina che lo strumento specificato può aiutare a rispondere alla domanda. Nella sua risposta, il modello richiede l’esecuzione dello strumento per suo conto. Quindi esegui lo strumento e passa il risultato dello strumento al modello, che a sua volta genera una risposta per il messaggio originale. Per ulteriori informazioni, consulta Utilizzo dello strumento (chiamata della funzione)
Suggerimento
È consigliabile utilizzare l’API Converse per integrare l’utilizzo dello strumento nella propria applicazione. Per ulteriori informazioni, consulta Utilizzo di uno strumento per completare una risposta al modello Amazon Bedrock.
Importante
Claude Sonnet 4.5 ora conserva la formattazione intenzionale nei parametri delle stringhe di chiamata dello strumento. In precedenza, le nuove righe finali nei parametri delle stringhe venivano talvolta rimosse erroneamente. Questa correzione garantisce che gli strumenti che richiedono una formattazione precisa (come gli editor di testo) ricevano i parametri esattamente come previsto. Si tratta di un miglioramento dietro le quinte che non richiede modifiche all’API. Tuttavia, gli strumenti con parametri di stringa possono ora ricevere valori con nuove righe finali che in precedenza erano state rimosse.
Nota
Claude Sonnet 4.5 include ottimizzazioni automatiche per migliorare le prestazioni del modello. Queste ottimizzazioni possono aggiungere piccole quantità di token alle richieste, ma questi token aggiunti dal sistema non vengono fatturati.
Puoi specificare gli strumenti che vuoi rendere disponibili per un modello nel campo tools. L’esempio seguente è per uno strumento che riproduce i brani più popolari su una stazione radio.
[ { "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" ] } } ]
Quando il modello necessita di uno strumento per generare una risposta a un messaggio, restituisce le informazioni sullo strumento richiesto e l’input allo strumento nel campo content del messaggio. Imposta inoltre il motivo dell’arresto della risposta a tool_use.
{ "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" }
Nel codice, chiami lo strumento per conto degli strumenti. Quindi passa lo strumento result (tool_result) in un messaggio utente al modello.
{ "role": "user", "content": [ { "type": "tool_result", "tool_use_id": "toolu_bdrk_01SnXQc6YVWD8Dom5jz7KhHy", "content": "Elemental Hotel" } ] }
Nella sua risposta, il modello utilizza il risultato dello strumento per generare una risposta per il messaggio originale.
{ "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" }
Fine-grained streaming degli strumenti
Fine-grained lo streaming degli strumenti è una funzionalità Anthropic Claude del modello disponibile con Claude Sonnet 4.5Claude Haiku 4.5,Claude Sonnet 4, e Claude Opus 4. Con lo streaming granulare degli strumenti, gli sviluppatori Claude possono trasmettere in streaming i parametri di utilizzo degli strumenti senza buffering o convalida JSON, riducendo la latenza necessaria per iniziare a ricevere parametri di grandi dimensioni.
Nota
Quando si utilizza lo streaming granulare degli strumenti, è possibile ricevere input JSON non validi o parziali. Assicurati di tenere conto di questi casi edge nel tuo codice.
Per utilizzare questa funzionalità, è sufficiente aggiungere l’intestazione fine-grained-tool-streaming-2025-05-14 a una richiesta di utilizzo dello strumento.
Ecco un esempio di come specificare l’intestazione di streaming granulare dello strumento:
{ "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 questo esempio, lo streaming granulare dello strumento consente a Claude di trasmettere le righe di una lunga poesia nella chiamata allo strumento make_file senza buffering per verificare se il parametro lines_of_text è JSON valido. Ciò significa che è possibile visualizzare il flusso di parametri non appena arriva, senza dover attendere che l’intero parametro venga memorizzato nel buffer e convalidato.
Con lo streaming granulare dello strumento, i blocchi di utilizzo dello strumento iniziano a trasmettere più velocemente, sono spesso più lunghi e contengono meno interruzioni di parole. Ciò è dovuto alle differenze nel comportamento della suddivisione in blocchi.
Ad esempio, senza streaming granulare (ritardo di 15 secondi):
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' ...
Con streaming granulare (ritardo di 3 secondi):
Chunk 1: '{"query": "TypeScript 5.0 5.1 5.2 5.3' Chunk 2: ' new features comparison'
Nota
Poiché lo streaming granulare invia i parametri senza buffering o convalida JSON, non è garantito che lo streaming risultante venga completato in una stringa JSON valida. In particolare, se viene raggiunto il motivo dell’arresto max_tokens, lo streaming potrebbe terminare a metà di un parametro e risultare incompleto. In genere è necessario scrivere un supporto specifico da gestire quando max_tokens viene raggiunto.
Utilizzo del computer (Beta)
Computer use è una famiglia di Anthropic Claude strumenti (in versione beta) per automatizzare le attività dell'interfaccia utente grafica (GUI). Per una panoramica, la forma della Bedrock-specific richiesta di Amazon e un esempio completo, consulta. Usa strumenti di utilizzo del computer per automatizzare le attività della GUI con i modelli Amazon Bedrock Per scoprire quali modelli supportano l'uso del computer su ciascun endpoint, consulta la tabella Funzionalità e caratteristiche di ciascuno. I modelli a colpo d'occhio
Per consentire l'uso del computer su richiesta, impostate una versione anthropic_beta per computer e includete una voce dello strumento che type corrisponda a quella versione. Gli abbinamenti validi sono:
| Intestazione beta | Tipo di strumento informatico |
|---|---|
computer-use-2025-11-24 |
computer_20251124 |
computer-use-2025-01-24 |
computer_20250124 |
computer-use-2024-10-22 |
computer_20241022 |
Ogni tipo di utensile funziona solo con un sottoinsieme specifico di modelli. L'invio di un tipo di utensile non supportato da un modello restituisce 400 invalid_request_error un messaggio come. 'claude-opus-4-7' does not support tool types:
computer_20241022 Conferma il supporto nella tabella Capacità e caratteristiche del modello prima di inviare le richieste.
Per il protocollo dello strumento sottostante, il vocabolario completo delle azioni e le linee guida ingegneristiche rapide, vedi Uso del computer nella documentazione.
Anthropic strumenti definiti
Anthropicfornisce una serie di strumenti predefiniti che Claude i modelli possono utilizzare per interagire con i computer. Quando si specifica uno strumento Anthropic definito, i tool_schema campi description e non sono necessari o consentiti. Il modello non esegue questi strumenti automaticamente; è necessario eseguire ogni azione richiesta e restituire un atool_result. Claude Per scoprire quali di questi strumenti sono accettati da ciascun modello, consultate la tabella Capacità e caratteristiche del modelloI modelli a colpo d'occhio; l'invio di un tipo di strumento non supportato da un modello restituisce un400 invalid_request_error.
Strumento |
Note |
|---|---|
|
Strumento per uso informatico più recente. Utilizza con |
|
Utilizza con |
|
Eredità. Utilizza con |
|
Aggiornamento allo |
|
Eredità. Utilizza con |
|
Usare con |
|
Eredità. Utilizza con |
Il type campo identifica lo strumento e i relativi parametri a fini di convalida; il name campo è il nome dello strumento esposto al modello.
Per richiedere l’utilizzo di uno degli strumenti da parte del modello, è possibile fare riferimento esplicito al relativo campo name. Il name campo deve essere univoco all'interno dell'elenco degli strumenti; non è possibile definire uno strumento con lo stesso valore di uno strumento name definito in modalità «Anthropic-defined» nella stessa chiamata API.
Cancellazione automatica delle chiamate allo strumento (Beta)
avvertimento
La cancellazione automatica delle chiamate agli strumenti è resa disponibile come «Servizio beta», come definito nei Termini di AWS servizio.
Nota
Questa funzionalità è attualmente supportata su Claude Sonnet 4/4 .5, Claude Haiku 4.5 e Claude Opus. 4/4 1/4.5.
La cancellazione automatica delle chiamate degli utensili è una funzionalità del modello Anthropic Claude (in versione beta). Con questa funzionalità, Claude può cancellare automaticamente i vecchi risultati di utilizzo degli strumenti man mano che si avvicinano i limiti dei token, consentendo una gestione più efficiente del contesto in scenari di utilizzo degli strumenti a più turni. Per utilizzare la funzionalità di cancellazione delle chiamate agli strumenti, devi aggiungere context-management-2025-06-27 all’elenco delle intestazioni beta il parametro di richiesta anthropic_beta. Dovrai inoltre specificare l'uso clear_tool_uses_20250919 e scegliere tra le seguenti opzioni di configurazione.
Questi sono i controlli disponibili per la strategia di gestione del contesto clear_tool_uses_20250919. Sono tutti opzionali o hanno dei valori predefiniti:
| Opzione di configurazione | Descrizione |
|---|---|
|
impostazione predefinita: 100.000 token di input |
Definisce quando si attiva la strategia di modifica del contesto. Una volta che il prompt supera questa soglia, inizierà la cancellazione. Puoi specificare questo valore in input_tokens o tool_uses. |
|
impostazione predefinita: 3 utilizzi dello strumento |
Definisce quante use/result coppie di utensili recenti conservare dopo la cancellazione. L’API rimuove per prime le interazioni con gli strumenti più vecchie, preservando quelle più recenti. Utile quando il modello ha bisogno di accedere alle interazioni recenti con gli strumenti per continuare la conversazione in modo efficace. |
|
|
Assicura che venga eliminato un numero minimo di token ogni volta che la strategia si attiva. Se l’API non riesce a cancellare almeno l’importo specificato, la strategia non verrà applicata. Ciò è utile per determinare se vale la pena interrompere la cache dei prompt per la cancellazione del contesto. |
|
|
Elenco dei nomi degli strumenti i cui usi e risultati non devono mai essere cancellati. Utile per preservare un contesto importante. |
|
|
Controlla se i parametri di chiamata dello strumento vengono cancellati insieme ai risultati dello strumento. Per impostazione predefinita, vengono cancellati solo i risultati degli strumenti mantenendo visibili le chiamate agli strumenti originali di Claude, in modo che Claude possa vedere quali operazioni sono state eseguite anche dopo la rimozione dei risultati. |
Nota
La cancellazione degli strumenti invaliderà la cache se i prefissi contengono gli strumenti.
Importante
Lo strumento web_search_20250305 server Anthropic non è supportato su Amazon Bedrock.
Nota
Bedrock attualmente non supporta la gestione del clear_tool_uses_20250919 contesto sull'API. CountTokens
Strumento di memoria (Beta)
avvertimento
Memory Tool è reso disponibile come «Servizio beta» come definito nei Termini di AWS servizio.
Claude Sonnet 4.5 include un nuovo strumento di memoria. Questo strumento offre un modo per gestire la memoria tra le conversazioni. Con questa funzione, puoi consentire a Claude di recuperare informazioni al di fuori della finestra di contesto fornendo l'accesso a una directory locale. Questa funzionalità è disponibile in versione beta. Per utilizzare questa funzionalità, è necessario includerla context-management-2025-06-27 nel anthropic_beta parametro.
Definizione dello strumento:
{ "type": "memory_20250818", "name": "memory" }
Richiesta di esempio:
{ "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?"}] } ] }
Risposta di esempio:
{ "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": [] } }
Considerazioni sui costi per l’uso dello strumento
I prezzi delle richieste di utilizzo degli strumenti sono basati sui seguenti fattori:
-
Il numero totale di token di input inviati al modello (incluso nel parametro tools).
-
Il numero di token di output generati.
Gli strumenti hanno lo stesso prezzo di tutte le altre richieste API Claude, ma includono token aggiuntivi per richiesta. I token aggiuntivi derivanti dall’utilizzo degli strumenti provengono:
-
Dal parametro
toolsnelle richieste dell’API. Ad esempio, nomi, descrizioni e schemi degli strumenti. -
Eventuali blocchi di contenuto
tool_usenelle richieste e nelle risposte API. -
Eventuali blocchi di contenuto
tool_resultnelle richieste API.
Quando si utilizzano gli strumenti, i modelli Anthropic includono automaticamente uno speciale prompt di sistema che consente l’utilizzo dello strumento. Il numero di token per l’utilizzo dello strumento richiesti per ogni modello è elencato nella tabella seguente. Questa tabella esclude i token aggiuntivi descritti in precedenza. Tieni presente che questa tabella presuppone che venga fornito almeno uno strumento. Se non vengono forniti strumenti, allora la scelta dello strumento “none” utilizza 0 token aggiuntivi nel prompt di sistema.
| Modello | Scelta dello strumento | Numero di token del prompt del sistema di utilizzo dello strumento |
|---|---|---|
|
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 o 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 o tool |
313 |
|
Claude 3.5 Sonnet |
auto o none |
294 |
|
Claude 3.5 Sonnet |
any o tool |
261 |
|
Claude 3 Opus |
auto o none |
530 |
|
Claude 3 Opus |
any o tool |
281 |
|
Claude 3 Sonnet |
auto o none |
159 |
|
Claude 3 Sonnet |
any o tool |
235 |
|
Claude 3 Haiku |
auto o none |
264 |
|
Claude 3 Haiku |
any o tool |
340 |
Strumento di ricerca degli strumenti (beta)
Tool Search Tool consente di Claude lavorare con centinaia o addirittura migliaia di strumenti senza caricare in anticipo tutte le loro definizioni nella finestra contestuale. Invece di dichiarare immediatamente tutti gli strumenti, puoi contrassegnarli condefer_loading:
true, e Claude trova e carica solo gli strumenti necessari tramite il meccanismo di ricerca degli strumenti.
Per accedere a questa funzionalità, è necessario includerla tool-search-tool-2025-10-19 nel anthropic_beta parametro. Tieni presente che questa funzionalità è attualmente disponibile solo tramite le InvokeModelWithResponseStream API InvokeModel and.
Definizione dello strumento:
{ "type": "tool_search_tool_regex", "name": "tool_search_tool_regex" }
Esempio di richiesta:
{ "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?" }] }
Esempio di risposta
{ "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" }
Esempio di 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 }
Strumenti di ricerca personalizzati
È possibile implementare strumenti di ricerca personalizzati (ad esempio, utilizzando gli incorporamenti) definendo uno strumento che restituisca tool_reference blocchi. Lo strumento personalizzato deve avere, defer_loading: false mentre gli altri strumenti dovrebbero averlodefer_loading: true. Quando definisci il tuo Tool Search Tool, dovrebbe restituire un risultato contenente blocchi di tool_reference contenuto che rimandano agli strumenti che desideri Claude utilizzare.
Il formato di risposta previsto per i risultati di Tool Search Tool definito dal cliente:
{ "type": "tool_result", "tool_use_id": "toolu_01ABC123", "content": [{ "type": "tool_reference", "tool_name": "get_weather" }, { "type": "tool_reference", "tool_name": "weather_forecast" } ] }
tool_nameDeve corrispondere a uno strumento definito nella richiesta con. defer_loading: true Claude avrà quindi accesso agli schemi completi di quegli strumenti.
Strumenti di ricerca personalizzati - Esempio dettagliato
È possibile implementare strumenti di ricerca personalizzati (ad esempio, utilizzando incorporamenti o ricerca semantica) definendo uno strumento che tool_reference restituisca blocchi. Ciò consente sofisticati meccanismi di individuazione degli strumenti che vanno oltre la corrispondenza con le espressioni regolari.
Richiedi un esempio con TST personalizzato:
{ "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?" }] }
Clauderisposta (chiamata TST personalizzato):
{ "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" }
Customer-provided risultato dello strumento
Dopo aver eseguito una ricerca semantica sulla libreria degli strumenti, il cliente restituisce i riferimenti allo strumento corrispondenti:
{ "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" }] } }] }
Claudeil follow-up (utilizzando lo strumento scoperto)
{ "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" }
Gestione degli errori
-
L'impostazione
defer_loading: trueper tutti gli strumenti (incluso lo strumento di ricerca degli strumenti) genererà un errore 400. -
Se si passa a
tool_referencesenza una corrispondente definizione dello strumento, verrà generato un errore 400
Esempi di utilizzo degli strumenti (beta)
Claude Opus4.5 supporta esempi forniti dagli utenti nelle definizioni degli strumenti per aumentare le prestazioni Claude di utilizzo degli strumenti. È possibile fornire esempi sotto forma di chiamate complete, formattate esattamente come sarebbero i veri output LLM, senza bisogno di essere tradotti in un altro formato. Per utilizzare questa funzionalità, è necessario tool-examples-2025-10-29 includerla nel parametro. anthropic_beta
Esempio di definizione dello strumento:
{ "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" } ] }
Regole di convalida
-
Conformità dello schema: ogni esempio in
input_examplesdeve essere valido in base a quello dello strumento.input_schema-
I campi obbligatori devono essere presenti in almeno un esempio.
-
I tipi di campo devono corrispondere allo schema.
-
I valori Enum devono provenire dal set consentito.
-
Se la convalida fallisce, restituisci un errore 400 con i dettagli sull'esempio di convalida non riuscita.
-
-
Requisiti dell'array:
input_examplesdeve essere un array (può essere vuoto).-
[]L'array vuoto è valido ed equivale all'omissione del campo. -
Un singolo esempio deve comunque essere racchiuso in un array:
[{...}] -
Limite di lunghezza: iniziate con un limite di 20 esempi per definizione di utensile.
-
Esempi di errore:
// 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" }
Mid-conversation modifiche agli strumenti (Beta)
Nota
Questa funzionalità richiede l'attivazione del flag mid-conversation-tool-changes-2026-07-01 betaanthropic_beta. Attualmente supportata solo su Claude Opus 5.
Claude Opus 5 supporta l'aggiunta e la rimozione di strumenti durante la conversazione tool_addition e di blocchi di tool_removal contenuto sui role: "system" messaggi, invece di inviare nuovamente l'intero tools array di primo livello (il che invaliderebbe la cache dei prompt).
Richiedi forma
tool_additione tool_removal i blocchi vengono visualizzati nell'contentarray di un role: "system" messaggio, insieme ai text blocchi opzionali. Ogni blocco fa riferimento a uno strumento attraverso il relativo tool campo. Sono consentiti più blocchi e vengono elaborati in base all'ordine dei contenuti.
{ "role": "system", "content": [ {"type": "tool_removal", "tool": {"type": "tool_reference", "name": "get_weather"}}, {"type": "tool_addition", "tool": {"type": "tool_reference", "name": "search_docs"}}, {"type": "text", "text": "Tool set updated for phase 2."} ] }
Entrambi i tipi di blocco supportano cache_control il prompt caching.
Varianti di riferimento degli strumenti
Il tool campo è un'unione discriminata sutype:
| tipo | Campi | Si riferisce a | È richiesta una versione beta aggiuntiva |
|---|---|---|---|
tool_reference |
name(stringa, motivo^[a-zA-Z0-9_-]{1,128}$) |
Uno strumento dichiarato direttamente al primo livello tools[] |
— |
mcp_tool_reference |
server_name, name |
Un unico strumento MCP | Una mcp-client-* versione beta |
mcp_toolset_reference |
server_name |
Tutti gli strumenti del set di strumenti del server MCP denominato | Una versione beta mcp-client-* |
tool_referencenon accetta il {server}_{name} modulo composto assegnato agli MCP-resolved strumenti; utilizza una delle varianti MCP per questi.
Semantica
Il set di strumenti disponibile inizia come tutto inserito
tools[](dopo la risoluzione MCP). Ciascunotool_removalsottrae gli strumenti a cui si fa riferimento; ciascuno li aggiunge nuovamente.tool_additionAlla fine è disponibile uno strumento rimosso e successivamente riaggiunto.tool_removalvisualizza un breve avviso contestuale in modo che il modello interrompa la pianificazione dell'utensile rimosso.Mid-conversation le modifiche all'utensile non attivano una decodifica vincolata;
tool_choicerimane l'unico controllo in tal senso.Massimo 512
tool_additionblocchi per richiesta.
Risposte di errore (400 invalid_request_error)
| Condition | Errore |
|---|---|
| Manca il flag beta | Tipo di blocco rifiutato come discriminatore sconosciuto |
Blocco esterno role: "system" |
'tool_addition'/'tool_removal' blocks are only permitted within role: "system" messages |
tool_reference.namenot intools[], o nomina uno MCP-resolved strumento |
tool_addition/tool_removal references unknown tool '<name>' |
variante MCP con codice non dichiarato server_name |
tool_addition/tool_removal references unknown server '<name>' |
Variante MCP in cui il server ha tool_configuration.enabled: false |
tool_addition/tool_removal references disabled server '<name>' |
mcp_tool_referencein un tool_addition luogo in cui il server non dispone di tale strumento |
Errore nell'elenco di tutti i nomi degli strumenti non risolti per quel server |
Nota
mcp_tool_referencein a tool_removal è indulgente: se da allora il server ha eliminato lo strumento, la rimozione è un'operazione impossibile (quindi le conversazioni cronologiche rimangono rigiocabili).