Anthropic (Claude)
Provider anthropic. Adapter sobre o SDK anthropic.
pip install "jangada-ai[anthropic]"provider=:"anthropic"- Variável de ambiente:
ANTHROPIC_API_KEY
from jangada_ai import LLM
llm = LLM("anthropic", "claude-opus-4-8")O que faz
- Texto e streaming.
- Structured output (
parse): por tool-forcing — define uma ferramenta com o schema e fixatool_choice, depois valida otool_use.inputcontra o modelo Pydantic. (Claude não tem umresponse_formatcomo a OpenAI.) Nos modelos que não aceitam forced tool use (Opus 5.5, Fable 5.1 e Mythos 5.1), oparseusatool_choice="auto"+ strict tool use automaticamente — transparente para você. Veja "O que mudou na 1.9.2". - Vision (
images=): imagens viram blocoimagecomsourcebase64. - Documentos (
files=): extração de texto local.
O que NÃO faz
- Transcrição de áudio: a API do Claude não aceita áudio —
transcribe()levantaUnsupportedError. Use OpenAI, Groq ou Gemini para áudio (e, se quiser, mantenha o Claude como provider de texto com fallback de áudio em outro). Veja Transcrição de áudio. - Detecção de objetos: funciona mecanicamente (vision + structured), mas a precisão das coordenadas é menor que a do Gemini.
Estrutura e quirks
- Parâmetros:
temperature,max_tokens,top_p,top_k,stop(→stop_sequences). Não temseed(é descartado). max_tokensé obrigatório na API do Claude — a jangada já usa um default alto (8192) quando você não informa.- System: vai no campo
systemda requisição (não como mensagem). - Resposta (
Completion):usagedeinput_tokens/output_tokensnativos;rawcom o objeto da SDK. - Erros: 529 (overloaded) vira
OverloadedError(subtipo deServerError), elegível a retry/fallback. Veja Erros.
Relacionado: Matriz de capacidades, Structured output.
O que mudou na 1.9.2
- Compatível com Claude Opus 5.5, Fable 5.1 e Mythos 5.1 (lançados em 2026-09-22). Esses
modelos trazem um breaking change: forced tool use não é mais aceito —
tool_choicedo tipo"tool"/"any"retorna 400. Como o structured output usava tool-forcing, oparsequebrava nesses modelos. Agora, só neles, oparseusatool_choice="auto"+ strict tool use (a migração recomendada pela Anthropic); os demais modelos Claude seguem no tool-forcing de sempre. É transparente: você chamaLLM("anthropic", "claude-opus-5-5").parse(...)normalmente. complete(tools=…, tool_choice="required"(ou"any"/nome) no Opus 5.5 / Fable 5.1 / Mythos 5.1 agora levantaUnsupportedErrorclaro (a API rejeitaria com 400). Usetool_choice="auto"— se quiser garantir o schema dos argumentos, a lib já aplica strict tool use no caminho deparse.
O que mudou na 1.9.0
- Compatível com
anthropic>=1.0. O SDK 1.0 removeutemperature,top_petop_kda assinatura demessages.create()— passá-los davaTypeError. A lib agora os envia pelo corpo (extra_body), entãoLLM("anthropic", ..., temperature=0.2)funciona em qualquer versão do SDK. - Extended thinking com tools em vários turnos: os blocos
thinking/redacted_thinking(com assinatura) são preservados e reenviados antes dotool_use, como a API exige. Noparse, o thinking é desligado (otool_choiceforçado é incompatível com ele). - Tools nativas:
web_search,web_fetchecode_execution(veja Tools nativas); os blocos comencrypted_contentvoltam intactos no histórico epause_turné continuado automaticamente. - Usage com cache:
input_tokensinclui os tokens de cache;cache_read_tokensecache_write_tokensaparecem quando há prompt caching, e o custo usa o preço de cache. - Recusa sem
tool_usenoparselevantaOutputValidationError(entra no failover); resposta sem conteúdo viraServerError.