Costruire un Harness con Jev

420K
2.1K
210
49
3.9K

TL;DR

Questo articolo spiega come integrare Jev, un modello System One veloce di TypeSafe AI, negli agenti LangChain. Illustra le capacità di Jev per il processo decisionale strutturato, il routing dei modelli e i guardrail di sicurezza volti a ottimizzare le prestazioni e i costi degli agenti.

Gli agenti funzionano in un loop: un LLM decide cosa fare, un tool esegue, un modello valuta i risultati e poi continua nel loop fino al completamento del task.

Inizialmente, gli agenti e gli LLM erano difficili da integrare nelle applicazioni software, che dipendono da dati strutturati e interfacce prevedibili. Sono emersi due elementi fondamentali che hanno reso tutto molto più semplice:

  • Tool calling ha permesso ai modelli di effettuare richieste strutturate e ricevere risultati strutturati.
  • Output strutturati hanno permesso ai modelli di restituire risultati strutturati.

Ma anche con questi elementi, il loop dell'agente rimane lento e costoso: ogni decisione richiede un'altra chiamata al modello.

Ecco Jev. Jev è un nuovo modello rilasciato da TypeSafe AI. L'azienda riporta un'inferenza fino a 200x più veloce e costi 400x inferiori rispetto agli LLM comparabili nei task di classificazione.

https://x.com/CompleteSkeptic/status/2099925682726002904

Questo post copre come funziona Jev, dove si inserisce nel loop dell'agente e come usarlo con LangChain.

Tutto su Jev

Jev non è in realtà un LLM tradizionale, non genera testo. È ciò che il team di TypeSafe AI chiama un modello System One:

📖 I modelli System One sono una classe di modelli di IA progettati per prendere decisioni rapide e strutturate che il software può usare direttamente. Un modello System One valuta uno

stato e restituisce risposte tipizzate e probabilità.

È addestrato utilizzando l'apprendimento per rinforzo per decisioni calibrate (RLCD). Il tuo codice usa quei risultati per guidare le azioni successive dell'agente, senza una chiamata completa all'LLM chat per ogni decisione.

Per invocare un modello Jev, invii uno stato (il contesto) e delle domande su quello stato. Ecco una versione a domanda singola dell'esempio del ticket di supporto nella loro documentazione:

json
1{
2 "model": "jev-latest",
3 "state": "Hi, I've been trying to connect my Stripe account for 3 days and it keeps failing. I'm losing sales. Please help ASAP.",
4 "questions": {
5 "is_urgent": {
6 "type": "noul",
7 "instructions": "The message conveys urgency or time-sensitivity"
8 }
9 }
10}

L'esempio della documentazione fornisce questa risposta sull'urgenza, mostrata qui senza il resto della risposta:

json
1{
2 "is_urgent": {
3 "type": "noul",
4 "noul": 0.999
5 }
6}

Si tratta di una probabilità del 99,9% che il messaggio sia urgente, che la tua applicazione può usare per dare priorità al ticket.

Ci sono tre tipi di domande supportate:

Sydney Runkle - inline image
  • Scelta: Seleziona da un set di opzioni. Restituisce una probabilità per ogni opzione e un punteggio di confidenza complessivo.
  • Punteggio: Valuta un input contro livelli ordinati, come basso, medio e alto. Restituisce un punteggio continuo, la distribuzione sottostante e un valore di confidenza.
  • Noul: Risponde a una domanda sì o no. Restituisce la probabilità che un'affermazione sia vera.

Una caratteristica chiave è che puoi porre più domande sullo stesso stato in una sola richiesta.

💡 I modelli System One valutano ogni domanda in una richiesta in parallelo. Aggiungere domande cambia appena il tempo di risposta e costa solo i token per le domande extra, che sono economici.

Per un esempio di come porre più domande su un ticket di supporto, vedi la Guida rapida di TypeSafe.

In sintesi, a differenza degli LLM tradizionali, Jev non è vincolato dalla generazione di testo né dal processo decisionale sequenziale!

Come usare Jev con LangChain

Il modello agnostico rispetto al provider di LangChain è ben adatto a supportare Jev insieme a migliaia di altre integrazioni e fornitori di modelli.

L'integrazione LangChain espone Jev tramite TypeSafeClassifier. Passi il tuo stato e le tue domande a .invoke(), e ottieni risultati di classificazione anziché una risposta chat.

Installa langchain-typesafe e imposta la tua TYPESAFE_API_KEY, poi effettua una chiamata:

python
1from langchain_typesafe import Noul, TypeSafeClassifier
2
3classifier = TypeSafeClassifier()
4
5response = classifier.invoke(
6 state=(
7 "The deploy failed twice and customers are seeing 500s. "
8 "Can someone look now?"
9 ),
10 questions={
11 "urgent": Noul(
12 instructions="Does this need attention right now?"
13 ),
14 },
15)
16
17urgency = response.nouls["urgent"].noul

