Chiamare l'API Anthropic: messages
Utilizzi l'API messages di Anthropic: differenze rispetto a OpenAI, posizione del system prompt e best practice specifiche per Claude.
Chiamare l'API Anthropic: messages è una lezione AI Agents gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento AI Agents, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso AI Agents include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
Perché Anthropic?
I modelli Claude spesso offrono un'aderenza alle istruzioni più solida, un utilizzo degli strumenti migliore e finestre di contesto più ampie rispetto a modelli OpenAI equivalenti, e a volte sono anche più economici.
La maggior parte degli agenti in produzione supporta entrambi i provider come alternativa di riserva.
Install the SDK
# pip install anthropic
import anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from envLa prima chiamata
L'endpoint è messages.create:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
system='You are a concise assistant.',
messages=[
{'role': 'user', 'content': 'Capital of France?'},
],
)
print(response.content[0].text)
# 'Paris.'Differenze principali rispetto a OpenAI
systemè un parametro di primo livello, non un messaggiomax_tokensè OBBLIGATORIOcontentè un elenco di blocchi (testo, tool_use e così via)- Non esiste il parametro
n: utilizzi più chiamate
Blocchi di contenuto
Anche le risposte testuali arrivano sotto forma di elenco di blocchi:
response.content # list of blocks
response.content[0].type # 'text' or 'tool_use'
response.content[0].text # the text content
response.stop_reason # 'end_turn' / 'max_tokens' / 'tool_use'
response.usage.input_tokens
response.usage.output_tokensContenuto a più blocchi
Può anche inviare un elenco di blocchi di contenuto nei messaggi dell'utente (immagini, risultati degli strumenti):
messages = [{
'role': 'user',
'content': [
{'type': 'text', 'text': 'What is in this image?'},
{'type': 'image', 'source': {
'type': 'base64',
'media_type': 'image/png',
'data': image_base64
}}
]
}]Precompilare l'assistant
Forzi la risposta a iniziare in un modo specifico:
messages = [
{'role': 'user', 'content': 'Return a JSON object.'},
{'role': 'assistant', 'content': '{'}
]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=512,
messages=messages,
)
# Output starts after '{', guaranteed to be JSON.Uso degli strumenti
Il formato degli strumenti di Anthropic è simile a quello di OpenAI, ma usa input_schema:
tools = [{
'name': 'get_weather',
'description': 'Get current weather',
'input_schema': {
'type': 'object',
'properties': {'city': {'type': 'string'}},
'required': ['city']
}
}]
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=1024,
tools=tools,
messages=messages,
)
if response.stop_reason == 'tool_use':
for block in response.content:
if block.type == 'tool_use':
print(block.name, block.input)Restituzione dei risultati degli strumenti
I risultati degli strumenti vengono inseriti in un messaggio dell'utente con un blocco tool_result:
messages.append({
'role': 'user',
'content': [{
'type': 'tool_result',
'tool_use_id': 'toolu_abc',
'content': json.dumps(weather_data)
}]
})Prompt caching
Anthropic supporta il prompt caching: contrassegni i prefissi statici lunghi con cache_control e paghi il 10% quando si verifica un hit nella cache:
system = [
{'type': 'text', 'text': '...long system prompt...',
'cache_control': {'type': 'ephemeral'}}
]
for block in system:
print(f"type={block['type']} cache_control={block['cache_control']}")
print("text preview:", block['text'][:30])
Extended thinking
Claude dispone di una modalità "extended thinking" in cui ragiona internamente prima di rispondere:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=4096,
thinking={'type': 'enabled', 'budget_tokens': 2048},
messages=messages,
)Posizione del system prompt
Dove va inserito il system prompt nell'API Anthropic?
Riepilogo
Ora può effettuare chiamate a entrambi i principali provider. Le differenze sono piccole ma reali: la maggior parte dei team crea un adattatore leggero per passare dall'uno all'altro.
Domande Frequenti
La lezione «Chiamare l'API Anthropic: messages» è gratuita?
Sì — il testo completo di «Chiamare l'API Anthropic: messages» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso AI Agents, passa a CoddyKit PRO. Il corso AI Agents include 4 lezioni in totale.
Cosa imparerò in «Chiamare l'API Anthropic: messages»?
Utilizzi l'API messages di Anthropic: differenze rispetto a OpenAI, posizione del system prompt e best practice specifiche per Claude. Eserciti AI Agents con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare AI Agents?
Non è richiesta alcuna esperienza precedente. AI Agents su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Chiamare l'API Anthropic: messages»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione AI Agents?
Sì. Ogni lezione AI Agents include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Chiamare l'API OpenAI: chat.completions
- Chiamare l'API Anthropic: messages
- Streaming delle risposte (SSE)
- Consapevolezza dei costi: conteggio dei token e budget