Passa al contenuto principale

Uso degli strumenti / Function calling

Intermedio

L'uso degli strumenti consente a Claude di chiamare funzioni che tu definisci — una ricerca, una calcolatrice, il tuo database, qualsiasi API — e di usarne i risultati. È il fondamento di ogni agent.

What you'll learn
  • Come funziona il loop agentico in quattro passi, dalle definizioni degli strumenti alla risposta finale
  • Come definire uno strumento in Python con nome, descrizione e input in JSON Schema
  • Perché le descrizioni degli strumenti agiscono come prompt che modellano quando e come Claude li chiama
  • Come validare gli input, restituire gli errori come risultati e usare in sicurezza gli strumenti lato server

Il loop

L'uso degli strumenti è una conversazione, non una singola chiamata. Offri a Claude un menu di strumenti; Claude ne sceglie uno e si ferma; tu lo esegui e riferisci; Claude integra il risultato nella sua risposta — ripetendo il ciclo se necessario.

Guided walkthrough1 of 4
  1. Includi una lista di definizioni di strumenti — ciascuna con un nome, una descrizione e un input in JSON Schema.

Definire uno strumento (Python)

Una definizione di strumento è solo un nome, una descrizione in linguaggio naturale e un JSON Schema per l'input. Passala in tools, poi controlla stop_reason per sapere quando Claude vuole agire.

Strumento get_weather + prima chiamata

tools = [{
  "name": "get_weather",
  "description": "Get current weather for a city.",
  "input_schema": {
      "type": "object",
      "properties": {"city": {"type": "string"}},
      "required": ["city"],
  },
}]

msg = client.messages.create(
  model="claude-sonnet-5", max_tokens=1024,
  tools=tools,
  messages=[{"role": "user", "content": "What's the weather in Rome?"}],
)
# If msg.stop_reason == "tool_use": run the tool, then send a tool_result back.

Suggerimenti

Piccole scelte nel modo in cui definisci e gestisci gli strumenti fanno una grande differenza in termini di affidabilità.

  • Le descrizioni sono prompt. Una description dello strumento chiara e la documentazione dei parametri migliorano enormemente quando/come Claude lo chiama.
  • Valida gli input che ricevi prima di eseguirli — non fidarti mai ciecamente.
  • Restituisci gli errori come risultati. Se uno strumento fallisce, invia un tool_result che descrive l'errore così Claude può recuperare.
  • Strumenti lato server. Anthropic offre anche strumenti integrati (ad esempio ricerca web, esecuzione di codice, computer use) — consulta la documentazione per il menu attuale.

:::warning Strumenti = azioni = rischio Uno strumento che compie azioni reali eredita un modello di sicurezza. Applica il privilegio minimo e mantieni un umano nel loop per le chiamate rischiose — vedi Mettere in sicurezza agent e strumenti. :::

Vocabolario dell'uso degli strumenti
Premi Invio o Spazio per girare la carta. Usa le frecce sinistra e destra per spostarti tra le carte.Termine mostrato.
1 / 4

Mettiti alla prova

0/3
  1. Dopo che Claude restituisce un blocco tool_use, chi esegue lo strumento?
  2. Uno strumento che hai definito fallisce a runtime. Qual è la mossa consigliata?
  3. Perché una descrizione chiara dello strumento è così importante?
Key takeaways
  • L'uso degli strumenti è un loop: invii le definizioni degli strumenti, Claude restituisce un blocco tool_use e si ferma, tu esegui e restituisci un tool_result, Claude continua finché non risponde.
  • Una definizione di strumento è un nome, una descrizione e un input in JSON Schema — passala in tools e controlla stop_reason == tool_use.
  • Le descrizioni sono prompt; valida gli input prima di eseguirli; restituisci i fallimenti come errori in un tool_result così Claude può recuperare.
  • Anthropic offre anche strumenti lato server, e qualsiasi strumento che compie azioni reali necessita del privilegio minimo più un umano nel loop.

Avanti