Par Tamsi Besson ·
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.
- 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.

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"].noulDeux middlewares expérimentaux collent au harness :
- `ModelRouterMiddleware` — Jev lit le dernier message, choisit
fastvspowerfulselon 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 quelcreate_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.
- Source : langchain.com/blog/building-a-harness-with-jev
- TypeSafe : typesafe.ai
- Package :
langchain-typesafe - Hermes : /blog/hermes-automation-cheaper-models