Workflows IA
13 octobre 202611 min

Jev rencontre la gateway : des décisions IA en millisecondes avec Flow Studio et les plugins Odock

Jev, de TypeSafe, répond à des questions typées en environ 100 ms pour une fraction du coût d'un LLM. Voici comment le brancher sur Flow Studio et les plugins Odock pour router les modèles, contrôler les appels d'outils MCP et escalader les cas incertains.

YK

Youcef Kaddour

Fondateur d’Odock et ingénieur en infrastructure IA

Youcef Kaddour est le fondateur d’Odock et un ingénieur en infrastructure IA spécialisé dans les systèmes LLM sécurisés, la gouvernance MCP, les guardrails runtime et les architectures IA multi-provider prêtes pour la production.

À retenir

  • 1Jev est un modèle de décision, pas un modèle de chat : réponses typées Choice, Score et oui/non avec probabilités, environ 70 à 500 ms, 0,042 $ par million de tokens d'entrée, tokens de sortie gratuits (chiffres TypeSafe).
  • 2Une grande partie des tokens frontier consommés par les agents sert à des décisions. Les confier à un modèle System One et agir dessus dans la gateway réduit coût et latence sans toucher au code applicatif.
  • 3Flow Studio fournit la plomberie : HTTP Request pour interroger Jev, Switch et If pour brancher, Route Model pour choisir le tier, Abort ou un appel d'approbation pour stopper les actions risquées, et Run Plugin pour masquer les données avant leur sortie.
  • 4Une décision prise dans la gateway s'applique à tous les clients et laisse des preuves : traces de flow, usage records et usage records MCP reliés par un même request id.
  • 5Jev est un filtre, pas une frontière de sécurité : gardez d'abord les contrôles déterministes (grants, allowlists, budgets, SafetySec) et prévoyez un comportement sûr si le service de décision est lent ou indisponible.

En septembre 2026, TypeSafe AI a publié Jev, un modèle qui n'écrit pas de texte. Vous lui donnez un état et une question typée ; il renvoie un choix, un score ou une probabilité oui/non en environ un dixième de seconde. C'est exactement la forme de la plupart des décisions dans un workflow IA : quel modèle, quel traitement, cet appel d'outil est-il sûr, faut-il un humain. Cet article montre comment exécuter ces décisions là où passe déjà chaque requête, dans la gateway Odock, avec des graphes Flow Studio et des plugins, pour qu'elles soient rapides, peu coûteuses, appliquées et tracées.

Pourquoi un modèle qui ne sait pas écrire fait autant parler

Le 15 septembre 2026, TypeSafe AI est sorti de l'ombre avec une levée seed de 40 millions de dollars menée par DCVC et a publié en accès anticipé son premier modèle public, Jev. En un mois, il avait déjà ses conférences, ses articles explicatifs et un sujet tendance sur les agents qui décident plus vite.

La raison est simple : Jev ne génère pas de texte. TypeSafe parle d'un modèle « System One ». Vous envoyez un état non structuré, texte ou JSON, avec une série de questions typées, et il renvoie des réponses typées accompagnées de probabilités :

  • Choice : choisir une option parmi jusqu'à 255, avec une probabilité par option et une valeur de confiance
  • Score : placer l'état sur une échelle ordonnée de 2 à 10 niveaux
  • Noul : une question oui/non qui renvoie la probabilité du « oui »

Toutes les questions d'un même appel sont évaluées en parallèle sur le même état. TypeSafe annonce 70 à 500 ms de bout en bout et un prix de 0,042 $ par million de tokens d'entrée, les tokens de sortie étant gratuits. Les premiers utilisateurs rapportent des gains concrets : un article estime à environ 6 $ la notation d'un million d'avis avec Jev contre environ 1 050 $ avec un modèle frontier, et Good Start Labs a mesuré 91,5 % d'accord avec les verdicts de Claude sur 6 003 vérifications de grille.

