Chamando a API da Anthropic: messages
Utilize a API messages da Anthropic: diferenças em relação à OpenAI, posicionamento do prompt do sistema e práticas recomendadas específicas do Claude.
Chamando a API da Anthropic: messages é uma aula grátis de AI Agents no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Agents, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Agents inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Por que Anthropic?
Os modelos Claude geralmente seguem melhor as instruções, usam melhor as ferramentas e têm janelas de contexto maiores do que modelos OpenAI equivalentes — e às vezes são mais baratos.
A maioria dos agentes em produção oferece suporte aos dois provedores como fallback.
Install the SDK
# pip install anthropic
import anthropic
client = anthropic.Anthropic() # reads ANTHROPIC_API_KEY from envSua primeira chamada
O 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.'Principais diferenças em relação a OpenAI
systemé um parâmetro de nível superior, não uma mensagemmax_tokensé REQUIREDcontenté uma lista de blocos (texto, uso de ferramenta etc.)- Não há parâmetro
n— use várias chamadas
Blocos de conteúdo
Até mesmo as respostas de texto vêm como uma lista de blocos:
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_tokensConteúdo com vários blocos
Você também pode enviar uma lista de blocos de conteúdo nas mensagens do usuário (imagens, resultados de ferramentas):
messages = [{
'role': 'user',
'content': [
{'type': 'text', 'text': 'What is in this image?'},
{'type': 'image', 'source': {
'type': 'base64',
'media_type': 'image/png',
'data': image_base64
}}
]
}]Preenchimento prévio do assistente
Force a resposta a começar de uma maneira específica:
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 de ferramentas
O formato de ferramentas da Anthropic é semelhante ao da OpenAI, mas 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)Retorno de resultados das ferramentas
Os resultados das ferramentas são incluídos em uma mensagem do usuário com um bloco tool_result:
messages.append({
'role': 'user',
'content': [{
'type': 'tool_result',
'tool_use_id': 'toolu_abc',
'content': json.dumps(weather_data)
}]
})Armazenamento em cache de instruções
A Anthropic oferece armazenamento em cache de instruções: marque prefixos estáticos longos com cache_control e pague 10% nos acertos de 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])
Raciocínio estendido
O Claude tem um modo de "raciocínio estendido" no qual raciocina internamente antes de responder:
response = client.messages.create(
model='claude-sonnet-4-5',
max_tokens=4096,
thinking={'type': 'enabled', 'budget_tokens': 2048},
messages=messages,
)Localização da instrução do sistema
Onde a instrução do sistema deve ser colocada na API da Anthropic?
Recapitulação
Agora você pode chamar os dois principais provedores. As diferenças são pequenas, mas reais — a maioria das equipes cria um adaptador fino para alternar entre eles.
Perguntas Frequentes
A aula “Chamando a API da Anthropic: messages” é grátis?
Sim — o texto completo de “Chamando a API da Anthropic: messages” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Agents, atualize para CoddyKit PRO. O curso de AI Agents inclui 4 aulas no total.
O que vou aprender em “Chamando a API da Anthropic: messages”?
Utilize a API messages da Anthropic: diferenças em relação à OpenAI, posicionamento do prompt do sistema e práticas recomendadas específicas do Claude. Você pratica AI Agents com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Agents?
Nenhuma experiência prévia é necessária. AI Agents no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Chamando a API da Anthropic: messages”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Agents?
Sim. Cada aula de AI Agents inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Chamando a API da OpenAI: chat.completions
- Chamando a API da Anthropic: messages
- Transmissão de respostas (SSE)
- Controle de custos: contagem de tokens e orçamentos