Sommaire du guide
Autres ressources

Dossier de recherche · travail en cours

Jev
des évaluations probabilistes pour les logiciels

Jev évalue le contexte et les questions de l’application. Il renvoie des probabilités, avec une option sélectionnée pour Choice ou une note pondérée pour Score ; le code décide du traitement.

Dossier en cours · Jev 1.14 et concurrents intégrés le 28 octobre 2026 · Aucun appel à l’API Jev

Exemple : trier un ticket de support

  1. L’application envoie« J’ai été débité 2 fois. »
  2. Elle définit les optionsFacturation · Technique · Autre
  3. Jev évalueUne probabilité pour chaque option
  4. Le code décideOrienter le ticket ou demander une relecture

La réponse est destinée au programme. Un LLM peut ensuite rédiger le message pour le client. Exemple illustratif, sans appel réel.

À retenir

Consulter le glossaire

Les termes en pointillés donnent leur définition au survol, au clavier ou au toucher.

I

Comprendre Jev

01

L’application pose les questions, Jev renvoie des valeurs

Application → Jev → application : le programme fournit la question et exploite la réponse.

Une interface entre logiciels TypeSafe conçoit Jev pour les échanges entre modèles et logiciels. Ici, « machine à machine » désigne une application ou un agent qui appelle une API et utilise sa réponse dans du code. Une personne peut être à l’origine de la demande, définir les règles ou relire un cas ; la réponse de Jev sert directement au programme.

Une personne peut écrire un ticket, mais cela ne fait pas de Jev son interlocuteur. Le logiciel extrait le contexte utile, appelle Jev et lit des valeurs. Il peut ensuite afficher une suggestion à cette personne, déclencher un traitement autorisé ou faire rédiger une réponse par un LLM. Cette séparation explique l’intérêt du produit : certaines étapes ont besoin d’une catégorie, pas d’une conversation.

Pour trier une issue GitHub, vous pouvez fournir son contenu et une liste de catégories. Avec Choice, Jev renvoie l’option retenue et les probabilités associées. Votre application utilise le résultat pour proposer une destination. C’est un exemple d’utilisation de l’API décrite par TypeSafe.

L’appel contient un contexte commun, appelé état ou state, et une ou plusieurs questions. Le programme précise la forme attendue : un choix dans une liste, une note sur une échelle ou la probabilité d’une réponse oui. Il peut ainsi traiter le résultat sans devoir extraire une catégorie d’un paragraphe.

Une requête API, un contexte commun et des questions indépendantes. Les probabilités et la catégorie prédite sont des sorties de Jev ; les règles, les seuils et la décision de traitement sont dans le code. Réponses fictives. Mesurer l’exactitude, la calibration et la part des cas traités exige des cas avec leurs réponses de référence.

Ces 4 infographies originales s’inspirent de Jev Engineering 101, de Daniel Moka, publié le 22 septembre 2026. Elles présentent une organisation possible des traitements, sans décrire les composants internes de Jev. Visuels générés avec OpenAI puis relus ; valeurs d’exemple fictives.

Du résultat de l’API à l’action

4 méthodes à comparer
ApprocheRésultatQuand l’essayerÀ vérifier
Règle ou recherche BM25Correspondance ou score lexicalLe critère peut être écrit et calculé localement.Reformulations manquées, coût de maintenance et calcul local.
Classifieur supervisé à classes fixesClasse et score, parfois une probabilitéDes exemples annotés sont disponibles et les catégories changent peu.Annotation, réentraînement, classes rares et calibration.
JevProbabilités et valeurs typées : option Choice, note Score ou probabilité de oui avec NoulLes critères et les options sont fournis dans chaque appel.Options manquantes, erreurs, probabilités et coût complet.
LLM avec sortie contrainteDonnées structurées et, si demandé, texteLa tâche demande aussi une rédaction ou une extraction libre.Justesse, validation du schéma, coût et latence.
Jev fournit les évaluations ; le code porte la politique de décision, les seuils et les permissions. Un LLM peut aussi classer et produire une sortie structurée. Le programme choisit quels modèles appeler et dans quel ordre.

Un agent peut utiliser cette API pour choisir une destination ou évaluer un document, puis confier la rédaction ou l’enquête à un autre modèle. Cette utilisation ponctuelle ne démontre pas que Jev puisse remplacer le modèle qui pilote Claude Code.

Sur petit écran, les diagrammes peuvent se faire défiler horizontalement. Les figures peuvent être agrandies pour lire leurs libellés.

02

Mis à jour · Version 0.20.0

Les dates du lancement de TypeSafe et Jev

Jev arrive en accès anticipé le 15 septembre 2026. Les dates des plateformes sont distinctes.

Ces informations décrivent l’entreprise ; elles ne valident pas les performances de son modèle.

Repères datés
DateÉvénementSource et portée
2024Fondation déclarée de TypeSafe.Communiqué de l’entreprise diffusé par Business Wire.
15 septembre 2026Lancement de Jev en accès anticipé.Billet de lancement, signé Diogo Almeida.
15 septembre 2026Tour de financement de 40 millions de dollars mené par DCVC.Annonce de l’investisseur, partie intéressée au succès du produit.
16 septembre 2026Annonce de Jev dans Vercel AI Gateway.Changelog Vercel.
17 septembre 2026Date des réponses ASSAY-001 ; mise à jour affichée des limites connues de Jev 1.13.2 observations différentes : une campagne d’essai et une page de documentation.
18 septembre 2026Date affichée dans le catalogue OpenRouter.Fiche de la plateforme, pas date initiale du modèle.
21 septembre 2026Arrêt documentaire de l’édition initiale.Les versions, conditions et résultats ultérieurs pourront modifier le dossier.
28 septembre 2026Ollama 0.35 sert des modèles de décision par /v1/systemone, d’après l’API de Jev : Nimble de Bespoke Labs et Tev1 de Together AI.Note de version Ollama ; ce ne sont pas les poids de Jev.
1er octobre 2026Cloudflare publie Clef et Clef-flash sur Workers AI, poids sous Apache 2.0 ; Strands Labs, rattaché au SDK Strands Agents d’AWS, publie Strands Decider 2B.Changelog Cloudflare ; dépôt Strands Decider.
6 octobre 2026OpenAI ouvre la Decisions API en bêta avec gpt-6-luna.Changelog OpenAI.
9 octobre 2026Series A de 870 millions de dollars à 7,5 milliards de valorisation, menée par Andreessen Horowitz.Annonce TypeSafe ; montant indiqué en note de bas de page.
9 octobre 2026Cloudflare ajoute Clef-omni (audio et vidéo) et baisse le prix de Clef-flash.Billet Cloudflare.
14 octobre 2026Jev 1.14 sous jev-preview ; images, type Box et contexte long derrière des en-têtes expérimentaux.Billet TypeSafe.
22 octobre 2026Disponibilité générale de la Decisions API, jusqu’à 400 questions par requête.Changelog OpenAI.
28 octobre 2026Arrêt documentaire de la version 0.20.0.Les alias, prix et classements cités peuvent changer après cette date.

Diogo Almeida est coauteur d’InstructGPT. Le titre viral « co-inventeur de ChatGPT » réduit un travail collectif à une attribution personnelle ; « auteur principal d’InstructGPT » n’est pas davantage établi par la liste des auteurs. Le fait bibliographique utile est sa contribution à ce travail sur l’apprentissage à partir de retours humains.

Ces références expliquent le nom du produit ; elles ne décrivent pas ses couches neuronales. Origine des noms selon TypeSafe.

03

Mis à jour · Version 0.20.0

Choice, Score et Noul

Choisir une catégorie, noter un résultat ou poser une question oui/non.

Trois questions indépendantes et des valeurs fictives. Choice renvoie une catégorie prédite avec ses probabilités ; Score, une moyenne pondérée et les probabilités par niveau ; Noul, la probabilité de oui. Sélectionner une option dans la réponse ne déclenche aucune action métier. Les règles et les seuils du code déterminent le traitement.
Les 3 types de réponse
TypeQuestion adaptéeRéponse
ChoiceQuelle option retenir parmi celles proposées ?Une option, les probabilités des options et un champ confidence distinct. Maximum documenté : 255 options.
ScoreQuel niveau sur une échelle dont chaque niveau est décrit ?Les probabilités par niveau, une note pondérée dans score, les niveaux dans legend et un champ confidence distinct. La note n’est pas une probabilité de oui.
NoulCette proposition est-elle vraie ?La probabilité de oui, entre 0 et 1. Pas de champ confidence séparé.

La documentation détaille Choice, Score et Noul.

Même ticket, 3 questions différentes
Besoin de l’applicationType de questionExemple pédagogique
Choisir une équipeChoiceFacturation, accès au compte, incident technique, autre. Choice prédit une catégorie. Si plusieurs motifs coexistent, des questions séparées permettent au code d’appliquer sa priorité de traitement.
Évaluer l’impactScore0 : aucun impact décrit ; 1 : gêne contournable ; 2 : fonction indisponible ; 3 : plusieurs utilisateurs bloqués. Une moyenne de 1,7 reste une note sur cette échelle.
Vérifier un critère indépendamment des autresNoulLe message mentionne-t-il un paiement refusé ? Une autre question peut porter séparément sur une connexion impossible.
Des questions indépendantes Plusieurs questions peuvent partager le même contexte. Dans un même appel, cela ne signifie pas que la réponse à la question A sera fournie à la question B. Si B dépend de A, prévoyez des étapes successives dans votre programme.
DIAGRAMME · Une application interroge Jev
L’appel à Jev et le traitement de sa réponse sont des échanges entre logiciels. La personne intervient pour relire les cas prévus par les règles de l’application.
Distinguer « autre » et « informations insuffisantes » Une catégorie « autre » couvre les cas hors taxonomie ; « informations insuffisantes » couvre un manque de contexte. Ce sont 2 situations différentes. Les proposer dans les choix ne garantit pas que Jev les retiendra au bon moment. Leur détection fait partie du test.
Box et images : en option expérimentale depuis Jev 1.14 Le billet du 14 octobre ajoute un type box qui renvoie un rectangle (top, bottom, left, right, en fractions de l’image) et une confidence. Il n’a pas de réponse « absent » : la documentation conseille de le coupler à une question Noul. Box exige jev-1.14.0. Les images, acceptées aussi par jev-1.13.0, et Box passent par l’en-tête TypeSafe-Danger-Zone-Images: true. TypeSafe les juge pas encore prêtes pour la production.
04

Probabilités et confidence

Jev peut attribuer une forte probabilité à une réponse fausse.

La probabilité d’une option et le champ confidence répondent à 2 questions différentes.

Pour évaluer la calibration de Choice, prenez les cas où l’option retenue reçoit une probabilité proche de 80 %. Comparez ce nombre à la proportion de réponses réellement correctes. Cet exemple est pédagogique : aucun résultat Jev n’est mesuré ici. Avec Noul, vérifiez plutôt si les événements auxquels Jev attribue une probabilité de oui proche de 80 % se produisent dans environ 80 % des cas.

3 nombres, 3 lectures
Nombre fictifCe qu’il exprimeCe qu’il ne permet pas de conclure
P(facturation) = 0,80Probabilité attribuée à l’option facturation dans cet appel.Ce ticket précis a été correctement routé.
confidence = 0,80Valeur d’un indicateur de concentration de la distribution.80 % de chances d’avoir raison.
80 réponses correctes sur 100 à P ≈ 0,80Fréquence observée compatible avec la probabilité dans ce groupe, sous réserve de l’incertitude d’échantillonnage.Bonne calibration pour toutes les classes, toutes les probabilités et tous les domaines.
DIAGRAMME · Même prédiction, résultats différents
Chiffres fictifs, sans résultat Jev. Le même niveau de probabilité peut être cohérent dans un domaine et surestimer la réussite dans un autre. 100 cas ne donnent pas une fréquence exacte pour la population.

Ces comparaisons exigent des réponses de référence, assez d’exemples et un jeu de test qui n’a pas servi au réglage. Guo et al., 2017 présente les méthodes de calibration. Une bonne moyenne sur un jeu ne garantit pas chaque décision ni les résultats sur un autre domaine.

DIAGRAMME · 4 mesures à séparer
4 contrôles distincts, sans déduction automatique de l’un à l’autre. Le format se contrôle sur une réponse ; calibration et utilité de l’automatisation s’évaluent sur un ensemble de cas.

Mesurez aussi la couverture : quelle part des cas l’application traite-t-elle sans relecture ? Un système qui laisse presque tout à un humain peut faire peu d’erreurs tout en automatisant très peu. SelectiveNet étudie ce compromis. Ovadia et al. examine ce qui arrive aux mesures d’incertitude lorsque les données changent. Ces travaux ne portent pas sur Jev.

Le « 0 hallucination » de TypeSafe Le billet de lancement affirme d’abord que Jev ne peut pas halluciner. Sa section sur les types précise pourtant que le 0 affiché n’est pas empirique : il représente la conformité au schéma annoncée par le fournisseur. Ce chiffre ne mesure donc pas les erreurs de décision. Une catégorie autorisée par le schéma peut être la mauvaise.

TypeSafe annonce aussi qu’une confidence plus élevée accompagne une meilleure justesse dans son billet de lancement. Cette relation se teste : les réponses d’ASSAY-001 permettent de mesurer la justesse et la couverture après sélection par confidence. Cela ne transforme pas ce champ en probabilité de réussite ; le chapitre sur les mesures détaille les 2 calculs.

Le chapitre « Probabilités mesurées et seuils de confidence » distingue 2 mesures : la calibration des probabilités de l’option choisie et l’exactitude des réponses retenues par un seuil sur confidence. Les données ASSAY-001 permettent de recalculer les 2 ; Agent Journal rapporte la seconde sur une autre tâche.

Dans les vidéos, cette distinction est parfois perdue : Fireship à 03:15 assimile la confiance à une fréquence de bonnes réponses. Le chapitre vidéo corrige cette explication et conserve le passage original.

05

Ce que TypeSafe décrit du fonctionnement de Jev

TypeSafe décrit son objectif d’apprentissage, mais les documents trouvés ne suffisent pas à reproduire le modèle.

Un LLM génératif autorégressif construit sa réponse en prédisant les tokens suivants à partir du contexte et de ce qu’il a déjà produit. C’est le fonctionnement décrit dans la documentation de génération de Hugging Face. La sortie peut être du texte libre ou du JSON, éventuellement contraint par un schéma.

TypeSafe annonce une architecture nouvelle et un échantillonnage parallèle dans son billet de lancement. L’API reçoit un état et des questions typées, puis renvoie leurs résultats. Selon le fournisseur, les sorties sont calculées en parallèle plutôt que générées token après token. Le dessin compare ce comportement annoncé au fonctionnement d’un LLM autorégressif ; il ne décrit pas les composants internes de Jev.

La différence mise en avant porte sur l’usage prévu : Jev fournit des réponses typées et des probabilités que le code utilise dans sa logique de décision. Un LLM peut lui aussi être appelé par un logiciel et produire une sortie structurée ; dans une conversation, son texte est lu par une personne. Il faut donc distinguer le destinataire de la réponse et la façon dont le modèle la produit.

DIAGRAMME · 2 façons de produire une réponse
Comparaison simplifiée entre une boucle de génération courante et les entrées et sorties de l’API Jev. Le bloc en pointillés représente les détails internes non décrits par les sources consultées. Les flèches n’indiquent ni un temps de calcul ni un nombre de passages dans le réseau neuronal.

TypeSafe appelle son procédé d’apprentissage RLCD, pour Reinforcement Learning for Calibrated Decisions. Son introduction technique en expose l’objectif. « System One » est le nom de la famille de modèles, pas la description d’une architecture publiée.

La recherche menée pour ce dossier n’a pas trouvé de publication donnant assez de détails sur l’architecture, les données et l’objectif d’entraînement pour reproduire Jev. D’autres documents peuvent exister hors de ce périmètre. Dans l’entretien ThursdAI à 05:59, l’intervenante de TypeSafe évoque RLCD sans divulguer l’architecture. Décrire Jev comme un modèle « sans raisonnement interne » dépasserait les informations disponibles.

9 publications de contexte, sans recette de Jev
PublicationApport pour les essaisRapport avec Jev
Guo et al., ICML 2017Calibration et diagrammes de fiabilitéCadre de mesure, pas implémentation Jev
SelectiveNet, ICML 2019Erreur parmi les cas acceptés et couvertureCadre d’abstention
Ovadia et al., 2019Incertitude sous changement de distributionMotif pour tests FR/EN et hors domaine
BERT, NAACL 2019Représentation du texte pour la classificationTravail antérieur ; aucun lien avec l’architecture interne de Jev établi
ModernBERT, 2024Modèle à comparer pour traiter et classer du texteSon adaptation à la tâche a un coût à compter
RouteLLM, ICLR 2025Qualité finale et coût du routageTâche connexe
InstructGPT, 2022Participation de Diogo Almeida au travail RLHFBiographie, pas article Jev
SCX Router, 2026Routage sans génération autorégressiveRésumé seul ; PDF non acquis
Rewarding Doubt, v6Apprentissage de la confiance par récompense logarithmique ; PDF acquis et passages étudiésTravail de contexte, sans filiation avec Jev établie
Méthode de recherche des publications
  • La collecte initiale a fourni 7 PDF, soit 151 pages. Rewarding Doubt ajoute un PDF de 17 pages dans cette révision : 8 PDF et 168 pages extraites au total.
  • Les passages étudiés sont indiqués dans les registres ; l’ensemble des pages n’a pas fait l’objet d’une lecture exhaustive.
  • SCX Router reste consulté sous forme de résumé.

Paper Insights n’a trouvé aucun résultat local sur Jev ou TypeSafe dans le corpus interrogé. Ses recherches arXiv distantes ont échoué ; cet échec n’est pas un résultat négatif de recherche. Les PDF ont été récupérés séparément auprès de leurs éditeurs ou auteurs.

Les résumés de DeepSeek-R1 et Tülu 3 complètent cette sélection sans compter comme PDF acquis. Le chapitre suivant explique leur rapport avec l’apprentissage de Jev.

Dans mes autres ressources Pour placer ce type de décision dans une chaîne d’agents, mon guide Concevoir les boucles et les étapes d’un agent (EN) explique où définir les étapes, les conditions d’arrêt et les responsabilités.
06

RLCD comparé aux méthodes d’apprentissage connues

Le nom de la méthode ne fournit ni sa recette ni une garantie sur les probabilités livrées.

DIAGRAMME · Qu’est-ce qui guide l’apprentissage ?
Comparaison simplifiée des signaux et des objectifs. Les pointillés indiquent que la recette de RLCD n’est pas détaillée dans les sources consultées. Quelle que soit la méthode, la calibration reste à mesurer sur des cas réservés au test.
Objectifs à distinguer
MéthodeSignal utiliséLimite de la comparaison avec Jev
Apprentissage superviséExemples avec labels ; une fonction de perte peut entraîner une distribution de probabilités.Les classifieurs ne sont pas limités à maximiser le taux de bonnes classes. Leur calibration reste à mesurer.
RLHFRetours humains, souvent via des préférences et un modèle de récompense.InstructGPT décrit un travail auquel Diogo Almeida a participé ; ce n’est pas la méthode publiée de Jev.
RLVRRécompense fondée sur une vérification, par exemple une réponse ou un résultat contrôlable.DeepSeek-R1 et Tülu 3 apportent du contexte, sans décrire le modèle de TypeSafe.
RLCDObjectif annoncé de décisions calibrées.La récompense exacte, les données, les ablations et les composants internes ne sont pas détaillés dans les sources consultées.

Une fonction de perte classique peut déjà encourager des probabilités correctes. Pour un événement de probabilité réelle q, l’espérance du score logarithmique q·log(p) + (1−q)·log(1−p) est maximale en p = q. Ce résultat théorique ne garantit pas qu’un modèle entraîné sur des données finies sera calibré sur un nouveau domaine. Cette formule illustre un principe ; elle n’est pas attribuée à RLCD.

Le papier Rewarding Doubt, version 6 étudie l’apprentissage d’une confiance exprimée en texte, avec une récompense logarithmique et PPO.

Aucun lien publié avec Jev n’a été établi.

Les résumés et historiques de DeepSeek-R1 et Tülu 3 complètent le contexte du post-entraînement. Leurs expériences n’ont pas été auditées pour ce dossier. Ils ne fournissent aucune preuve sur le nombre de paramètres, le backbone ou les données d’entraînement de Jev.

Dans l’entretien TechCrunch du 18 septembre, Diogo Almeida déclare que Jev est entraîné exclusivement sur des données synthétiques. Cela reste une déclaration rapportée : ni le corpus ni sa procédure de génération n’ont été audités ici. Des données synthétiques peuvent aussi dériver d’autres modèles ou de sources existantes ; cette qualification ne démontre pas une absence de contamination des benchmarks.

Informations encore manquantes pour reproduire Jev
ÉlémentCe qu’une publication devrait préciser
ArchitectureComposants, dimensions, nombre de paramètres et calcul effectué à l’inférence.
ApprentissageRécompense, optimisation, données et étapes d’entraînement.
CalibrationÉvénement visé, métriques, jeux réservés et résultats par domaine.
AblationsEffet séparé de l’architecture, des données et de la méthode d’apprentissage.
ReproductionPoids ou accès versionné, code et protocole suffisamment précis.
Aucune publication trouvée dans cette recherche Aucun article détaillant Jev ou RLCD n’a été identifié dans les recherches et sources officielles consultées au 21 septembre. Un moteur sans résultat, une erreur d’accès à arXiv ou l’absence de poids dans une recherche Hugging Face ne prouvent pas une absence universelle.
07

Appeler l’API et lire ses réponses

Un exemple HTTP complet, puis les différences utiles avec les SDK Python et TypeScript.

La référence HTTP documente POST https://api.typesafe.ai/v1/systemone, avec un jeton Bearer et un corps JSON contenant model, state et questions. GET /v1/models sert à lister les modèles : /v1/systemone n’est donc pas l’unique route de tout le service.

Requête et réponse illustratives

Le ticket ci-dessous mentionne un paiement échoué et un accès au compte bloqué. Choice évalue la catégorie principale ; sa réponse ne fixe pas la priorité de traitement. Pour détecter les deux motifs puis appliquer une priorité dans le code, voir la démonstration hors réseau du tutoriel.

  • Les 2 objets JSON ont été analysés syntaxiquement ; les exemples SDK de ce chapitre ont été relus contre les sources des clients, sans exécution.
  • Le tutoriel Premier appel utilise un autre script Python, exécuté avec le SDK installé et un transport simulé.
  • Aucun appel à Jev n’a produit les valeurs affichées.
  • Une clé API doit rester dans l’environnement du serveur.
Corps JSON : 3 questions sur un ticket
JSON POST /v1/systemone · requête illustrative 33 lignes
{
  "model": "jev-1.13.0",
  "state": {
    "ticket": "Le paiement a échoué et je ne peux plus accéder à mon compte.",
    "language": "fr"
  },
  "questions": {
    "destination": {
      "type": "choice",
      "instructions": "Quelle catégorie décrit le mieux le sujet principal du ticket ? Évaluer les catégories à partir du texte fourni.",
      "criteria": {
        "facturation": "Paiement refusé, facture ou remboursement.",
        "acces_compte": "Connexion impossible ou accès au compte bloqué.",
        "incident_technique": "Panne ou erreur technique hors paiement et accès au compte.",
        "autre": "Aucun des sujets précédents."
      }
    },
    "payment_failed": {
      "type": "noul",
      "instructions": "Le message signale-t-il un paiement refusé ou échoué ?"
    },
    "impact": {
      "type": "score",
      "instructions": "Évaluer l'impact décrit, uniquement à partir du texte.",
      "criteria": [
        "Aucun impact décrit.",
        "Gêne contournable.",
        "Fonction indisponible pour la personne.",
        "Plusieurs utilisateurs bloqués."
      ]
    }
  }
}
Champs natifs documentés
TypeRéponseLecture par le programme
Choicetype, choice, probabilities, confidenceLire le choix et la distribution ; maximum de 255 options.
Scoretype, score, legend, probabilities, confidenceÉchelle de 2 à 10 niveaux ; score peut être fractionnaire.
Noultype, noulnoul est un nombre entre 0 et 1 ; convertir en booléen dépend d’une règle de l’application.
Réponse JSON : les 3 réponses dans la même enveloppe

Structure conforme aux champs de la référence HTTP, avec des valeurs fictives pour apprendre à lire la réponse. Les probabilités, confidence et compteurs de tokens ci-dessous ne sont pas des résultats de Jev. Aucun calcul de confidence n’est reproduit ici.

JSON Corps de réponse illustratif · aucune mesure API 41 lignes
{
  "model": "jev-1.13.0",
  "answers": {
    "destination": {
      "type": "choice",
      "choice": "facturation",
      "probabilities": {
        "facturation": 0.88,
        "acces_compte": 0.08,
        "incident_technique": 0.03,
        "autre": 0.01
      },
      "confidence": 0.81
    },
    "payment_failed": {
      "type": "noul",
      "noul": 0.97
    },
    "impact": {
      "type": "score",
      "score": 1.7,
      "legend": {
        "0": "Aucun impact décrit.",
        "1": "Gêne contournable.",
        "2": "Fonction indisponible pour la personne.",
        "3": "Plusieurs utilisateurs bloqués."
      },
      "probabilities": {
        "0": 0.0,
        "1": 0.3,
        "2": 0.7,
        "3": 0.0
      },
      "confidence": 0.6
    }
  },
  "usage": {
    "input_tokens": 500,
    "output_tokens": 80
  }
}
  • answers reprend les 3 identifiants de questions.
  • Dans impact, les clés JSON « 0 » à « 3 » correspondent aux positions de criteria : 0 × 0 + 1 × 0,3 + 2 × 0,7 + 3 × 0 = 1,7.
  • Noul fournit directement une probabilité binaire.
  • Pour Choice et Score, confidence résume la concentration de la distribution ; il ne donne pas le taux de réponses correctes. La calibration se vérifie sur des réponses annotées. Définition de confidence.

L’enveloppe contient model, answers et usage.

Les structures et codes d’erreur figurent dans la référence native.

Python : lire une réponse Choice

Le client Python expose des accesseurs par type, dont response.choices. Ces accesseurs appartiennent au SDK ; ce ne sont pas des clés de la réponse JSON native. L’exemple reprend uniquement la question de destination.

Python Python · exemple non exécuté 28 lignes
"""Exemple documentaire, non exécuté pour ce dossier.
Requiert typesafe-sdk et TYPESAFE_API_KEY dans l'environnement.
Exemple limité à la question Choice du fichier request.json.
"""
from typesafe_sdk import Choice, TypeSafeClient

with TypeSafeClient() as client:
    response = client.system_one(
        model="jev-1.13.0",
        state={
            "ticket": "Le paiement a échoué et je ne peux plus accéder à mon compte.",
            "language": "fr",
        },
        questions={
            "destination": Choice(
                instructions="Quelle catégorie décrit le mieux le sujet principal du ticket ? Évaluer les catégories à partir du texte fourni.",
                criteria={
                    "facturation": "Paiement refusé, facture ou remboursement.",
                    "acces_compte": "Connexion impossible ou accès au compte bloqué.",
                    "incident_technique": "Panne ou erreur technique hors paiement et accès au compte.",
                    "autre": "Aucun des sujets précédents.",
                },
            ),
        },
    )
    answer = response.choices["destination"]
    # Aucune action automatique : les seuils exigent une évaluation propre.
    print(response.model, answer.choice, answer.probabilities, answer.confidence)

