Tout le monde parle de Jev — voici ce que cela change vraiment dans Hermes

Si vous avez ouvert Hacker News ou une newsletter IA ces derniers jours, vous avez vu le mot « Jev » plusieurs dizaines de fois. C’est un modèle qui n’écrit pas de prose — il renvoie des décisions avec des scores de confiance — et les réactions se partagent entre « c’est une nouvelle forme de LLM » et « c’est un classifieur avec un bon marketing ». Votre vraie question est plus étroite que ces deux camps : est-ce que tout cela change quelque chose pour l’agent que je fais déjà tourner ? Pour les utilisateurs de Hermes, la réponse est oui, et plus tôt que vous ne l’imaginez. Le catalogue de plugins contient déjà onze entrées Jev, dont la plupart ont été mergées la semaine dernière.
Ce qu’est réellement Jev
Jev vient de TypeSafe AI, qui décrit la catégorie comme des « System One models » ; l’article de Simon Willison utilise le terme plus simple de decision models, et c’est le meilleur. La mécanique est simple à énoncer :
- Vous envoyez du texte, ou un petit state structuré — une chaîne, une liste de chaînes, ou des paires nom/valeur décrivant un ticket, un client, un diff.
- Vous posez une question typée : un oui/non, une note, ou un choix entre des options que vous fournissez.
- Vous recevez des nombres en retour. Une question de choix renvoie une distribution de probabilité sur vos options plus un score de confiance, pas une phrase.
C’est toute l’astuce, et c’est pourquoi le design est intéressant pour le travail d’agent. Un agent a constamment besoin de petits jugements ennuyeux — cette commande est-elle destructrice, laquelle de mes quarante skills correspond à ce tour, ce diff a-t-il besoin d’une seconde paire d’yeux — et il paie aujourd’hui un appel complet à un modèle de texte pour chacun, avec en prime des tokens de raisonnement que vous jetez.
Un decision model répond en un appel bon marché et ne peut pas partir dans un paragraphe bavard. La formulation de Willison vaut la peine d’être retenue : le modèle est si bon marché que lancer des centaines de prompts expérimentaux coûte quelques centimes, ce qui rend la boucle « essayer et mesurer » praticable. Le même article signale les limites actuelles d’après les notes de modèle de TypeSafe — les nombres, les dates et le contenu adversarial sont des points faibles — l’image honnête est donc « question étroite, réponse rapide, vérifiez tout ce qui est numérique ».
Onze entrées, et elles décident de choses différentes
C’est ici que cela devient pratique. Cherchez dans le catalogue et vous trouvez Jev réparti sur tout le cycle de vie d’un tour plutôt que dans un unique « plugin Jev » :
| Entrée du catalogue | Maintenue par | Ce qu’elle décide | Où elle s’accroche |
|---|---|---|---|
jev |
ourines | Aide à la décision explicite. Vous donne un seul outil jev_evaluate ; consultatif uniquement, aucun filtrage automatique d’outils. |
Outil |
jev-judge |
DoGMaTiiC | Questions destructif / exfiltration / impact sur les appels terminal, write_file et patch — mode shadow par défaut, enforce escalade. |
pre_tool_call |
jev-skill-router |
DoGMaTiiC | Nomme l’unique skill, dans votre roster live, qui correspond à ce tour, avant l’appel au modèle. | pre_llm_call |
jev-effort-router |
AlphaPerseii3000 | Choix du modèle et de l’effort de raisonnement par tour, en réécrivant la requête sortante elle-même. Ollama:Cloud uniquement. | middleware llm_request |
jev-typesafe |
Anders Jensen-Waud | Vérifications oui/non atomiques, routage, scoring sur rubrique et questions typées mixtes, en quatre outils. | Outils |
jev-curator |
anpicasso | Relations entre packages de skills complets, produisant des plans de consolidation fail-closed. | on_skill_lifecycle, pre_tool_call |
jev-approvals |
anpicasso | Jev comme réviseur de smart-approval uniquement — il refuse toute autre tâche et échoue en fail-closed vers ESCALATE. | Chemin d’approbation |
jev-model-router, jev-mcp-router, jev-memory-selector, jev-agent-router |
Pinutss | Routage vers un modèle, un serveur MCP, un backend de mémoire ou un agent — chacun livré comme skill plus un serveur MCP stdio lancé avec uv run. |
MCP |
nerve |
keeltrace | Une couche de supervision : gouvernance du contexte, contrôle de trajectoire du budget de tokens, supervision Kanban, workers SSH distants, avec des backends Jev / Laya / OpenJev agnostiques du provider. | Neuf hooks |
nerve mérite une note à part : il était listé sous le nom Hermes-Jev et a été renommé Nerve en v0.2.2 la semaine dernière, donc si vous vous souvenez d’une entrée Jev portant un autre nom, c’est le même projet.
En installer un
hermes plugins search jev
hermes plugins install jev-judge
Deux détails rendent cela plus sûr qu’un git clone brut :
- Un nom de catalogue se résout vers le dépôt de l’entrée sur un commit SHA épinglé de 40 caractères, et l’installeur enregistre cette provenance dans son
.install-metadata.json. Un plugin épinglé ne bouge pas sous vos pieds ; le faire bouger demande un--force --ref <sha>explicite, qui est aussi la façon de relire une mise à jour selon votre propre calendrier. hermes plugins searchcherche dans les noms d’entrées, les descriptions et les outils déclarés, vous pouvez donc voir ce qu’un plugin prétend faire avant qu’il soit sur disque. Le catalogue est curé dans le dépôt et rafraîchi depuis le dépôt live avec un cache de six heures, en retombant sur la copie in-tree hors ligne.
Deux règles avant d’en installer un
Au catalogue ne veut pas dire audité. L’admission au catalogue examine l’entrée — ses métadonnées, ses divulgations et ses capacités déclarées — pas le code du plugin. Traitez une installation depuis le catalogue comme « quelqu’un a lu le manifeste attentivement », pas comme « c’est sûr ».
Lisez la ligne de divulgation, parce que tout cela envoie vos données quelque part. Chaque entrée porte une déclaration explicite de ce qui quitte la machine, et elles diffèrent beaucoup :
jev-judgeenvoie le nom d’outil et les arguments expurgés de chaque appel jugé — jusqu’à 600 caractères chacun, 12 arguments au maximum — à TypeSafe ou à votre gateway configuré, avec votre clé. En mode shadow, il se contente de journaliser.jev-skill-routerenvoie votre message (jusqu’à 4 000 caractères) plus les noms de skills et de courts extraits deSKILL.mdissus de votre roster local.jev-effort-routerenvoie le message courant et jusqu’à quatre tours précédents à l’API Decisions d’OpenRouter, facturés sur votre clé OpenRouter, à chaque tour routé.nerveutilise par défaut un backend Jev hébergé et envoie le prompt de chaque tour (jusqu’à 12 000 caractères) plus des aperçus expurgés d’outils et de résultats ; Laya et OpenJev peuvent être configurés comme backends locaux ou auto-hébergés.
Le comportement en cas d’échec est tout aussi important. jev-judge échoue en ouvert sur tous les chemins d’erreur — une panne de Jev ne bloque jamais vos outils. jev-approvals échoue en fermé, en escaladant vers un humain plutôt qu’en autorisant une commande qu’il n’a pas pu juger. Les deux sont raisonnables ; choisir le mauvais pour votre modèle de menace ne l’est pas.
Par lequel commencer
Commencez par jev-judge dans son mode shadow par défaut. Il journalise une ligne JSONL par décision sans rien bloquer, donc une semaine de travail normal vous donne de vraies données sur la fréquence à laquelle il aurait escaladé — et vous pouvez lire le journal avant de lui accorder la moindre autorité.
Ensuite, résistez à l’envie d’empiler les routeurs. jev-skill-router, jev-effort-router, jev-model-router et jev-agent-router veulent tous décider « ce qui se passe ensuite » pour le même tour ; en installer trois signifie trois modèles qui votent sur une seule requête et une facture que vous ne pouvez pas attribuer. Choisissez la seule décision de routage qui vous coûte réellement de l’argent.
Où en est-on aujourd’hui
Les onze entrées sont des plugins de niveau communautaire qui déclarent une version minimale de Hermes — de 0.19 jusqu’à 0.21.4 pour jev-effort-router — et elles atterrissent sur main après le tag v0.21.4, le catalogue est donc leur canal de distribution plutôt qu’une release.
Jev n’est pas encore un provider de première classe, et les demandes ouvertes montrent que les gens veulent qu’il le devienne : l’issue #113008 demande un runtime de decision-provider probabiliste typé pour des décisions d’agent bornées, l’issue #113837 demande la prise en charge de Jev dans Hermes, et une pull request visant à ajouter TypeSafe Jev à la liste des model-providers est toujours ouverte. Jusqu’à ce que l’une d’elles atterrisse, le catalogue de plugins est la façon dont Jev entre dans votre agent — ce qui, étant donné que le catalogue épingle les commits et affiche les divulgations, n’est pas un mauvais point de départ pour expérimenter.
Si le cycle de vie des hooks dans ce tableau vous est nouveau, notre guide du catalogue de plugins explique comment les entrées sont admises et installées, et le guide de sécurité du catalogue MCP est la lecture complémentaire pour accorder votre confiance à un serveur tiers. Pour les deux réglages que ces plugins touchent le plus souvent, voyez le guide de l’effort de raisonnement et le guide des approbations non surveillées.