AIDive

Jev dans Claude Code : un indice, pas des économies

Par AIDive · Publié le

Agents de codeModèles d'IA

Intro : un indice, pas des économies

Jev ne rendra pas Claude Code moins cher, et le propre benchmark de la gateway le confirme. Cet article lit le code de jev-gateway et son dépôt de benchmark, puis place un proxy de journalisation devant une vraie session Claude Code pour voir ce qu'un routeur recevrait.

Jev est le modèle de décision de TypeSafe : une probabilité renvoyée en millisecondes, branchée à Claude Code par six vidéos en une semaine. L'argument de vente : « la boucle de codage agentique la moins chère ». Les propres chiffres de la gateway montrent Opus 5 faisant 47 % de requêtes en plus et prenant 83 % de temps en plus sur une tâche de feature avec le routage activé.

Comment un routeur qui répond en millisecondes peut-il ralentir Claude Code ? Tout tient à une ligne de code. À l'intérieur de Claude Code, Jev reçoit exactement deux phrases, et une session normale lui transmet 40 outils à chaque appel.

Ce qu'est Jev, et ce que vend la vague

Jev est un modèle de décision de TypeSafe. Il ne génère aucun texte : vous posez une question typée et il répond par un choix, un score ou une probabilité oui/non. Les chiffres du fournisseur :

Chiffre Valeur
Prix en entrée 0,04 $ par million de tokens
Prix en sortie gratuit (« trop bon marché pour être facturé »)
Latence 70 à 500 ms
Titre de la page d'accueil 194× plus rapide, 445× moins cher

L'article de blog sous ce titre précise que ces deux multiplicateurs représentent la fourchette haute des gains réels, mesurés par rapport à la moyenne de deux modèles de pointe, une comparaison que les auteurs eux-mêmes reconnaissent biaisée en faveur de ces modèles.

Six vidéos en cinq jours ont branché Jev à Claude Code. La plus vue affiche 139 000 vues et le qualifie de boucle de codage agentique la moins chère à ce jour. Deux dépôts portent la vague : jev-gateway, un proxy local pour Claude Code et Codex créé cinq jours plus tôt avec 181 étoiles, et fast-jev-compaction, un plugin de compaction créé la veille, à 6 400 étoiles. La gateway est l'endroit où Claude Code se branche, c'est donc par là que commence la lecture.

Une variable, une ligne : le mode indice

jev-gateway se place entre Claude Code et l'API Anthropic. Elle lance Claude Code avec une seule variable d'environnement, ANTHROPIC_BASE_URL, pointée vers un port local. Rien d'autre ne change ; un commentaire dans le code source indique qu'il n'existe aucune identification propre à la gateway, si bien qu'une connexion Pro ou Max continue de fonctionner telle quelle.

Dans l'adaptateur (src/adapters/messages.ts, ligne 99), une ligne décide de ce que Jev a le droit de faire :

steer: thinking || cached ? "hint" : "tool_choice"

Avec la réflexion étendue activée, ou une conversation en cache, la gateway ne peut que suggérer. Sinon, elle force l'outil. Le commentaire au-dessus de la ligne explique pourquoi : l'API rejette un outil forcé pendant que la réflexion étendue est active, et changer tool_choice invalide la conversation en cache que Claude Code relit à chaque tour.

Pour vérifier à quoi ressemble une vraie requête, un proxy de journalisation de 60 lignes a pris la place de la gateway sur le même type de port, Claude Code lancé au travers, et une requête envoyée sur un vrai dépôt. La requête porte thinking: adaptive et trois marqueurs de cache ; tool_choice est absent ; 24 outils accompagnent une installation propre. En appliquant la ligne de la gateway à cette requête, le chemin forcé ne se déclenche jamais. Chaque appel de Claude Code atterrit en mode indice. Le README le dit lui-même : attendez-vous à de meilleurs choix d'outils sur de longues listes d'outils, pas à un coût ou une latence plus bas.

L'indice : deux phrases, et où il ne peut pas atterrir

Ce que Jev a le droit de faire à l'intérieur de Claude Code se résume à deux phrases ajoutées au dernier message : « un modèle de routage suggère que cet outil est le choix le plus pertinent maintenant. Ignorez ceci si cela ne convient pas. » C'est toute l'intervention. Le modèle est libre de l'ignorer, et tool_choice reste sur auto.

