Jev sta trovando applicazione soprattutto nei programmi che non richiedono a un modello di generare testo, ma di prendere rapidamente una decisione tra alternative definite, assegnare una probabilità a una condizione oppure classificare un elemento secondo una scala. Il modello sviluppato da TypeSafe AI restituisce infatti output strutturati attraverso tre forme principali: Choice seleziona una delle opzioni disponibili e assegna una probabilità a ciascuna, Noul esprime la probabilità che una determinata affermazione sia vera e Score colloca un elemento lungo una scala ordinata. Questa impostazione permette di inserirlo direttamente nei normali flussi software, lasciando al codice deterministico la gestione dell’applicazione e utilizzando Jev soltanto nei punti nei quali serve una valutazione probabilistica. Le prime integrazioni mostrano quindi un impiego molto diverso da quello tipico dei chatbot: Jev viene chiamato per decidere quale azione eseguire in un videogioco, filtrare contenuti, stabilire quali file di un progetto siano pertinenti, valutare se una modifica al codice violi determinate regole, assegnare priorità a elementi di un foglio di calcolo, scegliere se una pull request richieda una revisione oppure classificare grandi quantità di dati in tempi sufficientemente brevi da consentire interazioni quasi in tempo reale.
Una delle aree nelle quali sono comparsi più rapidamente progetti basati su Jev è quella degli strumenti per gli agenti di programmazione, in particolare Claude Code. Un plugin denominato claude-jev utilizza Jev per spostare fuori dal modello generativo una serie di piccole decisioni che un coding agent deve ripetere continuamente durante una sessione. Il sistema controlla, per esempio, se una modifica viola una regola contenuta nei file di istruzioni del progetto, stabilisce quali parti della cronologia vadano conservate quando il contesto deve essere compattato, assegna a eventuali sub-agent il livello di modello ritenuto adeguato al lavoro e produce suggerimenti di routing per stabilire se una richiesta richieda una semplice ricerca o un intervento più esteso. Nel corpus utilizzato dagli sviluppatori, il controllo delle regole ha bloccato 22 modifiche su 247 perché considerate incompatibili con le istruzioni del repository, mentre il sistema di compattazione mantiene verbatim le righe giudicate ancora importanti invece di produrre un nuovo riassunto generativo; nei test riportati dal progetto, i vincoli inseriti intenzionalmente dall’utente sono stati conservati nel 100% dei casi. Un’altra implementazione per Claude Code usa invece Jev come secondo giudice indipendente durante code review, debugging e pianificazione: i possibili bug vengono valutati prima di essere mostrati, le ipotesi sulle cause di un errore vengono ordinate in base alla probabilità e diverse soluzioni progettuali possono essere giudicate separatamente su più criteri. Lo stesso plugin può filtrare decine o centinaia di risultati prodotti da una ricerca nel codice prima che Claude li legga, riducendo così il materiale immesso nella finestra di contesto. Una terza implementazione usa Jev direttamente per cercare semanticamente nei repository: invece di caricare interi file dentro Claude Code, il programma passa i contenuti a Jev e restituisce soltanto le porzioni considerate pertinenti alla domanda. Nei benchmark pubblicati dallo sviluppatore, questo approccio ha ridotto del 38% i token fatturati e del 70% il contesto nel comando di interrogazione, mentre un hook applicato alle letture dei file ha ristretto 50 letture senza perdere gli obiettivi ricercati.
Lo stesso principio è stato generalizzato oltre Claude Code attraverso jev-code, un progetto che rende disponibili le medesime funzioni di classificazione a Claude Code, Codex, OpenCode e Pi. Il software espone cinque operazioni, dedicate rispettivamente alla classificazione, alla verifica sì/no, all’assegnazione di un punteggio, al ranking e a domande strutturate, permettendo a un coding agent di usare Jev per problemi come stabilire quali errori di una pipeline CI siano realmente rilevanti, individuare i file utili per rispondere a una domanda, controllare se una pull request realizzi ciò che dichiara oppure assegnare una gravità alle anomalie individuate. Un progetto separato, DiffJury, applica lo stesso meccanismo direttamente alle pull request pubbliche: l’utente inserisce l’indirizzo di una PR e Jev viene utilizzato per decidere rapidamente se la modifica sembri sufficientemente sicura da essere integrata oppure se richieda un controllo umano. In questo tipo di applicazioni Jev non sostituisce il sistema che genera o modifica il codice e non scrive autonomamente la soluzione, ma opera come livello di giudizio intermedio fra il software e il modello generativo, particolarmente utile quando occorre ripetere moltissime valutazioni brevi e strutturate durante la stessa sessione.
Un altro gruppo di applicazioni sfrutta la velocità di Jev per modificare dinamicamente interfacce e contenuti mentre l’utente sta utilizzando un programma. Marcel Pociot ha realizzato un’estensione del browser capace di nascondere o comprimere automaticamente i post su X utilizzando istruzioni espresse in linguaggio naturale: Jev classifica ciascun contenuto in base ai criteri stabiliti dall’utente e il risultato viene applicato all’interfaccia con una latenza abbastanza bassa da non rendere evidente il processo di valutazione. Il concetto può quindi essere usato per costruire filtri personalizzati nei quali non è necessario predisporre manualmente una lunga serie di parole chiave o regole. Nader Dabit ha applicato una logica simile ai fogli di calcolo con un sistema di “predictive spreadsheets”: invece di inserire una formula numerica, l’utente può scrivere per esempio “Urgency” come intestazione di una colonna e il sistema interpreta semanticamente il contenuto delle righe, assegnando in circa 100 millisecondi una valutazione che può andare da nessun follow-up necessario fino a urgente. Marek Sotak ha invece costruito una versione in tempo reale di Clippy che osserva il modo in cui una persona utilizza un prodotto e usa Jev per stabilire quando l’utente sembra esitante, confuso o bloccato; soltanto quando la probabilità supera determinate soglie l’assistente interviene, mentre anche la scelta della reazione da mostrare viene controllata attraverso Jev. Queste implementazioni utilizzano quindi il modello come componente invisibile dell’interfaccia, chiamato ripetutamente per trasformare segnali e contenuti in decisioni immediate.
La stessa capacità di classificare grandi quantità di elementi è stata impiegata per l’analisi dei contenuti. Ian Nuttall ha sottoposto a Jev 3.282 propri post pubblicati su X, corrispondenti complessivamente a circa 100 milioni di visualizzazioni, ponendo otto domande strutturate su ogni contenuto per identificare caratteristiche come argomento, hook, tono e presenza di una componente educativa. L’elaborazione ha riguardato oltre 4,25 milioni di token, con un costo dichiarato di circa 0,13 dollari e un tempo di otto minuti e 34 secondi, permettendo successivamente di confrontare le caratteristiche dei post con le relative performance. Un’altra applicazione, SuperX, valuta invece un singolo post attraverso 61 domande in circa un secondo e viene utilizzata per stimarne il potenziale prima della pubblicazione; secondo i dati comunicati dal suo sviluppatore, il sistema è stato calibrato su 9.481 post provenienti da 207 creator e il costo per una valutazione completa è nell’ordine di quattro decimillesimi di dollaro. In entrambi i casi Jev non produce il post finale: viene utilizzato come sistema di scoring capace di applicare decine di criteri allo stesso contenuto e restituire risultati strutturati sui quali un’altra applicazione può poi basare analisi, filtri o successive riscritture.
Il funzionamento a bassa latenza ha permesso anche di utilizzare Jev direttamente all’interno di videogiochi. Nel progetto open source TypeSafe Mario il modello controlla Super Mario Bros. senza ricevere screenshot del gioco: un programma legge la RAM e la telemetria dell’emulatore e converte lo stato corrente in un oggetto strutturato contenente posizione e movimento di Mario, traiettoria del salto, nemici vicini, terreno, ritardo misurato dei comandi, risultati delle azioni precedenti e avanzamento nel livello. A ogni ciclo Jev deve scegliere una delle azioni legali disponibili, tra cui avanzare, saltare, correre, combinare corsa e salto, tornare a sinistra oppure non eseguire alcun comando; l’emulatore avanza quindi di diversi frame e il nuovo stato viene nuovamente sottoposto al modello. Il progetto utilizza simultaneamente una Choice per scegliere il comando del controller, una domanda Noul per stimare se sia opportuno effettuare un salto in avanti e uno Score per misurare il livello di pericolo immediato. I calcoli deterministici, come tempi, distanze e traiettorie, rimangono nel codice tradizionale, mentre Jev interpreta questi dati e decide l’azione. Il sistema mostra in tempo reale anche la distribuzione di probabilità delle possibili mosse, la confidenza, la latenza del modello, il rischio, la probabilità di salto e la ricompensa ottenuta. Lo stesso schema è stato successivamente esteso in un laboratorio che permette a Jev di giocare anche a Kung Fu/Spartan X e Doom, mantenendo separato il ciclo di controllo del modello dalla logica specifica dell’emulatore.
Gli esperimenti sui videogiochi non si fermano a Super Mario. Sono stati mostrati sistemi nei quali Jev gioca a Subway Surfers a velocità superiore a quella normalmente gestibile da un giocatore e controlla contemporaneamente 50 sessioni, con un costo dichiarato inferiore a un centesimo per l’intera prova; un’altra demo utilizza il modello per controllare tutti e quattro i personaggi di una partita di Super Smash Bros., scegliendo in frazioni di secondo le azioni di ciascun combattente e processando oltre 22 milioni di token con un costo indicato dallo sviluppatore nell’ordine di pochi centesimi. Un ulteriore progetto utilizza Jev non per giocare ma per generare in tempo reale la struttura di un platform: a partire dallo stato corrente della partita, il modello decide larghezza del segmento successivo, dimensione degli spazi, altezza e tipo di tile, mentre il motore tradizionale si occupa poi di costruire fisicamente il livello. Questi esempi mostrano un modello di integrazione ricorrente: il game engine continua a gestire simulazione, fisica, collisioni e rendering, mentre Jev interviene soltanto nel punto in cui occorre scegliere rapidamente tra possibilità discrete in base allo stato del gioco.
La stessa architettura può essere applicata ad agenti Web e software che devono scegliere la prossima operazione fra molte possibilità. Sono state realizzate integrazioni nelle quali Jev riceve lo stato strutturato di una pagina o dell’interfaccia e decide quale azione eseguire, mentre un modello linguistico tradizionale viene eventualmente mantenuto soltanto per attività che richiedono effettiva generazione di testo, come compilare un campo. Un’applicazione citata tra le prime demo usa questo schema per cercare e selezionare voli, mentre altri progetti classificano segnalazioni di incidenti aziendali, ne determinano la categoria e attivano automaticamente lo spostamento nella cartella appropriata e l’aggiornamento dei relativi metadati. Jev è stato utilizzato anche per sentiment analysis di notizie all’interno di terminali di trading e per sistemi nei quali una probabilità prodotta dal modello viene trasformata direttamente in una normale condizione software: sopra una prima soglia viene eseguita un’azione, sotto una seconda ne viene eseguita un’altra e nell’area intermedia il programma può richiedere un controllo aggiuntivo. Il modello può quindi essere impiegato come sostituto probabilistico di condizioni troppo complesse per essere espresse efficacemente attraverso serie di if, purché il problema possa essere formulato come scelta, classificazione o valutazione su una scala.
Le implementazioni realizzate finora mostrano quindi soprattutto un uso di Jev come componente decisionale inserito dentro software già esistente. Non viene normalmente affidato al modello l’intero workflow: il programma raccoglie lo stato, calcola in maniera deterministica ciò che può essere calcolato, invia a Jev soltanto la decisione ambigua e utilizza la risposta probabilistica per proseguire. Questo consente di applicarlo a coding agent, filtri dei contenuti, ranking, ricerca semantica, fogli di calcolo, interfacce adattive, videogiochi, browser agent, analisi delle pull request e sistemi di triage senza dover chiedere ogni volta a un grande modello generativo di leggere tutto il contesto e produrre una risposta testuale. È proprio questa separazione fra software deterministico e giudizio probabilistico ad accomunare applicazioni apparentemente molto diverse come il mod per Claude Code che decide quali informazioni mantenere nel contesto, il foglio di calcolo che assegna automaticamente l’urgenza a una riga e Super Mario che sceglie se correre o saltare davanti a un nemico.
Questo articolo è stato redatto con il supporto di strumenti di intelligenza artificiale (AI)
