Skip to main content

Visão geral

A Agent-First API da TokenLab enriquece respostas de erro com dicas estruturadas que agentes de IA podem analisar e agir imediatamente — sem buscas na web, sem consultas à documentação, sem suposições. Erros de gateway compatíveis com OpenAI em Chat Completions e Responses podem incluir campos opcionais como did_you_mean, suggestions, hint, retryable e retry_after no objeto error. Anthropic Messages e Gemini mantêm seus formatos de erro nativos e não prometem essas extensões.

Campos de dica de erro

Nos erros de gateway compatíveis com OpenAI, todos os campos de dica são extensões opcionais dentro do objeto error:

Exemplos de código de erro

model_not_found (400)

Quando um nome de modelo não corresponde a nenhum modelo ativo:
A resolução de did_you_mean utiliza:
  1. Mapeamento de alias estático (a partir de dados de erro em produção)
  2. Correspondência de string normalizada (remove hífens, sem distinção entre maiúsculas/minúsculas)
  3. Correspondência por distância de edição (limite ≤ 3)
Rotas públicas não expõem códigos de erro separados para modelos ocultos, adiados ou não públicos. Trate modelos públicos indisponíveis da mesma forma que um erro de correspondência: verifique did_you_mean, suggestions e hint, e então tente novamente com um modelo público suportado.

insufficient_balance (402)

Quando o saldo da conta é insuficiente para o custo estimado:
suggestions contém modelos mais baratos que o custo estimado para os quais o agente pode alternar.

all_channels_failed (503)

Quando todos os canais upstream para um modelo estão indisponíveis:
retryable é false quando a razão é no_channels (nenhum canal configurado para esse modelo). É true apenas para falhas transitórias como disparos de circuito ou esgotamento de cota.

rate_limit_exceeded (429)

O valor de retry_after é calculado a partir do tempo real de reset da janela de limite de taxa.
Endpoints compatíveis com OpenAI usam os tipos de erro públicos estáveis da TokenLab, como rate_limit_exceeded, upstream_error e all_channels_failed. Endpoints compatíveis com Anthropic e Gemini usam suas próprias formas de resposta nativas.

context_length_exceeded (400)

Quando a entrada excede a janela de contexto do modelo (erro upstream, enriquecido com dicas):

Descoberta de endpoints nativos

Não deduza a disponibilidade de um protocolo nativo pelo nome do modelo ou provedor nem por cabeçalhos de resposta do Chat. Antes de escolher um endpoint nativo, consulte GET /v1/models/{model} e use apenas um formato de solicitação anunciado nos detalhes do modelo e atendido por uma rota do mesmo protocolo. O campo a consultar é tokenlab.accepted_request_formats. O formato anunciado determina a disponibilidade do endpoint; o suporte a campos e ferramentas específicos continua dependendo do upstream.

Melhorias em /v1/models

/v1/models agora carrega metadados de recomendação não-chat que agentes podem usar antes de chamar endpoints de imagem, vídeo, música, 3D, TTS, STT, embedding, rerank ou tradução.
Quando recommended_for está presente, agent_preferences é derivado de um snapshot de taxa de sucesso em cache de 24 horas:
  • Janela: 24 horas
  • Cache do snapshot: stale-while-revalidate
  • status = "ready" significa que o modelo tem amostras recentes suficientes para participar do ranqueamento
  • status = "insufficient_samples" significa que o modelo permanece visível, mas não é ranqueado à frente de modelos pontuados

Filtragem por categoria

Descoberta de recomendações

Para fluxos não-chat, agentes devem buscar primeiro a lista recomendada atual:
Valores válidos para recommended_for são:
  • image
  • video
  • music
  • 3d
  • tts
  • stt
  • embedding
  • rerank
  • translation
Se category e recommended_for estiverem presentes, eles devem corresponder exatamente. Fluxo recomendado para agentes:
  1. GET /v1/models?recommended_for=<scene>
  2. Escolher o primeiro modelo com agent_preferences.<scene>.status == "ready"
  3. Chamar o endpoint explicitamente com model=<selected>
  4. Em erros transitórios apenas, tentar novamente com o próximo modelo ready

llms.txt

Uma visão geral da API em formato legível por máquina está disponível em:
Inclui:
  • Template para a primeira chamada com um exemplo funcional
  • Nomes comuns de modelos (gerados dinamicamente a partir dos dados de uso)
  • Todos os 12 endpoints da API
  • Parâmetros de filtro para descoberta de modelos
  • Orientações de tratamento de erros
Agentes de IA que leem llms.txt antes da primeira chamada à API normalmente conseguem ter sucesso na primeira tentativa.

Uso no código do agente

Python (OpenAI SDK)

JavaScript (OpenAI SDK)

Princípios de design

Falhe rápido, falhe de forma informativa

Erros retornam imediatamente com todos os dados que um agente precisa para se auto-corrigir.

Sem roteamento automático

A API nunca substitui silenciosamente um modelo diferente. O agente decide.

Sugestões orientadas por dados

Todas as recomendações vêm de dados de produção, não de listas codificadas.

Compatível com versões anteriores

Todos os campos de dica são opcionais. Clientes existentes não veem diferença.