Forcer un outil n'est pas une option, selon la documentation d'Anthropic : un outil forcé renvoie une erreur 400 sur Opus 5.5 et Fable 5.1, et provoque une erreur avec la réflexion manuelle sur les autres modèles. Changer tool_choice est exclu aussi : la documentation sur le cache de prompt indique que cela invalide le cache des messages, la plus grande partie d'une longue session. Modifier la description d'un outil invalide tout le cache : outils, système et messages.

Modification de la requête Effet sur le cache de prompt
Ajouter un indice au dernier message utilisateur préfixe en cache inchangé
Changer tool_choice cache des messages invalidé
Modifier la définition d'un outil outils, système et messages invalidés

Le commentaire de la gateway explique pourquoi l'indice est ajouté en dernier : le préfixe en cache reste identique, octet pour octet, à ce que Claude Code renvoie au tour suivant. Un garde-fou est placé devant : quand le dernier message n'est pas celui de l'utilisateur, la requête passe sans modification. Les deux requêtes capturées se terminaient toutes deux sur un bloc système que Claude Code ajoute lui-même, un rappel d'environnement dans l'une, la sortie d'un hook dans l'autre. Sur cette forme, l'indice n'a nulle part où atterrir. Il atterrit bien sur d'autres tours, puisque les résultats d'outils reviennent sous forme de messages utilisateur, et le benchmark comptabilise Jev pilotant un tiers à la moitié des requêtes de Claude Code.

Le benchmark que personne ne cite

Le propre benchmark de la gateway, jev-gateway-bench, répond à la question de départ. Il a fait tourner 120 sessions, cinq passages par cellule, sur le même Claude Code et le même abonnement que tout le monde utilise, sans serveurs MCP, plugins ni skills. Deux tâches sur un petit moteur d'échecs : une chasse aux bugs avec cinq bugs injectés, et une feature, l'ajout de la notation algébrique.

Modèle, tâche Routage activé vs désactivé
Opus 5, feature +61 % de tokens en entrée, +47 % de requêtes, +83 % de temps (a quand même résolu 5/5)
Sonnet 5, feature +16 % de tokens en entrée, +37 % de temps
Sonnet 5, chasse aux bugs −48 % de tokens en entrée, −25 % de temps

Le débogage est là où le routage paie, selon les mots des auteurs. Leur explication répond à la question posée en ouverture : la gateway ne fait que suggérer avec les modèles Claude, donc un indice qui ne convient pas coûte un détour au lieu d'être ignoré gratuitement.

Codex reçoit la version forcée. Jev décidait de 76 à 100 % des requêtes Codex, contre un tiers à la moitié pour Claude Code. Un modèle dans l'autre harnais est devenu moins cher et faux, trois résolutions sur cinq au lieu de cinq. Moins cher et faux n'est pas une économie.

Les limites sont réelles : cinq passages par cellule est un petit échantillon, c'est un seul moteur jouet, et personne ne l'a rejoué. L'entrée est aussi en grande partie mise en cache, donc une économie en entrée vaut moins qu'une économie en sortie.

Ce que ma session lui donne : 24 outils propre, 40 complet

Que transmet une session Claude Code normale à un routeur à chaque appel ? Le journal du proxy répond : 40 outils. Même dépôt, même prompt d'un seul mot, deux configurations : une installation propre avec une config vide et aucun serveur MCP, et une configuration normale avec ses serveurs et ses plugins.

Installation propre Configuration normale
Outils dans la requête 24 40 (16 issus de serveurs MCP et de plugins)
Tokens de préfixe facturés 47 411 57 277
Tokens en sortie 4 4
Coût équivalent API d'un « ok » 0,07 $ 1,15 $

La liste d'outils, c'est la facture. Les définitions les plus lourdes sont intégrées d'office : l'outil shell à lui seul fait 12 000 caractères, l'outil agent près de 9 000.

La note de bas de page du benchmark relevait six outils et 7 000 tokens sur une installation propre, et 285 outils sur une configuration chargée. Le Claude Code propre d'aujourd'hui embarque bien plus d'outils par défaut, et le cas chargé est plus rare : la plupart des outils MCP se tiennent derrière un outil de recherche, différés, si bien que la liste vue par un routeur reste petite. Quelle que soit sa taille, la gateway envoie cette liste à Jev à chaque requête ; une issue ouverte sur le dépôt indique que le coût complet est payé avant que la plupart des réponses ne soient jetées. Rien de tout cela n'est la faute de Jev, et rien de tout cela n'est à Jev de corriger.

