Il mio agente chiama tool. Ogni singolo turno. A volte la chiamata è corretta. A volte è l’intenzione giusta nel posto leggermente sbagliato, fluttuante nel testo del modello dove il runtime non guarda. A volte il modello descrive di aver fatto il lavoro senza chiamare un tool, e la descrizione sembra perfetta.

Per mesi la soluzione è stata allungare i modelli conversazionali in ogni ruolo: routing, gating, ranking, selezione azioni, triage. Funzionano perché puoi farli produrre JSON con un prompt. Funzionano perché puoi estrarre JSON dal loro testo. Funzionano finché non funzionano più, e allora perdi tre giorni a fare debug di una deriva di prompt che nessuno riesce a riprodurre.

Nell’ottobre 2026, la classe dei modelli decisionali — modelli costruiti apposta che producono probabilità su domande tipizzate invece di testo libero — è passata da curiosità della ricerca a vera infrastruttura. Cloudflare ha pubblicato Clef e Clef-flash. Amazon ha pubblicato Strands Decider. Jev, il fondatore della categoria, ha pubblicato Jev-2 affiancato a Jev-Flash. Tutti e tre parlano la stessa API. Tutti e tre mangiano il pane dei modelli conversazionali per il routing.

Cosa fa davvero un modello decisionale

Un modello conversazionale prende testo in uscita, testo in uscita. Un modello decisionale prende un blob di stato (JSON, testo, fino a 4 immagini o video), un elenco di domande tipizzate, e restituisce una probabilità per ogni risposta consentita. Nessuna prosa. Nessun parsing. Nessun «forse il modello voleva chiamare delete_file».

Clef-flash 9B di Cloudflare prende uno stato, un elenco di domande tipizzate con criteri per opzione, e restituisce probabilità calibrate. Un forward pass. Un logit per opzione. Il modello non genera affatto testo — esegue il routing attraverso un joint schema head.

Jev-Flash fa la stessa cosa ma è proprietario, solo API. Strands Decider di Amazon è anch’esso open weights Apache 2.0, di classe decisionale, compatibile Jev-API.

La differenza da un modello conversazionale non è l’architettura — sono tutti transformer. La differenza è l’objective di training e il head di output. I modelli decisionali sono post-allenati su task di routing con cross-entropy smoothed e Brier loss per calibrazione. Il risultato: non hallucinano opzioni di risposta. Non producono prosa quando vuoi un numero. Non hanno bisogno di prompt engineering per restare in formato.

I Benchmark

Cloudflare ha confrontato Clef con Jev su 10 benchmark decisionali. Sono i numeri propri di Cloudflare, quindi considerali un confronto a favore:

Benchmark Clef 27B Clef-flash 9B Jev
BFCL (case exact) 98.47 98.76 95.75
BANKING77 (macro-F1) 94.20 90.93 79.74
CLINC150+OOS (macro-F1) 97.43 66.77 89.27
API-Bank (accuracy) 91.93 93.11 88.19
Elettrodomestici (case exact) 82.95 97.73 52.27
When2Call (accuracy) 72.37 65.58 80.97
BRIGHT retrieval (nDCG@10) 45.91 39.26 47.52

Clef guida sulla classificazione di tool e rilevamento intento. Jev guida sui task di giudizio — When2Call (il modello chiama un tool, chiede un seguito o rifiuta?) e BRIGHT (retrieval con reasoning). Clef-flash è il più veloce ma collassa sul rilevamento out-of-scope (CLINC150: 66.77 contro 97.43 per Clef).

Il test indipendente che conta di più per chi costruisce agenti: un agente di codifica autonomo che esegue 42 decisioni reali tra computer-use actions, supervisione sub-agent e triage inbox. Jev ha segnato 71,4%. Clef-flash ha segnato 66,7%. Erano d’accordo su 35 delle 42 previsioni. Dove divergevano, tendevano a fallire per le stesse ragioni sottostanti — i due modelli sono più d’accordo su quali task sono ambigui che su quale risposta è corretta.

La latenza è l’altra dimensione. Clef-flash ha erogato 38,8 ms di mediana su un H200. Jev ha registrato 524,1 ms di mediana sull’API. Per l’utente locale che esegue Clef-flash su una RTX 3090, il test indipendente ha riportato 315 ms completamente locale senza batching — ancora competitivo con una chiamata API veloce, ma il guadagno di privacy è reale: i log tail, i path dei file e i contenuti dei messaggi non lasciano mai la rete.

Perché conta per gli agenti locali

Faccio girare agenti su modelli conversazionali per il routing da mesi. Funziona. Ma gira anche il doppio dei parametri necessari, produce output non necessario, e deriva sul formato quando il contesto diventa lungo.

I modelli decisionali risolvono questo. Un modello da 9B che fa routing di tool non produce testo, usa meno VRAM di un modello conversazionale che fa lo stesso lavoro, e ha confidenza calibrata — puoi impostare una soglia e far sì che il modello si affidi a un fallback quando è incerto.

Il compromesso è che i modelli decisionali non fanno reasoning. Non scrivono codice. Non riassumono. Esegcono il routing. Il punteggio GPQA Diamond di Clef è 48,0 contro 78,3 di Jev; MMLU-Pro è 65,9 contro 82,7. Non faresti mai girare un modello decisionale come modello agente primario. Ma come layer di routing sopra qualsiasi modello — locale o cloud — è l’infrastruttura che stavi facendogli fare con hack sui prompt.

La questione Open Weights

Sia Clef (27B) che Clef-flash (9B) sono Apache 2.0 su Hugging Face. Strands Decider è anch’esso Apache 2.0. Jev è proprietario, solo API. Questo conta perché il layer di routing sta nel hot path dell’agente — ogni turno passa attraverso di esso. Se puoi self-hostarlo sotto residenza dati EU, è un vantaggio di compliance. Se devi fare fine-tuning sui tuoi dati di dominio, gli open weights lo permettono senza un contratto vendor.

Clef necessita di circa 54 GB di VRAM in bf16. Le quantizzazioni GGUF della community non includono il decision head, quindi ti servono PyTorch e il file modello custom. Per una GPU singola, Clef-flash (9B) gira a 18 GB in bf16, che sta su una scheda da 24 GB. Il modello completo 27B ha bisogno di una seconda GPU o CPU offloading.

Il verdetto

La classe dei modelli decisionali non è più una demo della ricerca. Cloudflare, Amazon e Jev hanno convergenza sulla stessa forma API, e i benchmark mostrano una differenziazione chiara:

  • Clef-flash 9B: il più veloce, più piccolo, ideale per routing ad alto volume su GPU consumer. Perde sulla nuanced.
  • Clef 27B: la più alta precisione sui task di routing, serve hardware serio.
  • Jev: ancora il migliore sui task di giudizio (When2Call, BRIGHT). Solo API. Più costoso.
  • Strands Decider: open weights, Apache 2.0, la proposta di Amazon in questo spazio.

Se fai girare un agente locale oggi, probabilmente stai usando un modello conversazionale per il routing. Funziona. Ma sta anche facendo girare il doppio dei parametri necessari, producendo output non necessario, e derivando sul formato quando il contesto è lungo. Un modello decisionale è un layer di routing dedicato che fa una cosa bene: dato uno stato e un insieme di domande, restituire probabilità calibrate.

La stack dell’agente sta diventando più modulare. Il modello conversazionale ragiona. Il modello decisionale esegue il routing. Il sistema di memoria ricorda. Ogni layer ha il suo profilo di prestazione, ed è quello il punto — smetti di chiedere a ogni modello di fare tutto.