tadata
← Retour à l'accueil

La couche de décision : où Jev, l'API Decisions et leur écosystème se placent dans une pile d'agent

#artificial-intelligence#architecture#llm#security#best-practices

Le billet précédent comparait Jev et l'API Decisions d'OpenAI sur le prix, la vitesse et les entrées. Celui-ci parle de placement : quels appels d'un agent sont des décisions plutôt que de la génération, ce qui se trouve au-dessus et au-dessous d'un modèle de décision, et lesquels des outils apparus autour des deux leaders en octobre 2026 méritent d'être connus. En bref : un modèle de décision est un appel de fonction typé assorti d'une probabilité, et l'architecture qui en profite est celle qui avait déjà un classifieur, un routeur ou une garde écrits sous forme de prompt et d'expression régulière.

Deux chaînes

Un contrôle en mode chat enchaîne prompt, texte généré, analyseur, validation, nouvel essai, action. Un contrôle en mode décision enchaîne état et question bornée, décision typée, contrôle de politique, action. Le second supprime l'analyseur et le nouvel essai, et c'est là que partent à la fois la latence et le coût.

tadata
Une page collectée à travers les deux chaînes Application Récupérerla page(Firecrawl,Valyu) Politique :rejetersous leseuil,rejeter siinjecté Stocker,notifier Modèle de décision choice :tarifs /docs /changelog /bruit predicate :injectionde promptprésente ? Modèle de génération Résumer lespagesretenues
Une page collectée à travers les deux chaînes Application Récupérerla page(Firecrawl,Valyu) Politique :rejetersous leseuil,rejeter siinjecté Stocker,notifier Modèle de décision choice :tarifs /docs /changelog /bruit predicate :injectionde promptprésente ? Modèle de génération Résumer lespagesretenues

Seules les pages qui passent deux décisions bon marché atteignent le modèle coûteux. Le billet de Firecrawl présente son propre produit comme l'entrée dont une couche de décision a besoin : des pages vivantes converties en markdown propre ou en JSON typé ; Valyu fait de même pour la recherche dans les dépôts réglementaires, les articles et les données de marché, et le motif que son auteur recommande est récupération d'abord, décision ensuite, génération en dernier.

Garder une action

Le cas d'usage qu'OpenAI nomme en premier, « choisir la prochaine action d'un agent », est aussi celui où la couche de politique compte le plus. Le modèle propose ; le code garde la liste blanche.

tadata
Agent Modèle de décision Politique Outil sous le seuil : demander àun humain ; hors liste :refuser 1. état + predicate : cetteécriture est-elle dans latâche ? 2. p = 0,93 3. write(fichier, contenu), p = 0,93 4. seuil 0,9 et chemin surla liste blanche 5. write(fichier, contenu) 6. ok Une écriture gardée par une décision et une liste blanche
Agent Modèle de décision Politique Outil sous le seuil : demander àun humain ; hors liste :refuser 1. état + predicate : cetteécriture est-elle dans latâche ? 2. p = 0,93 3. write(fichier, contenu), p = 0,93 4. seuil 0,9 et chemin surla liste blanche 5. write(fichier, contenu) 6. ok Une écriture gardée par une décision et une liste blanche

Le seuil n'appartient pas au modèle. Les deux éditeurs disent de le fixer à partir de données étiquetées, et le billet précédent listait pourquoi : sensibilité à l'ordre, état rembourré, lecture littérale. La confiance est une entrée d'une politique, jamais la politique.

Les couches

tadata
Politique et autorité listesblanches vos seuils validationhumaine journald'audit Couche de décision Jev 1.14 APIDecisions d1-ultra Elephant-1 Jeff(ouvert) Couche de génération GPT-6 Luna Fable 5.1 poidsouverts Instructor Couche de contexte Firecrawl Valyu OCR, arbrea11y votrerécupération Distribution OpenRouter Vercel AIGateway DigitalOcean APIdirectes contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … le modèle nedétient jamais… des réponses, pasdu texte Une pile d'agent avec une couche de décision, octobre 2026
Politique et autorité listesblanches vos seuils validationhumaine journald'audit Couche de décision Jev 1.14 APIDecisions d1-ultra Elephant-1 Jeff(ouvert) Couche de génération GPT-6 Luna Fable 5.1 poidsouverts Instructor Couche de contexte Firecrawl Valyu OCR, arbrea11y votrerécupération Distribution OpenRouter Vercel AIGateway DigitalOcean APIdirectes contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … contexte vers le bas, décisions vers … le modèle nedétient jamais… des réponses, pasdu texte Une pile d'agent avec une couche de décision, octobre 2026

Deux remarques sur les couches. OpenRouter sert Jev par son propre point d'entrée, POST /api/alpha/decisions, qu'un SDK de chat compatible OpenAI ne peut pas appeler, et dont le nom entre en collision avec le produit d'OpenAI. Et les sorties structurées ne sont pas une couche de décision : elles contraignent la forme du texte généré après que le modèle a décidé quoi dire, ce qui conserve la latence de génération ; elles restent le bon outil dès que la réponse est un objet plutôt qu'un choix.

L'écosystème, par distance aux deux leaders