Guide du SDK Python.

TypeScript : retrouver les options dans le type de la réponse

Le helper choice conserve les noms des options dans le type de la réponse : answer.choice peut valoir facturation, acces_compte, incident_technique ou autre, et probabilities porte les mêmes clés. Choice est déjà inféré dans cet exemple ; la garde sur answer.type vérifie seulement l’étiquette reçue à l’exécution. Elle ne valide pas tout le contenu de la réponse. L’exemple journalise une proposition.

TypeScript TypeScript · exemple non exécuté 26 lignes
// Exemple documentaire, non exécuté pour ce dossier.
// Requiert @typesafe-ai/sdk et TYPESAFE_API_KEY côté serveur.
// Exemple limité à la question Choice du fichier request.json.
import { choice, TypeSafeClient } from "@typesafe-ai/sdk";

const client = new TypeSafeClient();
const response = await client.systemOne({
  model: "jev-1.13.0",
  state: {
    ticket: "Le paiement a échoué et je ne peux plus accéder à mon compte.",
    language: "fr",
  },
  questions: {
    destination: choice("Quelle catégorie décrit le mieux le sujet principal du ticket ? Évaluer les catégories à partir du texte fourni.", {
      facturation: "Paiement refusé, facture ou remboursement.",
      acces_compte: "Connexion impossible ou accès au compte bloqué.",
      incident_technique: "Panne ou erreur technique hors paiement et accès au compte.",
      autre: "Aucun des sujets précédents.",
    }),
  },
});
const answer = response.answers.destination;
// Choice est déjà inféré ici ; cette garde vérifie seulement le type reçu.
if (answer.type === "choice") {
  console.log(response.model, answer.choice, answer.probabilities, answer.confidence);
}

Types des réponses JavaScript v0.6.0, helper choice.

Reproductibilité et erreurs
PointConsigne pratique
VersionLes clients documentent jev-latest par défaut. Demander un identifiant versionné comme jev-1.13.0, conserver le modèle renvoyé et la date du test. La documentation conseille cet épinglage, sans engagement d’immutabilité de l’infrastructure identifié ici.
Authentification ou requête invalideDistinguer 401 et 422 des erreurs réseau. Corriger la cause ; une répétition identique ne la résout pas nécessairement.
Quota ou surchargeDocumenter 429/529, attente et tentatives supplémentaires. Une erreur de transport ne signifie pas « aucun candidat ».
Temps SDKLe temps total peut inclure plusieurs tentatives ; le comparer à un temps serveur seul serait trompeur.
StabilitéAucune garantie bit à bit n’a été identifiée dans les documents lus. Tester les répétitions séparément des variantes de formulation.

Ces réglages doivent accompagner les mesures de latence. Reprises JavaScript, options JavaScript, politique de reprise Python.

Des différences entre les SDK et la documentation HTTP
  • Le client JavaScript autorise des instructions absentes ou nulles que la référence HTTP décrit comme requises et non nulles. L’acceptation de ces valeurs par le serveur n’a pas été testée ; les exemples les évitent.
  • La divergence sur usage touche aussi les mesures de coût : les compteurs peuvent être absents dans le client Python.

Les déclarations de types ne suffisent donc pas à établir les valeurs effectivement reçues.

Dans mes autres ressources Mon guide Routage, erreurs et reprise humaine (EN) montre comment exploiter une sortie structurée pour orienter le traitement, gérer une erreur ou demander une relecture. Une branche de code déterministe ne garantit pas que le signal fourni par le modèle soit juste.
08

Écrire des questions que le code peut exploiter

Le contexte, la liste de réponses et les règles d’assemblage font partie du système évalué.

Considérons un ticket : « Le paiement a échoué et je ne peux plus accéder à mon compte. » Demander « Quelle équipe ? » impose une priorité qui n’est pas écrite. Une liste exhaustive ne résout pas cette ambiguïté. Définissez d’abord la règle métier : 1 seule équipe pilote-t-elle l’incident, plusieurs étiquettes sont-elles autorisées, ou le cas doit-il être relu ?

Préparer l’appel
ÉlémentMauvaise spécificationSpécification à tester
ContexteLe titre seul d’une ancienne issue.Le titre, la description et les éléments disponibles au moment de la décision.
QuestionEst-ce important ?Le correctif rétablit-il une fonction utilisée par les clients, d’après la PR fournie ?
ChoixFeature / Enhancement sans définition.Catégories décrites pour la classification ; questions séparées si les motifs se recouvrent, puis priorité de traitement appliquée dans le code.
BarèmeNote de 1 à 5 sans repères.Description de chaque niveau avec des exemples proches des données réelles.
AssemblageLe modèle décide implicitement de toute la politique.Le code combine les signaux selon une règle écrite et contrôlable.

Décomposer peut aider : détecter séparément le sujet, les informations manquantes et l’impact, puis appliquer une règle. Cela ajoute aussi des possibilités d’erreur.

Une extraction avec Choice reste bornée aux valeurs candidates. Pour sélectionner une date, il faut que les dates possibles aient déjà été trouvées ou énumérées. Un exemple de choix parmi 3 dates ne prouve pas que Jev peut extraire librement n’importe quelle valeur d’un document. Vérifiez séparément la qualité de l’étape qui produit les candidats.

Faire rédiger une explication à partir du cas et vérifier ses citations Un LLM peut rédiger une explication à partir du ticket, des règles et de la décision proposée. Cette rédaction ne révèle pas le raisonnement interne de Jev. Demandez au rédacteur de citer les éléments du dossier, puis contrôlez leur présence.
II

Examiner les résultats

09

Jev : intéressant, révolutionnaire ou « scam » ?

Un service à tester pour des évaluations précises. La rupture scientifique reste à démontrer, les promesses commerciales à comparer et l’accusation de tromperie à étayer.

Mon avis, selon les sources examinées au 22 septembre 2026
QualificationAvis du dossierPourquoi
Intéressant pour une applicationOui, à tester sur une tâche précise.Des valeurs directement utilisables dans le code et des temps de réponse courts peuvent servir au tri ou au routage. Les essais publiés donnent des résultats contrastés. Il faut comparer les erreurs et le coût complet aux règles, classifieurs et LLM adaptés au même besoin.
Révolution scientifiqueNon démontrée dans les sources examinées.La classification zero-shot existait déjà. TypeSafe ne publie pas assez de détails sur l’architecture et RLCD pour établir ce qui est nouveau. Cela ne prouve pas non plus que rien ne l’est.
MarketingDes promesses qui demandent des limites explicites.Les multiplicateurs de vitesse et de prix viennent de comparaisons choisies par TypeSafe. Le « 0 hallucination » décrit une conformité de format, pas une absence de mauvaises décisions.
Scam / escroquerieAccusation non établie.Une API, des SDK et des essais publics existent. Cela ne suffit pas à écarter toute tromperie, mais les critiques recensées ici n’en établissent pas une. Une technique ancienne, un modèle fermé ou une mauvaise réponse ne sont pas, à eux seuls, une preuve d’escroquerie.
Verdict provisoire au 21 septembre 2026 Jev dispose d’une API documentée, de SDK publics et de rapports d’essais accompagnés de données. Les sources consultées ne permettent ni d’établir une tromperie justifiant le mot « scam », ni de confirmer la rupture scientifique annoncée. Son intérêt pratique reste une question mesurable : quelles évaluations peut-il fournir, avec quelles erreurs et à quel coût complet ?
Un exemple de classification, puis 2 façons de définir les catégories. Le NLI zero-shot est un antécédent, pas une description de l’architecture de Jev. Résultat fictif, aucun appel à Jev. Infographie générée avec Gemini et relue ; une catégorie autorisée peut être incorrecte.

La classification et les catégories fournies à l’appel existaient déjà. Un classifieur associe une entrée à des catégories. Avec l’inférence en langage naturel, ou NLI, on peut transformer une catégorie en proposition, puis demander si le texte la confirme. Les catégories n’ont donc pas toujours besoin d’être figées dans une tête entraînée pour 1 seule tâche. Le travail de Yin et al. en 2019 et le pipeline zero-shot de Hugging Face donnent des antécédents concrets à comparer à Jev.

L’API Jev réunit des questions Choice, Score et Noul sur un état commun. Cela facilite leur utilisation dans du code, sans réentraîner un modèle pour chaque ensemble d’options. Ce service peut simplifier le développement d’une application même si les techniques employées existaient déjà. Cette facilité d’utilisation ne prouve pas, à elle seule, une nouvelle architecture ou une meilleure calibration.

Séparer les critiques et les faits à vérifier
AffirmationCe qui est documentéCe qui reste à établir
« C’est juste un classifieur »La fonction de classification et le zero-shot ont des antécédents. Jev renvoie aussi des notes et des probabilités pour les questions oui/non.La qualité sur des critères nouveaux, le coût d’intégration et l’avantage sur les comparateurs adaptés.
« Une nouvelle famille de modèles »TypeSafe annonce une architecture, un échantillonnage parallèle et un apprentissage RLCD.La méthode complète, les données et les ablations nécessaires pour juger la nouveauté scientifique.
« 0 hallucination »TypeSafe décrit une garantie de conformité au schéma et précise que son 0 % n’est pas une mesure empirique.Le taux de mauvaises décisions parmi les réponses conformes. Une option autorisée peut être fausse.
« Jusqu’à 200 fois plus rapide »Les multiplicateurs de lancement dépendent des workflows, des concurrents et des réglages choisis par TypeSafe.Le gain sur le workflow du lecteur, à qualité comparable et avec les sorties dont son application a besoin.
« C’est un scam »L’opacité et des promesses trop larges alimentent une critique du produit. Des essais publiés permettent toutefois d’en examiner le comportement.Un fait de tromperie précis. Ni une technologie ancienne, ni un modèle fermé, ni un mauvais résultat isolé ne suffisent à le démontrer.

Le billet de lancement de TypeSafe expose lui-même des limites :

L’adaptateur demande aux LLM des distributions de probabilités, plus coûteuses à produire qu’une décision seule. Comparer les mêmes sorties est utile pour évaluer ce que renvoie l’API ; une application qui ne demande qu’une catégorie doit aussi tester ce besoin plus restreint.

Une API ne révèle pas son architecture interne L’expression « un appel » décrit l’interface. Elle ne démontre pas un unique passage dans un réseau, un nombre de paramètres ou l’usage de ModernBERT. Les descriptions de TypeSafe et les implémentations ouvertes inspirées de Jev ne donnent pas accès aux mêmes éléments. L’absence de détails publics limite l’évaluation de la nouveauté ; elle ne démontre pas que cette nouveauté est inexistante.
Choisir des comparateurs qui répondent à la même question
ApprocheCe qu’elle permetCe qu’il faut compter
Règles et graphe de codeCalculer une relation ou appliquer une politique explicite. Pixel fournit des recherches, classements et analyses fondés sur son index.Couverture de l’index, limites de l’analyse et entretien des règles. Un résultat déterministe peut rester incomplet.
Encodeur et classifieur entraînéApprendre une tâche stable à partir d’exemples annotés ; comparer aussi une tête légère sur des embeddings gelés.Annotation, entraînement, matériel, exploitation et évolution des catégories. Le coût local n’est pas nul.
NLI zero-shotÉvaluer des catégories décrites à l’appel en construisant des paires texte/hypothèse.Nombre et longueur des paires, taille des lots et matériel. 77 catégories ne signifient pas nécessairement 77 appels séquentiels.
JevFournir des questions et des critères à l’appel, puis recevoir des valeurs typées.Conception des questions, évaluation locale, tokens d’entrée, réseau, relecture et dépendance au service.
LLM avec sortie contrainteInterpréter des consignes et produire des champs conformes à un schéma supporté.Contraintes réellement activées, refus et troncatures, tokens générés, réglage du raisonnement et erreurs de fond.
Modèle ouvert de décisionExécuter et adapter une implémentation inspectable, par exemple Laya ou un moteur NLI.Qualité du checkpoint exact, données d’ajustement, calibration et coût du service local. Une interface compatible ne reproduit pas Jev.

Les sorties structurées de Claude contraignent déjà le décodage selon les schémas pris en charge. La documentation détaille les limites, dont les refus, les troncatures et une exception de casse pour les valeurs enum et const. Il faut distinguer une consigne « réponds en JSON », un mode garantissant la syntaxe JSON et un décodage contraint par schéma. Présenter tous les LLM comme incapables de respecter un schéma fausserait la comparaison. La conformité du format ne garantit la bonne décision chez aucun des concurrents.

Pixel est le projet de Livio Gamassia. Comme moi, Livio est un membre actif de la communauté DevWithAI. Les sources inspectées sont décrites dans le chapitre sur les projets communautaires. Son routage, son graphe et ses scores explicites permettent déjà de prendre des décisions dans leur périmètre. Les embeddings ajoutent une recherche sémantique ; ils ne transforment pas tous les résultats en preuves exactes. Aucune comparaison exécutée ici n’établit que Pixel et Jev traitent avec la même qualité tous les critères exprimés en langage naturel.

Les projets publics ne remplacent pas les tests Un dépôt montre qu’un auteur propose du code. Son nombre d’étoiles ne mesure ni la qualité des décisions ni son utilisation en production. Un README de benchmark est plus instructif lorsqu’il fournit le protocole, les versions et les réponses brutes. Une liste de projets, un commentaire et un résultat expérimental ne comptent pas comme 3 confirmations équivalentes.

Sur Hacker News, la description comme classifieur est acceptée. Le 15 septembre, petesergeant décrit Jev comme un classifieur zero-shot. CompleteSkeptic répond « exactly right! ». Ce compte se présente comme CEO de TypeSafe dans le même fil. Cet accord porte sur une description fonctionnelle ; il ne publie pas l’architecture ni ne valide les performances annoncées.

La discussion distingue aussi type valide et réponse correcte. Sur la publication de l’architecture, le même compte indique que l’équipe a discuté d’un article, tout en gardant les détails confidentiels. Ce commentaire ne donne ni engagement de publication ni date.

Les 5 fils Reddit consultés
Questions et réactions publiques, consultées le 21 septembre
Fil et communautéSujet de discussionPortée de la source
JEV architecture · r/LocalLLaMAHypothèses sur les logits, l’architecture et l’intérêt du coût ou de la vitesse.Interprétations de participants ; aucun accès à l’architecture interne de Jev.
Jev, BERT généralisé ? · r/LocalLLaMAComparaison avec les encodeurs et liens vers des travaux de classification.Pistes de comparaison. Le fil appartient à LocalLLaMA, pas à accelerate.
Résumé en 45 secondes · r/accelerateReprise de messages X ; désaccord sur la nouveauté du classifieur.Publication de stealthispost, pas un protocole de test.
Faire choisir des lettres · r/accelerateRéactions à une utilisation de Choice pour produire des lettres.Même compte de publication ; une démonstration détournée ne décrit pas le mécanisme interne du modèle.
Classer ses emails · r/accelerateDiscussion sur les limites du terme classifieur et sur les consignes en langage naturel.Même compte de publication ; ni corpus, ni code, ni mesure dans la page consultée.

Ces 5 fils réunissent des opinions divergentes et des reprises de publications.

  • Les 3 fils d’accelerate ne constituent pas 3 expériences indépendantes.
  • Les pages consultées ne permettent pas d’estimer un consensus ; leurs dates exactes n’ont pas pu être confirmées à partir des âges relatifs affichés.
  • Les citations introuvables dans les pages accessibles ont été écartées.

L’antériorité d’une idée et la copie d’un travail sont des questions distinctes. Nandakishor M, auteur de Laya, revendique des travaux antérieurs sur les décisions non autorégressives. Des notices de prépublications de 2025 existent ; son billet reconnaît aussi que son premier système ne traitait pas de nouvelles questions à l’exécution. Ces éléments permettent de discuter la nouveauté revendiquée. Ils ne démontrent pas que TypeSafe a repris son code ou sa méthode. Les résumés ont été consultés, sans audit des PDF.

Les analyses vidéo confrontent aussi les avis favorables aux contre-exemples : jeu de dames de Theo, erreurs décrites par Gary Explains et tri de commentaires d’Erwan. Les réserves de Fireship sur le format sont utiles ; son explication de confidence demande une correction. Aucun de ces passages n’établit à lui seul une escroquerie.

Une levée record ne mesure pas la qualité

Le 9 octobre, TypeSafe annonce 870 millions de dollars à 7,5 milliards de valorisation, 24 jours après le lancement. Les chiffres d’adoption ne sont ni audités ni définis :

  • TypeSafe écrit qu’un tiers du Fortune 500 utilise Jev ;
  • Andreessen Horowitz, qui mène le tour, écrit que 25 % l’ont intégré ;
  • l’étude de cas Jack & Jill annonce 88 % de coût en tokens en moins sur la seule étape de tri initial, face à Gemini 3.1 Flash Lite ; l’écart de qualité mesuré n’est pas significatif (IC à 90 % de -0,4 à +1,8 point).

L’arrivée de modèles ouverts qui reprennent la même interface change aussi le débat sur le « scam » : le format est reproductible, la qualité se compare tâche par tâche. Voir les concurrents.

10

Prix et vitesse annoncés

TypeSafe publie un tarif et annonce des gains de vitesse et de coût. Ces gains dépendent des tests et des modèles comparés.

Chiffres du fournisseur et périmètre annoncé
ChiffreSource et conditionsÀ mesurer pour votre usage
70 à 500 msBillet TypeSafe du 15 septembre ; mesures généralement lancées depuis des ordinateurs sur la côte Ouest américaine, près du service.Temps depuis votre région, charge, erreurs et p95.
40× à 200× ; 193,6× plus rapide et 444,6× moins cherLe billet rattache les 2 derniers ratios aux workflows publiés et les situe dans le haut des gains attendus en pratique.Même tâche, mêmes sorties et qualité obtenue, avec les réglages de chaque comparateur.
42 $ par milliard de tokens d’entréeTarif direct, soit 0,042 $ par million.Tous les appels, reprises et traitements en aval.
Sorties gratuitesPrix de sortie nul annoncé. TypeSafe reconnaît que seul le temps permettra de juger si ce tarif est soutenable sans subvention.Prix de la route utilisée et conditions en vigueur ; aucune durée illimitée garantie établie ici.

Le chiffre de 150 ms figurait dans le post LinkedIn à l’origine de cette recherche. Je n’ai pas retrouvé de source primaire qui en fasse une latence générale du service. La plage du billet et les mesures datées des essais sont plus utiles pour préparer une comparaison.

Comparer les mêmes sorties Un LLM qui doit produire les probabilités de toutes les options travaille davantage que s’il doit renvoyer 1 seule étiquette. Comparez les sorties dont votre application a besoin, avec leur qualité, leur coût et leur temps de réponse. Le schéma de comparaison de toute la chaîne présente les postes à compter pour les règles, Jev et un LLM à sortie contrainte.
Reconstituer une comparaison
ÉlémentQuestion à poser
TâchesLes mêmes cas et les mêmes informations sont-ils fournis à chaque méthode ?
Réponse attendueUne étiquette suffit-elle, ou faut-il une distribution complète ?
RéglagesQuel modèle, quelle version, quel niveau de raisonnement et quelle route API ?
RéférenceAnnotations humaines indépendantes, règles vérifiables ou consensus d’autres modèles ?
TempsMesure depuis le même client, avec les mêmes appels simultanés et les reprises incluses ?
CoûtTarif nominal, facture réelle ou estimation des concurrents ?
QualitéQuel taux d’erreur, sur quelle population, après quel filtrage ?

Les évaluations TypeSafe donnent le même poids à 4 workflows : incidents de sécurité, traces d’agents, factures et support. Leurs références sont produites par GPT-6 Astra et Claude Fable 5.1 en raisonnement élevé ; les modèles comparés utilisent leurs réglages par défaut. La colonne appelée accuracy mesure donc un accord avec ces références, pas avec des annotations humaines indépendantes.

Accord, prix et durée publiés ensemble par TypeSafe
Modèle, mode workflowAccord moyenCoût par casDurée par cas
Jev67,8 %0,0004 $0,4 s
sol74,1 %0,0836 $23,3 s
Opus 573,1 %0,1761 $37,8 s
terra67,9 %0,0304 $10,1 s
Sonnet 567,8 %0,1174 $78,1 s
luna66,8 %0,0033 $12,9 s
DeepSeek v4 pro65,5 %0,0413 $86,5 s
DeepSeek v4 flash64,4 %0,0059 $51,9 s
Haiku 4.553,6 %0,0195 $12,5 s

Valeurs arrondies lues dans les graphiques du fournisseur le 21 septembre.

Les multiplicateurs de lancement ne se recalculent pas en divisant arbitrairement 2 cellules arrondies de ce tableau.

Données du fournisseur, 4 workflows de même poids. Les axes de coût et de durée sont logarithmiques ; les valeurs sont celles affichées, arrondies. Aucun test personnel ni vérité terrain humaine indépendante.
Prix des concurrents au 28 octobre Clef-flash est affiché à 0,038 $ par million de tokens d’entrée, sous les 0,042 $ de Jev, mais avec 24k de contexte hébergé. Le comparatif des offres donne aussi Clef, Clef-omni et la Decisions API d’OpenAI.
11

Calculer le coût de toute la chaîne

Le prix des tokens ne compte ni la recherche du contexte, ni les appels suivants, ni les corrections.

Le calcul de base est simple : tokens d’entrée facturés × tarif par token. Avec le tarif direct cité dans ce dossier, 1 000 tokens coûtent 0,000042 dollar. 1 million d’appels de cette taille coûte donc 42 dollars d’entrée. Ce calcul ne suppose ni que chaque appel est correct, ni que 1 seul appel suffit pour terminer une tâche.

Scénario fictif, même prix nominal
PosteHypothèseCoût calculé
Appels prévus1 000 000 × 1 000 tokens42,00 $
Nouvelles tentatives50 000 appels supplémentaires de même taille, tous facturés dans cet exemple2,10 $
Deuxième décision100 000 cas nécessitant un autre appel de même taille4,20 $
Total Jev1 150 000 appels, sans cache ni autres ajustements48,30 $
Autres postesRecherche, stockage, LLM rédacteur et relectureÀ mesurer séparément, non inclus dans 48,30 $

Le traitement de plusieurs questions et la réutilisation du contexte changent les volumes facturés.

Une solution qui réduit le prix du modèle mais augmente les corrections peut coûter davantage.

Même décision attendue, mêmes informations utiles et mêmes cas de test. Le LLM peut renvoyer une catégorie structurée. Mesurez toute la chaîne, y compris les échecs et les cas relus, avec le même objectif de qualité. Les chiffres 200× ou 400× ne décrivent pas ce protocole : aucun résultat n’y est présupposé.
La recherche lexicale reste un comparateur BM25 peut tourner localement. L’appel à Jev ajoute une dépendance réseau, de la latence et un transfert de données. Pour suggérer un skill, un ensemble de consignes spécialisées chargé par un agent, mesurez d’abord les reformulations que BM25 manque et le coût de ces erreurs.

Dans une chaîne successive, les durées des étapes s’additionnent. Des questions indépendantes peuvent être parallélisées, mais le gain dépend des quotas et de la distribution des temps de réponse. Mesurez le temps entre la réception du dossier et la suggestion exploitable par l’application, puis les p50 et p95 de ce temps complet.

Dans mes autres ressources Pour construire cette mesure, voir mon guide Calculer le coût par tâche acceptée (EN) : appels, reprises, temps de relecture et coût par résultat accepté.
12

Les benchmarks publiés par des tiers

Les rapports ci-dessous évaluent des tâches différentes. Je les ai lus, sans reproduire leurs tests ni auditer toutes leurs données.

Le benchmark de phishing d’anisselbd porte sur 2 000 emails aux corps synthétiques. Le premier protocole pose 9 questions à Jev et demande un verdict direct à Haiku 4.5. Jev y obtient 62,6 % de décisions correctes contre 81,3 %. Ces 2 configurations ne permettent pas d’isoler le seul effet du modèle.

Un second protocole pose les mêmes 5 questions aux 2 modèles puis apprend une régression sur leurs signaux. Sur les 1 000 cas réservés au test : 95,0 % avec Jev, 93,2 % avec Haiku, contre 91,8 % pour la référence fondée sur des règles. L’écart Jev/Haiku n’est pas significatif au seuil usuel de 5 % (McNemar p = 0,063). Les auteurs rapportent aussi l’avantage de Jev en coût et en latence pour cette décomposition.

La formulation et l’assemblage des réponses font partie du système évalué. Passer du verdict direct à 5 signaux change le protocole ; ces résultats restent propres à ce corpus.

5 autres benchmarks publics · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
RapportStars GitHubRésultat ou objet du testConditions à conserver
AbdelStark / jev-benchmarks17Classification comparée à GLiNER.300 exemples réservés, 100 par condition : AG News, Banking77-BTZSC avec 72 catégories, DAIR Emotion. Les seuils et critères doivent rester associés à ce pilote.
WallerChen / jev-measured0Jev : médiane de 352 ms, contre 1 343 ms pour Mistral et 877 ms pour Gemini. Les facteurs 1,4× et 1,7× annoncés concernent le coût.8 exemples × 5 répétitions, soit 40 appels par modèle, sans vérité terrain dans ce volet. Test distinct de 27 tickets annotés et 6 ambigus, 3 passages. Chemins d’accès différents.
fstandhartinger / jevbench117534 décisions par système, dont 220 difficiles : 111 publiques et 109 réservées.Cas synthétiques écrits et relus par des modèles, gelés avant exécution selon l’auteur. Score composite de 4 axes de même poids. Certaines latences sont ajustées par des hypothèses de production.
anessbelbati / jev-rerank-bench78 jeux anglais, 1 617 requêtes évaluables : nDCG@10 moyen par jeu de 0,692 pour Jev Rubric contre 0,691 pour Cohere Pro. Différence : 0,001 ; IC95 % [−0,009 ; +0,012]. Sur MIRACL-fr : Jev Choice 0,700 contre Cohere Pro 0,764.En donnant le même poids à chaque requête anglaise, Cohere atteint 0,756 et Jev 0,738. MIRACL-fr : 152 requêtes évaluables sur 269, avec un passage pertinent dans les 30 candidats BM25. Les jeux et variantes diffèrent ; ce n’est pas un test isolant la langue.
RINNECODER / jev-behavior-study3Bonne réponse placée en premier : 95/108 réponses justes. En dernier : 62/108.6 problèmes × 24 ordres × 3 répétitions : 432 appels, 108 par position. Ces cas sont liés entre eux ; les identifiants des options ne sont pas contrôlés séparément. Le résultat reste limité à ces problèmes.

Le nDCG@10 mesure la qualité du classement des 10 premiers documents. Un reranker reclasse des documents déjà retrouvés. Les valeurs anglaises ne montrent pas de vainqueur établi ; l’intervalle qui contient 0 ne démontre pas non plus une équivalence. Ces tests ne mesurent pas, à eux seuls, la qualité d’une réponse rédigée à partir des documents.

Temps de réponse : 2 régions, 2 corpus · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
EssaiStars GitHubMesure JevPérimètre
Phishing5Médiane : 239 msDepuis la France, selon l’auteur ; corpus et questions propres à ce test.
ASSAY-001 / Banking770Médiane : 382,3 ms ; p95 : 553,7 ms3 080 premières tentatives réussies. Réseau inclus, région de Plano au Texas selon les métadonnées. Recalcul des réponses publiées.
ASSAY-001 / CLINC150, même campagne0Médiane : 385,9 ms ; p95 : 615,3 ms5 492 premières tentatives réussies. Les échecs et les reprises ne sont pas inclus dans ces quantiles.