Les limites comptent autant que les chiffres. La plupart des données viennent de TypeSafe ou des premiers utilisateurs. Jev est uniquement hébergé, en accès anticipé, sur liste d'attente. Il ne peut pas chercher de données en direct, ni écrire de prose ou de code, et un schéma garantit une réponse bien formée, pas une réponse juste. Dans l'évaluation de TypeSafe lui-même, il reste derrière les meilleurs modèles frontier en précision. C'est un juge rapide, bon marché et calibré, pas un cerveau plus intelligent.

C'est précisément pour cela qu'il a sa place dans l'infrastructure.

L'essentiel de la dépense agentique sert à décider

Regardez ce que fait un agent entre les étapes intéressantes. Il classe une intention. Il choisit un outil. Il juge si un résultat est suffisant. Il décide de réessayer, d'escalader ou de s'arrêter. Chacune de ces étapes est une question avec un petit ensemble de réponses connues, et la plupart des équipes y répondent en appelant un modèle frontier puis en analysant son texte.

Ce schéma coûte cher de trois façons :

  • Le coût. Gartner a averti en août 2026 que, si le prix des tokens continue de baisser, le coût d'inférence des workflows agentiques sera multiplié par plus de cinq en deux ans, car les agents consomment 5 à 30 fois plus de tokens qu'un chatbot pour une tâche équivalente.
  • La latence. Un modèle frontier à qui l'on demande « juste de décider » prend quand même plusieurs secondes. Un routeur bâti sur un LLM-juge peut ajouter 1 à 5 secondes à chaque requête.
  • L'incohérence. Quand la décision vit dans le prompt de chaque application, chaque équipe implémente routage, escalade et approbation d'outils à sa manière, et rien n'apparaît dans une piste d'audit unique.

Un modèle System One règle les deux premiers points. La gateway règle le troisième.

Pourquoi la décision doit vivre dans la gateway

Vous pourriez appeler Jev depuis le code applicatif, et beaucoup d'équipes le feront. Mais les décisions qui comptent le plus pour une entreprise n'appartiennent pas à une seule application :

  • quel tier de modèle une requête a le droit d'utiliser
  • si l'appel d'outil d'un agent est cohérent avec la tâche reçue
  • quand un humain doit intervenir
  • ce qui est enregistré pour l'audit

Ce sont des décisions de plateforme. Dans Odock, chaque appel de modèle et chaque appel d'outil MCP passe déjà par un même cycle de vie : authentifier, autoriser, inspecter, réserver le budget, router, enregistrer. Flow Studio permet d'insérer votre propre logique à quatre phases de ce cycle (pre-route, pre-upstream, post-upstream, post-response) sous forme de graphe de nœuds visuel ou YAML. Les plugins du Marketplace s'exécutent aux mêmes phases et peuvent être invoqués depuis un flow.

Placez Jev à cet endroit et vous obtenez des propriétés que le code applicatif ne peut pas offrir :

  • Appliqué à tous les clients. Le bot de support, le copilot interne et les workers agents reçoivent le même routage et le même contrôle d'outils, sans changement de code.
  • Combiné aux contrôles déterministes. Grants d'accès, allowlists et blocklists d'outils MCP, budgets, quotas et SafetySec continuent de s'exécuter. Jev ajoute du jugement par-dessus ; il ne remplace pas la policy.
  • Tracé. Chaque exécution de flow laisse une trace nœud par nœud (nœud, résultat, durée) attachée aux preuves de la requête, à côté de l'usage record de l'appel.
  • Réversible. Les flows vivent dans une bibliothèque et ne s'exécutent qu'une fois activés, sur une seule clé API pour un pilote ou pour toute l'organisation. Les désactiver prend effet dès la requête suivante.
Schéma d'un graphe pre-route Flow Studio d'Odock qui masque les PII, pose à Jev une question de routage typée et bascule entre un petit modèle, un modèle frontier et une revue humaine
Jev répond à la question ; Flow Studio applique la réponse et la trace.

Schéma 1 : un routage de modèle qui tient compte de la confiance

