Aller au contenu
Retour au blog

Jev — classer sans payer un LLM à chaque tour

TypeSafe sort Jev, un modèle System One : décisions typées, pas de texte. LangChain en fait un classificateur de harness — routing et auto-mode — à une fraction du coût d’un chat.

6 min de lecture
  • Jev
  • TypeSafe
  • LangChain
  • Agents
  • Harness

Un agent, c’est une boucle : le LLM décide, un outil s’exécute, on réévalue, on recommence. Tool calling et structured output ont rendu ça branchable dans du vrai code. Le coût, lui, n’a pas bougé : chaque micro-décision — urgent ou pas, modèle cheap ou gros, bash dangereux ou non — relance un forward de chat. Sydney Runkle et Hunter Lovell (LangChain, 17 septembre 2026) posent Jev pile là. Pas un LLM de plus. Un classificateur fait pour le harness.

Building a Harness with Jev — article LangChain
LangChain — Jev (TypeSafe AI) dans la boucle agent : décisions typées, pas une autre complétion chat.

Pourquoi ça m’intéresse

Cursor, Claude Code, Codex : tous ont un classificateur avant l’outil dangereux. C’est ce qui rend l’auto-mode vivable. Et c’est resté dans la partie fermée du harness. Dès que tu construis le tien — Hermes, LangGraph, un MCP qui enchaîne — tu paies un LLM pour des oui/non. Jev attaque exactement ça : décision calibrée, pas une phrase.

  • TypeSafe annonce jusqu’à ~200× plus vite et ~400× moins cher que des LLM comparables sur de la classification (leurs benches System One : 193,6× / 444,6×).
  • Prix affiché : 42 $ le milliard de tokens d’entrée — 238× sous Claude Fable 5.1 en input.
  • Ça ne génère pas de texte. Ton code lit une proba et un seuil, puis agit.

Ce que Jev est vraiment

TypeSafe appelle ça un System One model : tu envoies un *state* (texte, JSON, messages LangChain) et des *questions*. Tu reçois des réponses typées + une confiance calibrée. Entraînement : RLCD (reinforcement learning for calibrated decisions), pas du RLHF chat. Le modèle n’essaie pas de te plaire. Il estime P(énoncé).

Trois types de questions, plusieurs en parallèle sur le même state — le temps de réponse bouge à peine, tu paies surtout les tokens des questions :

  • Noul — oui/non. Renvoie noul ∈ [0, 1] : proba que l’énoncé soit vrai.
  • Choice — une option parmi un set. Distribution + score de confiance.
  • Score — un niveau ordonné (low / medium / high). Score continu + distribution.

L’exemple support de leurs docs : un ticket Stripe qui « fail depuis 3 jours, je perds des ventes » → is_urgent.noul = 0.999. Ton routeur priorise. Pas de paragraphe, pas de « je pense que ».

Dans LangChain

Le package langchain-typesafe n’expose pas un chat model. C’est un `TypeSafeClassifier`. Tu .invoke() state + questions, tu lis response.nouls[...].

from langchain_typesafe import Noul, TypeSafeClassifier

classifier = TypeSafeClassifier()

response = classifier.invoke(
    state=(
        "The deploy failed twice and customers are seeing 500s. "
        "Can someone look now?"
    ),
    questions={
        "urgent": Noul(
            instructions="Does this need attention right now?"
        ),
    },
)

urgency = response.nouls["urgent"].noul

Deux middlewares expérimentaux collent au harness :

  • `ModelRouterMiddleware` — Jev lit le dernier message, choisit fast vs powerful selon tes critères. Le lookup ne paie plus un Sol.
  • `AutoModeMiddleware` — Jev inspecte l’appel d’outil (ex. bash) et bloque avant exécution si le risque dépasse le seuil. Le pattern Cursor/Claude, en ouvert, sur n’importe quel create_agent.
from langchain.agents import create_agent
from langchain_typesafe.experimental.middleware import AutoModeMiddleware

guardrail = AutoModeMiddleware(tools=["bash"])
agent = create_agent("openai:gpt-5.6-luna", middleware=[guardrail])

Où ça se branche chez moi

Sur Hermes, le coût d’une session longue n’est plus le gros raisonnement. C’est les centaines de classifs autour : est-ce que ce skill est le bon, est-ce que ce shell est safe, est-ce que je wake un 27B. Jev est le morceau que je mettrais *devant* le modèle — local ou API — pas à la place. LivingColor, revue MCP, triage mail : le LLM écrit et planifie ; Jev dit oui/non assez vite pour ne pas casser la boucle.

Takeaway

Jev n’est pas un concurrent de Qwen 3.8. C’est l’étage que les harness gardaient private : un classificateur calibré, assez cheap pour tourner à chaque tool call. TypeSafe pousse le récit System One (machines, pas chat). LangChain le rend pluggable demain matin. Le test concret, c’est un AutoModeMiddleware sur un agent qui a déjà le droit à bash — et regarder ce qu’il refuse, pas le blog.