Présentation
L’API Agent-First de TokenLab enrichit les réponses d’erreur avec des indices structurés que les agents d’IA peuvent analyser et appliquer immédiatement — pas de recherches web, pas de consultation de docs, pas de conjectures. Les erreurs gateway compatibles OpenAI de Chat Completions et Responses peuvent inclure des champs optionnels commedid_you_mean, suggestions, hint, retryable et retry_after dans l’objet error. Anthropic Messages et Gemini conservent leurs formes d’erreur natives et ne promettent pas ces extensions.
Champs d’indice d’erreur
Pour les erreurs gateway compatibles OpenAI, tous les champs d’indice sont des extensions optionnelles dans l’objeterror :
Exemples de codes d’erreur
model_not_found (400)
Quand un nom de modèle ne correspond à aucun modèle actif :did_you_mean utilise :
- Mappage d’alias statique (à partir des données d’erreur en production)
- Correspondance de chaînes normalisée (supprime les traits d’union, insensible à la casse)
- Correspondance par distance d’édition (seuil ≤ 3)
did_you_mean, suggestions et hint, puis retentez avec un modèle public pris en charge.
insufficient_balance (402)
Lorsque le solde du compte est trop faible pour le coût estimé :suggestions contient des modèles moins chers que le coût estimé vers lesquels l’agent peut basculer.
all_channels_failed (503)
Lorsque tous les canaux en amont pour un modèle sont indisponibles :retryable est false lorsque la raison est no_channels (aucun canal configuré pour ce modèle). Il est true uniquement pour les pannes transitoires comme des déclenchements de circuit breaker ou l’épuisement de quotas.rate_limit_exceeded (429)
retry_after est calculée à partir du temps réel de réinitialisation de la fenêtre de limitation de débit.
Les endpoints compatibles OpenAI utilisent les types d’erreur publics stables de TokenLab tels que
rate_limit_exceeded, upstream_error et all_channels_failed. Les endpoints compatibles Anthropic et Gemini utilisent leurs propres formes de réponse natives.context_length_exceeded (400)
Lorsque l’entrée dépasse la fenêtre de contexte du modèle (erreur en amont, enrichie d’indices) :Découverte des endpoints natifs
Ne déduisez pas la disponibilité d’un protocole natif du nom du modèle ou du fournisseur, ni des en-têtes d’une réponse Chat. Avant de choisir un endpoint natif, consultezGET /v1/models/{model} et utilisez uniquement un format de requête annoncé dans les détails du modèle et desservi par une route du même protocole.
Le champ à lire est tokenlab.accepted_request_formats.
Le format annoncé détermine la disponibilité de l’endpoint ; la prise en charge de chaque champ et outil reste propre à l’upstream.
Améliorations de /v1/models
/v1/models contient désormais des métadonnées de recommandation non-chat que les agents peuvent utiliser avant d’appeler les endpoints d’image, vidéo, musique, 3D, TTS, STT, embedding, rerank ou traduction.
Quand
recommended_for est présent, agent_preferences est dérivé d’un instantané de taux de succès sur 24 heures mis en cache :
- Fenêtre : 24 heures
- Cache d’instantané : stale-while-revalidate
status = "ready"signifie que le modèle dispose d’un nombre suffisant d’échantillons récents pour participer au classementstatus = "insufficient_samples"signifie que le modèle reste visible mais n’est pas classé devant les modèles notés
Filtrage par catégorie
Découverte de recommandations
Pour les workflows non-chat, les agents doivent d’abord récupérer la liste recommandée actuelle :recommended_for sont :
imagevideomusic3dttssttembeddingreranktranslation
category et recommended_for sont présents, ils doivent correspondre exactement.
Flux recommandé pour l’agent :
GET /v1/models?recommended_for=<scene>- Choisir le premier modèle dont
agent_preferences.<scene>.status == "ready" - Appeler explicitement l’endpoint avec
model=<selected> - En cas d’erreurs transitoires uniquement, retenter avec le modèle
readysuivant
llms.txt
Un aperçu API lisible par machine est disponible à :- Modèle de première requête avec un exemple fonctionnel
- Noms de modèles courants (générés dynamiquement à partir des données d’utilisation)
- Les 12 endpoints API
- Paramètres de filtrage pour la découverte de modèles
- Conseils de gestion des erreurs
llms.txt avant leur premier appel API peuvent généralement réussir dès la première tentative.
Utilisation dans le code agent
Python (OpenAI SDK)
JavaScript (OpenAI SDK)
Principes de conception
Échouer vite, fournir des informations utiles
Les erreurs retournent immédiatement toutes les données dont un agent a besoin pour s’auto-corriger.
Pas de routage automatique
L’API ne remplace jamais silencieusement un modèle différent. L’agent décide.
Suggestions basées sur les données
Toutes les recommandations proviennent de données de production, pas de listes codées en dur.
Rétrocompatible
Tous les champs d’indice sont optionnels. Les clients existants ne voient aucune différence.