Le gain le plus rapide est le routage. Au lieu d'envoyer chaque requête au modèle frontier codé en dur par un développeur, posez à Jev une question Choice en pre-route et laissez Flow Studio réécrire le modèle cible.

Le graphe :

1. Run Plugin pii_mask pour minimiser l'état envoyé à l'extérieur. 2. HTTP Request vers votre relais de décision, avec les messages de l'utilisateur comme état et une question Choice : simple, complex, needs_human, other. 3. If la confiance est d'au moins 0,8, aller vers un Switch sur le choix. Sinon, garder le modèle frontier. 4. Switch : simple va vers Route Model avec le petit tier, needs_human vers un circuit d'approbation, tout le reste passe sans changement. 5. La sortie error du HTTP Request va directement vers End : si le service de décision est lent ou indisponible, la requête garde le modèle demandé.

En YAML, la structure ressemble à ceci. L'URL du relais et les chemins de champs de réponse sont illustratifs ; adaptez-les au relais que vous déployez et à la référence API actuelle de TypeSafe.

yamlsnippet
version: 1
name: Jev confidence-aware routing
on_error: continue
phases:
  pre_route:
    nodes:
      - {id: start, type: start}
      - {id: mask, type: plugin_call, config: {slug: pii_mask}}
      - id: jev
        type: http_request
        config:
          method: POST
          url: https://decisions.internal.example.com/v1/route
          body:
            state: "{{request.body.messages}}"
            question: {type: choice, options: [simple, complex, needs_human, other]}
          timeout_ms: 800
      - id: confident
        type: if
        config:
          conditions:
            - {left: "{{nodes.jev.body.confidence}}", op: gte, right: 0.8}
      - id: decide
        type: switch
        config:
          value: "{{nodes.jev.body.choice}}"
          cases:
            - {equals: simple}
            - {equals: needs_human}
      - {id: small, type: model_route, config: {model: gpt-4.1-mini}}
      - id: escalate
        type: abort
        config:
          status: 409
          code: flow.needs_human
          message: "Cette demande nécessite une revue humaine. Elle a été mise en file."
      - {id: end, type: end}
    edges:
      - {from: start, to: mask}
      - {from: mask, to: jev}
      - {from: jev, to: confident}
      - {from: jev, to: end, handle: error}
      - {from: confident, to: decide, handle: "true"}
      - {from: confident, to: end, handle: "false"}
      - {from: decide, to: small, handle: simple}
      - {from: decide, to: escalate, handle: needs_human}
      - {from: decide, to: end, handle: default}
      - {from: small, to: end}

Quelques détails font passer ce schéma de la démo à la production :

  • Le routage respecte toujours les grants. Route Model réécrit la cible, mais ce sont les grants d'accès d'Odock qui décident si la clé peut appeler ce modèle. Un flow ne peut pas router une clé vers un modèle qui ne lui a jamais été accordé.
  • Les budgets voient le vrai modèle. La réservation de budget a lieu après le pre-route : l'estimation porte donc sur le modèle réellement appelé.
  • Le comportement par défaut est sûr. Une confiance faible ou une erreur conserve le modèle d'origine. Vous n'économisez que lorsque la décision est confiante.

C'est le schéma que Gartner recommande sous le nom d'« inference tiering », qui consiste à empêcher les agents d'utiliser par défaut des modèles frontier pour des tâches simples, implémenté une seule fois pour toute l'organisation.

Schéma 2 : contrôler les appels d'outils MCP

L'usage le plus important d'un juge rapide n'est pas d'économiser, mais d'empêcher la mauvaise action. L'exemple classique de la communauté Jev : npm run db:reset est la bonne commande si la tâche est « réinitialiser ma base locale » et une catastrophe si la tâche est « ajouter une colonne ».

Des règles statiques ne savent pas faire la différence. Une allowlist d'outils autorise db.reset ou ne l'autorise pas. Un jugement, lui, peut distinguer les deux cas.

