Voltar ao blog
Inteligência Artificial

Claude API: Guia Prático para Desenvolvedores em 2026

Bruno Bracaioli
Claude API: Guia Prático para Desenvolvedores em 2026

Por que a Claude API merece sua atenção

Em 2026, a Anthropic consolidou a família Claude como referência para aplicações que precisam de raciocínio confiável, contexto longo (1M tokens no Opus 4.6) e uso de ferramentas. Diferente de SDKs que escondem decisões importantes, a Claude API expõe primitivos limpos: mensagens, ferramentas, streaming e cache. Saber usar esses primitivos diretamente é o que separa um app de IA que escala de um protótipo que cai sob pressão.

Este guia cobre o caminho mínimo viável: criar uma chave, fazer a primeira chamada, adicionar tool use, ativar streaming e habilitar prompt caching para reduzir custo.

Setup em 60 segundos

Crie uma conta no Anthropic Console, gere uma chave em Settings → API Keys, e exporte como variável de ambiente. Nunca cole a chave no código.

export ANTHROPIC_API_KEY="sk-ant-..."
pip install anthropic
# ou
npm install @anthropic-ai/sdk

A boa prática que poucos seguem: crie chaves separadas por ambiente (dev, staging, prod) e por serviço. Assim, vazamento de uma chave não compromete tudo, e você consegue rastrear consumo por rota.

Primeira chamada (Python)

from anthropic import Anthropic

client = Anthropic()

resp = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Resuma o que é Clean Architecture em 3 bullets."}
    ],
)

print(resp.content[0].text)

Três pontos importantes que a documentação enfatiza:

  • max_tokens é obrigatório — protege seu bolso.
  • role: "system" virou parâmetro top-level (system="..."), não vai mais dentro de messages.
  • content pode ser uma lista de blocos (texto, imagem, tool_result), não só string.

Tool use: deixando o modelo agir

Tool use é o que transforma um chatbot em um agente. Você define funções no schema JSON, o modelo decide quando chamá-las, executa, e devolve o resultado pra próxima rodada.

tools = [
    {
        "name": "get_weather",
        "description": "Retorna a temperatura atual de uma cidade.",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "Cidade"},
            },
            "required": ["city"],
        },
    }
]

resp = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "Qual a temperatura em Curitiba?"}],
)

Quando o stop_reason voltar como tool_use, você executa a função local, anexa o resultado como {"role": "user", "content": [{"type": "tool_result", ...}]} e chama a API de novo. O modelo vê o resultado e formula a resposta final.

A regra de ouro: descrições são tudo. Uma description precisa e exemplos no schema reduzem em até 80% as chamadas erradas.

Streaming: UX que parece mágica

Para chat e qualquer output longo, use streaming. O usuário vê o texto aparecendo token a token e a percepção de latência cai drasticamente.

with client.messages.stream(
    model="claude-opus-4-6",
    max_tokens=2048,
    messages=[{"role": "user", "content": "Escreva um conto sobre IA."}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Em produção, encaminhe esses chunks para o frontend via Server-Sent Events (SSE) ou WebSockets. A SDK também emite eventos mais granulares (content_block_start, content_block_delta, message_stop) — úteis quando você precisa interceptar tool calls em tempo real.

Prompt caching: corte de custo brutal

Aplicações com prompts grandes (instruções longas, RAG context, few-shot examples) reaproveitam contexto a cada chamada. O prompt caching permite marcar partes do prompt como cacheáveis, e a Anthropic cobra apenas 10% do preço normal nos hits subsequentes.

resp = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": "Você é um assistente especializado em direito tributário brasileiro...",
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[{"role": "user", "content": "O que é o regime do Simples Nacional?"}],
)

Para apps com instruções de 5k+ tokens, isso pode reduzir custo total em 60-80%. Verifique usage.cache_read_input_tokens na resposta para confirmar que o cache foi usado.

Erros comuns que custam caro

  1. Não setar max_tokens baixo no dev — uma chamada errada pode gastar muito.
  2. Reusar a mesma chave em prod e em scripts locais — quando vaza, você não sabe de onde.
  3. Ignorar stop_reasonend_turn é diferente de tool_use e de max_tokens. Tratar como sucesso pode mascarar respostas truncadas.
  4. Não validar input antes de mandar pro modelo — usuário malicioso consegue injetar instruções no prompt do sistema.
  5. Streaming sem heartbeat — conexões caem em proxies (Cloudflare, nginx) após 30s sem dados. Envie comentários SSE periódicos.

Próximos passos

  • Leia a doc oficial: docs.claude.com
  • Experimente o Agent SDK para tarefas multi-step com loops nativos.
  • Para apps Node.js sérios, configure observability (Helicone, Langfuse) desde o dia um.
  • Defina budgets na console para evitar surpresas no fim do mês.

A Claude API é poderosa justamente porque é simples. Um arquivo de 50 linhas já te dá um agente funcional. Use bem.

Compartilhar:

Fique por dentro

Receba novos artigos sobre IA, desenvolvimento e tecnologia direto no seu email.