Skip to main content

Descripción general

La Agent-First API de TokenLab enriquece las respuestas de error con sugerencias estructuradas que los agentes de IA pueden parsear y actuar de inmediato: sin búsquedas web, sin consultas a la documentación, sin conjeturas. Los errores de gateway compatibles con OpenAI de Chat Completions y Responses pueden incluir campos opcionales como did_you_mean, suggestions, hint, retryable y retry_after dentro del objeto error. Anthropic Messages y Gemini mantienen sus formas de error nativas y no prometen estas extensiones.

Campos de sugerencia de error

En los errores de gateway compatibles con OpenAI, todos los campos de sugerencia son extensiones opcionales dentro del objeto error:

Ejemplos de códigos de error

model_not_found (400)

Cuando un nombre de modelo no coincide con ningún modelo activo:
La resolución de did_you_mean utiliza:
  1. Mapeo de alias estático (a partir de datos de errores en producción)
  2. Coincidencia de cadena normalizada (elimina guiones, sin distinción entre mayúsculas/minúsculas)
  3. Coincidencia por distancia de edición (umbral ≤ 3)
Las rutas públicas no exponen códigos de error separados para modelos ocultos, diferidos o no públicos. Trate los modelos públicos no disponibles de la misma forma que un fallo de coincidencia: inspeccione did_you_mean, suggestions y hint, y luego reintente con un modelo público compatible.

insufficient_balance (402)

Cuando el saldo de la cuenta es insuficiente para el coste estimado:
suggestions contiene modelos más baratos que el coste estimado a los que el agente puede cambiar.

all_channels_failed (503)

Cuando todos los canales upstream para un modelo no están disponibles:
retryable es false cuando la razón es no_channels (no hay canales configurados para este modelo). Es true solo para fallos transitorios como disparos de circuit breaker o agotamiento de cuota.

rate_limit_exceeded (429)

El valor retry_after se calcula a partir del tiempo real de reinicio de la ventana del límite de velocidad.
Los endpoints compatibles con OpenAI usan los tipos de error públicos estables de TokenLab como rate_limit_exceeded, upstream_error y all_channels_failed. Los endpoints compatibles con Anthropic y Gemini usan sus propias formas de respuesta nativas.

context_length_exceeded (400)

Cuando la entrada excede la ventana de contexto del modelo (error upstream, enriquecido con sugerencias):

Descubrimiento de endpoints nativos

No deduzcas la disponibilidad de un protocolo nativo por el nombre del modelo o proveedor ni por cabeceras de una respuesta de Chat. Antes de elegir un endpoint nativo, consulta GET /v1/models/{model} y usa solo un formato de solicitud anunciado en los detalles del modelo y respaldado por una ruta del mismo protocolo. El campo exacto es tokenlab.accepted_request_formats. El formato anunciado determina la disponibilidad del endpoint; la compatibilidad de cada campo y herramienta sigue dependiendo del upstream.

Mejoras de /v1/models

/v1/models ahora incluye metadatos de recomendación no chat que los agentes pueden usar antes de llamar a endpoints de imagen, video, música, 3D, TTS, STT, embedding, rerank o traducción.
Cuando recommended_for está presente, agent_preferences se deriva de una instantánea de tasa de éxito en caché de 24 horas:
  • Window: 24 hours
  • Caché de instantáneas: stale-while-revalidate
  • status = "ready" significa que el modelo tiene suficientes muestras recientes para participar en el ranking
  • status = "insufficient_samples" significa que el modelo permanece visible pero no se clasifica por delante de los modelos puntuados

Filtrado por categoría

Descubrimiento de recomendaciones

Para flujos no chat, los agentes deben obtener primero la lista recomendada actual:
Los valores válidos para recommended_for son:
  • image
  • video
  • music
  • 3d
  • tts
  • stt
  • embedding
  • rerank
  • translation
Si están presentes category y recommended_for, deben coincidir exactamente. Flujo recomendado para agentes:
  1. GET /v1/models?recommended_for=<scene>
  2. Elegir el primer modelo con agent_preferences.<scene>.status == "ready"
  3. Llamar al endpoint explícitamente con model=<selected>
  4. Sólo en errores transitorios, reintentar con el siguiente modelo ready

llms.txt

Una visión general de la API legible por máquinas está disponible en:
Incluye:
  • Plantilla para la primera llamada con un ejemplo funcional
  • Nombres de modelos comunes (generados dinámicamente a partir de datos de uso)
  • Los 12 endpoints de la API
  • Parámetros de filtrado para el descubrimiento de modelos
  • Guía para el manejo de errores
Los agentes de IA que leen llms.txt antes de su primera llamada a la API normalmente pueden tener éxito en el primer intento.

Uso en código del agente

Python (OpenAI SDK)

JavaScript (OpenAI SDK)

Principios de diseño

Fallar rápido, fallar informativamente

Los errores devuelven inmediatamente todos los datos que un agente necesita para autocorregirse.

Sin enrutamiento automático

La API nunca sustituye silenciosamente un modelo diferente. El agente decide.

Sugerencias basadas en datos

Todas las recomendaciones provienen de datos de producción, no de listas codificadas.

Compatible hacia atrás

Todos los campos de sugerencia son opcionales. Los clientes existentes no notan diferencia.