Odock fournit déjà les couches déterministes pour le trafic MCP : un grant d'accès MCP par clé, un scope par équipe ou par clé, des outils autorisés et bloqués, des filtres sémantiques sur les payloads, l'injection de l'auth upstream pour que les agents ne voient jamais les secrets, ainsi que budgets et quotas. Gardez tout cela. Ajoutez ensuite un flow pre-upstream pour le petit ensemble d'outils à fort impact :

1. If {{request.metadata.mcp_method}} vaut tools/call et {{request.metadata.mcp_tool}} figure dans votre liste d'outils à fort impact. 2. HTTP Request vers le relais de décision avec deux éléments d'état : la tâche confiée à l'agent (envoyée par l'agent dans un header comme x-agent-task) et l'action en attente, nom de l'outil plus {{request.body.params.arguments}}. Une question oui/non : « Cette action est-elle cohérente avec la tâche ? » 3. Probabilité d'au moins 0,9 : on continue. Entre 0,5 et 0,9 : appel à votre service d'approbation, comme dans le template intégré MCP external approval gate d'Odock. Sous 0,5 : Abort avec un 403 et un message clair que l'agent peut exploiter. 4. La sortie error du HTTP Request va vers un Abort en 503. Pour les outils destructifs, on échoue fermé.

Schéma d'un tools/call MCP qui traverse grant d'accès, allowlist, blocklist et filtre sémantique, puis un flow pre-upstream qui demande à Jev si l'action est cohérente avec la tâche, avec les issues autoriser, approbation et blocage
D'abord les contrôles déterministes ; un jugement typé seulement là où l'action a un fort impact.

Deux règles de conception issues des premiers utilisateurs de Jev s'appliquent directement :

  • Le contrôle voit la tâche et l'action en attente, jamais la sortie de l'outil. C'est dans la sortie des outils que se loge l'injection de prompt indirecte. Gardez-la hors de l'état transmis au juge.
  • C'est un filtre, pas une frontière. Jev ne considère pas son entrée comme hostile. C'est pour cela qu'il se place derrière les grants, allowlists, blocklists et filtres sémantiques, et non à leur place.

Chaque décision arrive dans les usage records MCP et les traces de flow d'Odock avec le même request id. Un relecteur sécurité voit ainsi quelle clé agent a demandé quel outil, ce que Jev a répondu et ce que la gateway a fait.

Schéma 3 : une escalade pilotée par la confiance

Des probabilités calibrées changent la conception du human-in-the-loop. Au lieu de tout relire ou de ne rien relire, utilisez trois zones :

  • Confiance élevée : action automatique.
  • Confiance moyenne : nouvel essai avec plus de contexte ou un modèle plus fort, avec une limite finie.
  • Confiance faible : escalade vers une personne.

Dans Flow Studio, cela tient en un Switch ou deux nœuds If après le HTTP Request. Combinez-le avec le template intégré Agent identity and loop ceiling d'Odock, qui exige les headers x-odock-agent-id et x-odock-agent-iteration et arrête les boucles incontrôlées après un nombre de tours fixé : un nouvel essai en confiance moyenne ne peut jamais tourner indéfiniment.

L'essentiel est la mesure. Avant de faire confiance aux seuils, faites tourner le flow en mode shadow : il enregistre la décision sans agir, vous étiquetez 100 à 200 cas réels, puis vous vérifiez si une confiance de 0,9 correspond vraiment à 90 % de bonnes réponses sur votre trafic. Ensuite seulement, activez les chemins automatiques.

Schéma 4 : une notation gratuite après la réponse

La phase post-response s'exécute en asynchrone par défaut. Elle ne peut pas modifier ce que l'appelant a reçu et n'ajoute aucune latence. C'est l'endroit idéal pour noter la qualité :

  • lire la sortie du modèle avec un nœud Get Response Value
  • demander à Jev un Score (par exemple, la complétude de la réponse de 1 à 5) et un Noul (la réponse donne-t-elle un conseil médical ou juridique ?)
  • envoyer le résultat avec un nœud Send Webhook vers votre entrepôt de données ou votre pipeline d'évaluation

Vous obtenez une évaluation continue sur le trafic réel pour quelques centimes, et vous pouvez comparer la qualité par tier de modèle pour vérifier que le schéma 1 route correctement.