Lo stato può essere testo, dati strutturati o messaggi LangChain. Questo rende semplice chiamare Jev da un nodo o da un hook middleware usando il contesto che il tuo agente ha già.

Puoi integrarlo in middleware o tool personalizzati!

Casi d'uso

Jev non è un sostituto drop-in per un LLM. Non genera testo, ma può gestire i task di classificazione per cui oggi usiamo spesso gli LLM, senza la stessa latenza e lo stesso costo. Questo lo rende un complemento promettente al modello che guida il tuo agente: usa un LLM per il ragionamento aperto e la generazione, e Jev per decisioni rapide e strutturate lungo il percorso.

Routing dei modelli

Una semplice ricerca non ha bisogno dello stesso modello di un difficile task di debugging. Il middleware di routing dei modelli permette a Jev di valutare la richiesta e scegliere un modello in base a criteri definiti da te, così da essere veloce ed economico per task semplici, e più capace per quelli complessi.

python
1from langchain.agents import create_agent
2from langchain_typesafe.experimental.middleware import (
3 ModelChoice,
4 ModelRouterMiddleware,
5)
6
7router = ModelRouterMiddleware(
8 choices={
9 "fast": ModelChoice(
10 model="openai:luna",
11 criteria="Direct lookups, extraction, and localized changes.",
12 ),
13 "powerful": ModelChoice(
14 model="openai:sol",
15 criteria="Architecture and high-stakes decisions.",
16 ),
17 },
18 instructions="Choose the least costly model that can complete the task.",
19)
20
21agent = create_agent("openai:gpt-5.6-luna", middleware=[router])

Il router seleziona un modello dall'ultimo messaggio utente e lo usa durante tutta l'esecuzione. Le probabilità e la confidenza rimangono disponibili anche nello stato dell'agente.

Auto Mode

Gli agenti rimangono intrinsecamente poco affidabili. Un agente può ricevere istruzioni errate (naturalmente o da un attaccante sufficientemente motivato) che possono persuaderlo a compiere azioni che non volevamo.

Ambienti di sviluppo come claude, codex, cursor hanno introdotto qualche modo per classificare le azioni pericolose prima che vengano eseguite, il che ha lentamente aiutato a costruire fiducia negli agenti. Fino ad ora, questo passaggio di classificazione era nascosto nelle parti closed source dell'harness.

Ora che esiste un modello classificatore economico e performante, possiamo adottare lo stesso pattern per tutti gli agenti!

python
1from langchain.agents import create_agent
2from langchain_typesafe.experimental.middleware import (
3 AutoModeMiddleware,
4)
5
6guardrail = AutoModeMiddleware(tools=["bash"])
7
8agent = create_agent("openai:gpt-5.6-luna", middleware=[guardrail])

AutoModeMiddleware usa Jev per controllare le chiamate ai tool per decisioni rischiose che potrebbero prendere, e bloccare le chiamate prima che il tool venga eseguito.

Inizia!

Siamo piuttosto entusiasti di Jev e delle possibilità che porta con sé. Alcuni progetti interessanti che abbiamo già visto: Kyle Jeong di Browserbase sta alimentando agenti per l'uso del browser per frazioni di centesimo, Jarrod Watts ha costruito un agente di trading live, e Ryan Vogel sta facendo triage delle email su larga scala.

A questo punto escono nuovi modelli ogni settimana, ma questo ha avuto una risposta piuttosto fuori scala. Siamo entusiasti di vedere cosa costruirai con LangChain e Jev.

Facci sapere cosa ne pensi sul forum, taggaci su X e condividi cosa stai costruendo, oppure interagisci con le issue di LangChain!

Ringraziamenti

Grazie a @huntlovell, @hwchase, @ccurme, @veryboldbagel, e Nathan Drenzer per la loro attenta revisione e i contributi.

Salva con un clic

Leggi in profondità gli articoli virali con l’AI di YouMind

Salva la fonte, fai domande mirate, riassumi l’argomentazione e trasforma un articolo virale in note riutilizzabili in un unico spazio di lavoro AI.

Scopri YouMind
Per i creator

Trasforma il tuo Markdown in un articolo 𝕏 pulito

Quando pubblichi i tuoi testi lunghi, formattare immagini, tabelle e blocchi di codice per 𝕏 è una seccatura. YouMind trasforma un'intera bozza Markdown in un articolo 𝕏 pulito e pronto da pubblicare.

Prova Markdown verso 𝕏

Altri pattern da decodificare

Articoli virali recenti

Esplora altri articoli virali