Ces observations ne permettent pas de comparer les régions entre elles : les entrées, les questions et les protocoles diffèrent. Elles donnent des repères plus précis qu’une latence générale de 150 ms.

Tester aussi la décomposition
  • Comparer la décision directe et les questions décomposées chez chaque concurrent, avec les mêmes données.
  • Choisir les seuils et les poids avant l’évaluation finale.
  • Garder une méthode de référence sans LLM.
Un essai Banking77 avec des exemples dans la requête

Le rapport de simonmesmith annonce 2 846 réponses correctes sur 3 080, soit 92,40 %, avec Jev 1.13.0.

  • Chaque requête contient 24 exemples annotés retrouvés par BM25. Le choix de cette configuration se fait sur des données de développement, selon le protocole publié.
  • Les 93,66 % de BERT sont repris d’un article de 2020, sans nouvelle exécution de BERT.
  • Ce résultat porte sur une méthode avec exemples, pas sur un usage sans labels. README consulté ; réponses brutes non réauditées et aucune inférence reproduite ici.
jgrep : revue de code, diversité et modèles locaux

Le diagnostic de revue de code, exécuté par l’auteur le 19 septembre, contient 20 cas Go écrits à la main, dont 8 positifs. Le mode hunk complet rapporte 80 % de précision et 100 % de rappel. Questions et unités changent ensemble : leur effet n’est pas isolé. À budget de 250 tokens, une sélection sans pénalité de diversité conserve 5 fonctions positives; la diversité par défaut en conserve 4 et ajoute un faux positif. La variété peut donc préserver une erreur distinctive.

Comparaison locale : mêmes échantillons, tâches distinctes
Corpus / mesureJev 1.13DiffusionGemma / OpenJevLaya / MLX
2 000 SMS, F1 au seuil 0,590.81 %86.55 %69.18 %
2 000 AG News, exactitude top-186.75 %87.35 %92.45 %

Le rapport publié le 23 septembre réutilise les réponses Jev du 21 et les compare aux exécutions locales du 22, sur M3 Ultra 96 Gio. Les concurrences et dates diffèrent : ces temps n’isolent pas la vitesse du modèle. Les corpus sont publics, la contamination d’entraînement est inconnue et les sorties brutes locales ne sont pas toutes commitées. Le classement dépend de la tâche. Le guide local épingle un Laya-MLX antérieur à la correction du 22.

Kiln : améliorer les informations fournies au modèle Dans son article du 21 septembre, Kiln décrit une optimisation du pinyin par segmentation, dictionnaire et appels ciblés. Il rapporte 316 erreurs avant et 147 après sur 61 750 positions, contre 285 pour sa configuration DeepSeek. Le total comprend le développement; ce n’est pas un test entièrement réservé. Réponses brutes non retrouvées dans les liens examinés. Le gain porte sur le système autour du modèle, pas sur Jev seul.
3 évaluations multi-modèles publiées en octobre Astronomer, AIMultiple et le JevBench Index de Leanmcp comparent Jev à Clef, Strands Decider ou la Decisions API. Leurs protocoles, effectifs et limites sont résumés dans Jev face à ses concurrents.
13

Probabilités mesurées et seuils de confidence

ASSAY-001 publie ses réponses brutes. Le résultat à 72,2 % vient d’une autre expérience.

Le rapport ASSAY-001 évalue Jev sur Banking77 et CLINC150, 2 corpus publics de classification d’intentions. Pour ce dossier, les réponses publiées de Banking77 et CLINC150 ont été récupérées et leurs empreintes contrôlées. Le recalcul porte sur les probabilités, les décisions et le champ confidence. Il exploite la campagne publiée, sans nouvel appel au modèle.

Recalcul avec la tolérance amendée sur les sommes
CorpusRéponses exploitablesOptionsBonnes décisionsECE
Banking773 0807779,77 %0,0936
CLINC1505 496151, dont hors périmètre88,12 %0,0204

L’ECE compare la probabilité de l’option renvoyée au taux de bonnes décisions, par tranches.

L’ECE porte sur la probabilité de l’option choisie, même dans les 3 cas où elle diffère du maximum affiché ; elle ne porte pas ici sur confidence.