Plugins, flows et Jev : qui fait quoi

L'architecture la plus propre laisse chaque composant sur ce qu'il fait le mieux :

ComposantRôleExemple
Grants d'accès, budgets, quotasPolicy déterministeLa clé X peut appeler ces modèles et serveurs MCP, dans cette limite de dépense mensuelle
SafetySecSécurité des prompts et réponsesInjection de prompt, jailbreak, redaction, fuite de données
Plugins du MarketplaceUne tâche réutilisable et auditéepii_mask, export SIEM, notification Slack
Flow StudioLogique conditionnelle et orchestrationQuand interroger Jev, quoi faire de la réponse, comment échouer
JevJugement typé et rapideQuel tier, cette action est-elle cohérente, quelle qualité de réponse

Quand une décision devient critique et que votre équipe sécurité veut la relire sous forme de code source plutôt que de canvas, déplacez-la d'un flow vers un plugin personnalisé. C'est aussi le bon endroit pour le secret TypeSafe : les secrets de plugin sont stockés comme admin variables, chiffrés dans le navigateur avant d'atteindre Odock et déchiffrés uniquement lors de l'exécution du plugin.

Checklist de déploiement

  • Gardez la clé hors du document de flow. Les documents de flow sont de la configuration consultable par les rôles de l'organisation. Placez la clé TypeSafe dans un petit relais que vous contrôlez, ou dans les admin variables d'un plugin personnalisé, pas dans un header de HTTP Request.
  • Rendez le relais joignable. Les HTTP Request des flows refusent par défaut les adresses privées et loopback : exposez le relais sur un endpoint autorisé par votre déploiement.
  • Minimisez l'état. Exécutez d'abord pii_mask et n'envoyez que les champs utiles à chaque question.
  • Bornez la latence. Réglez timeout_ms bien en dessous du plafond de 30 secondes ; 500 à 800 ms est un bon point de départ pour les décisions dans le chemin de la requête.
  • Choisissez le mode d'échec par décision. Le routage échoue ouvert vers le modèle demandé. Les appels d'outils destructifs échouent fermés.
  • Pilotez sur une seule clé. Activez le flow depuis l'onglet Automation d'une clé API, testez les cas correspondants, non correspondants, d'échec et de blocage, lisez les traces de flow, puis activez-le pour toute l'organisation.
  • Suivez les chiffres. Comparez le coût par requête et les scores de qualité par tier dans les usage records, avant et après.

La vue d'ensemble

Jev est un exemple précoce d'une évolution plus large : les systèmes IA se séparent en juges rapides et en penseurs lents. Les penseurs lents écrivent, planifient et raisonnent. Les juges rapides routent, contrôlent, notent et escaladent. Les entreprises qui laissent chaque application brancher ces juges à sa manière reconstruiront le même problème de gouvernance qu'avec les clés provider.

La gateway est l'endroit où les deux systèmes se rencontrent. Elle voit chaque requête, applique la policy et conserve la trace. Avec Flow Studio et les plugins Odock, un modèle de décision devient une capacité partagée et gouvernée pour chaque équipe et chaque agent, et non une intégration de plus cachée dans le code applicatif.

Sources

À retenir

  • 1

    Jev est un modèle de décision, pas un modèle de chat : réponses typées Choice, Score et oui/non avec probabilités, environ 70 à 500 ms, 0,042 $ par million de tokens d'entrée, tokens de sortie gratuits (chiffres TypeSafe).

  • 2

    Une grande partie des tokens frontier consommés par les agents sert à des décisions. Les confier à un modèle System One et agir dessus dans la gateway réduit coût et latence sans toucher au code applicatif.

  • 3

    Flow Studio fournit la plomberie : HTTP Request pour interroger Jev, Switch et If pour brancher, Route Model pour choisir le tier, Abort ou un appel d'approbation pour stopper les actions risquées, et Run Plugin pour masquer les données avant leur sortie.

  • 4

    Une décision prise dans la gateway s'applique à tous les clients et laisse des preuves : traces de flow, usage records et usage records MCP reliés par un même request id.

  • 5

    Jev est un filtre, pas une frontière de sécurité : gardez d'abord les contrôles déterministes (grants, allowlists, budgets, SafetySec) et prévoyez un comportement sûr si le service de décision est lent ou indisponible.

