Journal des modifications
Les changements datés de l’API et du catalogue de modèles Autonomous Relay Agents. Nouveaux points d’accès, modifications d’acheminement et mises à jour du catalogue qui touchent votre intégration.
- Ajout — Le connecteur Notion: Connectez un espace de travail Notion sous Connexions, depuis l’onglet Découvrir : vous choisissez les pages qu’il peut voir sur l’écran de consentement de Notion. Il est en lecture seule, avec deux outils, search_pages et read_page, qu’une requête offre au modèle avec {"type": "autonomousrelay:plugin", "plugin": "notion"} ; le modèle les voit sous les noms plugin__notion__search_pages et plugin__notion__read_page.
- Ajout — Les forfaits Pro et Affaires: Deux forfaits s’ajoutent à Équipe. Pro, à 29 $ par mois, s’adresse à un développeur seul : garde-fous, alertes d’utilisation, exports, préréglages et classificateurs. Affaires, à 399 $ par mois, offre tout le forfait Équipe plus l’authentification unique et SCIM, qui demandaient jusqu’ici un contrat Entreprise. Choisissez ou changez de forfait sous Paramètres → Forfait; les abonnements Équipe existants ne changent pas.
- Modification — L’absence de conservation et d’entraînement n’est plus une exigence d’acheminement: Aucun point d’accès ne déclare ses conditions de conservation ou d’entraînement, si bien qu’exiger l’une ou l’autre refusait tous les modèles. La conservation de vos invites par un fournisseur, et leur usage pour l’entraînement, relèvent de votre propre entente avec lui. Une requête avec provider.zdr = true ou provider.data_collection = "deny", un garde-fou avec un enforce_zdr à true, et un PUT /v1/privacy avec zdr, zdr_groups ou deny_training activés donnent maintenant un 400 qui l’explique ; les valeurs qui les désactivent restent acceptées. Les réglages déjà enregistrés ont été effacés, donc les clés qu’ils bloquaient sont de nouveau servies. GET /v1/privacy ne renvoie plus zdr, zdr_groups, deny_training ni groups, et les points d’accès des modèles ne renvoient plus dataPolicy.
- Modification — Les plafonds comptent les dépenses faites avec vos propres clés: Les plafonds de clé, les budgets de garde-fou et les budgets d’espace de travail comptent désormais chaque requête au prix catalogue du fournisseur, par défaut : un plafond mensuel de 50 $ arrête une clé à 50 $ de ce que votre fournisseur facture. Les limites existantes le comptent aussi : un plafond strict déjà dépassé refuse la prochaine requête de la clé. POST /v1/keys accepte include_byok_in_limit ; mettez-le, ou include_byok_in_budgets ou include_byok, à false pour ne compter que les dépenses sur la plateforme.
- Modification — Les routes inconnues répondent avec l’enveloppe d’erreur habituelle: Une requête vers une route qui n’existe pas répond maintenant 404 avec la même enveloppe que toute autre erreur, {"error": {"code": 404, "message": "Not found", "metadata": {"error_type": "not_found"}}}, au lieu de {"message", "error", "statusCode"}. Lisez error.metadata.error_type comme pour toute autre erreur.
- Ajout — GET /v1/free-tier: Indique si ce déploiement sert les modèles gratuits sans clé de fournisseur à vous : available, la limite quotidienne par organisation et les modèles concernés. Public, mis en cache une minute.
- Ajout — Qui a conçu un plugiciel, et l’essai des vôtres: Chaque fiche du marché indique maintenant qui l’a conçue : Officiel pour les plugiciels d’Autonomous Relay, le nom de l’éditeur pour tous les autres, et les fiches et les installations portent official et built_by. Si vous publiez un plugiciel, son onglet Publier offre Connecter pour essayer et Installer pour essayer, pour l’essayer dans votre propre organisation avant qu’il soit publié. Renommer l’éditeur d’un plugiciel publié le renvoie en révision.
- Ajout — Limites de débit par clé: Fixez rpm_limit (requêtes par minute) et tpm_limit (jetons par minute) sur une clé d’inférence avec POST /v1/keys ou PATCH /v1/keys/{hash}, ou dans la page Clés API. Elles s’appliquent aux complétions de clavardage et aux autres routes d’inférence. Au-delà d’une limite, la réponse est un 429 rate_limited, avec les en-têtes x-ratelimit-* et retry-after.
- Ajout — Métriques Prometheus: GET /v1/metrics renvoie l’utilisation de votre organisation au format texte de Prometheus : requêtes, jetons et dépenses facturées par modèle et par fournisseur depuis le début du mois, un histogramme de la durée des requêtes et le nombre de clés actives. Collectez-la avec une clé de gestion qui a usage:read; un siège limité à certains espaces de travail ne voit que ceux-ci.
- Ajout — Journal d’audit: Les propriétaires et les administrateurs peuvent voir qui a changé quoi, et quand : clés, identifiants BYOK, garde-fous, membres et invitations, authentification unique et SCIM, destinations de diffusion, installations de plugiciels, espaces de travail et paramètres de l’organisation. Consultez-le sous Journal d’audit dans le tableau de bord, ou parcourez GET /v1/audit-log, filtré par action, catégorie ou auteur. Les entrées sont conservées un an.
- Modification — Caviardage des renseignements personnels sur tous les forfaits: Les détecteurs intégrés (adresses courriel, numéros de téléphone, numéros d’assurance sociale, numéros de carte, adresses IP et secrets) caviardent maintenant sur tous les forfaits, Solo compris, pour toute l’organisation : activez-les dans la page Garde-fous ou avec PUT /v1/guardrails/redaction. Les motifs personnalisés, le mode blocage et les politiques par espace de travail, par clé ou par membre restent sur Team.
- Ajout — Cohere, AI21 Labs et SambaNova: Trois fournisseurs de plus sur votre propre clé, avec dix modèles : Command R, Command R7B et les modèles Embed de Cohere; Jamba Large et Jamba Mini d’AI21; et, sur SambaNova, MiniMax, DeepSeek, gpt-oss-120b et Llama 70B Instruct de Meta.
- Ajout — Noter une génération: POST /v1/generation/feedback avec l’id d’une requête, une valeur de -1 à 1 (pouce vers le bas vaut -1, pouce vers le haut vaut 1) et une étiquette facultative enregistre comment vos utilisateurs ont jugé une réponse. GET /v1/feedback/summary fait la moyenne des notes par modèle, et Activité les montre dans un tableau Rétroaction par modèle. Une note ne contient aucun texte libre.
- Ajout — Diffusion vers Langfuse, Datadog et S3: La diffusion peut maintenant envoyer les métadonnées de chaque requête à Langfuse comme trace, à Datadog comme journal, ou à un stockage compatible S3 comme AWS S3, Cloudflare R2, Backblaze B2 ou MinIO, en fichiers JSON Lines classés par heure. Configurez-les dans la page Observabilité. Une livraison qui échoue sur le réseau, un 429 ou un 5xx est maintenant tentée jusqu’à trois fois.
- Ajout — Historique des prix de chaque modèle: Chaque page de modèle a maintenant une section Historique des prix : le prix d’entrée et de sortie en vigueur à partir de chaque date où un prix a changé. La même série, par fournisseur, est publique à GET /v1/models/{author}/{slug}/price-history.
- Ajout — Suivre le catalogue, et cette page, par fil RSS: Ce journal des modifications a maintenant un fil RSS à /changelog.xml, et une section en direct Dans le catalogue, ces 30 derniers jours, qui liste les modèles ajoutés et chaque prix qui a monté ou baissé, avec l’avant et l’après. GET /v1/catalog/changes renvoie la même chose, sur 1 à 90 jours.
- Ajout — Déploiement autohébergé pour Entreprise: Les clients Entreprise peuvent exécuter Autonomous Relay dans leur propre réseau, avec un fichier Docker Compose ou un chart Helm qui exécutent la même image de passerelle que nous. Le guide d’administration à /docs/self-host décrit chaque paramètre, les mises à niveau et les sauvegardes. En production, les identifiants BYOK utilisent toujours Google Cloud KMS.
- Ajout — Le marché des plugiciels: Installez des outils créés par d’autres développeurs, dans Plugiciels du tableau de bord, puis ajoutez {"type": "autonomousrelay:plugin", "plugin": "<slug>"} aux outils : le modèle voit les outils du plugiciel et la passerelle les appelle dans la requête. Un plugiciel se connecte avec une clé fournie par son développeur ou par OAuth, pour accéder à votre compte ailleurs, comme Google, en votre nom. Les développeurs hébergent leur plugiciel comme serveur MCP et le publient après révision; le guide est à /docs/plugins.
- Ajout — Traitement Flex et Fast d’OpenAI: service_tier est maintenant transmis à OpenAI : flex s’exécute aux tarifs Batch quand OpenAI a de la capacité, et priority (ou fast) offre un traitement plus rapide moyennant un supplément par jeton. Seuls les modèles OpenAI ayant un prix publié pour le niveau l’acceptent; ailleurs, la requête s’exécute au niveau standard. Vous êtes facturé au niveau qu’OpenAI déclare avoir servi.
- Ajout — Vos propres serveurs MCP comme outils: Enregistrez votre serveur MCP avec POST /v1/mcp-servers (une URL https publique et un identifiant facultatif, scellé au repos), puis ajoutez {"type": "autonomousrelay:mcp", "server": "<nom>"} aux outils : le modèle voit ses outils et la passerelle les appelle dans la requête, avec votre identifiant. GET /v1/mcp-servers/{id}/tools vérifie un enregistrement en direct.
- Ajout — Recherche Web sur GPT et Grok: Le plugin web passe maintenant aussi par la recherche d’OpenAI et de xAI, sur les modèles GPT-5 et suivants et Grok 4, à 10 et 5 $ par 1 000 recherches sur votre propre clé. allowed_domains et excluded_domains y fonctionnent aussi (5 au plus sur Grok).
- Ajout — Plugin de recherche Web: Ajoutez {"id": "web"} aux plugins et le modèle cherche sur le Web avec la recherche de son fournisseur : l’outil de recherche Web d’Anthropic sur les modèles Claude, l’ancrage Google Search sur les modèles Gemini 3. Chaque recherche est facturée au prix du fournisseur (10 ou 14 $ par 1 000) sur votre propre clé, et comptée dans votre utilisation et vos budgets. max_uses et allowed_domains ou excluded_domains s’appliquent sur Claude.
- Ajout — Plugin de modération: Ajoutez {"id": "moderation"} aux plugins et l’entrée est vérifiée par omni-moderation-latest d’OpenAI, avec la propre clé OpenAI de votre organisation, avant qu’un fournisseur ne la voie; "output": true vérifie aussi la réponse (pas en flux). Un signalement est un 403 avec error_type moderation_flagged et les catégories comme motifs. Si la vérification ne peut pas s’exécuter, la requête n’est pas envoyée.
- Ajout — Routeur automatique : autonomousrelay/auto: Envoyez "model": "autonomousrelay/auto" et le routeur choisit un modèle payant vers lequel vous pouvez router, selon les besoins de la requête et un palier de coût (low par défaut, jusqu’à max), avec deux modèles de repli du même palier. Restreignez-le avec allowed_models et excluded_models du plugin auto-router. Il ne lit rien de votre invite et n’en conserve rien.
- Ajout — Lots sur Grok: POST /v1/batches passe maintenant aussi par l’API Batch de xAI, à son prix de lot (20 % de rabais sur les modèles que xAI escompte), avec votre propre clé xAI.
- Ajout — Lots sur Gemini, Mistral et Qwen: POST /v1/batches passe maintenant aussi par le mode batch de Gemini de Google, les tâches par lots de Mistral et l’API Batch d’Alibaba Model Studio, à leurs prix de lot, avec votre propre clé de fournisseur. Nommez le modèle comme avant, p. ex. mistralai/mistral-medium-3-5. Un lot Gemini accepte au plus 19 Mo de requêtes.
- Ajout — Des PDF sur tous les modèles: Un PDF envoyé à un modèle qui ne sait pas ouvrir les PDF lui est maintenant transmis sous forme de texte, lu de notre côté; les modèles qui lisent les PDF reçoivent toujours le fichier. Choisissez avec le plugin file-parser (moteur pdf-text ou native). La réponse renvoie le texte en annotation, qu’un tour suivant peut envoyer au lieu du fichier. Un PDF numérisé n’a pas de texte à lire : envoyez-le à un modèle qui lit les PDF.
- Ajout — Évaluations: Exécutez un jeu de données sur jusqu’à huit modèles et comparez leurs réponses, leur coût et leur latence, depuis la nouvelle page Évaluations ou POST /v1/evals. Chaque cellule est une vraie requête sur vos clés et votre acheminement, facturée et journalisée comme les autres, notée par correspondance exacte, inclusion ou JSON valide, et transmise dès qu’elle est terminée. Rien n’est conservé.
- Ajout — Collections de modèles: Parcourez le catalogue selon ce que font les modèles sur /collections : modèles gratuits, un million de jetons de contexte, vision, documents, entrée audio, génération d’images et de vidéos, synthèse vocale, plongements et reclasseurs. Chacune ouvre la liste des modèles avec son filtre, et GET /v1/models accepte free=true.
- Ajout — Comparer des modèles: Placez jusqu’à quatre modèles côte à côte sur /compare : prix sur leur point d’accès le moins cher, limites de contexte et de sortie, modalités, appel d’outils, sortie structurée et raisonnement, qui les sert, et disponibilité mesurée. Les modèles figurent dans le lien, pour partager une comparaison, et chaque page de modèle y renvoie.
- Ajout — Le répertoire des applications: La page de classement a maintenant une vue Applications, et GET /v1/rankings/apps liste les applications selon les jetons traités cette semaine ou ce mois-ci. Une application est le domaine que ses requêtes envoient dans HTTP-Referer, affichée par domaine seulement, dès qu’elle compte 100 requêtes terminées sur la période. Pour ne pas y figurer, envoyez X-App-Visibility: hidden lors de la première requête de votre application.
- Ajout — Classement des modèles: Une page publique, et GET /v1/rankings/models, qui classent les modèles selon les jetons traités par le routeur aujourd’hui, cette semaine, ce mois-ci, et selon leur hausse. Cela mesure l’usage, pas la qualité, et le dit. Seuls des agrégats sont affichés, et un modèle n’apparaît qu’une fois utilisé par au moins trois organisations sur la période.
- Ajout — Lots aux prix de lot des fournisseurs: POST /v1/batches exécute jusqu’à 10 000 requêtes de clavardage par l’API Batch d’OpenAI ou les Message Batches d’Anthropic, avec votre propre clé de fournisseur, à leurs prix de lot, environ la moitié du prix direct, en moins de 24 heures. Interrogez le lot, puis récupérez ses résultats en continu. Les requêtes passent par les mêmes budgets, garde-fous et filtres de contenu que les requêtes directes; le lot est facturé une seule fois, à sa fin; rien des requêtes ni des résultats n’est conservé chez nous. Une requête directe vers un modèle :batch reçoit désormais une erreur 400 qui renvoie ici.
- Ajout — Fédération d’identité de charge de travail: Les exécutions GitHub Actions, les charges de travail infonuagiques et les comptes de service Kubernetes peuvent maintenant appeler l’API sans clé d’API stockée. Ils échangent le jeton d’identité fourni par leur plateforme contre un jeton valide au plus 15 minutes qui agit comme une de vos clés, avec ses limites et son espace. Les propriétaires et les admins le configurent dans Paramètres → Fédération d’identité de charge de travail, sur tous les forfaits; le guide est à /docs/federation.
- Ajout — Authentification unique par SAML: L’authentification unique fonctionne maintenant aussi par SAML, pour les fournisseurs d’identité ou les équipes de sécurité qui l’exigent : Okta, Microsoft Entra ID, Google Workspace, ADFS et d’autres. Choisissez SAML dans Paramètres → Authentification unique, donnez à votre fournisseur notre ID d’entité et notre URL ACS, et téléversez son fichier de métadonnées. Le guide à /docs/sso donne les étapes pour chaque fournisseur.
- Ajout — Synchronisation d’annuaire (SCIM): Les organisations Entreprise peuvent connecter Okta ou Microsoft Entra ID pour ajouter et retirer des personnes automatiquement. Les personnes attribuées par votre informatique reçoivent un siège; celles qu’elle désactive le perdent immédiatement, tandis que les clés d’API qu’elles ont créées continuent de fonctionner et sont signalées dans la page Clés. Les groupes de l’annuaire décident des clients visibles. Configurez-la dans Paramètres → Synchronisation d’annuaire; le guide est à /docs/scim.
- Ajout — Choisir qui voit chaque client: Dans la page Clients, Personnes montre qui a un rôle dans chaque espace. Ajoutez quelqu’un comme Membre ou Admin d’espace, changez son rôle ou retirez-le, sans l’API. C’est ainsi que vous donnez aux personnes connectées par l’authentification unique, ou limitées aux espaces, les clients sur lesquels elles travaillent.
- Ajout — Authentification unique: Les organisations Entreprise peuvent maintenant se connecter avec le fournisseur d’identité de leur entreprise : Okta, Microsoft Entra ID, Google Workspace ou tout fournisseur OpenID Connect. Connectez-le dans Paramètres → Authentification unique, vérifiez votre domaine de courriel par un enregistrement DNS, faites une connexion de test et activez. Vous pouvez ensuite l’exiger pour tout votre domaine; les propriétaires gardent leur connexion habituelle en secours. Membres permet aussi de choisir si un développeur voit toute l’organisation ou seulement ses espaces. Le guide pas à pas est à /docs/sso.
- Ajout — Le forfait Entreprise: Les organisations sous contrat Entreprise annuel, facturé par Stripe, apparaissent maintenant comme Entreprise dans Paramètres → Forfait. Entreprise comprend tout le forfait Équipe; l’authentification unique et SCIM seront des fonctions Entreprise à leur arrivée.
- Ajout — Le forfait Équipe: Chaque organisation commence par un essai de 14 jours, et les organisations existantes ont 14 nouveaux jours à partir d’aujourd’hui. Après l’essai, le forfait Équipe coûte 99 $ par mois par organisation, pour un nombre illimité de membres, et la majoration sur l’inférence reste à 0 %. Sans lui, l’inférence avec vos propres clés de fournisseur, vos clés d’API, l’activité, les journaux et les membres continuent de fonctionner. Créer ou modifier une fonction Équipe (un deuxième espace, garde-fous, préréglages, classificateurs, alertes, rapports clients, exports, invitations) demande le forfait. Ce que vous avez déjà configuré continue de fonctionner. Abonnez-vous ou gérez la facturation dans Paramètres → Forfait.
- Ajout — Membres d’espace de travail: Un propriétaire peut maintenant limiter un siège Développeur ou Lecture seule aux espaces de travail dont il est membre : PATCH /v1/members/{userId} avec scope: "workspaces", puis PUT /v1/workspaces/{id}/members/{userId} avec le rôle admin ou member. Cette personne ne voit que ces espaces et leurs clés, activité, journaux, exports et rapports; un admin d’espace peut aussi le renommer, fixer ses budgets et gérer ses membres. Les sièges existants voient toujours toute l’organisation. Les espaces acceptent aussi une description facultative. API seulement pour l’instant.
- Ajout — Alertes de baisse de prix: Un canal d’alerte peut maintenant recevoir des événements price_drop : quand un modèle que votre organisation a utilisé dans les 30 derniers jours devient moins cher pour les jetons d’entrée ou de sortie, vous en êtes avisé une fois, dans les 15 minutes, avec l’ancien et le nouveau prix par million de jetons. Activez-le avec events: ["usage", "price_drop"] à la création d’un canal, ou PATCH /v1/alerts/channels/{id} pour un canal existant; son secret de signature est conservé. Vos canaux actuels ne reçoivent que les alertes d’utilisation, comme avant.
- Modification — Les tris s’appliquent à vos propres clés: provider.sort (price, throughput, latency, exacto) et les suffixes :floor et :nitro ordonnent désormais aussi les points de terminaison servis avec vos propres clés de fournisseur. Ils ne s’appliquaient qu’à la capacité de la plateforme, donc avec vos propres clés ils ne changeaient rien. Vos niveaux de clés passent toujours en premier : une clé prioritaire est essayée avant la capacité de la plateforme, et une clé de secours après, quel que soit le tri. Sans tri, vos clés gardent l’ordre que vous leur avez donné.
- Ajout — Liste d’adresses IP autorisées: PUT /v1/ip-allowlist limite toutes les clés de votre organisation aux plages d’adresses que vous indiquez, IPv4 ou IPv6, jusqu’à 100. Une requête venant d’ailleurs est refusée avec un 403 qui nomme son adresse. Une liste qui exclurait l’adresse qui l’enregistre est refusée, et une liste vide désactive le filtrage. GET /v1/ip-allowlist montre la liste et l’adresse que la passerelle voit pour vous.
- Ajout — Les clés peuvent expirer: POST /v1/keys accepte expires_at, et PATCH /v1/keys/{hash} la fixe, la déplace ou la retire (null). Passé ce moment, la clé est refusée avec un 401. L’heure doit comporter un fuseau, être dans le futur et à moins de dix ans. Une clé ne peut pas recevoir d’expiration par une requête faite avec cette même clé.
- Ajout — Acheminement axé sur la qualité pour les appels d’outils: provider.sort accepte désormais exacto, aussi écrit avec le suffixe :exacto : les points de terminaison dont les appels d’outils reviennent le plus souvent valides sont essayés en premier, puis les plus rapides, puis les moins chers. Une requête avec des outils et sans tri est ordonnée ainsi dès qu’un de ses points de terminaison a un taux d’appels d’outils mesuré; sort: price ou :floor garde le moins cher en premier. sort: latency ordonne maintenant par latence mesurée; il était accepté et ignoré auparavant.
- Ajout — Synthèse vocale et transcription: POST /v1/audio/speech renvoie l’audio d’un texte, facturé au caractère; POST /v1/audio/transcriptions renvoie le texte d’un fichier audio, facturé à la seconde d’audio. Les deux utilisent la requête et la réponse d’OpenAI et le même acheminement, les mêmes budgets et garde-fous que tout le reste. Treize modèles de voix, dont Kokoro, Qwen3-TTS, Inworld et Chatterbox, et six modèles de transcription, dont Whisper et Qwen3-ASR, servis par DeepInfra.
- Ajout — POST /v1/images/generations: Générez des images avec la requête et la réponse d’OpenAI, acheminées par les mêmes budgets, filtres de contenu et garde-fous que tout le reste, et renvoyées en b64_json. Treize des modèles texte-vers-image de DeepInfra, dont FLUX, Bria, Seedream, Qwen-Image et Wan, sont facturés à leur prix publié par image ou par mégapixel; la liste des points d’accès indique chaque prix et son unité. Les modèles dont le prix ne peut être calculé à partir de la requête ne sont pas encore servis.
- Ajout — POST /v1/rerank, et trois reclasseurs Qwen3: Notez des documents par rapport à une requête, du plus pertinent au moins pertinent, au format de requête et de réponse commun à Cohere et à Jina : top_n, return_documents et une instruction facultative. Acheminé et facturé comme les plongements, selon le nombre de jetons d’entrée que déclare le fournisseur. Les trois reclasseurs Qwen3 (0,6, 4 et 8 milliards de paramètres) figurent au catalogue, servis par DeepInfra.
- Ajout — POST /v1/completions : les anciennes complétions de texte: Pour les clients qui appellent encore l’ancienne API de complétions : l’invite est envoyée à n’importe quel modèle du catalogue comme un seul message utilisateur, par le même acheminement, les mêmes budgets et garde-fous que les complétions de clavardage, et la réponse revient dans choices[0].text, en continu ou non. Une invite par requête; suffix, echo, best_of, n supérieur à 1 et logprobs sont refusés avec une erreur 400 plutôt qu’ignorés.
- Ajout — POST /v1/responses : l’API Responses d’OpenAI: L’API Responses, diffusion en continu comprise, sur n’importe quel modèle, par le même acheminement, les mêmes budgets, garde-fous, préréglages et outils serveur que les complétions de clavardage. Elle est sans état : envoyez toute la conversation dans input. store: true, previous_response_id, conversation et background sont refusés avec une erreur 400 qui le dit, plutôt qu’ignorés.
- Ajout — POST /v1/messages : l’API Messages d’Anthropic: Pointez une trousse SDK d’Anthropic vers cet hôte et elle fonctionne : la clé dans x-api-key, la requête et la réponse au format d’Anthropic, et la diffusion en continu selon ses événements. Les requêtes passent par le même acheminement, les mêmes budgets, garde-fous, préréglages et outils serveur que les complétions de clavardage, et n’importe quel modèle peut répondre, pas seulement Claude. Les noms Claude comme claude-opus-4-8 renvoient aux identifiants du catalogue; fallbacks accepte jusqu’à trois modèles.
- Ajout — POST /v1/embeddings: Des plongements compatibles OpenAI, acheminés comme une complétion de clavardage — model, une liste de repli models et des préférences provider — par les mêmes budgets, filtres de contenu, garde-fous et politique de confidentialité, et facturés selon le nombre de jetons d’invite que déclare le fournisseur. Seuls les modèles de plongement sont candidats; nommer un modèle de clavardage donne une erreur 400 qui le dit. L’entrée est une chaîne ou une liste de chaînes; sortie float ou base64; dimensions là où le modèle le permet.
- Ajout — Classificateurs (bêta) : étiqueter les requêtes, et les faire passer par un préréglage: Des règles qui étiquettent chaque requête d’après ce qu’elle est — le modèle qu’elle nomme, sa clé, son client, son agent et son application, si elle porte des outils ou des images, la diffusion en continu, et sa taille — jamais d’après le contenu de l’invite. Les étiquettes sont renvoyées dans x-agentsrouter-tags, enregistrées sur la requête et filtrables avec GET /v1/activity?tag=. Une règle peut aussi faire passer les requêtes correspondantes par un préréglage; une requête qui nomme son propre @preset le garde. /v1/classifiers, avec une action evaluate pour essayer une requête type.
- Ajout — Outils serveur : date et heure, et recherche de modèles, exécutés par la passerelle: Déclarez {"type": "agentrouter:datetime"} ou {"type": "agentrouter:experimental__search_models"} dans tools[] : quand le modèle en appelle un, la passerelle l’exécute et lui renvoie le résultat, et votre application ne reçoit que la réponse finale. Les deux sont gratuits; leur utilisation est indiquée dans usage.server_tool_use et plafonnée par max_tool_calls. Requêtes sans diffusion en continu seulement pour l’instant. GET et PUT /v1/tools listent le catalogue et désactivent des outils par organisation; un outil désactivé est refusé avec un 403.
- Ajout — Préréglages : des réglages de requête versionnés, utilisés comme @preset/nom: Un préréglage est un ensemble nommé et versionné de réglages de requête — modèle ou modèles de repli, temperature, top_p, top_k, max_tokens, seed, préférences de fournisseur, reasoning — qu’une requête utilise en envoyant "model": "@preset/<nom>" (ou @preset/<nom>@<version> pour figer une version). Les champs de la requête l’emportent. Chaque changement est une nouvelle version, et n’importe quelle version peut redevenir courante. Réglages seulement : ni messages ni invites système ne sont enregistrés. /v1/presets et une page Préréglages dans le tableau de bord.
- Ajout — Diffusion : le relevé de chaque requête vers votre webhook ou votre point de terminaison OpenTelemetry: POST /v1/broadcast ajoute une destination qui reçoit un relevé de chaque requête — modèle, fournisseur, résultat, jetons, coût, délais, nom de la clé, client, agent, session et exécution, jamais l’invite ni la réponse. Un webhook reçoit du JSON signé; un point de terminaison OpenTelemetry (OTLP/HTTP) comme Honeycomb ou Langfuse reçoit un span par requête avec des attributs gen_ai, et son en-tête de clé d’API est conservé chiffré. Envoyé après la réponse, avec échantillonnage et une action de test; le tableau de bord a une page Observabilité.
- Ajout — Des valeurs par défaut d’acheminement pour le compte : modèle par défaut, replis et ordre des fournisseurs: PUT /v1/routing fixe, pour toutes les clés de l’organisation, un modèle par défaut utilisé quand une requête n’en nomme aucun (au lieu d’un 400), des modèles de repli essayés après ceux qu’une requête nomme, et l’ordre des fournisseurs quand une requête n’en fixe pas — verrouillable pour qu’une requête ne puisse pas le changer. Chaque modèle passe quand même par les garde-fous, la politique de confidentialité et vos clés de fournisseur. Réservé aux propriétaires et aux administrateurs; le tableau de bord a une page Acheminement.
- Modification — Le enforce_zdr d’un garde-fou est maintenant appliqué: Le enforce_zdr par famille d’un garde-fou était enregistré et renvoyé, mais pas appliqué à l’acheminement. Il l’est maintenant : une clé soumise à un tel garde-fou n’est servie que par des points de terminaison qui déclarent n’en conserver aucune donnée pour cette famille, et reçoit sinon un 404 qui nomme l’exigence. Si vous avez défini enforce_zdr, vérifiez les modèles qu’utilisent ces clés.
- Ajout — Une politique de confidentialité pour le compte, avec un aperçu d’admissibilité: PUT /v1/privacy fixe des exigences pour toutes les clés de l’organisation : aucune conservation des données pour tous les modèles ou par famille de modèles, seulement des points de terminaison qui déclarent ne pas entraîner sur les invites, et des régions de données. Chacune ne peut que restreindre l’acheminement, en plus des garde-fous, et une requête ne peut pas l’assouplir. POST /v1/privacy/preview compte les modèles qu’une politique laisse avant de l’enregistrer. Réservé aux propriétaires et aux administrateurs; le tableau de bord a une page Confidentialité.
- Ajout — GET et PATCH /v1/org : l’organisation, et la renommer: GET /v1/org renvoie l’identifiant, le nom, le slug, le forfait, la date de création et le nombre de sièges de l’organisation; tous les rôles peuvent le lire. PATCH /v1/org {"name"} la renomme, réservé aux propriétaires et aux administrateurs. Le tableau de bord a une page Paramètres pour les deux.
- Modification — Les exécutions se consultent et s’arrêtent avec une clé de gestion: GET /v1/runs, GET /v1/runs/{id} et les actions de fermeture et de reprise acceptent désormais aussi une clé de gestion ou une session du tableau de bord, selon le rôle de la personne : usage:read pour consulter, config:write pour fermer ou reprendre. Ouvrir une exécution demande toujours une clé d’inférence. GET /v1/runs accepte ?status=, et une exécution en pause peut maintenant être fermée, pas seulement reprise. Le tableau de bord a une page Exécutions.
- Ajout — GET /v1/activity/{id} : une requête au complet: Avec une clé de gestion : l’acheminement et les délais de la requête, la clé qui l’a faite (par nom et préfixe), son client, son agent, sa session et son exécution, les lignes d’utilisation facturées et chaque tentative auprès des fournisseurs, dans l’ordre. La nouvelle page Journaux du tableau de bord l’ouvre depuis n’importe quelle ligne.
- Modification — L’API a déménagé à autonomousrelay.com: L’URL de base est désormais https://autonomousrelay.com/v1, ou https://api.autonomousrelay.com/v1. Les requêtes vers les anciennes adresses isync.ai sont redirigées, mais les clients HTTP abandonnent l’en-tête Authorization lors d’une redirection vers un autre hôte : mettez à jour votre URL de base. Les clés, les modèles et tout le reste sont inchangés.
- Modification — Les jetons en cache sont comptés au tarif de cache du fournisseur: Les modèles Anthropic et OpenAI portent maintenant leurs prix publiés de lecture du cache, et les modèles Anthropic leurs prix d’écriture du cache à 5 minutes et à 1 heure. Un jeton de requête en cache est compté à ce tarif dans les plafonds de dépenses, les budgets et l’activité, plutôt qu’au prix d’entrée complet. Les prix de chaque point d’accès figurent dans GET /v1/models/{author}/{slug}/endpoints.
- Ajout — Budgets d’agent par espace client: PUT /v1/agents/{agent}/budgets/{interval} accepte workspace_id. Le budget ne lie alors que les requêtes des clés de cet espace, mesurées comme les dépenses de cet espace pour l’agent, et un budget pour toute l’organisation sur le même agent s’applique en parallèle. DELETE prend le même workspace_id en paramètre de requête.
- Ajout — Un signalement de dépenses qui s’emballent peut suspendre la clé: Réglez runaway_action sur pause avec PUT /v1/alerts/settings, et une clé signalée pour des dépenses qui s’emballent est suspendue : elle répond 403 key_paused jusqu’à sa reprise avec PATCH /v1/keys/{hash} et {"paused": false}, ou depuis la page Alertes ou Clés. Une clé peut aussi être suspendue à la main de la même façon. Désactivé par défaut, et un signalement d’agent ne suspend jamais rien.
- Modification — Les modèles Anthropic prennent reasoning comme réflexion étendue: Sur les modèles Anthropic, reasoning avec effort ou max_tokens active maintenant la réflexion étendue avec ce budget, et une réponse sans diffusion renvoie la réflexion dans message.reasoning, comme la diffusion le faisait déjà avec delta.reasoning. temperature, top_p et top_k sont retirés pendant la réflexion, car Anthropic les refuse ensemble.
- Ajout — Dépenses et budgets par agent: Nommez l’agent sur chaque requête avec l’en-tête X-AgentsRouter-Agent, et ses dépenses sont suivies sur toutes les clés qu’il utilise. GET /v1/agents liste les agents avec leurs dépenses du mois, et PUT /v1/agents/{agent}/budgets/{interval} fixe un budget strict, qui refuse avec 403 budget_exceeded, ou souple, qui sert et ajoute un en-tête d’avertissement.
- Ajout — Alertes de consommation et signalements de dépenses qui s’emballent: Ajoutez un canal webhook, Slack ou courriel avec POST /v1/alerts/channels et soyez prévenu quand une clé ou un agent atteint 50, 80 ou 100 pour cent de son plafond. Une clé ou un agent dont les 15 dernières minutes dépassent de loin ses propres 24 heures précédentes est signalé comme spend.runaway sur les mêmes canaux, et GET /v1/alerts/runaways liste les signalements.
- Ajout — Espaces clients, exportations et rapports: Regroupez les clés dans un espace par client, chacun avec son propre budget, avec /v1/workspaces. GET /v1/activity/export.csv exporte un mois d’activité pour un client, et GET /v1/workspaces/{id}/report renvoie un rapport client mensuel portant votre nom, votre logo et votre pied de page.
- Ajout — Places d’équipe et rôles: Invitez des personnes avec POST /v1/invitations et donnez à chacune un rôle : Propriétaire, Administrateur, Développeur, Finances ou Lecture seule. Chaque route de gestion vérifie le rôle de la personne derrière la session du tableau de bord, si bien que Finances peut consulter la facturation sans modifier la configuration.
- Modification — Les requêtes échouées indiquent qui a échoué: Le journal d’activité enregistre maintenant un code router.* dans error_code lorsque c’est la passerelle qui a échoué — une clé qu’elle n’a pas pu ouvrir, une requête qu’elle n’a pas pu exprimer — et réserve error_code au code du fournisseur lorsque celui-ci a répondu. Une tentative interrompue en cours de réponse porte sa raison sur la ligne du fournisseur. Le compte d’erreurs du sommaire d’activité comptabilise les requêtes terminées avec un code; auparavant il n’en comptait aucune, faute de code enregistré.
- Modification — La date de retrait d’un modèle est un jour civil: deprecation_date est transmise sous la forme 2026-09-30 plutôt que comme un horodatage à minuit UTC. Une date est un jour; lue comme un instant, elle désignait la veille pour quiconque se trouve à l’ouest de Greenwich.
- Ajout — Liens vers les politiques des fournisseurs: Le répertoire des fournisseurs publie maintenant la politique de confidentialité, les conditions d’utilisation et la page d’état de chaque fournisseur, lorsque nous avons pu les confirmer. Sinon, le champ reste vide plutôt que de porter une supposition.
- Modification — La description de l’API nomme les deux origines de production: openapi.json indique https://isync.ai et https://api.isync.ai comme serveurs, afin qu’un client généré à partir du document vise l’hôte d’où il provient.
- Modification — api.isync.ai ne sert plus que l’API: Le nom d’hôte de l’API ne renvoie plus le site vitrine. Les chemins hors API redirigent vers la documentation, de sorte qu’un chemin mal saisi se voit comme une erreur au lieu de répondre par une page.
- Ajout — Prévisualiser un acheminement avant l’envoi: POST /v1/route/preview indique quel point d’accès servirait une requête, et pourquoi chaque autre candidat a été écarté, sans l’envoyer ni rien dépenser.