Utilizzo degli strumenti con Claude
Claude è in grado di interagire con strumenti e funzioni esterni lato client, permettendoti di equipaggiare Claude con i tuoi strumenti personalizzati per eseguire una più ampia varietà di compiti.
Impara tutto ciò che devi sapere per padroneggiare l’uso degli strumenti con Claude attraverso il nostro nuovo corso completo! Continua a condividere le tue idee e suggerimenti usando questo modulo.
Ecco un esempio di come fornire strumenti a Claude usando l’API Messages:
Come funziona l’uso degli strumenti
Integra strumenti esterni con Claude seguendo questi passaggi:
Fornisci a Claude gli strumenti e un prompt utente
- Definisci gli strumenti con nomi, descrizioni e schemi di input nella tua richiesta API.
- Includi un prompt utente che potrebbe richiedere questi strumenti, ad esempio “Che tempo fa a San Francisco?”
Claude decide di usare uno strumento
- Claude valuta se qualche strumento può aiutare con la query dell’utente.
- In caso affermativo, Claude costruisce una richiesta di utilizzo dello strumento correttamente formattata.
- La risposta API ha uno
stop_reason
ditool_use
, segnalando l’intenzione di Claude.
Estrai l'input dello strumento, esegui il codice e restituisci i risultati
- Dal tuo lato, estrai il nome dello strumento e l’input dalla richiesta di Claude.
- Esegui il codice effettivo dello strumento lato client.
- Continua la conversazione con un nuovo messaggio
user
contenente un blocco di contenutotool_result
.
Claude usa il risultato dello strumento per formulare una risposta
- Claude analizza i risultati dello strumento per elaborare la sua risposta finale al prompt originale dell’utente.
Nota: I passaggi 3 e 4 sono opzionali. Per alcuni flussi di lavoro, la richiesta di utilizzo dello strumento di Claude (passaggio 2) potrebbe essere tutto ciò di cui hai bisogno, senza inviare risultati indietro a Claude.
Gli strumenti sono forniti dall’utente
È importante notare che Claude non ha accesso a strumenti integrati lato server. Tutti gli strumenti devono essere esplicitamente forniti da te, l’utente, in ogni richiesta API. Questo ti dà pieno controllo e flessibilità sugli strumenti che Claude può utilizzare.
La funzionalità di utilizzo del computer (beta) è un’eccezione - introduce strumenti che sono forniti da Anthropic ma implementati da te, l’utente.
Come implementare l’uso degli strumenti
Scegliere un modello
In generale, usa Claude 3.7 Sonnet, Claude 3.5 Sonnet o Claude 3 Opus per strumenti complessi e query ambigue; gestiscono meglio strumenti multipli e cercano chiarimenti quando necessario.
Usa Claude 3.5 Haiku o Claude 3 Haiku per strumenti semplici, ma nota che potrebbero inferire parametri mancanti.
Specificare gli strumenti
Gli strumenti sono specificati nel parametro di primo livello tools
della richiesta API. Ogni definizione di strumento include:
Parametro | Descrizione |
---|---|
name | Il nome dello strumento. Deve corrispondere alla regex ^[a-zA-Z0-9_-]{1,64}$ . |
description | Una descrizione dettagliata in testo semplice di cosa fa lo strumento, quando dovrebbe essere usato e come si comporta. |
input_schema | Un oggetto JSON Schema che definisce i parametri previsti per lo strumento. |
Prompt di sistema per l’uso degli strumenti
Quando chiami l’API Anthropic con il parametro tools
, costruiamo un prompt di sistema speciale dalle definizioni degli strumenti, dalla configurazione degli strumenti e da qualsiasi prompt di sistema specificato dall’utente. Il prompt costruito è progettato per istruire il modello a utilizzare gli strumenti specificati e fornire il contesto necessario per il corretto funzionamento dello strumento:
Migliori pratiche per le definizioni degli strumenti
Per ottenere le migliori prestazioni da Claude quando si utilizzano gli strumenti, segui queste linee guida:
- Fornisci descrizioni estremamente dettagliate. Questo è di gran lunga il fattore più importante per le prestazioni degli strumenti. Le tue descrizioni dovrebbero spiegare ogni dettaglio sullo strumento, incluso:
- Cosa fa lo strumento
- Quando dovrebbe essere usato (e quando non dovrebbe)
- Cosa significa ogni parametro e come influenza il comportamento dello strumento
- Eventuali avvertenze o limitazioni importanti, come quali informazioni lo strumento non restituisce se il nome dello strumento non è chiaro. Più contesto puoi dare a Claude sui tuoi strumenti, meglio sarà nel decidere quando e come usarli. Punta ad almeno 3-4 frasi per descrizione dello strumento, di più se lo strumento è complesso.
- Dai priorità alle descrizioni rispetto agli esempi. Mentre puoi includere esempi di come usare uno strumento nella sua descrizione o nel prompt di accompagnamento, questo è meno importante che avere una spiegazione chiara e completa dello scopo e dei parametri dello strumento. Aggiungi esempi solo dopo aver completamente sviluppato la descrizione.
La buona descrizione spiega chiaramente cosa fa lo strumento, quando usarlo, quali dati restituisce e cosa significa il parametro ticker
. La descrizione scadente è troppo breve e lascia a Claude molte domande aperte sul comportamento e l’utilizzo dello strumento.
Controllare l’output di Claude
Forzare l’uso degli strumenti
In alcuni casi, potresti voler che Claude usi uno strumento specifico per rispondere alla domanda dell’utente, anche se Claude pensa di poter fornire una risposta senza usare uno strumento. Puoi farlo specificando lo strumento nel campo tool_choice
così:
Quando si lavora con il parametro tool_choice, abbiamo quattro possibili opzioni:
auto
permette a Claude di decidere se chiamare o meno gli strumenti forniti. Questo è il valore predefinito quando vengono fornititools
.any
dice a Claude che deve usare uno degli strumenti forniti, ma non forza uno strumento particolare.tool
ci permette di forzare Claude a usare sempre uno strumento particolare.none
impedisce a Claude di usare qualsiasi strumento. Questo è il valore predefinito quando non vengono fornititools
.
Questo diagramma illustra come funziona ogni opzione:
Nota che quando hai tool_choice
come any
o tool
, precompileremo il messaggio dell’assistente per forzare l’uso di uno strumento. Questo significa che i modelli non emetteranno un blocco di contenuto text
chain-of-thought prima dei blocchi di contenuto tool_use
, anche se esplicitamente richiesto di farlo.
I nostri test hanno dimostrato che questo non dovrebbe ridurre le prestazioni. Se desideri mantenere il chain-of-thought (in particolare con Opus) mentre richiedi ancora che il modello usi uno strumento specifico, puoi usare {"type": "auto"}
per tool_choice
(il default) e aggiungere istruzioni esplicite in un messaggio user
. Per esempio: What's the weather like in London? Use the get_weather tool in your response.
[Continua nella parte successiva…]
Was this page helpful?