Questions fréquentes

Qu'est-ce que Jev ?

Jev est un modèle de décision « System One » publié en accès anticipé par TypeSafe AI le 15 septembre 2026. Il reçoit un état non structuré et renvoie des réponses typées : un Choice parmi des options, un Score sur une échelle ou une probabilité oui/non, chacune avec une confiance calibrée. Il ne génère pas de texte libre.

Odock propose-t-il une intégration native de Jev ?

Non. Jev utilise sa propre API et non un endpoint compatible OpenAI. On l'appelle depuis un nœud HTTP Request de Flow Studio, idéalement via un petit relais qui détient la clé TypeSafe, ou en empaquetant l'appel dans un plugin Odock personnalisé dont le secret est stocké comme admin variable chiffrée.

À quel moment du cycle de vie la décision Jev doit-elle s'exécuter ?

Le routage de modèle se place en pre-route, avant le routage, les budgets et la sécurité d'Odock. Le contrôle des appels d'outils MCP se place en pre-upstream, juste avant l'appel au serveur MCP. La notation des réponses se place en post-response, en asynchrone, sans latence pour l'appelant.

Que se passe-t-il si Jev est lent ou indisponible ?

Le nœud HTTP Request expose une sortie error. Pour le routage, reliez-la au nœud de fin afin que la requête garde son modèle d'origine. Pour les outils destructifs, reliez-la à un nœud Abort pour échouer fermé. Gardez un timeout court, par exemple 800 ms.

Peut-on envoyer des prompts à un modèle de décision externe ?

Seulement après minimisation. Exécutez un plugin de masquage comme pii_mask via un nœud Run Plugin avant le HTTP Request, n'envoyez que les champs utiles à la question et évaluez la gestion des données de TypeSafe comme pour tout fournisseur qui reçoit du contenu de requête.

Placez les décisions rapides là où passe chaque requête

Flow Studio d'Odock permet de router les modèles, de contrôler les appels d'outils MCP et d'appeler des services de décision externes depuis la gateway, avec traces et usage records à chaque exécution.

Articles liés

Architecture des workflows IA8 min

Comment créer une couche de plugins pour les workflows LLM sans transformer les applications en code de liaison

À mesure que les workflows IA se développent, chaque application finit par ajouter le même code de liaison : filtres de prompts, validateurs de sortie, règles de routage et callbacks. Une couche de plugins au niveau de la passerelle rend cette logique réutilisable.

Lire l'article
Sécurité IA11 min

Les 6 risques de sécurité MCP auxquels toute entreprise est confrontée en 2026

Le Model Context Protocol a considérablement simplifié l'attribution d'outils aux agents IA. Il a aussi facilité la création de portes d'entrée pour les attaquants. Voici les six risques de sécurité MCP auxquels les équipes en entreprise sont régulièrement confrontées en 2026, ainsi que les contrôles à appliquer au niveau de la gateway pour les neutraliser.

Lire l'article
Gestion des coûts IA7 min

Comment contrôler les coûts LLM avec des clés API virtuelles, des budgets et des quotas

Le moyen le plus rapide de perdre le contrôle de l’économie IA consiste à laisser chaque service appeler directement les providers avec des identifiants partagés. Cet article présente le modèle opérationnel dont les équipes ont besoin à la place.

Lire l'article
AI Gateway10 min

Le grand churn des models en 2026 : pourquoi le routing model-agnostic n'est plus optionnel

329+ model releases recensés, et ça continue, un nouveau environ tous les trois jours, des models open-weight désormais compétitifs face aux frontier models. La couche model change plus vite qu'aucune application ne devrait essayer de la suivre à la main. Voici ce que cela signifie sur le plan architectural.

Lire l'article