Le protocole retient ECE ≤ 0,05 comme critère pour cette étude. CLINC150 le satisfait, Banking77 non. Ce seuil n’est pas une norme générale. L’ECE dépend aussi du découpage : avec des tranches fermées à gauche, [0 ; 0,1[ jusqu’à [0,9 ; 1], celle de CLINC150 passe de 0,0204 à 0,0209 sur les mêmes réponses amendées. Aucun des 2 découpages ne change le verdict au seuil de 0,05. Ces résultats n’isolent pas l’effet du nombre de classes ; le corpus avec davantage d’options a ici l’ECE la plus faible.

Le deuxième amendement, décrit dans le rapport, relève après la mesure la tolérance sur la somme des probabilités, de 0,001 à 0,02. Il réintègre 145 réponses Banking77 et 368 réponses CLINC150 dont la somme vaut 0,99 à la précision publiée. La documentation Vercel du fournisseur TypeSafe AI précise que les probabilités sont arrondies à 2 décimales et peuvent ne pas totaliser exactement 1. Les données sont compatibles avec cette précision : 101 valeurs centésimales distinctes, en écartant le bruit de représentation des nombres flottants. Ce comptage seul ne révèle pas le procédé interne d’arrondi. Une somme de 0,99 ne suffit donc pas à établir une erreur de type.

Effet de la tolérance sur les réponses retenues
CorpusTolérance initiale : 0,001Tolérance amendée : 0,02
Banking772 935 réponses ; exactitude 81,09 % ; ECE 0,09043 080 réponses ; exactitude 79,77 % ; ECE 0,0936
CLINC1505 128 réponses ; exactitude 89,43 % ; ECE 0,02095 496 réponses ; exactitude 88,12 % ; ECE 0,0204

La réintégration baisse l’exactitude sur les 2 corpus. Elle augmente l’ECE de Banking77 et réduit légèrement celle de CLINC150. Le changement de tolérance modifie donc aussi la population évaluée ; il faut conserver les 2 résultats pour comprendre son effet.

Un autre contrôle retrouve 3 choix inférieurs de 1 point de probabilité au maximum affiché : 0,46 contre 0,47 et 0,47 contre 0,48 dans Banking77 ; 0,48 contre 0,49 dans CLINC150. La référence API décrit choice comme l’option la plus probable. Un arrondi monotone appliqué de la même manière à chaque option ne peut, à lui seul, inverser leur ordre. Ces 3 écarts restent donc à expliquer ; les valeurs internes avant affichage ne sont pas publiées.

Conditions qui limitent la généralisation
PointConséquence pour la lecture
8 580 requêtes prévues ; 8 576 réponses exploitables4 erreurs locales de résolution réseau sont exclues des métriques du modèle.
Requêtes : jev-latest ; 8 576 réponses : jev-1.13.0L’alias demandé et la version effectivement renvoyée sont distincts. Ces résultats ne décrivent pas une version ultérieure.
Corpus et révisions consignés dans PINS.txtBanking77 vient du dépôt PolyAI ; CLINC150 utilise le jeu plus/test de clinc_oos. La présence de ces données dans l’entraînement reste inconnue.
Rapport daté du 18 septembre ; réponses du 17 septembre, de 20 h 57 à 21 h 45 UTCDater l’observation avec les fichiers de réponses et conserver l’écart avec la date annoncée du test.
Recalcul des mêmes fichiersUne seconde lecture des résultats ne constitue pas une deuxième campagne d’inférence.
Un coût annoncé qui ne correspond pas aux tokens publiés Le rapport indique environ 0,01 dollar. Les réponses contiennent 11 065 908 tokens d’entrée : au tarif nominal de 0,042 dollar par million, leur coût calculé est de 0,464768 dollar, hors essais préliminaires. Ce calcul ne remplace pas une facture. Il suffit à empêcher la reprise du centime annoncé comme coût vérifié.

Les fichiers ASSAY permettent aussi de vérifier ce que garde un filtre confidence ≥ 0,9.

Résultats du filtre confidence ≥ 0,9 sur ASSAY
CorpusRéponses conservéesCouvertureRéponses correctesExactitude après filtre
Banking772 137 sur 3 08069,38 %1 979 ; 158 erreurs92,61 %
CLINC1503 877 sur 5 49670,54 %3 726 ; 151 erreurs96,11 %

Le chiffre de 72,2 % relayé par des articles de synthèse vient d’Agent Journal. L’auteur décrit 300 cas synthétiques ; 126 ont une confidence d’au moins 0,9 et 72,2 % de leurs réponses sont correctes. Les réponses brutes n’ont pas été retrouvées dans les liens et la recherche ciblée. Ce résultat reste rapporté par l’auteur, sans recalcul dans ce dossier.

La couverture annoncée par Agent Journal est de 42 %. La tâche demande de combiner des indices faibles dans des textes synthétiques ; elle diffère des intentions Banking77 et CLINC150. L’auteur indique l’alias jev-latest, sans version résolue vérifiable dans des réponses brutes. Ces résultats peuvent coexister : les protocoles, les données et éventuellement les versions diffèrent. Ils ne permettent pas d’isoler la cause de l’écart.

Les 3 expériences conservent des erreurs après sélection par confidence. L’exactitude et la couverture de cette sélection ne sont pas des mesures d’ECE. Comme confidence n’est pas contractuellement la probabilité d’avoir raison, comparer le seuil 0,9 à 72,2 %, 92,61 % ou 96,11 % ne mesure pas la calibration des probabilités des options.

Le 8 octobre, Astronomer observe que chaque modèle de décision a sa propre échelle de confidence : sur le jeu riche en erreurs intermittentes, médiane de 0,94 pour Jev 1.13, 0,84 pour decider-0.8b et 0,45 pour GLiNER2.5-Decide. La confidence de Jev varie jusqu’à 0,14 entre 2 appels répétés. Un seuil choisi pour Jev ne se transfère donc pas à un autre modèle compatible.

Adapter les pilotes GitHub et Sentry
  • Conserver la distribution brute, nommer la variable utilisée pour le seuil et vérifier les résultats sur les tickets réellement visés.
  • Fixer les tolérances numériques avant la mesure.
  • Signaler tout changement de protocole après lecture des résultats.
Une correction de calibration dans Laya-MLX Le portage local a borné des températures trop extrêmes le 22 septembre. Une protection contre des distributions excessivement concentrées ne constitue pas une nouvelle validation de calibration. Les détails et la révision de l’adaptateur se trouvent dans le chapitre des modèles locaux.
14

Jev comme juge de traces d’agents

Un résultat à 100 % sur 5 traces répétées mesure un accord local, pas une fiabilité générale.

Le tutoriel, l’article de reprise et le benchmark ont des fonctions différentes.

Le test prend 5 traces fixes, répétées 100 fois chacune. 1 seul annotateur fournit les labels de référence : 4 réussites et 1 échec. Sur la trace Dublin, la clarification paraît raisonnable mais ne satisfait pas la rubrique qui attend une recherche. Le choix de cette rubrique fait donc partie du résultat.

Accord publié avec ces 5 labels
JugeAccord sur 500 répétitionsInterprétation
Jev100 %Aucun désaccord déclaré sur ces traces et leurs répétitions.
GPT-5.6 Terra99,8 %Un désaccord déclaré sur les 500 répétitions.
GPT-5.6 Luna96,4 %Mesure sur les mêmes traces, pas un corpus indépendant de 500 situations.
Claude Sonnet 4.680 %Un cinquième des jugements diffère de cette référence.

Ces taux concordent avec les résumés publiés par cas. Les décisions élémentaires ne figurent pas dans l’archive consultée : elles n’ont pas été recomptées. Les 5 traces et les répétitions doivent rester visibles dans toute présentation du « 100 % ».

Les résumés du fichier benchmark.json donnent aussi la moyenne des variances de quality, calculées à l’intérieur de chacune des 5 traces. Le tableau recalcule les rapports à partir de ces résumés ; les jugements élémentaires ne sont pas disponibles pour recalculer les variances elles-mêmes.

Variabilité du score quality dans les résumés publiés
JugeMoyenne des variances par traceRapport à Jev
Jev0,000014941
Claude Sonnet 4.60,0013700791,68
GPT-5.6 Luna0,00646904432,90
GPT-5.6 Terra0,01364287912,96

Ces rapports décrivent la stabilité d’un score continu sur les mêmes traces. Ils ne multiplient ni le taux de bonnes décisions ni la précision des probabilités.

Les métadonnées de cette exécution datent du 18 septembre.

Remettre les coûts dans la même unité Les totaux annoncés de 28,17 dollars pour Claude Sonnet 4.6 et 0,34 dollar pour Jev donnent un rapport d’environ 83. Diviser 28,17 dollars de total par 0,00035 dollar par appel produit artificiellement un rapport proche de 80 000. Les coûts restent ceux déclarés par les auteurs : l’archive publique ne fournit pas tous les appels nécessaires pour reconstruire leur facture.

Le script de collecte des coûts interroge LangSmith. Le périmètre des moyennes et des totaux ne se réduit pas clairement aux 500 verdicts. Luna apparaît par ailleurs proche de Jev en coût dans leur tableau. La comparaison ne justifie donc pas l’affirmation que tous les LLM coûteraient plusieurs ordres de grandeur de plus.

Pour tester Jev comme juge, variez les tâches, les outils utilisés, les échecs partiels et les rubriques, puis faites annoter des traces nouvelles. Répéter une trace est utile pour mesurer la stabilité ; ajouter des traces différentes est nécessaire pour tester la couverture des situations.

Theo à 12:40 critique le choix entre plusieurs implémentations par un juge qui n’explore pas le dépôt. Cette objection rappelle de tester un critère précis avec le contexte nécessaire. Elle n’établit pas qu’un modèle sans raisonnement rédigé ne puisse jamais servir de juge. L’analyse de la vidéo distingue ces 2 affirmations.

Intégrations de revue, examinées le 24 septembre · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
ProjetStars GitHubRôleFrontière de preuve
jev-semantic-reviewer0Faits statiques sur les fonctions modifiées puis jugements Jev optionnels sur lisibilité et responsabilités.Les jugements sémantiques ne bloquent pas la revue; duplication et conventions restent prévues.
Supercov114Questions de qualité par fichier, combinées à la couverture mesurée par les tests.Le score Jev ne mesure ni la couverture ni la pertinence d’une assertion.
NiazMorshed2007/jev-review221MCP d’évaluation par dimension; l’agent principal interprète les résultats et corrige.Aucune validation indépendante de la qualité des revues trouvée dans le README.
devagrawal09/jev-review595Questions successives sur risque, preuve, mécanisme et gravité pour orienter la revue.Prototype; intégration de compilation et d’analyse statique encore prévue.

Le protocole JevGrep ajouté le 22 septembre distingue performances locales avec fournisseur simulé et pilote de recherche sémantique. Il définit 30 questions sur 3 petits dépôts synthétiques, dont 6 négatives. La présence de ce protocole ne prouve ni un résultat final réservé ni un gain sur la réussite d’un agent.

15

Retrouver les expériences derrière les articles

Une reprise médiatique peut donner de la visibilité à un test sans ajouter de nouvelles mesures.

Capital & Compute rapproche plusieurs résultats, mais ceux-ci ne partagent ni tâche, ni comparateur, ni définition du coût. Le résultat sur 18 514 emails est relayé par Arize, qui renvoie à bitnovus. Le compter 1 fois pour chaque article multiplierait artificiellement les confirmations.

DIAGRAMME · Un test, plusieurs reprises
Les flèches suivent la circulation de l’information. Elles ne représentent pas 4 campagnes de benchmark indépendantes.
Expériences d’origine retrouvées · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
Auteur et tâcheStars GitHubRésultat rapportéLimite principale
bitnovus, filtrage d’emails2Dans l’expérience à 18 514 emails : 98,33 % pour Jev avec critères détaillés, 98,39 % pour TF-IDF.Les critères ont été affinés après lecture d’erreurs labellisées. Le README contient plusieurs expériences ; leurs dénominateurs ne se mélangent pas.
Near Here, validation d’événementss.o.Jev 48/50 sur des cas utilisés pour choisir les prompts ; puis 19/21 sur des cas supplémentaires, contre 20/21 pour Gemini.Labels préparés par un assistant, sans arbitrage humain indépendant. Modèles génératifs en raisonnement élevé avec explication.
gemanor, petites fonctions Python598 % de jugements corrects sur la validité fonctionnelle pour Jev, 100 % pour Gemini et Fable ; médianes de 0,75 / 3,59 / 4,31 secondes.24 familles × 5 variantes × 3 répétitions par modèle. 4 règles sur de petites fonctions, pas des PR réelles.
paddo, rapprochement de produitss.o.9 081 paires, 0,32 dollar et 13 min 22 s annoncés ; 30 % laissés sans verdict entre les seuils choisis.L’auteur accepte 48 des 50 verdicts relus. Les résultats restent consultatifs et ne sont pas utilisés par les systèmes en aval.

Ces essais sont plus utiles lorsqu’on conserve leur objet précis.

Publier le résultat et sa limite ensemble Pour un benchmark, donner la tâche, le dénominateur, les modèles, la provenance des labels et les réglages avant le ratio. Un prix calculé reste un prix calculé ; une répétition du même cas mesure sa stabilité ; un résultat sur les données de développement ne devient pas un résultat sur un test réservé.

L’analyse CounterProof sur les labels par consensus relève 8 divergences parmi 19 cas où ses 2 juges répondent. Ces cas proviennent d’une sélection de 20 exemples du fournisseur, pas d’un échantillon aléatoire de toute l’évaluation. Ce contrôle invite à discuter les labels ; il ne remplace pas ceux-ci par une vérité terrain humaine ni ne rejoue le benchmark complet.

L’article MindStudio sur Jev et les classifieurs rapporte notamment 93,2 % pour un encodeur de 22 millions de paramètres. Le corps consulté ne donne pas de lien vers le protocole ou le dépôt de cette expérience. Ce chiffre n’est donc pas ajouté au tableau des résultats vérifiés à la source. L’article rapporte aussi un résultat inverse sur Yelp ; il ne justifie pas la conclusion générale selon laquelle un classifieur entraîné gagnerait toujours.

16

Nouveau · Version 0.20.0

Clef, Strands Decider, OpenAI : Jev face à ses concurrents

Depuis le 1er octobre, plusieurs acteurs publient des modèles de décision. Les chiffres viennent surtout des éditeurs ; l’interface de Jev devient un format partagé.

Jev a ouvert la catégorie le 15 septembre. En 4 semaines, Cloudflare, Strands Labs, Perplexity et OpenAI ont publié des modèles qui répondent aux mêmes types de questions : oui ou non, choix parmi des options, note sur une échelle. Ils renvoient des probabilités, pas un texte à analyser.

Offres relevées au 28 octobre 2026 · prix par million de tokens d’entrée, sorties gratuites
ModèlePoids et basePrixContexte hébergéEntréesInterface
Jev 1.13 / 1.14 (TypeSafe)Fermés ; architecture non publiée0,042 $64k par requête, 32k par question ; 262k en optionTexte ; images expérimentalesSystem One (/v1/systemone)
Clef (Cloudflare)Apache 2.0 ; 27B, depuis Qwen3.8-27B0,24 $64kTexte, imageSystem One, compatibilité annoncée
Clef-flashApache 2.0 ; 9B, depuis Qwen3.5-9B0,038 $ depuis le 9 octobre (0,09 $ au lancement)24k depuis le 9 octobre ; poids entraînés pour 256kTexte, imageSystem One
Clef-omniApache 2.0 ; MoE 30B-A3B, depuis Qwen3-Omni0,15 $ (prix de lancement)64kTexte, image, audio, vidéoSystem One
Strands Decider 2B (Strands Labs, AWS)Apache 2.0 ; LoRA sur Qwen3.5-2B, code d’entraînement publiéAuto-hébergé : coût de la machineÉvalué sur 4 096 tokensTexte ; images en option non entraînée/v1/systemone via strands-decider serve
pplx-decider v1.1 (Perplexity)Apache 2.0 ; depuis Qwen3.8-27BAuto-hébergé ; API Perplexity non relueNon reluTexte, imageCode d’inférence fourni
Decisions API (OpenAI)Fermés ; gpt-6-luna0,10 $ ; 0,01 $ en cacheNon reluTexte, images, JSON natifFormat propre (/v1/decisions)

Deux formats d’appel coexistent. System One, l’interface de Jev, envoie un state et des questions nommées de type noul, choice ou score. Clef, Strands Decider et Ollama 0.35 le reprennent. OpenAI utilise /v1/decisions : un input, un tableau de questions predicate, choice ou score, jusqu’à 400 questions, et une réponse refusal possible pour chaque question. LiteLLM sert les 2 routes depuis le 14 octobre.

Compatible ne veut pas dire interchangeable Changer d’URL et de nom de modèle suffit pour envoyer la même requête. Les probabilités, la confidence et les seuils ne se transfèrent pas. AIMultiple relève aussi que le service Cloudflare ne lisait que les 2 048 premiers tokens pour Clef et Clef-flash lors de son essai, bien en dessous du contexte affiché. Recalibrer chaque seuil et vérifier la troncature sur ses propres données.
Extraits des benchmarks publiés par Cloudflare le 1er octobre
MesureClefClef-flashJevCe qu’elle évalue
BANKING77, macro-F194,2090,9379,74Intentions bancaires
CLINC150+OOS, macro-F197,4366,7789,27Intentions, dont demandes hors périmètre
When2Call, exactitude72,3765,5880,97Décider d’appeler ou non un outil
BRIGHT, nDCG@1045,9139,2647,52Recherche documentaire
Traces d’agents (évaluations TypeSafe)68,569,871,6Observabilité de traces
Latence médiane209,3 ms38,8 ms524,1 msModèle seul, mesure Cloudflare

Cloudflare présente Clef comme premier du Jev Decision Index ; sa propre table laisse Jev devant sur When2Call, BRIGHT et les traces d’agents. Le billet de lancement affirme aussi que les Clef battent les autres modèles de décision en latence, sauf Laya. Sa table donne pourtant 51,4 ms de médiane pour Kev-9B et 84,4 ms pour DiffusionGemma Jev, contre 209,3 ms pour Clef. Le 9 octobre, Cloudflare annonce 152 ms de médiane pour Clef sur environ 800 tokens, grâce à un changement de couche de service, sans nouveaux poids. Le même billet raconte que le projet a été décidé un vendredi soir, entraîné pendant le week-end et lancé le jeudi.

Laya dans les tableaux de Cloudflare Laya y obtient la médiane la plus basse, 5,8 ms, mais 3,19 de macro-F1 sur CLINC150+OOS, 14,29 sur BANKING77 et 50,15 % sur PhishNChips, un niveau de hasard pour une décision binaire. Ces chiffres d’un concurrent portent sur d’autres tâches que nos POCs : ils vont dans le même sens sans les confirmer.

Les évaluations de Perplexity (pplx-decider) et de Strands Labs (Strands Decider) sont aussi des mesures d’éditeurs. La fiche de Strands Decider 2B v1-2610 annonce 180 bonnes réponses sur les 231 tâches publiques de JevBench, avec une fenêtre de 4 096 tokens.

3 évaluations publiées par des tiers. Aucune ne compare tous les modèles sur une même tâche, et aucune n’a été reproduite pour ce dossier.

Évaluations multi-modèles lues le 28 octobre 2026
ÉvaluationTâche et effectifRésultat principalLimites signalées
Astronomer, 8 octobreArrêter ou relancer une tâche Airflow en échec ; 400 erreurs issues de tickets GitHub de 35 projets, dont 41 récupérablesPas de vainqueur net ; Jev et decider-0.8b restent proches à couverture égale (McNemar exact, p = 0,15)Erreurs de rapports de bugs, pas de production ; étiquettes produites par des LLM ; 41 cas récupérables seulement
AIMultiple, mis à jour le 22 octobre59 modèles sur 1 655 questions de classification ; 46 modèles sur 50 tâches de navigationMoyenne de classification 47,9 pour Jev 1.13 et 51,0 pour Clef ; Strands Decider 62,6 sur les rappels de produits mais 33,9 sur la gravité des failles1 essai par tâche ; format d’étapes conçu pour Jev ; contamination des données non vérifiable ; éditeur commercial
JevBench Index, Leanmcp, 11 octobre22 jeux publics, de 18 à 4 924 cas, en 6 famillespplx-decider v1.1 78,0 ; Jev 1.13 76,5 ; Clef 76,1 ; Decisions API 73,4 ; Clef-flash 71,8Jev 1.14 et Strands absents ; jeux refusés par une API comptés 0 ; affiliations des auteurs non publiées
Ce que cela change pour mes essais
  • Les conclusions des POCs Laya restent inchangées.
  • Strands Decider 2B devient le candidat local suivant : poids ouverts, installation par pip, exécution prévue sur Apple Silicon.
  • Clef-flash et la Decisions API ne remplacent Jev qu’après une comparaison sur les mêmes jeux réservés, avec un seuil recalibré pour chaque modèle.
  • Aucun de ces modèles n’a été appelé ni exécuté pour ce dossier.
17

Laya sur mon Mac : rapide, mais des erreurs sur les cas simples

Essais du 26 septembre : fonctionnement hors ligne, latence et qualité comparée aux règles.

Le moteur fonctionne, la qualité reste à qualifier Essais personnels du 26 septembre 2026 sur Laya multilingue, pas sur Jev. Sur les 3 tâches synthétiques comparées, ces réglages ne montrent pas de gain de qualité face aux règles lexicales. Ils ne permettent ni de généraliser à tous les usages de Laya ni de mesurer sa qualité face à Jev.

Le laboratoire a été exécuté sur un Mac Apple M5 Max, 128 Gio, macOS 26.5.1, Python 3.12.13, Laya-MLX 0.2.0 et MLX 0.32.2, sur GPU en FP16. Modèle : aac6fef/laya-multilingual-mlx, révision f2b4faf51023039425946074e2cf1361d2db11d5. Compilation et cache de prompts désactivés. Les 11 fichiers du manifeste ont été vérifiés, dont environ 614 Mio de poids.

Ce qui a été vérifié
ContrôleObservationLimite de la preuve
Tests du programme62 tests réussis, avec 6 sous-tests.Les tests serveur ordinaires utilisent un double du moteur.
Inférence hors ligne2 processus neufs, FR/EN, GPU ; Choice, Score et Noul. Sonde réseau refusée avec EPERM.Réseau bloqué pour ces processus ; pas une preuve qu’aucune connexion n’est tentée.
Application avec vrai modèle6 expériences exécutées en mémoire, réseau bloqué.Valide les réponses et contrôles, pas leur justesse.
Reprise de lot3 entrées conservées puis 17 calculées ; 20 IDs uniques.Arrêt normal et ligne partielle injectée, pas un crash forcé du GPU.
Navigateur6 formulaires, imports JSONL/CSV et erreurs de saisie vérifiés.Export JSON non confirmé ; le JSON reste lisible dans la page.

Les données contiennent 72 exemples synthétiques de développement. Les 3 tâches ci-dessous utilisent 20 exemples chacune, soit 60 prédictions. Questions, labels et mots-clés ont été figés avant l’inférence. Le validateur de scores ordinaux de l’évaluateur a été renforcé avant les rapports ; sa version finale est archivée. Ce n’est ni un test indépendant sur des données réelles, ni une annotation humaine indépendante. Aucun réglage n’a été modifié pour effacer les erreurs observées.

Qualité sur les mêmes exemples
TâcheLayaRègles lexicales
Frustration2 cas retrouvés sur 10 ; 11 réponses correctes sur 20.7 cas retrouvés sur 10 ; 12 réponses correctes sur 20.
Équipe de tri14 réponses correctes sur 20.15 réponses correctes sur 20.
Annonce de modèleRappel 33,3 % ; précision 22,2 %.Rappel 33,3 % ; précision 66,7 %.
Temps du moteur après chauffe
UsageMédianep95
Filtre, 1 question8,55 ms11,05 ms
Tri, 3 questions9,58 ms83,74 ms

Protocole de vitesse : 10 appels de chauffe puis 100 appels successifs par configuration, avec le même texte court. Le temps inclut la validation du moteur, mais exclut chargement, HTTP et navigateur. Chargement mesuré : 5,45 s. Pic d’allocation MLX : environ 822 Mio, pas toute la mémoire du processus. Ce n’est pas un débit général de documents longs. Ces mesures ne sont pas directement comparables aux appels distants Jev ni aux données M3 Max du chapitre sur les modèles locaux.

Les erreurs vues dans le navigateur
Observations ponctuelles, sans réglage après lecture
ExempleRésultatLecture
Encore une erreur au paiement... J’en ai marre de recommencer !Correspondance 0,11.Frustration sous-détectée.
Réinitialiser un mot de passeConseil générique 2,45/3 ; procédure de récupération 1,89/3.Mauvais classement.
Lire un fichier et l’envoyer par email, action simuléeLecture 0,24 ; envoi externe 0,93.Lecture sous-détectée.
Réponse contenant une étape concrèteCritère satisfait : 0,0115.Critère simple rejeté à tort.

Le réseau n’a pas été bloqué à nouveau pendant la session navigateur. Le blocage réseau appartient aux contrôles distincts ci-dessus. Les actions d’outils n’étaient que des descriptions : aucun fichier n’a été envoyé.

Ce que ces essais changent Le fonctionnement local est établi sur cette machine ; les mesures ci-dessus portent sur des entrées synthétiques courtes. Le pilote sur les issues Aristote apporte désormais un résultat distinct : la configuration de tri est écartée face aux règles actuelles, avec des annotations encore provisoires. Les expériences de classement, de contrôle des outils et de jugement restent exploratoires.

Les données et mesures de cette révision contiennent les exemples synthétiques, questions, prédictions, références lexicales, échantillons de latence et empreintes des preuves. Aucune donnée client ou conversation privée n’y figure.

18

Laya sur 60 issues Aristote : écarter la configuration testée

Un pilote sur de vrais tickets, avec 30 cas de développement, 60 de test et des annotations encore provisoires.

Le fonctionnement local ne suffit pas Le pilote du 26 septembre, relu le 27, ne montre pas le gain exigé pour remplacer les règles de tri d’Aristote. Laya émet 11 suggestions de domaine, dont 8 conformes aux annotations provisoires, contre 17 et 12 pour les règles actuelles. Décision : conserver les règles et écarter cette configuration. Ce résultat ne condamne ni tous les usages de Laya ni Jev, dont l’API n’a pas été testée.

La question était limitée : à quel domaine technique appartient la modification demandée ? Les options étaient tooling, backend, frontend, fullstack, multiple, other et unknown. Le pilote ne mesure ni les doublons, ni la complétude du ticket, ni le type de demande. Aucune étiquette GitHub n’a été modifiée et aucune automatisation n’a été activée.

« Conforme » signifie accord avec 2 agents Les 90 tickets ont été annotés par 2 agents dans des contextes séparés, avant les prédictions et sans accès aux résultats de l’autre. Ils s’accordent sur les 90 labels, mais appartiennent au même environnement. Aucune validation humaine : ce n’est pas une vérité terrain métier. Les précisions ci-dessous mesurent cet accord provisoire.
Résultats sur les 60 tickets réservés au test
Méthode et texte luConformes / émisesPrécisionCouverture sur 60Erronées
Règles actuelles · titre seul12 / 1770,6 %28,3 %5
Variante lexicale · titre + corps40 / 5178,4 %85,0 %11
Laya EN · titre + corps8 / 1172,7 %18,3 %3

La précision divise les suggestions conformes par les suggestions émises. La couverture divise les suggestions émises par les 60 tickets, y compris ceux trop longs. 8 sur 60 n’est donc pas la précision de Laya. Il laisse 49 tickets sans suggestion, contre 43 pour les règles actuelles. Ces cas nécessitent une autre prise en charge ; ils ne sont pas tous des classifications erronées.

La variante lexicale réutilise les expressions et leur priorité sur le titre et le corps. Elle n’est pas le workflow déployé. Elle donne aux règles davantage de texte, comme à Laya : son résultat ne doit pas être confondu avec celui de la référence titre seul. Ses 40 suggestions conformes en font une piste à faire vérifier humainement, avec 11 erreurs à examiner ; aucun gain de temps n’a été mesuré.

Les 49 tickets laissés sans suggestion par Laya
MotifTicketsTraitement
Score maximal ou marge insuffisants35Abstention selon la politique figée.
Autre domaine ou information insuffisante65 choix other et 1 choix unknown ; aucune étiquette de domaine.
Dépassement de contexte8Refus explicite ; ni coupe, ni résumé, ni exclusion du dénominateur.

Le modèle a produit 52 sorties structurées valides et 8 refus de longueur, sans autre erreur technique observée dans le lot test. Les questions et options laissent 896 tokens au texte sérialisé dans la limite totale de 1 024. Les 8 dépassements représentent 13,3 % du test. Les 8 suggestions conformes de Laya concernent toutes l’outillage ; aucun succès de suggestion n’est obtenu pour les autres domaines sur cet échantillon.

Comment le pilote a été préparé

600 instantanés d’issues ouvertes ou fermées ont été exportés sans commentaires ni labels. Après exclusion de 17 titres Jev/Laya, 583 tickets ont été regroupés en 369 groupes heuristiques. Un représentant par groupe, puis une sélection déterministe à graine fixe, ont fourni 30 tickets de développement et 60 de test. Les quotas sont syntaxiques ; ils ne reproduisent pas les proportions de la production.

Le test contient 29 cas outillage, 14 backend, 11 frontend, 1 fullstack, 3 multiples, 1 autre et 1 indéterminé. Les classes à 1 ou 3 exemples restent trop peu documentées. Les textes sont ceux exportés le 26 septembre, pas une reconstruction de ce qui était visible à l’ouverture des issues. Le contrôle de 67 liens parentaux explicites n’a trouvé aucun conflit entre les groupes retenus ; une parenté implicite résiduelle reste possible.

2 formulations, française et anglaise, ont été essayées sur développement. Le candidat anglais a été figé avant test avec un score maximal d’au moins 0,50 et une marge d’au moins 0,15 entre les 2 premiers choix. Le score n’est pas une probabilité de justesse. Les issues sont des données à classifier, jamais des instructions à exécuter. Aucun seuil ni aucune question n’a été ajusté sur les 60 tickets de test.

Pourquoi arrêter ce candidat ? Le protocole exigeait, avant test, au moins 90 % de précision et 10 points de couverture supplémentaires par rapport aux règles titre seul, sans perte de précision supérieure à 5 points. Laya atteint 72,7 % de précision et 10 points de couverture de moins. Ses 2,1 points de précision de plus que les règles ne démontrent aucune supériorité sur seulement 11 suggestions et des labels provisoires. Ces seuils étaient exploratoires, pas une validation métier.
Erreurs et mesures à conserver

Une suggestion erronée atteint un score maximal de 0,9019 : le score élevé ne garantit donc pas la conformité au label. Les 3 erreurs de Laya sont conservées dans le dossier privé, avec les justifications des annotateurs. Certains cas entre plusieurs domaines restent discutables et demandent une relecture humaine.

Le meilleur choix brut, avant seuil et marge, correspond à l’annotation sur 25 des 60 tickets, ou 25 des 52 sorties acceptées. Baisser les seuils après avoir lu le test créerait un nouveau réglage à évaluer sur un autre jeu réservé. Le macro-F1 sur les 7 classes vaut 0,059 pour Laya, 0,158 pour les règles titre seul et 0,326 pour la variante titre + corps. Les abstentions comptent comme des faux négatifs.

Latence : distinguer les périmètres
MesureRésultatCe qui est inclus
Moteur sur les tickets acceptés · médiane / p95131,2 / 508,9 msValidation et inférence, 52 sorties, premier appel inclus ; aucun temps par ticket pour les 8 refus.
Processus complet du lot test15,74 sChargement, 60 tentatives, validation, écriture et fin du processus.
Chaîne chaude sur 1 cas synthétique · médiane / p9542,4 / 92,5 ms10 chauffes puis 30 mesures : sérialisation, moteur, écriture, flush et fsync, sans HTTP.
Chargement neuf · mesure séparée8,67 sVérification et chargement des poids ; un seul essai.

Ces temps ne sont pas interchangeables avec les 8,55 ms du filtre synthétique du chapitre précédent : entrées, question et périmètre diffèrent. Les autres activités du Mac n’étaient pas contrôlées. Aucun appel à une API d’inférence distante ni repli cloud ; chaque processus de calcul a vérifié un refus réseau EPERM. L’export GitHub nécessitait du réseau. Énergie et temps humain de correction n’ont pas été mesurés.

Environnement, vérifications et preuves disponibles

Laya-MLX 0.2.0, MLX 0.32.2, Python 3.12.13 et GPU en float16 sur le Mac M5 Max du laboratoire. Poids multilingues aac6fef/laya-multilingual-mlx, révision f2b4faf51023039425946074e2cf1361d2db11d5. Compilation et cache de prompts désactivés. Le pilote rapporte 62 tests du labo et 6 sous-tests, 7 tests du pilote et 20 cas de parité avec le JavaScript réel du workflow.

Les résultats agrégés et la configuration accompagnent ce chapitre. Ils permettent de relire les dénominateurs, les seuils et les mesures. Les textes, identifiants, liens privés et annotations par ticket ne sont pas publiés. Les empreintes identifient les fichiers sources ; elles ne permettent pas à elles seules de reproduire un test dont le corpus reste privé. Cette mise à jour éditoriale n’a pas relancé l’inférence.

La suite reste séparée de ce verdict Conserver les règles actuelles pour ce tri et ne pas régler à nouveau sur le test désormais connu. Une évaluation distincte de la variante lexicale peut commencer par la validation humaine. Les 3 POCs Sentry, reviews et CI annoncés au premier suivi du 27 septembre ont depuis été exécutés : leurs configurations sont également écartées. Le tri du support reste en attente.
19

Laya sur Sentry, reviews et CI : 3 candidats écartés

120 cas de test, 15 dépassements et aucun gain justifiant une adoption. Les annotations restent provisoires.

Arrêter les 3 configurations testées Les essais du 27 septembre n’apportent pas de gain exploitable sur le rapprochement Sentry/GitHub, le regroupement de remarques de revue ou la classification des échecs CI. Les 3 verdicts sont REJECT_CURRENT_CANDIDATE. Laya tourne localement ; ces résultats ne justifient pas son adoption pour ces usages. Ils ne mesurent ni Jev hébergé ni toutes les configurations possibles de Laya.
Conforme à une annotation provisoire, sans validation humaine Sentry a reçu 2 passes d’agents à l’aveugle, avec 59 accords sur les 60 cas de développement et de test. Reviews et CI ont chacun été annotés par 1 agent avant prédiction. Aucune référence n’est validée humainement. Une suggestion sur une référence unknown est comptée comme non justifiée dans la précision.
Suggestions sur les 120 cas réservés au test
POCCasConformes / proposées par LayaPrécision LayaComparateur sans IA
Sentry ↔ GitHub482 / 385,3 %0 / 0 rapprochement lexical ; précision non définie
Regroupement de reviews361 / 911,1 %0 / 0 rapprochement lexical ; précision non définie
Échecs CI366 / 2030,0 %5 / 6 orientations, soit 83,3 %

Une suggestion est une réponse same pour Sentry/reviews, ou une orientation code, configuration ou infrastructure pour la CI. La précision divise les suggestions conformes par les suggestions proposées. La couverture rapporte les suggestions à tous les cas test, y compris ceux trop longs : 79,2 % pour Sentry, 25,0 % pour les reviews et 55,6 % pour la CI. Un comparateur qui ne propose rien n’a pas une précision de 0 % ; elle est non définie.

Sentry : aucun rapprochement conforme supplémentaire au-delà des liens connus. Le zéro lexical concerne les paires après masquage des liens et identifiants. Parmi les 48 paires, 16 ont déjà une association Sentry explicite dans la provenance GitHub. Les 2 suggestions Laya conformes appartiennent à cet ensemble. Un lien documentaire ne prouve pas à lui seul une cause commune.

CI : 1 suggestion conforme de plus au total, mais 13 erronées de plus. Laya propose 6 orientations conformes et 14 non conformes, contre 5 et 1 pour les signatures lexicales. Ses 20 suggestions sont toutes code : 6 concordent, 8 portent sur des cas annotés configuration et 6 sur des cas inconnus. Aucune orientation configuration ou infrastructure n’est proposée sur ce test.

Pour les reviews, Laya propose 1 rapprochement conforme et 8 non justifiés. Le macro-F1 légèrement supérieur au comparateur ne suffit donc pas à qualifier le regroupement. La tâche consiste à reconnaître le même défaut allégué ; elle ne vérifie pas que ce défaut existe.

Garder les abstentions et dépassements dans le bilan
POCSuggestions erronéesDécisions differentDécisions unknownAbstentions par seuilTrop longs
Sentry360217
Reviews830168
CI14Sans objet4120

Les 15 dépassements sur 120 cas test restent dans les dénominateurs. Les décisions different, unknown et les abstentions ne sont pas des rapprochements erronés. Elles restent distinctes des erreurs de contexte. Aucun autre type d’erreur d’inférence n’est rapporté.

Corpus : ce que ces essais mesurent vraiment
165 observations réelles ou paires construites à partir de sources réelles
POCDéveloppementTestFamilles dev / test
Sentry12484 / 10
Reviews18366 / 12 PR
CI153610 / 27

Les 45 cas de développement et 120 de test sont séparés par familles avant les résultats. Les cas synthétiques de vérification restent à part. Ces petits corpus diagnostiques ne représentent pas les fréquences de production ; des PR apparentées peuvent rester dépendantes.

Sentry : 3 tickets candidats par incident, dont le ticket historiquement lié ajouté par construction, puis 2 voisins lexicaux de la même partition. Le rappel de recherche et le gain de bout en bout ne sont pas évalués. Les entrées contiennent les titres Sentry, parfois abrégés par le CLI, l’environnement et le début du problème GitHub. Aucun événement détaillé ni stacktrace complète. Les snapshots actuels ne reconstituent pas l’état à l’ouverture.

Reviews : 18 PR sélectionnées parmi les 100 récemment mises à jour, puis 3 paires par PR. Les familles PR sont disjointes. Le choix des paires ne mesure pas la prévalence des doublons. L’extraction retire uniformément les annexes et consignes dupliquées avant prédiction ; certaines mentions masquées affectent aussi des annotations de code. Ce corpus ne permet pas d’évaluer une réparation exacte du code.

CI : 37 extraits de logs et 14 observations de tickets historiques. Les extraits, préparés avant prédiction, ne dépassent pas 746 caractères. L’extraction automatique depuis des logs complets n’est pas évaluée. Le développement contient 7 configurations et 8 inconnus, sans code ni infrastructure. Le test contient 11 code, 11 configuration, 1 infrastructure et 13 inconnus. Toutes les classes ne peuvent donc pas être calibrées sur le développement.

Choix des candidats et limites des comparateurs

2 formulations, FR et EN, fixées avant prédiction ; seuils 0,50, 0,65 et 0,80 ; marges 0 ou 0,15, évalués sur développement seulement. Les questions, comparateurs, corpus, annotations, sorties de développement et identité du modèle ont été gelés avant chaque test. Aucun réglage sur le test désormais connu.

Candidats figés, tous non qualifiés sur développement
POCLangue / seuil / margeConformes / proposées en dev
SentryFR / 0,50 / 01 / 8
ReviewsEN / 0,65 / 01 / 5
CIEN / 0,65 / 01 / 7

La qualification préalable demandait au moins 3 suggestions et 90 % de précision. Avec 1 seul positif Sentry et 2 positifs reviews en développement, elle était mathématiquement inaccessible. Les 3 candidats sont conservés uniquement pour le diagnostic prévu, avec qualified_on_dev: false. Cela limite toute conclusion sur la meilleure configuration possible, sans rendre leurs erreurs favorables.

Pour poursuivre vers une validation humaine, le test devait atteindre 90 % de précision, au moins 5 suggestions et au moins 2 suggestions conformes de plus que le comparateur, sans erreur supplémentaire. Aucun candidat n’atteint ce signal exploratoire. Ces seuils ne sont ni des garanties statistiques ni une autorisation d’automatisation.

Sentry : interprétation figée du Jaccard des titres à 0,75 après masquage, sans prétendre reproduire tout le workflow. Reviews : même chemin et Jaccard du texte à 0,75. CI : signatures explicites. Les 2 derniers sont des références expérimentales, pas des automatisations déployées. Deux faiblesses du comparateur CI restent documentées : OOM associé à l’infrastructure sans preuve causale et signature RATE_LIMIT non reconnue. Elles n’ont pas été corrigées après lecture du test.

Exactitude globale, à distinguer de la précision des suggestions
Les erreurs et abstentions restent dans les dénominateurs
POCExactitude règlesLaya avec seuilLaya brutMacro-F1 règles / Laya avec seuil
Sentry13 / 484 / 484 / 480,142 / 0,122
Reviews5 / 364 / 3611 / 360,081 / 0,116
CI18 / 369 / 3616 / 360,328 / 0,185

Le choix brut est mesuré avant application du seuil de suggestion. Les scores du modèle ne sont pas des probabilités de justesse. Les paires d’une même famille ne sont pas des observations indépendantes ; les petits dénominateurs et les annotations provisoires limitent l’interprétation.

Latence du moteur sur les prédictions réussies
POCMédiane / p95Lot CLI, chargement inclus
Sentry103,0 / 148,5 ms5,32 s
Reviews93,9 / 162,4 ms3,88 s
CI42,3 / 108,0 ms5,38 s

Les refus de contexte sont comptés séparément des quantiles. La charge globale du Mac n’est pas contrôlée ; collecte, annotation et correction humaine ne sont pas incluses. Ces temps ne mesurent pas un gain de temps humain et ne sont pas interchangeables avec ceux des autres tâches.

Exécution locale, preuves et reproduction

Laya-MLX 0.2.0, MLX 0.32.2, Python 3.12.13, GPU float16 et mêmes poids multilingues que le premier pilote : aac6fef/laya-multilingual-mlx, révision f2b4faf51023039425946074e2cf1361d2db11d5. Budget total : 1 024 tokens, questions et options incluses. Aucune troncature silencieuse pour faire tenir une entrée.

L’ensemble des vérifications synthétiques, développements et tests comporte 242 tentatives, 213 prédictions réussies, 29 dépassements et 15 chargements. Les 120 cas réservés ne sont qu’une partie de ce total. Les 15 invocations ont confirmé un refus réseau EPERM avant calcul. La collecte GitHub/Sentry nécessitait le réseau ; l’inférence n’a utilisé aucune API d’IA externe. Ce confinement porte sur les processus de calcul, pas sur tout le Mac.

La commande de contrôle du dossier reproductible a été rejouée pour cette édition, sans relancer le modèle : contrats du comparateur, fichiers figés, identité du modèle et antériorité du gel vérifiés. Le contrôle accepte les preuves originales et rejette une entrée dev périmée, une chronologie inversée et une révision différente sur des copies temporaires. Le contrôle supplémentaire d’attestation a été ajouté après revue, sans modifier l’évaluateur figé ni les prédictions.

Les agrégats, questions retenues et empreintes permettent de contrôler les chiffres de ce chapitre. Les logs bruts, textes, identifiants, liens privés et annotations par cas restent privés. La reproduction complète nécessite le corpus privé et un dossier de sortie neuf. Ces agrégats seuls ne suffisent pas à rejouer le test.

Décision : conserver les liens exacts et les règles Arrêter les 3 candidats testés, comme la configuration du premier pilote de domaine. Toute nouvelle formulation demanderait un autre jeu réservé et des annotations à valider. Aucun quatrième POC n’est lancé dans ce bilan ; aucun ticket n’est modifié, aucune CI relancée et aucune automatisation activée.
20

Vidéos : démonstrations, avis et critiques

Ce que les créateurs apprécient, ce qui échoue dans leurs essais et les affirmations à corriger. Les liens ouvrent les passages analysés.

Les vidéos donnent des idées de tests et montrent aussi des échecs. Un même auteur peut apprécier la rapidité de Jev tout en critiquant ses décisions. Les avis sont attribués ci-dessous ; les résultats annoncés restent ceux de leurs auteurs. Aucun de ces essais n’a été reproduit pour ce dossier.

Les arguments qui reviennent dans les vidéos
ArgumentPassageLecture du dossier
Des réponses faciles à utiliser dans un logicielTheo, 06:34 ; Fireship, 01:33Un choix ou une note peut alimenter le code directement. Les LLM à sortie contrainte restent des comparateurs : ils peuvent aussi respecter un schéma.
Des décisions rapides sur beaucoup de textesGreg Isenberg / Ryan Vogel, 04:34 ; Theo, 26:49Classement d’emails ou de discussions rapporté par les auteurs. Le débit et le coût ne mesurent pas la qualité des catégories obtenues.
Une réponse valide peut être mauvaiseTheo, 05:34 ; Fireship, 03:00 ; Gary Explains, 08:10Faiblesse au jeu de dames, erreurs factuelles et réponses assurées : des contre-exemples utiles, sans taux d’erreur général à en déduire.
La façon de poser la question change le résultatErwan, 06:15 ; AICodeKing, 02:16Une liste de catégories incomplète force un mauvais choix. Il faut examiner les critères et les entrées avant d’attribuer tout l’échec au modèle.
Les gains commerciaux demandent un comparateur précisTheo, 15:48 ; Micah, 02:05Ces passages commentent les résultats de TypeSafe. Ils n’ajoutent pas de mesures indépendantes aux multiplicateurs du lancement.
Theo : enthousiasme pour l’API, réserves sur le jeu, les juges et la compaction

Jev is incredible, publié le 21 septembre 2026, dure 30 min 29 s. La transcription a été lue intégralement. Son titre favorable ne résume pas les réserves formulées dans la vidéo.

  • Jeu de dames. 05:04 : Theo transmet le plateau sous forme de données textuelles. Il apprécie la réponse rapide, puis constate à 05:34 que Jev joue mal. La démonstration ne mesure pas une capacité visuelle et ne fournit pas de benchmark comparatif.
  • Intégration. 06:34 : Il décrit l’intérêt des réponses utilisables dans un programme. À 07:18, il reprend la promesse de sorties structurées du lancement. La garantie de format ne garantit pas le choix correct.
  • Juge de code. 12:40 : Il conteste l’idée de faire choisir à Jev la meilleure de plusieurs implémentations sans lui donner les moyens d’enquêter dans le dépôt. Cette objection vise le contexte disponible et la tâche demandée. L’absence de raisonnement rédigé ne suffit pas à exclure tout jugement sur un critère précis ; voir les tests de juges de traces.
  • Benchmarks. 15:48 : Il rappelle que les gains publiés se situent dans le haut de ce que TypeSafe attend en pratique et que les réponses de référence viennent d’autres modèles. Leur accord n’est pas une annotation humaine indépendante.
  • Emails. 20:27 : Theo commente la démonstration de Ryan Vogel. Elle appartient à la même famille de sources que l’entretien chez Greg Isenberg, et ne compte pas comme une reproduction supplémentaire.
  • Compaction. 23:03 : Il critique la suppression de messages présentée comme un résumé de conversation. Jev peut sélectionner des passages ; il ne rédige pas le résumé qui relie décisions, contraintes et résultats. Il faudrait mesurer les informations perdues et la qualité des réponses suivantes. Les affirmations sur les caches et les traces de raisonnement ne sont pas reprises comme des règles communes à tous les fournisseurs.
  • Archives de discussions. 26:49 : Il raconte son classement de conversations, mais la recherche de discussions « intéressantes » retient trop de résultats. Ce retour invite à définir un critère observable, par exemple la présence d’une solution vérifiable. Le montant transcrit à 27:11 est incomplet : aucun coût n’en est déduit ici.
Fireship : une introduction critique, avec une correction sur confidence

An ex-OpenAI researcher just deleted language from the LLM..., publié le 21 septembre 2026, dure 5 min 27 s. La transcription a été lue intégralement. La vidéo mêle explication, sarcasme et exemples humoristiques ; elle ne fournit pas de benchmark indépendant.

  • Décisions simples. 00:29 : La vidéo montre pourquoi générer beaucoup de texte pour une petite décision peut coûter inutilement cher. Ses caricatures ne permettent pas de chiffrer le gain face à un LLM configuré pour une sortie courte.
  • Réponses typées. 01:33 : Présentation de l’état, des questions et des primitives. Le terme parfois transcrit « null » désigne ici Noul.
  • Justesse et répétabilité. 03:00 : Fireship rappelle qu’un format correct peut contenir une mauvaise décision et qu’une même demande peut produire des résultats différents. Il ne fournit pas de mesure de cette variabilité.
  • Confidence. 03:15 : L’explication assimile trop directement un niveau de confiance à une fréquence de bonnes réponses. La documentation TypeSafe définit confidence par la concentration de la distribution pour Choice et Score ; Noul n’a pas ce champ séparé. La calibration se mesure sur des exemples annotés, pour la tâche et la version testées. Un seuil de confidence n’est pas un intervalle de confiance statistique.
  • Architecture. 03:40 : Fireship souligne que les détails internes ne sont pas publiés. Malgré l’annonce d’un examen du code à 00:56, la transcription ne décrit pas une lecture du code interne de Jev.
  • Antériorité. 04:02 : La vidéo rapporte une revendication de travail antérieur sans démontrer une copie. Elle ne nomme pas l’auteur dans ce passage. Le dossier ne transforme pas cette allusion en preuve de plagiat ou d’escroquerie ; voir les critiques et le marketing.
  • OpenJev. 04:07 : Les propos concordent avec SemIf, anciennement OpenJev, qui lit les scores d’options à partir d’un modèle Qwen gelé. Le projet reproduit une interface de décision, pas les poids ou l’entraînement de Jev. Cette alternative demande ses propres mesures de qualité, de coût et de calibration ; voir les projets communautaires.

Le segment Mux commence à 04:24. Theo annonce pour sa part un sponsoring Depot. Ces passages ne démontrent pas un financement par TypeSafe.

4 retours francophones : usages proposés, erreurs et limites des tests
Analyses des transcriptions françaises lues intégralement
Créateur et passageApportRéserve à conserver
Meydeey, 11:06 ; 15:46Comparaison sur plusieurs scénarios ; le présentateur décrit aussi des faiblesses sur les dates, les nombres, les structures imbriquées et les données éloignées des exemples habituels.Le score composite de 99,4/100 n’est pas un taux de bonnes réponses. Jeu de données, annotations et code non audités ; le présentateur dit ne pas comprendre le Brier score affiché.
Erwan, 06:00 ; 04:00Tri de 500 commentaires annoncé en 14 s pour 0,01 $. Selon sa relecture, moins de 10 des 85 commentaires classés spam le sont réellement.La catégorie « avis » manque. Pas de matrice d’erreurs annotée indépendamment. Son autre test pose 2 questions binaires séparées : leurs réponses ne constituent pas une distribution Choice unique.
LVLUP, 12:00 ; 05:13Démo de tri et d’étiquetage d’environ 20 tickets fictifs. L’auteur dit avoir vu des erreurs et vouloir annoter un jeu de données avant un usage en production.Le seuil de 60 % proposé à 14:24 est arbitraire. Sa conclusion juridique sur l’hébergement n’est pas retenue : elle n’est pas étayée par un examen des textes et contrats applicables.
Leon / Naleo, 05:17 ; 08:50Il annonce contraindre les sorties des 2 modèles, puis montre une classification de textes et un labyrinthe. Ce réglage mérite de figurer dans les comparaisons.Le labyrinthe est annoncé autour de 200 ms contre 1 s, sans effectifs, p95 ni configuration complète. Le classement d’actualités fictives ne mesure pas la qualité d’une décision financière.
2 vidéos qui citent la même annonce ne sont pas 2 validations Les multiplicateurs repris par Theo, Fireship et d’autres chaînes viennent des évaluations de TypeSafe. La qualité doit être comparée sur les mêmes entrées et la même tâche. Inclure un LLM à sortie contrainte évite de supposer qu’un LLM doit toujours rédiger un paragraphe. Les limites et les corrections s’appliquent aussi bien aux avis favorables qu’aux critiques.

La présentation de l’épisode ThursdAI du 17 septembre identifie Allie Laabs comme Founding DevRel chez TypeSafe. Les liens ci-dessous utilisent les minutes de l’extrait YouTube consacré à Jev, distinctes de celles de l’épisode complet.

Passages commentés
Vidéo et minuteÀ regarderComment lire le résultat
Greg Isenberg, 22:54Ryan Vogel décrit un essai peu concluant sur Bitcoin : acheter, conserver ou vendre.Le modèle comparé disposait d’actualités supplémentaires ; les informations reçues étaient différentes.
Greg Isenberg, 24:22Une vidéo est transcrite avant que Jev ne note le texte.Le passage montre une étape de transcription, pas une entrée vidéo native dans Jev.
Meydeey, 16:25Construction du score composite, annoncé à 99,4 à 16:39.Ce nombre n’est pas un taux de bonnes réponses. À 16:49, le présentateur dit ne pas comprendre le Brier score ; la méthode et les écrans restent à vérifier.
Erwan, 06:15Test de tri des commentaires ; les erreurs sont décrites à 06:47.La liste de catégories oublie les avis. L’auteur relève des commentaires classés spam, sans annotations indépendantes de référence.
Allie / ThursdAI, 23:00Choisir entre un choix unique et plusieurs étiquettes compatibles.L’intervenante représente TypeSafe, qui sponsorise aussi le hackathon annoncé par l’hôte.
AICodeKing, 05:22Démo navigateur de Gregor Zunic, combinant Jev et un modèle génératif.AICodeKing dit ne pas l’avoir reproduite. Le dépôt Jev Ultrafast inclut le travail du navigateur dans le temps mesuré après la première observation. À 06:01, le commentateur précise que le prix annoncé exclut l’infrastructure navigateur : durée et coût ont des périmètres distincts.
AICodeKing, 02:16Une catégorie « autre » manque dans la liste des choix.Un choix imposé par une liste incomplète peut être faux ; le passage aborde aussi la confidence.
Allie / ThursdAI, 26:37Comment une démonstration a été montée.L’intervenante annonce 15 minutes enregistrées pour 2 min 30 retenues. Le montage ne mesure pas le taux de réussite.
Nouveaux passages repérés dans les transcriptions
Vidéo et minuteSujetPortée
Micah, 02:05Comment les ratios varient selon le comparateur.Commentaire des résultats fournisseur ; pas de nouveau benchmark.
Micah, 03:00Accord avec les modèles juges.L’accord ne prouve pas une correction humaine indépendante.
AISeeKing, 05:20Désaccords dans les résultats publiés.Analyse et reprises ; aucune exécution supplémentaire vérifiée.
SimplyExplain, 07:14Réduire les candidats avant le choix Wikiracing.Une explication du système en 2 étapes décrit par TypeSafe.
Riley Brown, 19:13Accès par Vercel.Le passage ne documente pas les conditions des autres plateformes.
Les 12 vidéos les plus vues dans la collecte du 21 septembre
Méthode de collecte des vidéos
  • La collecte initiale comptait 78 candidats et 38 transcriptions. Le complément du 21 septembre a ajouté 5 transcriptions, portant le total à 43.
  • Fireship ajoute 1 transcription le 22 septembre : 44 transcriptions acquises au total. Celle de Theo, déjà présente, a été relue intégralement. Le bilan est de 14 transcriptions lues intégralement et 30 examinées par passages ciblés.
  • Une acquisition du complément n’a pas produit les sous-titres anglais demandés ; ses métadonnées seules ne confirment aucune performance.
  • Les repères correspondent au début des segments de sous-titres, sans précision à l’image près. Les noms et les nombres mal reconnus ne sont pas corrigés en faits supposés.
  • Une transcription permet de retrouver les propos d’un auteur. Elle ne vérifie pas les compteurs affichés ni l’exécution présentée à l’écran.
  • Les entretiens avec l’équipe TypeSafe restent des propos du fournisseur, même lorsqu’une chaîne tierce les publie.
  • La durée cumulée des vidéos ne correspond pas à un visionnage intégral réalisé pour ce dossier.

La courte vidéo Jev Doom Demo SoftBed est une reprise commentée, sans expérience indépendante identifiée. Dans la démo originale, TypeSafe indique que Jev reçoit un état textuel du jeu, pas les images. Ni cette reprise ni une vidéo montée ne mesurent la capacité générale à jouer. Les liens minutés de ce dossier ont été contrôlés dans les transcriptions, sans audit audiovisuel des compteurs affichés.

Les 30 analyses par passages : usages, objections et hypothèses

Ce tableau donne accès aux autres analyses du corpus initial, dont Gary Explains, Sam Witteveen, The PrimeTime et Turing Post. Les liens correspondent aux passages lus ; ils ne signifient pas que toute la vidéo a été examinée. Les observations décrivent ce que dit chaque créateur à la date de sa vidéo.

Passages examinés dans les 30 transcriptions restantes
Chaîne et passages lusApport de la vidéoLimite de l’analyse
Sam Witteveen · 12:53 ; 14:11Sam Witteveen distingue format de réponse et exactitude, et relève absence de papier/architecture détaillée.Synthèse des annonces du fournisseur, sans reproduction des tests.
Sam Witteveen · 01:05 ; 03:49 ; 07:00 ; 08:47Présente SemIf, DJev et alternatives ouvertes; évoque NLI/BERT et limites de généralisation après peu d’exemples.Ce sont des projets compatibles ou inspirés, pas poids Jev publiés. Vérifier benchmark, noms et conditions sur dépôts primaires; ToS évoquées sans vérification ici.
Syntax · 04:33 ; 10:39 ; 15:37Syntax propose un pipeline transcription puis notes LLM puis contrôle de affirmations; démontre Home Assistant annoncé à 300ms.Pipeline proposé partiellement; ne pas confondre temps de cette démo et benchmark complet.
The PrimeTime · 21:37 ; 26:22 ; 32:47 ; 35:18Live PrimeTime explore intégration jeu, schéma d’actions et erreurs de câblage.Passages seulement; erreurs de développement ne constituent pas un taux d’échec du modèle. Plus de 2 heures non analysées intégralement.
Matthew Berman · 00:23 ; 04:30 ; 08:47Matthew Berman répète zéro hallucination dans un contexte évoquant santé/traffic/décisions critiques.Raccourci trompeur si lu comme exactitude garantie; aucune validation de sécurité observée dans ces passages.
Caleb Writes Code · 01:45 ; 07:04Caleb distingue vitesse d’exécution et profondeur de compréhension; rappelle que les démos sociales mettent surtout en scène la vitesse.Interprétation et chiffres fournisseur, pas comparaison contrôlée.
Rob Shocks · 00:50 ; 07:21Rob Shocks décrit état + questions + réponses typées, et envisage sélection de outils et skills.Le titre ne signifie pas que Jev génère du code. Les usages dans des agents sont surtout proposés.
Moritz | AI Systems · 00:00 ; 11:36Moritz annonce 3 projets et montre une amélioration du système de mémoire Claudia avec classement.Pas validation de qualité du rappel ni mesure de régression dans les passages lus.
Riley Brown · 12:24 ; 15:25Riley Brown reprend les benchmarks internes et propose filtrage de notifications; cite 64k contexte.Les chiffres de contexte cités varient. Voir le chapitre sur les limites pour distinguer état, question et requête complète.
David Ondrej · 01:13 ; 05:37 ; 09:59David Ondrej reprend les chiffres marketing, raisonnement sur sorties parallèles et démo navigateur.Parallélisme ne prouve pas absence d’erreur; démo de navigateur rediffusée; vidéo comporte promotion hébergement.
RepoChad · 00:14 ; 02:11 ; 06:09RepoChad expose RLCD comme revendication, et absence de benchmark public standard/paramètres/poids.Exposé tierce source; pas preuve d’architecture. Critique de la validation surtout interne utile.
Codevolution · 00:00 ; 10:59Codevolution explique smart-if, puis distinction Noul sans champ confidence séparé et version retournée.Les dates de gratuité diffèrent entre vidéos. Ce passage ne fait pas référence pour les conditions d’accès actuelles.
AICodeKing · 02:16 ; 02:50 ; 07:34AICodeKing montre catégorie absente, injection simple résistée, choix d’email parmi candidats, audit faux succès. Distingue service et E2E, mentionne 8 requêtes, 4148 tokens, 1.13.0.Échantillon minuscule. Browser Use externe non reproduit, LLM Mercury pour texte, timer après première observation, aucune réservation.
Turing Post TV · 04:38 ; 09:45Turing Post distingue garantie de structure et jugement correct; montre intégration Codex et cite architecture/RLCD comme revendications.Analyse ciblée, pas audit complet du code ou du comparateur.
Gary Explains · 01:01 ; 08:10Gary Explains obtient attribution erronée d’une citation modifiée de Shakespeare et mauvaise réponse assurée sur énigme de fleurs.Contre-exemples de créateur, pas taux d’erreur général; transcription seule, écran non revérifié.
Neural Breakdown with AVB · 11:30 ; 20:07Neural Breakdown explore décodage contraint et architectures possibles.Spéculation explicite, pas analyse démontrée du fonctionnement interne de Jev; plus de 2 heures non analysées intégralement.
Jeremy Chone · 13:10 ; 38:40Jeremy Chone construit wrapper Rust/sysone; propose contrôle des pratiques Rust et exécute exemple urgence avec sortie objet.Le cas de lint est proposé; travail de librairie ne prouve pas exactitude modèle.
vogel · 00:00 ; 02:06Ryan Vogel montre classifieur email avec 8 traitements simultanés et annonce environ 200ms/email.Même auteur/source que démo Greg, ne pas compter comme réplication indépendante supplémentaire.
Founders You Should Know · 00:02 ; 02:25Diogo présente sa vision de l’automatisation avant lancement et annonce sortie future.Vidéo publiée le 31 mars 2026, avant le lancement public ; elle ne mesure pas le Jev de septembre.
AI Council · 02:43 ; 05:35Talk TypeSafe de juin expose opposition assistance humaine/automatisation et critique des benchmarks.Vision du fondateur, historique; pas documentation d’architecture ni évaluation de la version lancée.
Lukas Margerie · 00:00 ; 05:11Lukas Margerie propose de réutiliser un classifieur X pour catégories de vidéos YouTube et rapporte plusieurs démos externes.Agrégation de démos, pas métriques originales vérifiées; compteurs et coûts attribués à leurs auteurs.
Mark Kashef · 01:06 ; 03:20Mark Kashef rappelle architecture non révélée et intérêt du classifieur comme contrôle ciblé dans workflow.Suggestions, pas validation de qualité; un juge supplémentaire peut cumuler des erreurs.
Mayank Aggarwal · 05:50 ; 08:33Mayank montre score d’expérience de CV et routeur de modèle.Dates/nombres/score demandent contrôle; contexte 64k cité sans vérification ici.
Alessio Garau · 02:10 ; 07:22 ; 15:27 ; 22:46Alessio Garau avertit que RLCD détaillé reste inconnu et que seuls benchmarks maison sont disponibles dans son exposé.Transcription italienne originale; WikiRace présenté comme démo fournisseur, non reproduite.
tacosdedatos · 01:03 ; 03:36tacosdedatos explique calibration agrégée plutôt que promesse individuelle et décrit accès fournisseurs.Description déclare vidéo créée par agent IA, voix clonée et animation Remotion; source secondaire, accès/prix à rafraîchir.
WatchSigma · 51:00 ; 65:51Replay WatchSigma contient réponse attribuée au CEO sur éventuel papier RLCD non prioritaire, priorité à modèles et amélioration du produit.Rediffusion commentée avec voix superposées ; attribution incertaine. Aucun calendrier de publication n’en est déduit.
Krish Naik · 20:45 ; 22:54Krish Naik propose routeur Jev avant outils/RAG/LLM.Schéma pédagogique et futures implémentations annoncées, pas test réalisé dans ces passages.
Maximilian Schwarzmüller · 07:32Maximilian Schwarzmüller relève 32k contexte, limites numériques/dates, et place Jev comme complément.Synthèse des docs à la date de vidéo, pas benchmark indépendant.
KΞVPUSH · 05:53 ; 10:54 ; 19:30KEVPUSH montre choix SEO à contexte vide/faible confiance, puis routage, modération et urgence.Démos contrôlées par créateur; aucun étalonnage statistique global démontré.
Adrian CHIAPELLO | Claude Code · 22:40Adrian Chiapello teste casse-brique avec état balle/raquette et constate réseau autour de 200 à 300 ms après attente 100 à 150 ms.Observation développeur de cette démo; distinguer animation, réseau, code et inférence.
III

Préparer ses essais

21

Premier appel à Jev : installer le SDK et tester un ticket

Un programme Python envoie un ticket fictif, puis affiche une proposition de classement. Le prompt en fin de chapitre permet aussi de préparer cet essai avec un assistant de code.

Jev est un service hébergé. Vous installez ici la bibliothèque cliente Python qui appelle son API. Les poids de Jev ne sont pas téléchargés sur votre machine. Le résultat sert au programme : aucune conversation avec un chatbot n’est nécessaire.

Version du tutoriel et release suivante La release Python 0.7.1, publiée le 21 septembre, valide la clé plus tôt, évite sa valeur dans les exceptions journalisées et ajoute des exemples de passerelles. Le tutoriel reste épinglé à 0.7.0, la version déjà vérifiée avec un transport simulé. Le SDK JavaScript observé reste v0.6.0. Cette notice de version ne mesure pas le service Jev.

1. Obtenir une clé et vérifier Python.

2. Installer le client dans un dossier dédié. Dans un terminal macOS ou Linux, lancez les commandes suivantes. Vérifiez que la version affichée de Python est au moins 3.10 avant de continuer. La version du SDK est fixée à 0.7.0 pour pouvoir reproduire l’exemple avec la même version du client.

Terminal Terminal macOS / Linux · installation 6 lignes
mkdir jev-premier-appel
cd jev-premier-appel
python3 --version
python3 -m venv .venv
source .venv/bin/activate
python -m pip install "typesafe-sdk==0.7.0"

3. Créer le script. Dans ce dossier, enregistrez le bloc suivant dans premier_appel.py. La clé est lue dans TYPESAFE_API_KEY si cette variable existe ; sinon, le programme la demande dans le terminal avec une saisie masquée. Elle ne figure ni dans le fichier ni dans le prompt pour l’assistant.

Python premier_appel.py · fichier complet 73 lignes
"""Un ticket fictif, une tentative API et une catégorie prédite affichée.

Requiert Python 3.10+ et typesafe-sdk==0.7.0.
Lancer ce fichier envoie une requête à TypeSafe, facturable selon le compte.
"""
import getpass
import json
import os
from time import perf_counter

from typesafe_sdk import (
    Choice, RetryPolicy, TypeSafeAPIConnectionError, TypeSafeAPIError, TypeSafeClient,
)


def main():
    api_key = os.environ.get("TYPESAFE_API_KEY", "").strip()
    if not api_key:
        api_key = getpass.getpass("Clé API TypeSafe (saisie masquée) : ").strip()
    if not api_key:
        raise SystemExit("Aucune clé fournie ; aucun appel envoyé.")

    try:
        with TypeSafeClient(
            api_key=api_key,
            base_url="https://api.typesafe.ai",
            retry=RetryPolicy(max_retries=0),
            timeout=30.0,
        ) as client:
            start = perf_counter()
            response = client.system_one(
                model="jev-1.13.0",
                state={
                    "ticket": "Le paiement a échoué et je ne peux plus accéder à mon compte.",
                    "language": "fr",
                },
                questions={
                    "destination": Choice(
                        instructions=(
                            "Quelle catégorie décrit le mieux le sujet principal du ticket ? "
                            "Évaluer les catégories à partir du texte fourni."
                        ),
                        criteria={
                            "facturation": "Paiement refusé, facture ou remboursement.",
                            "acces_compte": "Connexion impossible ou accès au compte bloqué.",
                            "incident_technique": "Panne hors paiement et accès au compte.",
                            "autre": "Aucun des sujets précédents.",
                        },
                    ),
                },
            )
            elapsed = perf_counter() - start
    except TypeSafeAPIError as error:
        raise SystemExit(f"Erreur API TypeSafe : HTTP {error.status}.") from None
    except TypeSafeAPIConnectionError:
        raise SystemExit("Connexion à TypeSafe impossible ou délai HTTP dépassé.") from None

    answer = response.choices["destination"]
    print(json.dumps({
        "model": response.model,
        "proposition": answer.choice,
        "probabilities": answer.probabilities,
        "confidence": answer.confidence,
        "duree_appel_secondes": round(elapsed, 3),
        "usage": {
            "input_tokens": response.usage.input_tokens,
            "output_tokens": response.usage.output_tokens,
        },
    }, ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()

4. Envoyer le ticket fictif. Avec l’environnement virtuel toujours actif, lancez la commande ci-dessous.

Terminal Terminal · appel au service 1 ligne
python premier_appel.py

5. Lire la catégorie prédite. Le programme affiche un objet JSON avec l’option Choice et ses probabilités. Le ticket mentionne deux sujets : observez leur distribution sans attendre une priorité de traitement imposée au modèle. Le script ne déplace aucun ticket. Un premier appel réussi confirme le fonctionnement de la connexion pour ce cas ; il ne mesure pas la fiabilité du classement.

Les champs affichés par le script
ChampLecture
propositionLa catégorie prédite dans choice. Le script l’affiche sans décider d’une affectation ni déplacer de ticket.
probabilitiesLa probabilité attribuée à chacune des 4 options.
confidenceLa concentration de cette distribution ; ce nombre n’est pas une probabilité d’exactitude.
modelL’identifiant renvoyé par le service, à conserver avec les résultats.
usageLes compteurs de tokens fournis par le SDK. null signifie que la valeur manque, jamais 0 par défaut.
duree_appel_secondesDurée côté client : préparation de la requête, réseau, serveur et décodage. Ce n’est pas le seul temps d’inférence.

La décision appartient au code : démonstration hors réseau. Pour un ticket qui cumule paiement échoué et accès bloqué, deux Noul peuvent évaluer séparément ce que le texte mentionne. Ces signaux ne prouvent pas l’état réel de la transaction ou du compte. Le bloc suivant déclare les questions sans les envoyer et utilise uniquement des réponses fictives. Enregistrez-le dans decision_policy.py, puis lancez python decision_policy.py avec Python 3.10 ou plus récent ; aucune clé ni bibliothèque tierce n’est nécessaire.

Python decision_policy.py · hors réseau 50 lignes
"""Démonstration hors réseau : valeurs et seuils fictifs, aucun appel Jev."""
import json

# Deux questions indépendantes à poser à Jev ; ce fichier ne les envoie pas.
questions = {
    "payment_failed": {
        "type": "noul",
        "instructions": "Le ticket mentionne-t-il un paiement refusé ou échoué ?",
    },
    "access_blocked": {
        "type": "noul",
        "instructions": "Le ticket mentionne-t-il un accès au compte bloqué ?",
    },
}


def decide_route(probabilities, *, threshold=0.8, priority="facturation"):
    # Politique pédagogique conservatrice, seuil non validé pour la production.
    if not 0.5 < threshold <= 1 or priority not in ("facturation", "acces_compte"):
        raise ValueError("Politique invalide")
    payment = probabilities["payment_failed"]
    access = probabilities["access_blocked"]
    if not (0 <= payment <= 1 and 0 <= access <= 1):
        raise ValueError("Probabilités attendues entre 0 et 1")
    if payment >= threshold and access >= threshold:
        return priority
    if payment >= threshold and access <= 1 - threshold:
        return "facturation"
    if access >= threshold and payment <= 1 - threshold:
        return "acces_compte"
    return "relecture"


# Réponses simulées aux deux Noul, réutilisées sans nouvel appel.
probabilities = {"payment_failed": 0.92, "access_blocked": 0.88}
proposals = {
    "billing_first": decide_route(probabilities, priority="facturation"),
    "access_first": decide_route(probabilities, priority="acces_compte"),
    "higher_threshold": decide_route(probabilities, threshold=0.95),
}
assert proposals == {
    "billing_first": "facturation",
    "access_first": "acces_compte",
    "higher_threshold": "relecture",
}
assert decide_route({"payment_failed": 0.52, "access_blocked": 0.48}) == "relecture"
assert decide_route({"payment_failed": 0.92, "access_blocked": 0.10}) == "facturation"
assert decide_route({"payment_failed": 0.10, "access_blocked": 0.92}) == "acces_compte"
print(json.dumps({"questions": questions, "simulated_probabilities": probabilities,
                  "application_proposals": proposals}, ensure_ascii=False, indent=2))

Les mêmes probabilités, 0,92 et 0,88, donnent facturation ou acces_compte selon la priorité écrite dans le code. Avec un seuil fictif de 0,95, la fonction renvoie relecture. Elle ne propose un traitement sur un seul motif que si l’autre motif est sous le seuil complémentaire ; les cas ambigus passent en relecture. Les assertions vérifient cette politique locale, pas Jev. Aucun ticket n’est déplacé. Il faut mesurer les erreurs et choisir les seuils sur ses propres données avant une utilisation réelle.

Vérification du tutoriel Le script a été exécuté avec le SDK Python 0.7.0 installé et un transport HTTP simulé. Les contrôles couvrent la lecture d’une réponse, les compteurs absents, une clé vide, une erreur d’authentification, une surcharge et un dépassement de délai sans reprise. Aucune requête de ces tests n’a atteint Jev : l’accès au compte et la qualité des décisions restent à vérifier avec le service.
Si le premier appel échoue
Symptôme et vérification utile
SymptômeÀ vérifier
Installation refusée ou import introuvablePython doit être en version 3.10 ou plus. Réactivez .venv, puis utilisez python -m pip avec le même interpréteur que pour lancer le script.
Clé absenteLe script s’arrête avant l’appel. Relancez-le et saisissez la clé dans le terminal.
HTTP 401 ou accès refuséVérifiez la clé et l’accès du compte dans la console TypeSafe.
Modèle indisponible ou requête rejetéeConsultez les modèles documentés et la forme de la requête. Une erreur 422 demande de vérifier son contenu.
HTTP 429 ou 529Vérifiez le quota ou la disponibilité du service avant un nouvel essai. Le script ne relance pas automatiquement la requête.
Erreur réseau ou dépassement du délaiVérifiez la connexion et l’état du service. Un échec de transport ne fournit aucune catégorie pour le ticket.

Préparer le même essai avec Claude Code ou Codex. Copiez le prompt suivant dans votre assistant, depuis le dossier du projet. Il demande d’abord une simulation locale ; le passage au service réel reste une commande distincte que vous lancez. Ne collez pas votre clé dans la conversation.

Prompt Prompt à copier · créer une démonstration Jev 19 lignes
Crée dans ce projet une démonstration minimale de l’API Jev de TypeSafe, avec un ticket entièrement fictif. Commence par lire la structure et les instructions du projet ; préserve les fichiers existants.

Documentation à vérifier avant de coder :
- https://docs.typesafe.ai/introduction/quickstart
- https://docs.typesafe.ai/sdk/python/usage
- https://docs.typesafe.ai/sdk/python/api/retries
- https://docs.typesafe.ai/models

Utilise Python 3.10+ et typesafe-sdk==0.7.0 dans un environnement virtuel dédié. Demande le modèle jev-1.13.0 et enregistre l’identifiant réellement renvoyé. Si cette version n’est plus documentée, signale le changement dans le README.

Cas : « Le paiement a échoué et je ne peux plus accéder à mon compte. » Crée une question Choice nommée destination, avec facturation, acces_compte, incident_technique et autre. Décris chaque catégorie et demande celle qui décrit le mieux le sujet principal. Ne place pas de priorité opérationnelle dans cette question : choice est une catégorie prédite, pas une affectation de ticket.

Par défaut, lance une simulation locale utilisant le vrai SDK et un transport HTTP simulé. Étiquette clairement toutes les valeurs simulées. Ajoute une option --live que je lancerai moi-même pour envoyer ce ticket fictif au service ; ne l’exécute pas pendant ton travail. En mode réel, 1 seule tentative SDK avec RetryPolicy(max_retries=0), délai HTTP de 30 secondes, clé TYPESAFE_API_KEY ou saisie masquée dans le terminal. Ne demande jamais la clé dans la conversation et ne l’écris pas dans le code.

Affiche la catégorie prédite, les probabilités, confidence, le modèle, les compteurs de tokens et la durée complète de l’appel client. Conserve null si un compteur manque. Explique que confidence décrit la concentration des probabilités, pas la probabilité d’avoir raison.

Ajoute un fichier autonome decision_policy.py, sans client API ni réseau. Déclare deux questions Noul indépendantes sur la mention d’un paiement échoué et d’un accès bloqué. Utilise des réponses explicitement fictives et une fonction decide_route(probabilities, *, threshold=0.8, priority="facturation") qui applique une priorité et renvoie une proposition ou relecture. Les valeurs et seuils sont pédagogiques, non validés pour la production. Teste que les mêmes probabilités peuvent donner une autre proposition quand seule la politique change, ainsi que les motifs coexistants et les cas ambigus envoyés en relecture. Affiche séparément les probabilités simulées et la proposition applicative ; ne déplace aucun ticket. Ces signaux portent sur le texte, pas sur l’état réel du paiement ou du compte.

Produis le script, les commandes d’installation et d’exécution, puis des tests hors réseau pour une réponse valide, une clé absente, une erreur HTTP et l’absence de nouvelle tentative sur surcharge. N’effectue aucune modification sur GitHub ou Sentry. Indique exactement ce qui a été testé ; un transport simulé ne teste ni Jev ni l’accès à mon compte.

Après ce premier essai.

Remplacer le ticket fictif par une issue réelle ne suffit pas à valider une automatisation.

Références du tutoriel : démarrage officiel, SDK Python 0.7.0 sur PyPI, client Python et options, politique de reprise. Documentation et déclarations de types du SDK relues le 21 septembre 2026.

Dans mes autres ressources Si vous réalisez ce premier essai avec un assistant de code, mon article Configuration portable de Claude Code et Codex (EN) explique comment organiser les instructions, skills et hooks partagés entre les 2 outils.
22

Installer Laya sur un Mac et préparer un premier test

Logiciels et poids téléchargés une fois, puis inférence locale sans API d’IA.

Un premier essai sans API d’IA Le parcours ci-dessous installe le moteur public Laya-MLX. Il ne distribue pas notre interface web ni les contrôles supplémentaires du laboratoire. Après téléchargement des logiciels et des poids, les prédictions utilisent un chemin local. Aucun compte Jev ni clé d’API d’IA n’est nécessaire pour le modèle public indiqué.

Prérequis : Mac Apple Silicon, Python 3.12 déjà disponible et espace pour l’environnement et environ 614 Mio de poids. Ce parcours utilise les versions du laboratoire. Son inférence locale et l’interface de commande ont été vérifiées ; l’installation complète n’a pas été rejouée sur un Mac vierge. Windows, Linux et Mac Intel ne sont pas qualifiés ici. Installation officielle.

1. Depuis le dossier où vous rangez vos essais, créez un nouveau dossier. Ces commandes installent des paquets via Internet. Si python3.12 est introuvable, installez Python 3.12 avant de continuer. Si le dossier existe, choisissez un autre nom.

Terminal Installer les versions du laboratoire 6 lignes
mkdir laya-demo
cd laya-demo
python3.12 -m venv .venv
.venv/bin/python -m pip install \
  'laya-mlx==0.2.0' 'mlx==0.32.2' 'tokenizers==0.23.2' 'numpy==2.5.3' 'huggingface-hub==1.33.0'
.venv/bin/python -m pip freeze > requirements-laya.txt

2. Dans ce même dossier, téléchargez explicitement la révision multilingue. Cette étape nécessite Internet ; elle est séparée des prédictions. Conservez le fichier requirements-laya.txt pour identifier l’environnement résolu.

Terminal Télécharger les poids une fois 12 lignes
.venv/bin/python - <<'PY'
from huggingface_hub import snapshot_download

snapshot_download(
 \
   repo_id="aac6fef/laya-multilingual-mlx",
 \
   revision="f2b4faf51023039425946074e2cf1361d2db11d5",
 \
   local_dir="models/laya-multilingual",
)
PY

3. Enregistrez le JSON ci-dessous dans questions.json, à côté de .venv. Il demande une catégorie sur un texte court. Les questions sont en anglais ; le modèle sélectionné accepte une entrée française ou anglaise.

JSON questions.json 11 lignes
{
  "department": {
    "type": "choice",
    "instructions": "Which team should handle the main request?",
    "criteria": {
      "billing": "Invoices, payments and refunds.",
      "technical": "Software bugs and outages.",
      "other": "A clear request unrelated to billing or technical support."
    }
  }
}

4. Lancez une prédiction avec les poids locaux. Le JSON doit contenir answers.department et les probabilités des options. Le paiement en double suggère une catégorie de facturation, mais cette attente ne doit pas devenir un résultat garanti. Une sortie JSON valide prouve le fonctionnement de l’appel, pas sa justesse.

Terminal Prédire avec le modèle local 6 lignes
HF_HUB_OFFLINE=1 HF_HUB_DISABLE_TELEMETRY=1 HF_HUB_DISABLE_IMPLICIT_TOKEN=1 \
  .venv/bin/laya-mlx predict \
  --model ./models/laya-multilingual \
  --device gpu \
  --questions questions.json \
  --state "J'ai été débité 2 fois. Je demande le remboursement du doublon."
Le SDK public peut tronquer les entrées Les 1 024 tokens incluent texte, consigne et options. Notre laboratoire ajoute un refus explicite des troncatures, absent de ce tutoriel minimal. Gardez des exemples très courts ; avant un traitement réel, contrôlez la longueur de l’entrée construite et refusez les dépassements. Ne supprimez pas une fin de ticket qui contient une négation ou une précision importante.
Vérifier sans accès réseau sur macOS

Les variables Hugging Face ne constituent pas un pare-feu. Après le téléchargement, ce profil macOS refuse le réseau au seul processus de test et à ses enfants ; il ne désactive pas la connexion du Mac. C’est le mécanisme utilisé dans nos essais sur macOS 26.5.1. Sa disponibilité sur une autre version doit être vérifiée.

Terminal Inférence avec réseau refusé 9 lignes
printf '(version 1)
(allow default)
(deny network*)
' > deny-network.sb
/usr/bin/sandbox-exec -f deny-network.sb \
  env HF_HUB_OFFLINE=1 HF_HUB_DISABLE_TELEMETRY=1 HF_HUB_DISABLE_IMPLICIT_TOKEN=1 \
  .venv/bin/laya-mlx predict \
  --model ./models/laya-multilingual --device gpu \
  --questions questions.json --state "I was billed twice. Please refund the duplicate."

Une erreur de chargement doit être résolue en vérifiant les fichiers locaux. Ne pas remplacer silencieusement le chemin par un service distant. Si le profil est refusé par l’environnement d’exécution, distinguer ce blocage d’un échec du modèle.

Choisir le premier usage
UsagePremier essaiCe qui reste à mesurer
Tri d’issues GitHubProposer un domaine technique sur des tickets courts, sans ajouter de label.Pilote effectué : candidat écarté ; annotations à valider humainement.
Orientation du supportRepérer accès, planning, paiement et demande pédagogique.Autoriser plusieurs thèmes ; valider les catégories avec les personnes qui traitent les demandes.
Documents après OCRClasser le texte déjà reconnu.Vérifier si l’OCR distingue déjà cours et exercices ; ne pas ajouter un appel inutile.

Le pilote de tri d’issues a maintenant été exécuté : 30 exemples de développement puis 60 de test. Le candidat est écarté et la validation humaine des annotations reste à faire. Pour un autre essai, grouper les doublons avant séparation, faire relire les labels, figer les seuils avant test et employer un nouveau jeu réservé. Mesurer qualité par catégorie, couverture, abstention, erreurs, dépassements et latence complète. Le tuto installe le moteur ; il ne promet pas un gain de qualité.

Le labo utilisé pour nos mesures ajoute une page locale, 6 formulaires, des imports et des lots reprenables. Il n’est pas encore distribué : les commandes start.command, stop.command et laya-lab ne sont pas installées par pip install laya-mlx. Le tuto public ci-dessus permet une première inférence ; reproduire tout le laboratoire demande son code et son environnement.

23

Mis à jour · Version 0.20.0

Accéder à Jev : versions, quotas et limites

Jev reçoit du texte. La version, les quotas et le chemin d’accès doivent être relevés pour chaque test.

Au 28 octobre, la page Models liste jev-1.14.0 et jev-1.13.0, au même prix et avec les mêmes limites ; jev-latest et jev-preview pointent vers jev-1.14.0. Le modèle direct documenté à l’édition initiale était jev-1.13.0.

Modèles et limites TypeSafe.

Routes documentées au 21 septembre
AccèsIdentifiant et interfacePrix affichéPortée du contexte documentée
TypeSafe directjev-1.13.0 ; API state/questions0,042 $/million de tokens d’entrée ; sorties gratuites.64k pour state et toutes les questions ; 32k pour state et la question la plus longue.
Vercel AI Gatewaytypesafe-ai/jev ; experimental_evaluate dans AI SDKPromotion Free annoncée jusqu’au 25 septembre 2026.Fiche : Context 32K. Répartition entre state et questions non précisée sur cette page.
Cloudflaretypesafe/jev ; env.AI.run avec state et questionsÀ consulter dans le tableau de bord.Fiche : Context Window 32 000 tokens. Répartition entre state et questions non précisée sur cette page.
OpenRoutertypesafe/jev-1.13 dans le catalogue0,042 $/million en entrée, 0 en sortie.Fiche : fenêtre de contexte 32 000 tokens. Répartition entre state et questions non précisée sur cette page.

Ces routes sont décrites par les pages des opérateurs : Vercel, Cloudflare et OpenRouter.

Les adaptations ne portent pas forcément les mêmes noms. Vercel expose notamment un type boolean là où l’API native a Noul, et range certaines informations dans les métadonnées du fournisseur. Un changement de passerelle peut aussi changer la facturation, les limites et la gestion des données. Comparez 2 routes comme 2 configurations distinctes, même si elles portent le nom Jev.

Les SDK officiels Python et JavaScript inspectés sont sous licence MIT. Le manifeste Python lu indique 0.7.0 et Python 3.10 minimum ; le tag JavaScript examiné est v0.6.0 et requiert Node 20 minimum. Le SDK Python 0.7.0 a aussi été installé pour le tutoriel Premier appel, puis exécuté avec un transport simulé. Le client JavaScript n’a pas été exécuté ici. SDK Python, SDK JavaScript.

Faiblesses reconnues par le fournisseur La page Jev 1.13, revue le 17 septembre, cite des erreurs de calcul, de comptage, de dates et de contexte long, ainsi que des incohérences entre types de questions et une sensibilité aux injections. Une réponse Choice binaire et une réponse Noul sur une formulation voisine ne sont pas garanties identiques. Limites connues.
Vérification documentaire du 24 septembre La release Python 0.7.1, publiée le 21 septembre, valide la clé plus tôt, évite sa valeur dans les exceptions journalisées et ajoute des exemples de passerelles. Le tutoriel reste épinglé à 0.7.0, la version déjà vérifiée avec un transport simulé. Le SDK JavaScript observé reste v0.6.0. Cette notice de version ne mesure pas le service Jev. La page Models affiche toujours jev-1.13.0 et le même tarif; latest et preview pointent vers cette version. Les quotas restent annoncés comme variables.
Vérification documentaire du 28 octobre
  • Jev 1.14 est disponible depuis le 14 octobre. TypeSafe annonce de petits gains généraux, surtout en multilingue, et un préavis de 60 jours avant le retrait de jev-1.13.0, 30 jours pour jev-1.14.0. Aucune politique de dépréciation ni page de limites propre à la 1.14 n’a été trouvée. Billet Jev 1.14.
  • L’en-tête TypeSafe-Danger-Zone-Long-Context: true porte le contexte à 262k ; la documentation le dit plus lent et moins précis. OpenRouter affiche 262K pour typesafe/jev-1.14 : ce chiffre suppose cette option.
  • La page Models indique toujours une entrée texte alors que la page Images accepte des images sous en-tête. Les 2 pages de la documentation ne concordent pas.
  • Cloudflare, devenu concurrent avec Clef, liste toujours typesafe/jev et une fiche typesafe/jev-1.14.0 à 0,042 $ et 32 000 tokens de contexte.
  • Le SDK Python est en 0.7.5 depuis le 14 octobre. La compression zstd y est activée par défaut ; une API non officielle peut ne pas l’accepter. Le tutoriel reste épinglé à 0.7.0. Changelog du SDK.
24

Données envoyées et conditions du service

Des engagements publics existent ; la rétention précise et les options du compte demandent encore vérification.

L’audit Perplexity indiquait que toutes les conditions de traitement restaient inconnues. Les pages officielles permettent d’être plus précis. Le tableau résume leurs déclarations au 21 septembre ; il ne vérifie ni leur exécution technique ni la conformité d’un usage particulier.

Documents publiés
DocumentEngagement ou information consultéeLimite
Privacy Policy, 19 novembre 2025Hébergement aux États-Unis ; pas d’entraînement ou de fine-tuning sur les entrées.Le document ne précise pas de durée unique de conservation des données en jours.
DPA, 24 avril 2026Rôles de traitement et mécanismes contractuels de transfert, notamment clauses UE et adaptations UK/Suisse.L’existence du document ne valide pas automatiquement chaque transfert ou chaque usage.
MCA, 19 septembre 2026Pas de modification des poids avec Customer Data sans consentement préalable ; Telemetry traitée séparément.Vérifier les définitions et conditions propres au contrat souscrit.
Index LegalOption de rétention nulle, ZDR, proposée aux clients enterprise sur contact.Aucune activation par défaut ou sur le compte utilisé pour un futur essai n’a été établie.

Les pages Trust Center et sous-traitants n’ont pas fourni de contenu exploitable à l’outil de lecture. Les certifications, la liste nominative des sous-traitants et les modalités applicables au compte restent donc non vérifiées. Cette limite d’accès ne prouve pas que ces informations ou garanties sont absentes.

Le SDK Python prévient que son mode debug peut journaliser les corps de requêtes et de réponses sans expurgation. Préparer un pilote impose donc de regarder aussi les journaux côté application. Les messages Sentry, les descriptions de bugs et les diffs peuvent contenir plus d’informations qu’un simple titre.

Préparer les droits et les données avant le premier appel Commencer sur des données synthétiques ou autorisées, retirer les secrets, limiter le contexte au nécessaire et choisir la route API avant le test. Préparer les droits et la rétention du service utilisé fait partie de l’intégration, au même titre que les mesures d’erreur.

Les versions du 19 septembre des conditions du site et du contrat client lues ne contiennent pas d’interdiction explicite de publier un benchmark identifiée dans cet audit. Le contrat conserve néanmoins des dispositions de confidentialité, des restrictions d’imitation ou de distillation et d’éventuelles conditions particulières. Ce constat documentaire ne vaut pas autorisation générale de publication.

Avant de publier ses propres résultats, conserver les conditions effectivement acceptées et celles de la plateforme choisie. Les crédits promotionnels, le tarif nominal et le montant payé sont 3 informations distinctes. Un essai gratuit ne démontre pas le coût durable d’une exploitation.

Dans mes autres ressources Pour examiner le choix des fournisseurs derrière une passerelle, voir mon dossier Back Market et OpenRouter (FR). Il traite des budgets, de la sélection des fournisseurs et des responsabilités entre intermédiaires.
25

Où tester Jev dans mes workflows

3 premiers essais : trier les issues GitHub, rapprocher les erreurs Sentry et sélectionner des correctifs pour les notes de version.

Un pilote Laya effectué, les autres pistes restent distinctes Les essais synthétiques, le pilote de domaine Aristote et les 3 POCs Sentry, reviews et CI sont documentés séparément. Les 4 configurations métier testées sont écartées, avec des annotations sans validation humaine. Les propositions Jev ci-dessous restent des idées à évaluer ; aucun appel à son API n’a été effectué.

J’ai relu une sélection de mes définitions de skills, d’agents et de tâches automatisées. Les propositions reprennent ces tâches existantes. Leur fréquence et leur coût restent à mesurer avant de juger l’intérêt d’ajouter Jev.

Les 3 pilotes proposés
TâcheQuestion confiée à JevComparateursTravail qui resterait dans la chaîne actuelle
Pré-tri GitHubQuelle catégorie proposer ? Quelles issues seraient des doublons ?Règles, recherche lexicale et LLM actuel.Récupérer le contenu, appliquer les règles mécaniques et valider les modifications.
Rapprochement SentryCette erreur et cette issue décrivent-elles la même cause probable ?Règle lexicale définie et LLM, sur les mêmes candidats.Vérifier les URL/ID exacts, calculer la sévérité, retrouver des candidats et enquêter.
Notes de versionCe correctif a-t-il un impact utilisateur documenté ?Filtres de commits et modèle actuel de sélection/rédaction.Conserver les fonctionnalités obligatoires et les références, rédiger et valider avant publication.
DIAGRAMME · Jev classe, le LLM rédige
Scénario proposé pour les notes de version. Les fonctionnalités obligatoires contournent Jev. Le LLM rédacteur reçoit les sources originales ; une personne valide le texte avant publication. La qualité et le coût restent à mesurer.

Jev peut donc fournir une évaluation avant que le code sélectionne les éléments transmis au LLM. Cette répartition reste un choix à tester : un LLM peut aussi classer des correctifs, et de simples règles peuvent suffire. Le schéma ne démontre aucun gain de vitesse, de coût ou de justesse.

DIAGRAMME · Rapprocher une erreur Sentry et une issue
Scénario de test, sans score inventé ni rattachement automatique. Si la recherche ne trouve pas la bonne issue, le classement par Jev ne peut pas la faire réapparaître.

Une autre proposition apparaît chez Syntax à 10:54 : transcrire un contenu, faire rédiger les notes par un LLM, puis demander à Jev de vérifier des affirmations. Il s’agit d’une idée d’utilisation présentée dans la vidéo, sans mesure d’exactitude de cette chaîne.

Les 8 expériences proposées
Comparaisons à préparer
Réf.CasMéthodes comparéesÀ mesurer
UC1Suggestion de skills FR/ENBM25 actuel, règles, LLM contraint, JevReformulations retrouvées, fausses suggestions et part des cas traités
UC2 · pilote 1Pré-tri GitHubRègles, recherche lexicale, LLM, JevCatégories proposées, doublons retrouvés et relecture
UC3Sélection de documents pour un RAGBM25, reranker, LLM, JevPassages nécessaires conservés et qualité de la réponse finale
UC4Décision directe ou questions décomposéesMême décomposition pour chaque modèleQualité et coût de tous les appels et de leur assemblage
UC5Choix parmi 5 à 250 optionsOrdre des options, voisins proches, cas sans option adaptéeErreurs selon le nombre d’options, leur position et le domaine
UC6 · pilote 2Rapprochement Sentry/GitHubRègle lexicale précisée, LLM et Jev sur les mêmes candidatsFaux rapprochements, doublons manqués et relecture
UC7Anciennes issues, après enquêteModèle actuel et Jev sur le même dossier de preuvesVerdicts de clôture erronés et coût total, enquête incluse
UC8 · pilote 3Correctifs pour les notes de versionFiltres de commits, modèle rédacteur actuel et JevCorrectifs utilisateur omis, changements internes retenus et coût total
Les règles locales à préciser avant le test
  • Les catégories Feature et Enhancement se recouvrent dans la définition de tri GitHub examinée. Il faut fixer une priorité ou autoriser plusieurs étiquettes.
  • Pour Sentry, la définition mentionne un seuil Jaccard de 0,75, un poids de 0,7 et un seuil composite de 0,7, sans préciser la combinaison. Définir cette référence avant de la comparer à Jev.

Le tri des anciennes issues emploie 5 verdicts : problème déjà traité (DONE), toujours présent (STILL_RELEVANT), décision abandonnée ou remplacée (STALE_DECISION), travail partiellement livré (PARTIAL), preuves insuffisantes (UNCLEAR). Jev pourrait classer un dossier après l’enquête dans le code. Accélérer le verdict seul ne mesure pas le gain sur tout le triage.

DIAGRAMME · Séparer entraînement, réglage et test
Garder les reformulations et doublons d’un même cas dans le même sous-ensemble. Le nombre d’exemples dépend de l’erreur acceptable.

Brier et ECE se calculent sur les probabilités adaptées à la tâche, pas sur le champ confidence renommé.

Faire relire les premières suggestions

Le pilote produira des suggestions, sans créer ou fermer d’issues.

  • Chaque cas historique doit contenir uniquement les informations disponibles à cette date.
  • Réserver une période ultérieure au test et garder la proportion réelle des catégories.
  • Distinguer une erreur de recherche, où le bon candidat manque, d’une erreur de classement parmi des candidats présents.

Pour ces essais proposés, les règles qui calculent la sévérité Sentry, normalisent les URL ou traduisent un verdict en action restent dans le code. Les essais portent sur les évaluations sémantiques pour lesquelles une règle lexicale peut manquer une reformulation ou rapprocher à tort 2 problèmes.

3 dossiers fictifs pour démarrer les annotations
CasCe qu’il faut fournirDécision de référence à discuter
GitHub : « le paiement refuse ma carte depuis la mise à jour »Description, version, reproduction, catégories définies et éventuels incidents connus.Incident existant, nouveau bug ou problème de compte ? Le titre seul ne tranche pas.
Sentry : même message, 2 composants différentsTrace, version déployée, environnement et descriptions des issues candidates.Ne pas fusionner sur le seul texte de l’exception ; chercher les éléments de cause commune.
Notes de version : « fix: cache »Diff et description de la PR, comportement avant/après, public concerné.Informations insuffisantes tant que l’impact utilisateur n’est pas documenté.
Dans mes autres ressources Pour choisir comment votre agent accède à GitHub ou à vos autres outils, mon guide Coût des serveurs MCP et choix entre MCP et CLI (EN) compare les interfaces, le contexte chargé et les besoins du workflow.
5 usages concrets au-delà d’une liste de catégories

Routage, annotation massive et seuil de confiance ne forment pas des catégories disjointes. Les usages suivants précisent le traitement autour de l’évaluation. Les implémentations citées ont été lues, sans exécution.

Du jugement à un traitement vérifiable
Réf.UsageRôle du programme et limite
U10Contexte d’un agent sous budgetjselect : conserver extraits et références, gérer taille et répétitions. Mesurer la qualité de la réponse en aval.
U11Rapprochement d’entitésjlink : proposer des paires puis appliquer la règle de rapprochement. Mesurer séparément le rappel des candidats.
U12Extraction d’une valeur présenteRecette TypeSafe : regex pour les candidats, Jev pour le rôle, code pour la recopie et la normalisation. Une mauvaise sélection reste possible.
U13Support d’une affirmation par sa citationRecette TypeSafe : recherche exacte puis évaluation du contexte. 8 exemples avec erreurs introduites, Jev 1.12 le 16 août; aucune validation générale.
U14Variables pour un modèle superviséAutoResearch : le LLM propose des questions, Jev produit les valeurs, CatBoost apprend, les erreurs orientent la suite.

Le cookbook AutoResearch annonce 67 variables issues de 38 questions et une RMSE de 1,77 contre 2,47 avec des comptes de mots, sur 800 notes de vin réservées. Le code indique Jev 1.12; date de publication exacte non établie. Mesure du fournisseur, non reproduite. L’essai U14 doit comparer aussi les embeddings avec le même modèle supervisé.

Pour les skills, la recette officielle classe 182 candidats, vérifie les 3 premiers et peut s’abstenir. Elle annonce 16,8 % puis 7,3 % de chargements incorrects sur 315 demandes couvertes parmi 488 demandes synthétiques. Jev 1.12, rendu indiqué au 31 juillet : cette source est ajoutée au dossier, sans être présentée comme une mesure nouvelle de septembre.

6 essais inspirés des nouveaux projets

Propositions, non exécutées. Fixer les seuils de réussite avant de comparer. A1 et A2 offrent une démonstration lisible avec des textes sourcés; les pilotes GitHub et Sentry gardent leurs contrôles métier.

Hypothèse, comparateur et mesure
Réf.EssaiComparateurÀ mesurer
A1Veille IA : filtrer les titres puis vérifier chaque annonce dans sa source.Mots-clés et sélection actuelle.Annonces retrouvées, faux positifs, sources et coût par élément utile.
A2YouTube/Papers : sélectionner les passages qui contredisent une hypothèse.BM25 puis reranker, mêmes documents et rédacteur.Preuves conservées, négations et propos rapportés; qualité de la synthèse.
A3GitHub : présélectionner des hunks supprimant une gestion d’erreur.Motifs textuels et revue actuelle.Bugs vérifiés, omissions et bruit; suppressions justifiées ou code déplacé.
A4Sentry/GitHub : proposer des paires selon une définition de même cause probable.Correspondances exactes puis mêmes candidats pour les modèles.Rappel des candidats et faux rapprochements séparés; aucune fusion automatique.
A5Corpus : produire des colonnes jcol pour un classifieur.TF-IDF et embeddings, même classifieur et mêmes partitions.Gain réservé, coût total et stabilité FR/EN; affirmations citées puis réfutées.
A6Tests : choisir un premier sous-ensemble avant la suite complète.Sélection par noms et dépendances uniquement.Régressions retrouvées ou manquées, temps total incluant la sélection.

L’idée de Kiln se transpose aussi à Sentry : comparer la sélection de frames et des changements de version transmis au modèle. Cette transposition reste une proposition; elle n’est pas une fonctionnalité démontrée dans l’article sur le pinyin.

26

Préparer un test reproductible

Définir les erreurs acceptables avant de choisir un seuil ou un nombre d’exemples.

  1. Décrire la décision

    Fixer l’unité évaluée : ticket, paire Sentry/issue, correctif ou document. Écrire les catégories, les ambiguïtés et l’action que la suggestion pourrait entraîner.

  2. Constituer les réponses de référence

    Faire annoter des exemples réels autorisés ou synthétiques par des personnes connaissant la tâche. Sur un sous-ensemble, 2 annotations indépendantes permettent de repérer les désaccords. Les arbitrer et conserver les consignes.

  3. Séparer les données

    Réserver des ensembles distincts pour une éventuelle adaptation, le choix des questions et seuils, puis le test final. Grouper les doublons et reformulations du même incident. Pour un workflow historique, tester aussi une période ultérieure.

  4. Fixer les comparateurs

    Règles existantes, recherche lexicale, classifieur ou LLM contraint et Jev reçoivent les mêmes informations utiles. Une variante avec questions décomposées doit être proposée à chaque modèle concerné.

  5. Exécuter et journaliser

    Consigner version, route API, région cliente, options, nombre de questions, tokens, temps, réponse brute et erreurs. Alterner l’ordre des concurrents pour limiter l’effet des variations de charge.

  6. Évaluer la chaîne

    Mesurer les erreurs, la couverture, les reprises, le coût et la latence. Vérifier ensuite l’effet sur la rédaction ou l’enquête finale, avec le même modèle en aval.

Mesures par tâche
TâcheMesures utilesErreur à regarder de près
Catégorisation GitHubPrécision et rappel par catégorie, macro-F1, matrice des confusions, couvertureUne catégorie rare importante systématiquement oubliée.
Rapprochement SentryRappel des candidats puis précision des rapprochements acceptés2 incidents distincts fusionnés à tort.
RAGRappel des passages nécessaires, qualité du classement, exactitude de la réponse finaleUn passage indispensable écarté avant la rédaction.
Notes de versionCorrectifs utiles retenus, omissions, éléments internes inclus, fidélité du texte finalUn impact utilisateur inventé à partir d’un titre ambigu.
ProbabilitésBrier avec convention explicite, ECE avec tranches/effectifs, diagramme de fiabilitéUne mauvaise calibration précisément dans la zone automatisée.

Le français mérite un sous-ensemble propre : accents, formulations orales, abréviations métier, fautes, négations et tickets mêlant français et anglais. Une traduction d’un même cas doit rester dans le même groupe de données. Comparer 2 jeux de sujets différents en français et en anglais ne permet pas d’attribuer leur écart à la langue seule.

Un seuil de 0,9 n’est pas un mode « fiable » Choisir le seuil sur un ensemble de réglage en fonction des erreurs acceptables, puis vérifier la couverture et l’erreur sur le test réservé. Les erreurs HTTP, les cas hors domaine et les dossiers incomplets doivent avoir un traitement explicite. Un nombre repris d’une démonstration n’est pas un seuil validé.

Commencer en mode suggestion permet de comparer chaque sortie à la décision habituelle. Le journal peut stocker un identifiant pseudonymisé, les versions, la décision suggérée, son devenir et les métriques de l’appel. Les clés API et les contenus sensibles n’ont pas leur place dans un jeu de résultats destiné à être partagé.

Conditions proposées pour écarter Jev d’un pilote
PiloteCritère de rejet avant adoptionDécision après le test
GitHubÀ couverture comparable, davantage d’erreurs sur les catégories prioritaires que la méthode actuelle, ou aucun gain sur le coût complet et la relecture.Conserver le comparateur ; analyser les cas où Jev apporte une information supplémentaire.
SentryAu niveau de faux rapprochements fixé avant l’essai, rappel inférieur à la méthode actuelle ou surcoût sans réduction de l’enquête.Écarter Jev de ce rapprochement. Une erreur de recherche de candidats se corrige en amont.
Notes de versionOmission d’un changement obligatoire dans les cas de contrôle, ou davantage de correctifs utiles omis sans gain de relecture.Corriger le filtre ou garder la sélection actuelle ; ne pas publier automatiquement.
Définir les critères de réussite avant le test

Ces critères sont une proposition de protocole, pas des seuils métier déjà approuvés.

  • Avant l’essai, le responsable renseigne le taux maximal d’erreur par classe, la couverture minimale, le coût complet maximal et le p95 acceptable.
  • Si l’échantillon ne permet pas de départager les méthodes, le résultat reste indécis et l’automatisation n’est pas élargie.
  • Une sortie n’obtient jamais de permission nouvelle parce que son score est élevé.

Pour le routage de modèles, demander à un expert quel modèle il préfère ne suffit pas. Exécutez la tâche avec les modèles candidats sur un ensemble de référence, puis comparez la qualité obtenue, le coût et la latence du modèle choisi. Le routeur ajoute son propre coût. Évaluer son accord avec un avis expert est une mesure distincte, utile mais insuffisante pour établir un gain sur les tâches terminées.

3 essais pour départager les arguments
Pilote proposéComparaison à figer avant le testDécision attendue
Pré-tri GitHubRègles actuelles, NLI zero-shot, Jev et LLM à sortie contrainte. Ajouter un classifieur entraîné si des labels utilisables existent. Tester séparément les catégories stables et une politique modifiée.Mesurer l’erreur, l’abstention et le coût de maintenance. Tous les systèmes doivent recevoir la même politique ; adapter aussi les règles quand le changement est calculable.
Rapprochement SentryDonner aux comparateurs les mêmes candidats issus de la recherche. Séparer cas identiques, reformulations, messages proches de causes différentes et absence de candidat.Mesurer faux rapprochements et doublons manqués, puis la part proposée à la relecture. Une suggestion ne fusionne aucun incident.
Décisions avant action d’un agentRejouer hors production des actions autorisées, interdites et ambiguës, avec ou sans injection dans les données. Séparer les règles d’autorisation du classement sémantique.Compter les actions dangereuses non signalées et les actions sûres bloquées. Tester erreurs réseau et cas hors domaine ; aucune probabilité ne crée un droit d’action.

Un texte synthétique ou une langue rare ne prouvent pas que le modèle n’a jamais rencontré une donnée proche pendant son entraînement.

Dans mes autres ressources Mon guide Évaluer un agent (EN) complète ce protocole avec des critères de qualité, des mesures répétées et une évaluation du système qui entoure le modèle. Il ne fournit pas de résultats sur Jev.
27

Garder les permissions dans le code

Un signal produit par Jev peut aider à repérer un risque ; il ne doit pas créer un droit d’action.

L’audit Perplexity envisage un contrôle avant l’action d’un agent. Le test proposé consiste à utiliser Jev pour repérer les cas qui méritent une relecture supplémentaire. L’autorisation reste définie par l’identité, les droits, les actions permises et les approbations du système. Comparer ce signal aux règles locales et à un juge LLM exige de compter les actions dangereuses non signalées, les actions sûres bloquées, la latence et le coût.

DIAGRAMME · Un signal de risque dans une application
Architecture proposée pour tester un signal complémentaire. Les droits et les validations restent indépendants de la réponse du modèle. Aucun tel contrôle n’a été déployé pour ce dossier.

Un format strict limite la forme de la réponse. Il n’empêche pas une instruction malveillante dans un ticket de modifier la catégorie choisie. Le test doit donc inclure du texte ordinaire, des instructions intégrées aux données et des formulations ambiguës, sans confondre ces 3 populations. Une classification rassurante ne neutralise pas une injection.

Les cas rares demandent davantage qu’un petit pilote Observer 0 erreur sur 100 cas ne démontre pas un taux d’erreur inférieur à 0,1 %. Le nombre d’exemples dépend de la précision voulue, de la dépendance entre cas et de la population visée. Un corpus synthétique de situations dangereuses aide à trouver des échecs ; il ne mesure pas à lui seul leur fréquence en production.

Pour GitHub et Sentry, la première sortie reste une suggestion. Retrouver un identifiant exact, vérifier un droit d’accès ou appliquer une règle de sévérité est un travail de code. Réserver le modèle à une question sémantique ne dispense pas de tester cette question : « même cause probable » peut être faux malgré des messages d’erreur très proches.

Dans mes autres ressources Pour mettre en œuvre les contrôles autour du modèle, voir mon guide Sécuriser les agents, hooks et outils (EN) : permissions, outils, entrées non fiables et limites des détecteurs d’injection.
Lire le visuel « Top 9 places to Use Jev »

Une image transmise pendant la recherche porte ce titre et le logo ByteByteGo. L’URL et la date de publication restent inconnues; elle n’est pas reproduite ici. Ses flèches simplifient la place du code entre l’évaluation et l’action.

4 points à préciser
CaseLecture corrigée
9Le classifieur ne fixe pas les seuils. Le code applique une politique; 0,5 et 0,9 sont des exemples à valider sur les données.
2–3Un score de risque ne crée aucun droit d’action. Vérifier les permissions et les règles avant allow, ask, deny ou block.
41 500 emails pour 0,03 USD supposeraient environ 476 tokens d’entrée facturés par email au tarif direct. Longueur, questions et reprises ne sont pas précisées.
8Une boucle dessinée à 300 ms ne démontre pas une garantie de latence. Les appels lents et les erreurs doivent être traités.

Le calcul du coût suppose le tarif direct de 0,042 dollar par million de tokens : 0,03 dollar finance environ 714 286 tokens, soit 476 pour chacun des 1 500 emails. Ce calcul n’est pas un benchmark. La documentation confidence demande d’adapter les seuils au domaine et aux performances observées.

La formule « 100× plus rapide et moins cher » ne décrit pas tous les usages : TypeSafe situe ses plus gros gains dans le haut de la plage attendue pour ses workflows évalués. La mention du trading ne fournit ni résultat de stratégie ni mesure prédictive. Une faible latence ne suffit pas à valider une application critique.

IV

Sources et veille

28

SDK officiels et projets inspirés de Jev

Une interface compatible ne fournit ni les poids de Jev ni son procédé d’apprentissage.

Clients et comparateur publiés par TypeSafe · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
Dépôt officielStars GitHubRôleVersion ou réglage à conserver
typesafe-sdk-python220Client Python pour appeler Jev et lire ses réponses typées.Release 0.7.1 du 21 septembre; tutoriel conservé et vérifié sur 0.7.0. Python 3.10 minimum; licence MIT pour le client.
typesafe-sdk-js234Client JavaScript et TypeScript.Tag v0.6.0, Node 20 minimum ; licence MIT pour le client.
system-one-adapter-python289Pose les mêmes questions à une API de LLM et expose des réponses compatibles avec system_one.Choisir sortie structurée, réponse discrète ou probabilités. Consigner normalisation, nouvelles tentatives, tokens et latence.

L’adaptateur officiel facilite les comparaisons des pilotes GitHub et Sentry : les mêmes entrées et questions peuvent passer par Jev ou par un LLM.

Projets communautaires examinés · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
ProjetStars GitHubApproche décriteRésultats et limites annoncés
SemIf, ancien TheoLeeCJ/openjev4 205Qwen 4B gelé, lecture de logits pour une interface de décision.Ni les poids Jev ni RLCD. Le projet se déclare non affilié.
vinnylarouge/jevlike1 283Encodeur byte entraîné de zéro par défaut, tête d’attention sur les options ; encodeur préentraîné et chemin visuel facultatifs.L’auteur publie 0 victoire, 2 nulles et 48 défaites contre Stockfish niveau 0. Les extraits vidéo sont sélectionnés pour montrer de l’activité.
daseinlabs/open-jev108Gemma 3 4B sur MLX ; score de continuations et contexte mis en cache.Calibration à évaluer séparément. Aucune licence identifiée par l’API GitHub au 21 septembre 2026.
razorback16/openjev392DiffusionGemma ; compatibilité annoncée avec le protocole et les SDK Jev, images et génération de texte en plus.Poids différents, 128 options au maximum. Le README propose aussi le service tiers api.codiv.ai ; sa disponibilité n’a pas été testée ici.
OpenSysOnes.o.Adaptateurs de rang 8 et tête scalaire sur Qwen3-4B-Instruct-2507 ; 16,5 millions de paramètres entraînables, code et adaptateurs sous Apache 2.0.Entrée limitée à 1 024 tokens. ECE de 8,30 % sur Social IQA selon l’auteur ; pas de comparaison directe à Jev. Plus lent que ses 2 comparateurs sur les 12 charges profilées.
Laya22 502Encodeurs ModernBERT-large ou mmBERT-base, modèles de 421 ou 322 millions de paramètres, réponses Choice/Score/Noul et routeur de modèles.Le bon résultat sur typed-decisions vient d’un modèle ajusté sur son ensemble d’entraînement. Les résultats Jev sont repris de tiers, avec d’autres questions et effectifs.
browser-use/jev-ultrafast19 660Jev choisit une opération et un élément observé ; un petit LLM rédige uniquement le texte à saisir.Comparaison de 2 versions sur 3 répétitions chacune d’une recherche de vols. Aucun vol réservé ; le succès final est vérifié séparément.

Le test SemIf compare une lecture de scores à du JSON généré sur RTX 3090, avec un accord de 18 décisions sur 21. Sa comparaison à Jev reprend des sorties publiques du fournisseur, sans nouvel appel à Jev. Ces résultats proviennent du README. Aucun projet de ce tableau n’a été installé ni exécuté pour ce dossier.

Dans sa vidéo, Micah explique sa lecture de logits à 02:07, puis la distillation par un modèle professeur à 02:39. Cette démonstration entraînée est distincte du Qwen 4B gelé de SemIf. À 03:55, il précise les limites de sa démonstration Doom et rappelle que l’architecture Jev n’est pas divulguée.

La fiche OpenSysOne, inaccessible lors de la première collecte, a été lue le 21 septembre. Elle distingue entraînement, calibration et test.

Le README de Laya publie aussi les échecs de ses modèles de base : sur 2 000 décisions typées, ils restent sous la classe majoritaire, tandis que le modèle ajusté atteint 76,6 %.

Pixel prend déjà certaines décisions sans génération de texte Pixel, développé par Livio Gamassia, route des consignes vers des analyses prévues, classe les fichiers P0/P1/P2 et attribue un risque à partir du graphe. Les décisions utilisent des règles et des scores explicites. Le projet propose aussi des embeddings pour la recherche. Il dépasse donc un simple index de symboles.

Pour choisir entre Pixel et Jev, commencer par la décision attendue. Pixel peut calculer et classer ce que ses règles et ses index décrivent ; Jev évalue par inférence apprise des critères fournis dans l’appel. Une règle métier peut très bien suffire à trier des tickets. L’intérêt de Jev dépend des cas que cette règle couvre mal et du coût pour l’entretenir. Les sources de Pixel ont été inspectées à la version citée, sans benchmark comparatif : une équivalence de qualité ou de vitesse entre ces approches reste à mesurer.

Services tiers : prix et trajet des données
  • jevtypesafeai.com annonce 0,42 dollar par million de tokens d’entrée, 10 fois le tarif direct, et présente explicitement ce supplément comme le prix de son service géré.
  • jev-agent.com propose 5 crédits gratuits par mois, puis des packs payants sans abonnement.

Ces sites se déclarent indépendants de TypeSafe et annoncent relayer les appels vers son API.

Les conditions de jev-agent.com précisent que les textes sont transmis à TypeSafe. TokenRa, agrégateur d’API, affiche Jev à 0,042 dollar par million de tokens, au même prix que sa colonne « tarif officiel ». Ce sont les déclarations des opérateurs, lues le 21 septembre ; aucun appel ni circuit réel de transmission des données n’a été testé ici.

Seules leurs sections utiles ont été parcourues ; leur sélection ne garantit ni exhaustivité ni performance.

Laya : 3 lignes de calibration qui ne se comparent pas directement

Le README de Laya à la révision consultée contient plusieurs tableaux. Reprendre seulement 0,081 contre 0,246 donnerait l’impression d’un essai commun qui n’a pas été exécuté.

Garder le modèle et le protocole avec chaque ECE
Tableau du READMEValeurs rapportéesLimite
Typed-decisions, modèles comparés sur 400 cas et 2 000 décisionsLaya spécialiste : 0,213 ; Jev repris de tiers : 0,144.Le spécialiste a été ajusté sur ces workflows ; les résultats Jev proviennent d’une autre exécution.
Calibration des modèles de baseLaya : 0,466 puis 0,081 ; multilingue : 0,314 puis 0,106.Le second nombre suit un réglage des températures par type et nombre d’options. Il ne décrit pas le même checkpoint que la ligne précédente.
Tableau de synthèse Laya avec routage / Jev0,081 et 0,246.Valeurs issues d’expériences distinctes, insuffisantes pour conclure à une meilleure calibration générale.

La fiche laya-typed-decisions signale aussi un réglage hérité pouvant écraser les températures par type. Conserver le checkpoint et la configuration exacte est donc nécessaire. Il faudrait faire passer les mêmes entrées aux 2 systèmes, avec calibration sur un jeu séparé, pour les départager.

Les ajouts du 24 septembre sont répartis entre les commandes et intégrations et Laya-MLX / Kev. Les premières utilisent une interface d’évaluation; les seconds servent d’autres poids. Leurs résultats ne révèlent pas l’architecture de Jev.

29

Filtrer, trier et sélectionner le contexte avec Jev

Des commandes et des intégrations rendent les usages concrets. Leurs README décrivent des fonctionnalités; leurs mesures restent celles des auteurs.

La collecte du 24 septembre ajoute 17 dépôts absents de la version 0.15.0. Certains existaient avant le 21 septembre : date de découverte et date de création sont séparées. Les sources utiles ont été lues et une partie du code de jgrep a été inspectée; aucun de ces outils n’a été installé ou exécuté pour ce dossier.

Les 5 commandes de Khaled Eltokhy · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
OutilStars GitHubOpérationCondition à conserver
jgrep85Filtrer des lignes, paragraphes, CSV/JSONL, diffs ou fonctions selon une description.Le code filtre une probabilité Noul. Le seuil doit être choisi pour la tâche.
jsort21Comparer des textes par paires selon un critère puis ajuster une échelle Bradley-Terry.L’échelle et son erreur standard ne prouvent pas que le critère produit un classement juste.
jlink4Rapprocher des enregistrements selon une définition de la même entité.Le filtre initial peut éliminer la bonne paire avant l’évaluation.
jcol1Transformer une grille de codage en colonnes, avec sauvegarde et reprise.La signification des champs de confiance dépend de la primitive.
jselect3Sélectionner des extraits référencés sous un budget de tokens, avec pertinence et diversité.Sans clé, le mode automatique peut être lexical. La sortie conserve les extraits, sans résumé généré.

Ces commandes partagent jevkit-core, distribué sous le nom jevkit-runtime, pour le transport, le cache, la provenance et les coûts. Elles viennent du même auteur; leur nombre ne mesure pas le nombre de validations indépendantes. Versions observées le 23 septembre : jgrep 0.4.1, jselect 0.3.1 et runtime 0.3.1. Le support des serveurs locaux date des versions précédentes du 22.

Le code de jgrep inspecté construit des questions Noul et applique un seuil de 0,5 par défaut. Avec plusieurs descriptions, il utilise un minimum ou un maximum selon le mode; ces opérations ne calculent pas une probabilité jointe. Le README annonce environ 200 ms par appel et rapporte 994 titres traités en 4,6 secondes pour 0,012 dollar, avec concurrence. Ces chiffres sont ceux de l’auteur.

Exemples adaptés, non exécutés. Ils supposent jgrep installé et un fournisseur configuré; un fournisseur hébergé peut facturer les appels. Le premier attend un CSV avec une colonne abstract, le second évalue les hunks du diff courant. Les sorties demandent une relecture.

Terminal 2 critères sémantiques à essayer 2 lignes
jgrep --csv --field abstract "reports a failed replication" papers.csv
git diff --no-color | jgrep --diff "removes error handling for a persistent write"
Un exemple de sortie ne vérifie pas une actualité Les titres de modèles et les scores affichés dans le README illustrent le fonctionnement de la commande. Ils ne démontrent ni les annonces mentionnées ni leur exactitude.
Autres recherches et intégrations · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
ProjetStars GitHubApport documentéLimite
llm-typesafe13Plugin de l’outil LLM de Simon Willison, créé le 22 septembre : CLI, Python, modèles de requête et 3 primitives.Une intégration supplémentaire, sans nouvelle mesure de qualité.
jev-compactor1Retirer des messages peu pertinents et conserver les autres tels quels. CLI, MCP et bibliothèque TypeScript.Conversations synthétiques et comparateurs reconstitués; réussite d’une continuation réelle non établie.
jev-semgrep135Expressions AND/OR/NOT et exemples de recherche multilingue.Projet distinct de Semgrep. Les exemples ne valident pas toutes les langues.
nassim-arifette/jevgrep66Recherche de code par comportement, avec fichiers et lignes, via CLI/MCP.Le README distingue transports simulés et essais réels limités. Gain final pour l’agent à mesurer.
kyu1204/jgrep29Recherche de code, règles sur les diffs, annotation de tableaux et présélection de tests.Les fragments sont jugés isolément. La sélection ne remplace pas toute la suite de tests.
3 noms proches, 3 projets keltokhy/jgrep, kyu1204/jgrep et nassim-arifette/jevgrep sont distincts. Le deuxième distribue le paquet npm jevgrep; le troisième @nassim-arifette/jevgrep. Leurs options et leurs résultats ne sont pas interchangeables.

La sélection de tests de kyu1204 retient d’abord les fichiers par nom et imports, puis interroge Jev sur les autres candidats à partir du diff et des noms de tests. L’auteur demande de lancer ensuite toute la suite. Mesurer le premier signal utile et les régressions manquées, en incluant le coût de sélection.

Dates des 17 dépôts ajoutés

Métadonnées GitHub consultées le 24 septembre 2026. Une date de push n’est pas une date de fonctionnalité. jcol, le runtime et llm-typesafe ont été créés dans la fenêtre du 21 au 24; les autres entrées sont des découvertes ou des mises à jour de projets antérieurs.

Création et dernier push observé, UTC · Stars relevées le 24 septembre 2026 à 16 h 40 UTC
DépôtStars GitHubCréationDernier push
keltokhy/jgrep852026-09-182026-09-23
keltokhy/jsort212026-09-192026-09-23
keltokhy/jlink42026-09-182026-09-23
keltokhy/jcol12026-09-212026-09-23
keltokhy/jselect32026-09-192026-09-23
keltokhy/jevkit-core02026-09-222026-09-23
nassim-arifette/jevgrep662026-09-202026-09-23
sglenon/jev-semantic-reviewer02026-09-182026-09-21
supercorp-ai/supercov1142026-08-232026-09-24
mizorewww/laya-mlx6 1662026-09-192026-09-22
simonw/llm-typesafe132026-09-222026-09-22
edwardyen724-g/jev-compactor12026-09-192026-09-19
uehaj/jev-semgrep1352026-09-192026-09-24
kyu1204/jgrep292026-09-192026-09-23
NiazMorshed2007/jev-review2212026-09-172026-09-17
devagrawal09/jev-review5952026-09-162026-09-17
jaredpalmer/kev6 6442026-09-172026-09-24
30

Laya-MLX et Kev : des modèles locaux à comparer

Les mêmes types de questions peuvent être servis par des poids différents. Compatibilité, vitesse et qualité se vérifient séparément.

Laya-MLX est un portage indépendant de Laya vers MLX sur Apple Silicon. Après téléchargement, l’inférence est locale et produit Choice, Score et Noul. Le README figé au 22 septembre documente un modèle anglais de 421 millions de paramètres, un multilingue de 322 millions et une variante typed-decisions de 421 millions. Il ne fournit pas les poids de Jev. Version déclarée : 0.2.0, commit 0a85951.

Une question courte, MLX FP16 : 2 présentations différentes
ModèleMédiane dans le READMERapport et données brutes
Anglais13.42 ms17.75 ms
Multilingue7.39 ms10.91 ms

Les 50 échantillons de chaque fichier donnent 17,745958 et 10,9073125 ms après recalcul. Les données sont datées du 22 septembre, sur M3 Max à 40 cœurs GPU et 128 Gio. Le temps inclut préparation, inférence synchronisée et formatage; chargement et téléchargement sont exclus. Le README ne concorde pas avec ces fichiers au même commit. Sources : rapport, anglais, multilingue. Ces benchmarks M3 Max n’ont pas été rejoués dans les mêmes conditions.

L’accord de 63/63 réponses avec le moteur d’origine, pour chaque modèle et précision, mesure la fidélité du portage. Le petit test AG News porte sur un corpus présent dans le mélange d’entraînement amont. Ces 2 observations ne prouvent pas une équivalence générale avec Jev.

Contexte court et calibration à contrôler Les fenêtres de 512 ou 1 024 tokens incluent instructions et options. Le préparateur conserve le début du texte quand il manque de place. Le chargement corrigé le 22 septembre borne les températures à 0,5–5 et demande de traiter les confiances concernées comme non calibrées. Tester négations finales, textes longs et seuils sur ses propres données.

Le guide JevKit fournit un serveur adaptateur séparé et documente jgrep --api laya. Il refuse par défaut les textes qui seraient coupés. L’auteur n’a essayé que le modèle anglais 421M; son guide épingle le portage au 19 septembre, avant la correction de calibration. Ses essais ne valident donc pas automatiquement la révision du 22. Le comparatif jgrep montre aussi des classements différents selon les tâches.

Dans la démo Snake, le programme prépare des informations sur le plateau, Laya évalue les propositions, puis une règle de sécurité peut corriger l’action. Les résultats de survie concernent cet ensemble; ils ne démontrent pas une résolution autonome à partir du plateau.

Kev propose des poids et des recettes d’entraînement pour une famille Qwen3.5 de 0,8B, 4B et 9B. Son API reprend System One; le README examiné documente CUDA, ROCm et Apple Silicon via MLX. Sa référence à une analyse intitulée « Architecture Unmasked » ne prouve pas que l’architecture propriétaire de Jev est connue.

Le 24 septembre, Kev-4B reçoit une spécialisation sur des réclamations financières : le gain annoncé reste dans le même domaine et les mêmes formulations de questions. Le commit 60c8d39 ajoute le traitement groupé et des optimisations GPU. Les données d’entraînement de Jev étant inconnues, le comparatif ne permet pas d’isoler les architectures. Le dépôt conserve aussi des écarts défavorables à Kev sur des évaluations externes.

Essais locaux réalisés le 26 septembre Le moteur multilingue a depuis été installé et exécuté hors ligne sur M5 Max. Les résultats personnels et le tutoriel d’installation sont distincts des mesures M3 Max ci-dessus, conservées à leur date et révision. Aucun appel Jev n’a été effectué.
Nouveaux poids ouverts depuis le 1er octobre, non exécutés ici
  • Strands Decider 2B v1-2610 : adaptateur LoRA et tête de lecture sur Qwen3.5-2B, Apache 2.0. pip install strands-decider, puis strands-decider serve expose /v1/systemone sur 127.0.0.1, sans authentification. La fiche prévoit --device mps pour Apple Silicon et des évaluations sur une fenêtre de 4 096 tokens.
  • Clef (27B) a été testé par Cloudflare sur une H200 ; Clef-omni demande environ 64 Go de mémoire GPU en bf16. Leur déploiement local relève d’un serveur GPU, pas d’un portable.
  • pplx-decider v1.1 de Perplexity, sous Apache 2.0, demande environ 49 Gio de mémoire GPU pour ses poids.
31

Questions fréquentes

Réponses courtes aux confusions qui reviennent dans les articles et les démonstrations.

Jev remplace-t-il un assistant de programmation ? Jev renvoie actuellement des choix, des notes et des probabilités. Il ne rédige ni code ni explication et ne mène pas les investigations attendues d’un assistant. Une application peut lui confier des évaluations, puis appliquer dans son code les règles et les seuils qui déterminent le traitement. Le coût et la qualité de ces évaluations restent à mesurer.
Un modèle qui ne rédige pas peut-il se tromper ? Oui. Il peut sélectionner la mauvaise option ou attribuer une probabilité mal calibrée à une proposition. Le format, la justesse et la calibration sont des propriétés différentes.
Un LLM peut-il déjà renvoyer du JSON ? Oui. Une sortie contrainte est donc un comparateur pertinent. L’intérêt éventuel de Jev se mesure à qualité comparable, avec les réponses et les probabilités dont l’application a réellement besoin.
Peut-il analyser directement une vidéo ? Pas avec Jev : il accepte du texte et, en option expérimentale depuis le 14 octobre, des images. Clef-omni de Cloudflare annonce l’audio et la vidéo depuis le 9 octobre, sans score publié sur ces entrées. Sinon, une démonstration peut transcrire la vidéo ou produire un état du jeu avant l’appel ; il faut compter cette étape et ses erreurs.
Le modèle est-il open source ? Pas Jev : les SDK publics donnent accès au service, sans les poids ni une recette reproductible. Depuis le 1er octobre, Clef, Strands Decider et pplx-decider publient leurs poids sous Apache 2.0 ; Strands publie aussi son code d’entraînement et l’inventaire de ses données. Ce ne sont pas les poids de Jev, et une interface identique ne garantit pas les mêmes réponses.
Peut-on adopter les probabilités telles quelles ? On peut les enregistrer et les évaluer. Leur utilité pour décider d’une automatisation dépend des données, des classes et des seuils retenus. Un résultat publié sur des intentions bancaires ne valide pas le rapprochement de bugs.
Pourquoi garder un humain dans les diagrammes ? L’API est destinée aux logiciels. Les humains définissent néanmoins les catégories, arbitrent les cas ambigus et peuvent valider une action ou un texte final. Leur présence ne transforme pas l’API en chatbot.
Pourquoi un dossier encore provisoire ? L’offre et les documents changent rapidement après le lancement. Ce dossier date les constats, conserve les sources et sépare les résultats publiés des tests qu’il reste à mener.
Peut-on essayer sans API externe ? Oui pour Laya-MLX : après téléchargement, l’inférence a été vérifiée avec le réseau bloqué. Ce sont les poids de Laya, pas ceux de Jev. Les étapes d’OCR, de génération ou de récupération sur GitHub restent séparées. Installer Laya.
32

Suivre les évolutions de Jev

Une veille hebdomadaire suit les versions, les prix, les publications et les nouveaux tests.

Quand mettre ce dossier à jour
Nouveauté attendueTravail prévuÉtat au 21 septembre
Version, prix ou limite modifiésDater la nouvelle valeur et refaire les tests concernésValeurs documentées au 21/09
Article scientifique ou fiche technique RLCDLire la méthode, les données et la description de l’architectureAucune publication suffisante trouvée dans cette recherche
Benchmark indépendant reproductibleVérifier les données, les comparateurs, les jeux de test et les résultats brutsRapports tiers lus, sans reproduction des tests
Échanges communautairesRelever les questions et essais, distinguer les opinions et respecter le caractère privé des proposExtraits reçus et analysés ; fil complet non disponible
Audit Perplexity transmisVérifier les affirmations dans les sources d’origine et intégrer les correctionsIntégré à la révision 0.6 ; pistes non vérifiées signalées

L’audit Perplexity sert de carte de recherche. Ses articles de synthèse, vidéos et reprises commerciales ne sont pas comptés comme autant de réplications. Les sources primaires ont été privilégiées pour l’API, les conditions d’accès et les expériences ; les pages secondaires restent utiles pour retrouver un auteur ou un essai.

La veille signale les changements utiles ; elle ne publie pas le dossier et ne lance pas de tests payants. Chaque révision conserve la date des sources, les résultats bruts et les versions antérieures.

Poursuivre la recherche avec Perplexity

Relancer à partir du 24 septembre et vérifier les changements précis. Le prompt ne demande ni installation, ni appel d’inférence, ni publication. Conserver les URL et les dates de chaque source.

Prompt Prompt Deep Research actualisé 11 lignes
Recherche complémentaire Jev / TypeSafe. Dossier de référence : version 0.16.0, collecte du 24 septembre 2026. Fixe une nouvelle date de fin et cherche les changements postérieurs; marque séparément les projets plus anciens absents du dossier.

Déjà couverts : primitives, calibration, RLCD non entièrement divulgué, benchmarks antérieurs et 17 dépôts supplémentaires : keltokhy/jgrep, jsort, jlink, jcol, jselect et jevkit-core; nassim-arifette/jevgrep; sglenon/jev-semantic-reviewer; supercorp-ai/supercov; simonw/llm-typesafe; edwardyen724-g/jev-compactor; uehaj/jev-semgrep; kyu1204/jgrep; NiazMorshed2007/jev-review; devagrawal09/jev-review; mizorewww/laya-mlx; jaredpalmer/kev. Ne les présente pas comme nouveaux sans changement daté. Les jgrep/jevgrep sont des projets distincts.

Vérifie les releases TypeSafe (Python 0.7.1 observé, tutoriel du dossier testé sur 0.7.0; JS 0.6.0), les modèles, prix et limites. Distingue Jev hébergé et modèles locaux. Pour Laya-MLX, examine l’écart README/mesures brutes, la troncature et les températures corrigées; le guide JevKit épingle une révision antérieure. Pour Kev, sépare développement, test et spécialisation de domaine.

Explore les outils composables, sélection de contexte, rapprochement, extraction de valeurs existantes, citations, variables supervisées et sélection de tests. Relis les cookbooks skill_suggestion, autoresearch_feature_discovery, pre_parsed_value_extraction_cookbook et citation_check sur docs.typesafe.ai. Essaie de récupérer autoformat, annoncé par llms.txt mais inaccessible lors de la collecte. Leurs exemples Jev 1.12 ne deviennent pas de nouvelles mesures de septembre.

Priorité aux sources primaires, commits, protocoles, échecs et réponses brutes. Jev évalue; le code applique seuils, permissions et actions. Confidence ne mesure pas une probabilité de justesse. Ne généralise pas les facteurs 100×, les coûts par email ou les boucles à 300 ms. Ne déduis pas l’architecture propriétaire d’une réimplémentation.

Livre 5 découvertes utiles, une matrice datée des changements et sources, les limites et des essais avec comparateurs et critères de réussite. Sépare fonctionnalités documentées, chiffres des auteurs, résultats reproduits et propositions. UNKNOWN pour ce qui reste invérifiable. N’installe rien, n’appelle pas l’API et ne publie rien. Les synthèses Perplexity précédentes contenaient des erreurs; vérifie chaque fait à sa source.
Jev dans le Claude Code Ultimate Guide Une section est envisagée sur le choix des outils, les décisions structurées et le coût par tâche. Elle présentera les cas testés et leurs résultats lorsqu’ils seront disponibles. L’API Jev n’est pas présentée comme une fonctionnalité native de Claude Code.

Une publication détaillant RLCD permettrait d’étudier la nouveauté de la méthode. Un comparatif avec des méthodes d’apprentissage ou de calibration concurrentes devrait contrôler le modèle de base, les données et les réglages. Cette publication dépend de TypeSafe ; elle constitue un point de veille, pas un test que le lecteur peut exécuter avec la seule API.

Collecte du 24 septembre Perplexity a fourni des pistes, mais sa réponse reçue était incomplète et affirmait notamment ne pas avoir trouvé de tests pour jgrep. Le dépôt en publie, avec des expériences. Cette révision retient les faits recoupés dans les sources primaires. Les cookbooks anciens sont datés comme tels.

L’index officiel annonce aussi un cookbook autoformat qui reconstitue une structure Markdown. Sa page détaillée était inaccessible pendant cette collecte : piste à recouper, sans résultat retenu.

Veille du 28 octobre Une recherche Perplexity a servi de carte ; chaque fait retenu a été relu sur la page de l’éditeur ou du dépôt. Plusieurs pistes ont été corrigées : la bêta d’OpenAI date du 6 octobre, pas du 29 septembre, et Ollama 0.35 sert Nimble et Tev1, pas Jev. Liquid D1, Mercury Decide et Microsoft Decision 1, cités par des agrégateurs, n’ont pas été vérifiés chez leurs éditeurs.
33

Pour aller plus loin

Mes articles et guides pour configurer vos agents, préparer vos essais et suivre leurs coûts. FR et EN indiquent la langue de lecture.

Une question sur Jev ?

Une question, un retour de test ou une correction à partager ? Écrivez-moi sur LinkedIn.

Me contacter sur LinkedIn
34

Glossaire

Les termes utilisés dans ce dossier.

Abstention
Cas que l’application laisse à une personne ou à une autre méthode, faute de pouvoir décider selon ses règles.
Calibration
Accord entre les probabilités annoncées et les résultats sur un ensemble de cas. Parmi des prédictions à 80 %, on s’attend à environ 80 % de réussites ; cela ne garantit aucune réponse prise isolément.
Réponse typée
Réponse dont la forme est définie avant l’appel : option et probabilités avec Choice, note et probabilités avec Score, probabilité de oui avec Noul. Le code applicatif détermine comment l’utiliser pour décider du traitement.
Les autres termes du glossaire
Ablation
Expérience qui retire ou modifie un composant pour mesurer sa contribution, en gardant le reste comparable.
API
Interface qu’un programme appelle pour obtenir une réponse structurée.
Autorégressif
Qui construit la sortie en prédisant le token suivant à partir du contexte et des tokens déjà produits. Le schéma du dossier décrit ce mode de génération courant.
Backbone
Réseau principal d’un modèle, auquel peuvent s’ajouter des composants spécialisés.
Baseline
Méthode de référence à laquelle on compare Jev : règle, recherche lexicale, classifieur ou autre modèle.
BM25
Score de recherche lexicale basé sur les mots de la requête et du corpus. Son score n’est pas une probabilité.
Bradley-Terry
Modèle statistique qui ajuste une échelle à partir de comparaisons par paires. Il dépend des jugements fournis et ne prouve pas leur justesse.
Brier
Mesure l’écart au carré entre les probabilités annoncées et les résultats observés. Avec plusieurs classes, préciser comment les écarts sont agrégés.
CatBoost
Modèle supervisé sur données tabulaires; le cookbook lui fournit des colonnes calculées à partir de textes.
Codebook
Grille qui définit les catégories ou niveaux à attribuer aux éléments d’un corpus.
Confidence
Champ de Jev calculé à partir de la concentration des probabilités entre les options. Il est distinct de la probabilité attribuée à chaque option.
Couverture
Part des cas que l’application traite automatiquement, après avoir écarté ceux qui demandent une relecture.
Distillation
Entraînement d’un modèle à partir des réponses ou scores d’un autre modèle, appelé professeur. L’accord avec ce professeur ne prouve pas la justesse des réponses.
Distribution
Ensemble des probabilités attribuées aux réponses possibles. Elle est concentrée lorsqu’une option reçoit l’essentiel de la probabilité.
DPA
Data Processing Agreement : accord décrivant les conditions de traitement des données personnelles entre les parties.
ECE
Écart moyen de calibration mesuré par tranches de probabilités. Le résultat dépend des tranches choisies et du nombre de cas dans chacune.
Encodeur
Modèle ou composant qui transforme une entrée en une représentation numérique utilisable pour classer ou comparer des données.
Jaccard
Mesure le recouvrement entre 2 ensembles, par exemple les mots de 2 titres. Des mots communs ne prouvent pas que 2 bugs ont la même cause.
Jeu de test
Ensemble d’exemples réservé à l’évaluation finale, sans servir au choix des seuils ni à l’apprentissage.
LLM
Modèle de langage généralement utilisé pour produire du texte, éventuellement contraint à un schéma de sortie.
Log-loss
Mesure qui pénalise la faible probabilité attribuée à la réponse correcte, particulièrement lorsque le modèle se trompe avec assurance.
Logits
Scores bruts produits par un modèle avant leur éventuelle conversion en probabilités. Les lire ne garantit pas la calibration.
Macro-F1
Moyenne du F1 de chaque classe, donnant le même poids aux classes fréquentes et rares. Le F1 combine précision et rappel.
MCA
Master Customer Agreement : contrat général entre le fournisseur et son client, à lire avec les éventuelles conditions particulières.
MLX
Bibliothèque de calcul utilisée ici pour exécuter des modèles localement sur Apple Silicon.
nDCG@10
Mesure la qualité du classement des 10 premiers résultats, en tenant compte de leur pertinence et de leur position.
NLI
Natural Language Inference : évaluer si un texte confirme une hypothèse, la contredit ou ne permet pas de conclure. Une catégorie reformulée en hypothèse peut servir à classer le texte.
Noul
Type de question Jev qui renvoie une probabilité entre 0 et 1 pour une question binaire.
p50/p95
Temps de réponse sous lesquels se situent respectivement 50 % et 95 % des appels réussis. Les échecs se comptent séparément et restent dans le bilan.
PPO
Proximal Policy Optimization : méthode d’apprentissage par renforcement utilisée notamment dans Rewarding Doubt. Son emploi par Jev n’est pas établi ici.
Primitive
Type de question et de réponse de l’API TypeSafe : Choice, Score ou Noul. L’application le choisit avant l’appel.
Précision
Parmi les cas sélectionnés ou attribués à une catégorie, proportion dont la décision est correcte. À distinguer du taux global de bonnes réponses.
RAG
Génération d’une réponse à partir de documents retrouvés. Le filtrage des documents n’est qu’une étape de la chaîne.
Rappel
Parmi les cas qui auraient dû être retrouvés ou retenus, proportion effectivement récupérée.
Reranker
Méthode qui reclasse des documents déjà trouvés par un moteur de recherche.
RLCD
Reinforcement Learning for Calibrated Decisions, nom donné par TypeSafe à son procédé d’apprentissage. Les documents trouvés ne suffisent pas à le reproduire.
RLHF
Apprentissage par renforcement à partir de retours humains. InstructGPT est un travail de référence auquel Diogo Almeida a contribué.
RLVR
Apprentissage par renforcement à partir de récompenses vérifiables, par exemple en contrôlant une réponse ou l’exécution d’un programme.
SDK
Bibliothèque cliente qui facilite les appels à une API. Son code public ne rend pas publics les poids du modèle.
Softmax
Transformation de scores en nombres positifs dont la somme vaut un. Cette propriété numérique ne garantit pas des probabilités calibrées.
Sortie contrainte
Réponse dont le décodage limite les formes autorisées selon un schéma pris en charge. Le respect du format ne garantit pas l’exactitude des valeurs.
TF-IDF
Représentation lexicale qui pondère les mots selon leur fréquence dans un document et leur rareté dans le corpus.
Token
Unité de texte manipulée par le modèle, souvent un morceau de mot. Un token n’est pas nécessairement un mot entier.
Vérité terrain
Réponses de référence utilisées pour juger les prédictions. Leur création et leur vérification doivent être indépendantes du modèle testé.
ZDR
Zero Data Retention : offre de rétention nulle, dont le périmètre et les conditions doivent être vérifiés pour le service utilisé.
Zero-shot
Utilisation sans exemples de la tâche fournis dans la requête ni ajustement propre à cette tâche dans le protocole considéré. Cela ne signifie pas que le modèle n’a jamais vu de données similaires pendant son entraînement.
35

Conclusion, sources et mises à jour

Périmètre et méthode du dossier

État documentaire au 21 septembre 2026. Les mesures publiées par TypeSafe et les auteurs des benchmarks sont distinguées des recalculs sur leurs données. Aucun appel à l’API Jev n’a été exécuté pour ce dossier. Les pistes de l’audit Perplexity et de la relecture éditoriale ont été vérifiées avant intégration. Des extraits communautaires ont été reçus ; le fil complet reste manquant. Dossier disponible en français et en anglais ; les 2 versions restent en cours de mise à jour. Complément du 23 septembre 2026 : article pédagogique de Daniel Moka publié le 22 septembre, infographies originales et vérification des pages officielles State, Choice, Score, Noul et Confidence. Les benchmarks et leurs dates de vérification restent ceux indiqués dans leurs chapitres. Complément du 24 septembre : outils sémantiques, 17 dépôts supplémentaires, Laya-MLX et Kev, expériences jgrep/Kiln, recettes officielles et SDK Python 0.7.1. Les sources ont été recoupées après une recherche Perplexity; aucun nouvel appel d’inférence ni benchmark exécuté. Les dates des anciens essais sont conservées. Complément du 26 septembre : inférence Laya réellement exécutée hors ligne, 60 prédictions synthétiques évaluées, 6 parcours navigateur et tutoriel local. Ces essais ne portent pas sur Jev ; aucun appel à son API. À cette révision du 26 septembre, aucun résultat du pilote métier n’était encore intégré. Complément du 27 septembre : pilote Laya sur les issues Aristote, 30 cas de développement et 60 de test. Annotations provisoires de 2 agents, sans validation humaine ; configuration rejetée pour ce tri. Résultats agrégés publiés, corpus privé non distribué. Aucun nouvel appel Jev ni nouveau calcul pour cette mise à jour. Complément 0.19.0 du 27 septembre : 3 POCs Laya Sentry, reviews et CI, 45 cas de développement et 120 de test. Configurations rejetées, annotations provisoires. Contrôle des preuves rejoué sans inférence ; agrégats publics et corpus privé séparés. Complément 0.20.0 du 28 octobre 2026 : Jev 1.14, concurrents (Clef, Strands Decider, Decisions API d’OpenAI, pplx-decider), levée de fonds et 3 évaluations publiées par des tiers. Sources primaires relues le 28 octobre ; aucun appel d’API ni nouvelle inférence.

Conclusion

Au 27 septembre 2026, le dossier sépare Jev, les benchmarks publiés, nos essais Laya synthétiques et le pilote sur les issues Aristote. L’inférence locale fonctionne. Le pilote n’apporte toutefois pas le gain requis : 8 suggestions conformes sur 11 émises par Laya, contre 12 sur 17 pour les règles titre seul, sur 60 tickets. Aucun appel à l’API Jev ni comparaison directe Jev/Laya n’a été exécuté.

Conserver les règles et liens exacts. Le pilote de domaine et les 3 POCs Sentry, reviews et CI écartent les configurations Laya testées. Sur les 120 cas des 3 derniers POCs, les suggestions conformes sont 2/38, 1/9 et 6/20 ; en CI, les règles atteignent 5/6. Les annotations d’agents sans validation humaine et les corpus diagnostiques limitent la généralisation. Toute nouvelle configuration exige un autre jeu réservé. La variante lexicale du premier pilote reste non déployée.

Au 28 octobre, la question n’est plus seulement « Jev ou un LLM ? ». Clef, Strands Decider, pplx-decider et la Decisions API proposent la même famille de réponses ; les classements publiés par des tiers placent plusieurs modèles à quelques points les uns des autres, et leurs auteurs n’en tirent pas de vainqueur général. Mes POCs Laya restent négatifs. Le prochain essai local candidat est Strands Decider 2B, sur les mêmes jeux réservés et avec des seuils recalibrés.

Sources datées

La mention « consulté le » indique la date de lecture. Une source peut avoir été publiée plus tôt, puis modifiée.

Historique des mises à jour

DateVersionAjouts
28 octobre 20260.20.0Ajout du chapitre sur les concurrents : Clef, Clef-flash, Clef-omni, Strands Decider 2B, pplx-decider et Decisions API, prix, interfaces et limites. Jev 1.14, Box, images et contexte long, SDK 0.7.5, levée de fonds et chiffres d’adoption non audités. Évaluations Astronomer, AIMultiple et Leanmcp résumées. Chronologie, FAQ et veille actualisées. Sources primaires relues le 28 octobre ; aucun appel d’API ni nouvelle inférence.
27 septembre 20260.19.0Intégration des 3 POCs Laya Sentry/reviews/CI : 45 cas de développement, 120 de test, 15 dépassements. Précisions des suggestions 5,3 %, 11,1 % et 30,0 % ; candidats écartés. Liens Sentry connus, limites des corpus, annotations provisoires et latences distingués. Contrôle des preuves rejoué, aucune nouvelle inférence ni API Jev. Agrégats, news et bandeau actualisés.
27 septembre 20260.18.0Ajout du pilote de domaine sur les issues Aristote : 30 cas de développement, 60 de test, 3 comparateurs, précision et couverture, 41 abstentions et 8 dépassements Laya, latences séparées. Annotations de 2 agents sans validation humaine ; configuration écartée. Agrégats sans données privées, bandeau, conclusion et news mis à jour. Aucun calcul relancé ni appel Jev.
26 septembre 20260.17.0Ajout des essais Laya sur M5 Max : inférence hors ligne, 62 tests du programme, 60 prédictions synthétiques comparées aux règles, latence et 6 parcours navigateur. Erreurs sémantiques et export JSON non confirmé documentés. Tutoriel public avec versions et poids épinglés ; données de preuve jointes. Aucun appel Jev, aucun résultat métier Aristote. Les anciennes sources et stars gardent leur date.
24 septembre 20260.16.0Ajout de 17 dépôts, de 2 chapitres sur les outils sémantiques et les modèles locaux, des expériences jgrep/Kiln, de 5 usages et 6 essais proposés. Analyse Laya-MLX : médianes recalculées, contexte et calibration; ajout de Kev. Notice SDK 0.7.1, recettes officielles datées, limites du visuel ByteByteGo et prompt de veille renouvelé. Sources et rapports FR/EN synchronisés; aucune inférence exécutée. Stars GitHub ajoutées pour les 35 dépôts listés, relevées le 24 septembre à 16 h 40 UTC.
23 septembre 20260.15.0Correction de la distinction entre les évaluations probabilistes de Jev et la décision applicative. Accroches, glossaire, exemples Choice et quatre infographies FR/EN harmonisés. Une démonstration hors réseau applique des règles et des seuils fictifs aux mêmes réponses pour montrer que la politique du code détermine le traitement. Dates et résultats des benchmarks conservés ; aucun appel Jev.
23 septembre 20260.14.04 infographies en français et en anglais expliquent les rôles du LLM, de Jev et du code, un appel complet, Choice / Score / Noul et une comparaison de toute la chaîne. Les exemples sont fictifs ; les raccourcis sur la calibration, les sorties des LLM et le traitement interne sont précisés. Aucun nouvel essai de l’API.
22 septembre 20260.13.0Version anglaise complète : 26 chapitres, 108 sources, 45 termes de glossaire, interface et illustrations traduits. Les liens FR/EN sont actifs en haut de page. Les chiffres, liens minutés et limites des résultats sont conservés.
22 septembre 20260.12.4Une infographie explique ce qu’est un classifieur dans l’analyse critique : exemple de ticket, catégories définies à l’entraînement ou à l’appel, puis place de Jev. Les explications et les sources existantes sont conservées.
22 septembre 20260.12.3Pixel attribué à Livio Gamassia avec son profil LinkedIn dans les chapitres critique et écosystème. Mention de notre participation à la communauté DevWithAI.
22 septembre 20260.12.2Le sommaire suit le défilement : la partie en cours s’ouvre et les autres se replient au changement de partie. Les ouvertures manuelles sont conservées tant que la lecture reste dans la même partie.
22 septembre 20260.12.1Avis critique placé en tête du résumé et accès direct depuis le premier parcours de lecture. Le chapitre critique distingue intérêt pratique, nouveauté scientifique, marketing et accusation de scam. Synthèse des sources déjà examinées, sans nouveau test du modèle.
22 septembre 20260.12.0Analyses de Theo et Fireship intégrées avec leurs réserves et des liens minutés. Retours francophones et autres passages du corpus accessibles dans le chapitre vidéo. Correction de confidence, attribution des démonstrations et bilan de 44 transcriptions, dont 14 lues intégralement.
22 septembre 20260.11.17Liens LinkedIn ajoutés aux mentions des 3 fondateurs dans le texte, les tableaux et le glossaire.
22 septembre 20260.11.16Nombres écrits en chiffres dans les titres, textes, tableaux, légendes et le glossaire. Exemples de code et titres originaux des sources conservés.
22 septembre 20260.11.15Ajout du bouton Partager en haut du dossier : téléchargement du HTML, copie du lien en ligne et partage natif selon le navigateur. Les adresses locales ne sont pas proposées comme liens à partager.
22 septembre 20260.11.14Les langues sont indiquées en haut de page : français disponible, anglais à venir. Le lien anglais sera ajouté une fois la traduction disponible.
22 septembre 20260.11.13Un menu repliable « Autres ressources », sous la recherche, donne accès au portfolio, au guide Claude Code, à GitHub et à LinkedIn.
22 septembre 20260.11.12Liens vers mon portfolio, GitHub et LinkedIn ajoutés. 8 renvois dans les chapitres et une sélection « Pour aller plus loin » relient le dossier à mes ressources publiées sur les agents, leur évaluation, leur sécurité et leurs coûts.
22 septembre 20260.11.11Un bouton LinkedIn permet de me contacter après la lecture du dossier. Le lien est aussi accessible depuis le menu, pour les questions, retours de tests et corrections.
22 septembre 20260.11.10Sur grand écran, le texte et les tableaux occupent davantage de largeur. Les diagrammes gardent leur taille et la lecture sur mobile reste identique. Les sources restent arrêtées au 21 septembre 2026.
21 septembre 20260.11.9Un diagramme compare les signaux et objectifs de l’apprentissage supervisé, du RLHF et du RLVR à l’objectif annoncé de RLCD. Les détails manquants sur RLCD sont signalés ; le tableau reste disponible.
21 septembre 20260.11.8Le texte des diagrammes Mermaid passe de 16 à 14 pixels. Les blocs sont calculés avec cette taille, en conservant les libellés et les flèches.
21 septembre 20260.11.7Une infographie compare Choice, Score et Noul sur un même ticket fictif : choix de catégorie, note sur une échelle et probabilité de oui. Les tableaux et explications détaillés sont conservés.
21 septembre 20260.11.6Titres et passages reformulés pour décrire les entrées, les réponses et les limites de Jev avec des termes concrets. Exemples, chiffres et sources conservés.
21 septembre 20260.11.5Un bouton « Copier pour un LLM » copie le dossier complet en JSON, avec les sources, les exemples et les diagrammes Mermaid. Les images sont représentées par leurs descriptions et légendes.
21 septembre 20260.11.4Le diagramme « Un test, plusieurs reprises » est réduit de moitié. Les largeurs minimales des autres schémas ne dépassent plus leur taille naturelle.
21 septembre 20260.11.3La recherche parcourt les textes complets du dossier, y compris les tableaux, encadrés, codes et prompts repliés. Les résultats indiquent leur partie et leur chapitre, sans limite à 40 passages. Un bouton de recherche est aussi disponible sur mobile.
21 septembre 20260.11.2Le titre du sommaire reste visible. Chaque partie se déplie et se replie indépendamment, sur ordinateur et mobile ; le défilement conserve les choix du lecteur.
21 septembre 20260.11.1Coloration syntaxique des exemples Python, TypeScript, JSON et terminal, disponible hors ligne. Le contenu copié reste identique au code source.
21 septembre 20260.11.0Relecture des 25 chapitres : énumérations, prérequis et résultats distincts présentés en listes. Le résumé d’ouverture passe en puces. Textes, chiffres, conditions, sources et exemples de code conservés.
21 septembre 20260.10.0Lecture réorganisée : 3 parcours au début, sommaire par parties, glossaire en fin de dossier et tutoriel dans les essais. Texte moins large, tableaux et notes allégés. Tous les exemples de code et prompts sont repliables, avec copie accessible sans les ouvrir. Navigation et thèmes clair et sombre harmonisés.
21 septembre 20260.9.2Bouton Copier en haut à droite de chaque bloc de code, avec confirmation et conservation des espaces et retours à la ligne.
21 septembre 20260.9.1Résumé d’ouverture simplifié : rôle de Jev, date du lancement, raisons de l’intérêt, ordres de grandeur de vitesse et de prix, exemple de coût. Les gains annoncés par TypeSafe restent distingués des mesures indépendantes.
21 septembre 20260.9.0Ajout d’un parcours développeur : installation du SDK Python, premier appel sur un ticket fictif, lecture de la réponse, dépannage et prompt à copier. Script vérifié avec le SDK installé et des réponses simulées ; aucun appel au modèle Jev.
21 septembre 20260.8.0Ajout d’un chapitre critique sur la classification, les promesses commerciales et les accusations de « scam ». Discussions communautaires vérifiées, comparateurs précisés et essais GitHub/Sentry détaillés.
21 septembre 20260.7.1Ajout d’un repère de dernière mise à jour en ouverture et d’un accès direct à l’historique. Les corrections de fond et nouveaux visuels figurent dans la version 0.7.0 ci-dessous.
21 septembre 20260.7.0Corrections après audit éditorial : sources et tiers, résultats fournisseur complets, recalculs de sélection par confidence, réponse API illustrative, critères de rejet proposés et nouvelles figures. Les constats de l’audit ont eux aussi été confrontés aux sources. Aucun appel à Jev.
21 septembre 20260.6.0Intégration critique de l’audit Perplexity : contrat API, mesures de calibration, provenance des benchmarks, accès et données, écosystème, protocoles et nouveaux schémas. Aucun résultat personnel d’API ajouté.
21 septembre 20260.5.0Interactions entre logiciels mises au premier plan dans le titre, l’introduction et 3 diagrammes. Appelant, destinataire et relecture humaine distingués. Un LLM peut également servir une application.
21 septembre 20260.4.0Ajout d’un comparatif entre génération autorégressive et API Jev, puis d’un scénario combinant Jev et un LLM pour les notes de version. Limites de connaissance de l’architecture indiquées ; 2 termes ajoutés au glossaire.
21 septembre 20260.3.0Relecture complète des titres, explications, tableaux et légendes. Jargon expliqué et détails de collecte regroupés. Liens vidéo revus sur les transcriptions ; attribution de la démonstration navigateur corrigée.
21 septembre 20260.2.0Cas d’usage affinés après inspection de skills, agents et workflows : pré-tri GitHub, rapprochement Sentry, verdict de backlog après enquête et sélection de correctifs pour les notes de version. Les règles déterministes et les ambiguïtés du protocole sont isolées. Aucun test API exécuté.
21 septembre 20260.1.0Premier état de recherche. Contrat de l’API, limites documentées, benchmarks tiers, corpus vidéo, littérature de contexte et protocole d’essai. Thread communautaire et tests personnels en attente.

Copier le dossier en JSON

La copie automatique est indisponible. Le texte est sélectionné : utilisez ⌘C ou Ctrl+C, puis collez-le dans votre assistant.

Partager ce dossier

Télécharger le dossier HTML