tadata
Couche dedécision Jev (TypeSafe) apporte: réponses typées calibrées,0,042 USD/Mdemande: un état textuel, desseuils API Decisions d'OpenAI apporte: images, voix, cache,disponibilité généraledemande: une clé OpenAI Liquid d1-ultra apporte: multimodal, une passe, entête de l'indexdemande: un accès hébergé Elephant-1 / Mammoth-1 apporte: modèles de décisionouverts de 9Bdemande: votre GPU ou Baseten OpenRouter apporte: un point d'entrée, de latélémétriedemande: un chemin alpha Vercel AI Gateway,DigitalOcean apporte: Jev dans les pilesexistantesdemande: un accès anticipé Firecrawl, Valyu apporte: un état propre à partir depages et de sourcesdemande: une décision à nourrir typesafe-computer-use apporte: OCR et arbred'accessibilité avant Jev, 0,0002USD par décisiondemande: un écran system-one-adapter-python apporte: un LLM contraint aucontrat Jevdemande: un moteur de repli Jev en 25 lignes, Jeff apporte: des réimplémentations àliredemande: un LLM à poids ouverts AA Decision Index, AIMSystem One, JevMan apporte: des classementsdemande: du scepticisme Core Supporting Wider environment
Couche dedécision Jev (TypeSafe) apporte: réponses typées calibrées,0,042 USD/Mdemande: un état textuel, desseuils API Decisions d'OpenAI apporte: images, voix, cache,disponibilité généraledemande: une clé OpenAI Liquid d1-ultra apporte: multimodal, une passe, entête de l'indexdemande: un accès hébergé Elephant-1 / Mammoth-1 apporte: modèles de décisionouverts de 9Bdemande: votre GPU ou Baseten OpenRouter apporte: un point d'entrée, de latélémétriedemande: un chemin alpha Vercel AI Gateway,DigitalOcean apporte: Jev dans les pilesexistantesdemande: un accès anticipé Firecrawl, Valyu apporte: un état propre à partir depages et de sourcesdemande: une décision à nourrir typesafe-computer-use apporte: OCR et arbred'accessibilité avant Jev, 0,0002USD par décisiondemande: un écran system-one-adapter-python apporte: un LLM contraint aucontrat Jevdemande: un moteur de repli Jev en 25 lignes, Jeff apporte: des réimplémentations àliredemande: un LLM à poids ouverts AA Decision Index, AIMSystem One, JevMan apporte: des classementsdemande: du scepticisme Core Supporting Wider environment

Le troisième anneau est le plus intéressant pour les architectes. Les réimplémentations communautaires exposent le truc au grand jour : une classification contrainte avec préfixe optimisé sur un modèle à poids ouverts, qu'un ingénieur a mesurée 2 à 3 fois plus rapide que la génération libre, loin des 40 à 200x de TypeSafe mais obtenue avec des poids que vous contrôlez. L'Elephant-1 de 9B de Base Labs se place à moins d'un point de d1-ultra sur l'index d'Artificial Analysis, selon les sources qui concordent, ce qui suggère que l'index est proche de la saturation ou que de petits modèles dédiés suffisent à la tâche.

Qui fait quoi

tadata
Modèle de décision Génération Code ordinaire Humain Router un ticket 3 1 Classer des candidats de récupération 3 Filtrer les injections de prompt 3 1 Garder un appel d'outil 2 3 1 Extraire un enregistrement JSON 3 Écrire un résumé 3 Dates, arithmétique, comptage 3 Listes blanches et seuils 3 1 Envoyer à un tiers 1 3 Paiements 2 3 Les tâches d'un agent et la couche qui lespossède (3 = responsable, 1 = en appui)
Modèle de décision Génération Code ordinaire Humain Router un ticket 3 1 Classer des candidats de récupération 3 Filtrer les injections de prompt 3 1 Garder un appel d'outil 2 3 1 Extraire un enregistrement JSON 3 Écrire un résumé 3 Dates, arithmétique, comptage 3 Listes blanches et seuils 3 1 Envoyer à un tiers 1 3 Paiements 2 3 Les tâches d'un agent et la couche qui lespossède (3 = responsable, 1 = en appui)

Placer les options

tadata
Borné mais lent Génération Couche de décision Rapide mais non borné ensemble fermé texte libre Espace des réponses environ 100 ms des secondes Latence par appel Jev API Decisions d1-ultra Elephant-1(auto-hébergé) Luna + StructuredOutputs Fable 5.1, chat LLM ouvert, décodagecontraint Où se place chaque option, octobre 2026
Borné mais lent Génération Couche de décision Rapide mais non borné ensemble fermé texte libre Espace des réponses environ 100 ms des secondes Latence par appel Jev API Decisions d1-ultra Elephant-1(auto-hébergé) Luna + StructuredOutputs Fable 5.1, chat LLM ouvert, décodagecontraint Où se place chaque option, octobre 2026

La conclusion honnête : une couche de décision mérite sa place quand un agent fait déjà beaucoup de petits choix bornés par tâche, et elle se rembourse deux fois, une fois en latence et une fois dans le code d'analyse et de nouvel essai qui disparaît. Elle ne remplace pas la génération, ne détient pas l'autorité, et sa confiance est un nombre à calibrer, pas une promesse. Commencez par le classifieur que vous avez déjà sous forme de prompt, remplacez-le par une question typée, mesurez sur vos étiquettes, et gardez la liste blanche dans le code.

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.