Verdict par usage

Le routage à l'intérieur de Claude Code : non. C'est un indice que le modèle peut ignorer, il a ralenti le travail sur les features sur les deux modèles Claude, et le seul gain se situe sur le débogage. L'exception est une journée de chasse aux bugs sur une très longue liste d'outils, le cas même que le README désigne.

Le plugin de compaction, fast-jev-compaction : pas encore. Il nécessite un flag de hook en accès anticipé, ses issues ouvertes signalent que les hooks ne s'enregistrent pas sur certaines versions, et après une compaction le modèle a rédigé neuf rapports affirmant que le travail était terminé, tous fabriqués. Les praticiens y sont arrivés les premiers : le fil le plus populaire sur le plugin totalise 491 points, et sa principale objection n'est pas la vitesse mais les conditions d'utilisation sur l'envoi des transcriptions à un tiers.

Codex : c'est là la vraie cible. Là, la gateway force l'outil, Jev pilotait jusqu'à chaque requête, et la chasse aux bugs a tourné avec 57 % de tokens en sortie en moins.

Usage Verdict
Routage dans Claude Code Non, sauf chasses aux bugs sur une très longue liste d'outils
fast-jev-compaction Pas encore
Codex Oui

Une chose que la vague a bien faite : la connexion à l'abonnement ne bouge jamais, la gateway ne change qu'une URL. Les limites de cette lecture : cinq passages par cellule, un seul moteur d'échecs, un dépôt de benchmark que personne n'a rejoué, et aucune session routée en propre. J'ai mesuré la liste d'outils et la requête, pas Jev. Jev lui-même est bon marché. Le détour, lui, ne l'est pas.

Sources

Questions fréquentes

Est-ce que Jev rend Claude Code moins cher ?
Non. jev-gateway ne peut que suggérer à l'intérieur de Claude Code, et son propre benchmark montre Opus 5 utilisant 61 % de tokens en entrée en plus, 47 % de requêtes en plus et 83 % de temps en plus sur une tâche de feature avec le routage activé. Sonnet 5 a suivi la même tendance ; le seul gain a été une chasse aux bugs à 48 % de tokens en entrée en moins.
Qu'est-ce que Jev ?
Jev est le modèle de décision de TypeSafe. Il ne génère aucun texte : vous posez une question typée et il renvoie un choix, un score ou une probabilité oui/non en 70 à 500 ms, facturé 0,04 $ par million de tokens en entrée avec une sortie gratuite.
Qu'est-ce que jev-gateway change dans Claude Code ?
Une seule variable d'environnement, ANTHROPIC_BASE_URL, pointée vers un proxy local ; la connexion Pro ou Max reste intacte. Dans son adaptateur, une ligne fixe le mode de pilotage sur indice dès que la réflexion est activée ou que la conversation est en cache, ce qui est le cas de chaque requête Claude Code.
Qu'est-ce que le mode indice de Claude Code ?
Deux phrases ajoutées au dernier message utilisateur : un modèle de routage suggère que cet outil est le choix le plus pertinent maintenant, ignorez ceci si cela ne convient pas. Le modèle est libre de l'ignorer et tool_choice reste sur auto, parce que forcer un outil provoque une erreur avec la réflexion étendue et que changer tool_choice invalide le cache de prompt.
Combien d'outils une requête Claude Code envoie-t-elle ?
Mesuré avec un proxy de journalisation sur Claude Code 2.1.280 : 24 outils et 47 411 tokens de préfixe sur une installation propre, 40 outils et 57 277 tokens de préfixe sur une configuration normale avec serveurs MCP et plugins, pour une réponse de quatre tokens.
Est-ce que fast-jev-compaction vaut le coup d'être installé ?
Pas encore. Il nécessite un flag de hook en accès anticipé, ses issues ouvertes signalent des hooks qui ne s'enregistrent pas sur certaines versions, et un rapport fait état de neuf résumés de travail fabriqués de toutes pièces après une compaction. La principale objection du fil communautaire le plus populaire n'est pas la vitesse mais les conditions d'utilisation sur l'envoi des transcriptions à un tiers.

Vidéos liées