ELAI S.r.l.

L’AI risponde subito ai clienti. Ma fa davvero risparmiare lavoro?

Bozze veloci non bastano: un esempio riproducibile confronta controllo, rilavorazioni e selezione dei casi, con limiti e alternative senza AI.

L’AI risponde subito ai clienti. Ma fa davvero risparmiare lavoro?

Una risposta veloce può lasciare il lavoro a metà

Un cliente scrive perché un ordine non è arrivato. L’assistente prepara subito una risposta elegante, ma un operatore deve controllare spedizione, condizioni e promessa fatta al cliente. Il messaggio parte prima; il problema torna domani. Per chi guida l’assistenza, la domanda utile non è quanto velocemente l’AI scriva: è se il lavoro complessivo necessario per risolvere la richiesta diminuisca, mantenendo una qualità accettabile. Qui costruiremo un conto verificabile che include controllo e rilavorazione, e ricaveremo quando conviene limitare l’AI a un sottoinsieme delle richieste.

L’esempio comprende cento richieste inventate, suddivise in ordinarie e complesse. Tempi, categorie e casi da rilavorare sono scelte didattiche, non frequenze osservate. Non abbiamo fatto lavorare un modello su conversazioni reali, cronometrato operatori o misurato clienti soddisfatti. Il risultato è un’analisi delle condizioni necessarie per una scelta, non una promessa di risparmio. Ogni valore numerico proprio è riprodotto dal codice allegato; le condizioni che mancano per una prova aziendale restano esplicite.

Scegliere il risultato prima del cronometro

Una richiesta è un episodio di lavoro, non necessariamente un singolo messaggio. Nel nostro modello l’episodio inizia con l’esame del caso e finisce dopo la soluzione, includendo un eventuale intervento successivo. Supponiamo, per semplicità, che quell’intervento risolva sempre il problema e che non servano altre riaperture. È un’ipotesi forte. Se il problema rimane irrisolto, contarlo come una pratica completata migliora artificialmente il denominatore della produttività. In una prova reale occorrono una definizione di risoluzione e una finestra di osservazione coerenti.

Distinguiamo inoltre lavoro attivo e tempo trascorso. Dieci minuti durante i quali il cliente cerca un documento non equivalgono automaticamente a dieci minuti di lavoro esclusivo dell’operatore, che potrebbe seguire un altro caso. Viceversa una bozza generata in pochi secondi può richiedere minuti di attenzione. Il nostro conto somma durate assegnate a un episodio senza modellare lavoro concorrente, code o scadenze. Chi lo usa per progettare una prova deve tenere distinti il carico del personale, l’attesa del cliente e il tempo tecnico di generazione.

Il conto minimo che una bozza deve superare

Indichiamo con M i minuti per gestire manualmente un caso. Nella modalità assistita d è il tempo assegnato alla generazione, r il controllo iniziale e w il lavoro aggiuntivo quando il caso richiede correzione successiva. q è la frazione di casi che richiede quell’intervento. Tutti i tempi sono minuti per caso; q non ha unità ed è compreso tra zero e uno. Il costo medio assistito A si ottiene sommando d e r, che si sostengono sempre, e qw, che pesa soltanto sulla quota da rilavorare.

A = d + r + q*w assistance is faster in this time model when A < M

Questa è una media contabile, non una stima dell’efficacia di un modello. Presuppone lo stesso costo w per i casi rilavorati nella categoria e nessun costo nascosto oltre il confine definito. Quando le durate cambiano molto, conviene sommare gli episodi effettivi oppure usare il costo medio condizionato alla rilavorazione. Non bisogna moltiplicare la frequenza di un gruppo per il tempo ricavato da un altro senza verificarne la compatibilità. La qualità accettabile resta un vincolo esterno, non un numero già garantito dalla formula.

Per ottanta casi ordinari scegliamo M=4, d=0,2 e r=2 minuti. Quattro casi richiedono poi otto minuti aggiuntivi ciascuno: q=4/80=0,05. L’AI produce la bozza in dodici secondi, ma il costo medio completo è 0,2+2+0,05×8=2,6 minuti. Nel gruppo il totale manuale è 320 minuti e quello assistito 208. La maggior parte del tempo assistito non è generazione: è controllo e lavoro successivo. È il primo motivo per non misurare il beneficio guardando soltanto la velocità del testo.

Quando la stessa velocità iniziale peggiora il risultato

Per venti casi complessi fissiamo M=12, d=0,2 e r=10 minuti. Sei richiedono venti minuti ulteriori ciascuno: q=6/20=0,30. La bozza resta veloce come prima, ma la media assistita diventa 16,2 minuti contro dodici manuali. Il totale del gruppo sale da 240 a 324 minuti. Non abbiamo dimostrato che i casi complessi si comportino così nella realtà: abbiamo costruito una situazione in cui la velocità di generazione è identica ma la decisione corretta cambia a causa di revisione e rilavorazione.

routine: 0.2 + 2 + (4/80)*8 = 2.6 min/case complex: 0.2 + 10 + (6/20)*20 = 16.2 min/case

La soglia utile risponde a una domanda precisa: quanta rilavorazione può sopportare una categoria prima di perdere il vantaggio di tempo? Se w è positivo, da d+r+qw< M sottraiamo d+r e dividiamo per w. La frazione massima è q*=(M−d−r)/w. Il confronto è stretto: alla soglia i tempi coincidono. Se M−d−r è negativo, neppure zero rilavorazioni rendono più veloce l’assistenza secondo questo conto; se la soglia supera uno, il limite temporale non è quello che discrimina i casi possibili.

q < q_star = (M-d-r)/w routine: q_star = (4-0.2-2)/8 = 0.225 complex: q_star = (12-0.2-10)/20 = 0.09

Per gli ordinari il limite è 22,5%, sopra il 5% ipotizzato; per i complessi è 9%, sotto il 30% ipotizzato. Queste soglie non sono confidenze del modello, né percentuali misurate nel mercato. Dipendono dai minuti che abbiamo assegnato. Aumentare il tempo di revisione può abbassare q, ma non gratuitamente: i due parametri potrebbero muoversi insieme. Cambiarne uno lasciando l’altro fisso serve a una sensibilità contabile; non dimostra che quel cambiamento sia realizzabile con un prodotto.

La media generale può nascondere dove l’AI non serve

Sommando i due gruppi, il lavoro manuale è 560 minuti. Con assistenza su tutto diventa 532: ventotto minuti in meno, pari al 5%. Se assistiamo soltanto gli ottanta ordinari e manteniamo manuali i venti complessi, otteniamo 208+240=448 minuti, il 20% in meno del riferimento. Il confronto riguarda esattamente le stesse cento richieste e assume che tutte finiscano risolte. Non cambia la composizione per far sembrare più efficiente una strategia. La selezione è nota soltanto perché l’autore ha costruito le categorie.

Nella tabella M indica manuale, A assistenza su tutti e S0 selezione ideale senza costo di assegnazione.

ModalitàOrdinari (min)Complessi (min)Totale (min)
M320240560
A208324532
S0208240448
Lavoro ipotetico su cento episodi: manuale, assistenza uniforme e selettiva ideale. Tempi di controllo e rilavorazione inclusi; selezione ideale gratuita. Dati costruiti, non misure di operatori.
Lavoro ipotetico su cento episodi: manuale, assistenza uniforme e selettiva ideale. Tempi di controllo e rilavorazione inclusi; selezione ideale gratuita. Dati costruiti, non misure di operatori.

Nel grafico le barre misurano minuti totali per cento episodi, non rapidità di un modello o ore effettivamente liberate in un’azienda. La barra selettiva è inferiore perché evita gli ottantaquattro minuti aggiuntivi del gruppo complesso rispetto alla sua gestione manuale. Se identificare le categorie richiede tempo o produce errori, quel costo deve essere aggiunto. La nostra strategia selettiva è quindi un confronto ideale con classificazione gratuita e corretta, non una soluzione già pronta da attivare.

Anche la percentuale va letta con il denominatore corretto. Passare da 560 a 448 minuti significa ridurre del 20% il tempo per lo stesso lavoro. Non significa aumentare del 20% la capacità: a parità di tempo disponibile, il rapporto teorico sarebbe 560/448=1,25, cioè 25% in più, soltanto se carico e vincoli rimanessero identici. Il codice verifica entrambi. Nessuna delle due percentuali descrive attese dei clienti, salari, organico o capacità reale, che dipendono da fattori non simulati.

Anche decidere a chi affidare il caso costa tempo

Possiamo rendere meno ideale la selezione con un altro conto, senza inventare un classificatore provato. c indica i minuti necessari per assegnare ciascuna richiesta; f la frazione dei venti complessi mandata per errore all’AI, mantenendo corretta l’assegnazione degli ordinari. La spesa temporale diventa 448+100c+84f. Il termine 84f deriva dal maggior lavoro dei complessi assistiti, 324−240, distribuito sulla frazione sbagliata. È un’ipotesi di errori uniformi all’interno della categoria; se vengono sbagliati proprio i casi più costosi il conto va ricostruito per episodio.

T_routed = 448 + 100*c + 84*f f=0.5, c=0.5 min => T_routed=540 min f=0.5, c=0.8 min => T_routed=570 min

Con metà dei complessi assegnata male, trenta secondi di smistamento per richiesta portano a 540 minuti; quarantotto secondi portano a 570. Il secondo caso supera i 560 manuali: il vantaggio selettivo può sparire anche senza cambiare i tempi della bozza. I due valori sono verificati dal codice e non misurano un sistema reale. La decisione diventa più concreta: una prova deve includere sia l’esecuzione sia l’assegnazione, invece di presentare il confronto ideale come se la distinzione fra casi fosse già disponibile e gratuita.

Che cosa aggiunge la ricerca pubblicata

Brynjolfsson, Li e Raymond, in Generative AI at Work (QJE, 2025), studiano un’introduzione scaglionata su 5172 operatori, con differenze nelle differenze: circa +15% nelle risoluzioni orarie, effetti eterogenei. È evidenza degli autori in un contesto specifico, non la nostra riproduzione né un beneficio trasferibile automaticamente.

Un confronto prima/dopo nella propria azienda può confondere l’effetto dello strumento con un cambiamento nelle richieste o nell’esperienza degli operatori. Per questo il nostro esercizio non usa dati inventati per imitare uno studio causale. L’aritmetica verifica che una combinazione di ipotesi abbia certe conseguenze; non stabilisce che l’adozione provocherà quelle conseguenze. Anche una media realmente osservata su un insieme di persone non basta a prevedere il risultato per ogni categoria di richiesta. Per trasferire una decisione serve misurare il proprio processo, mantenendo separati composizione ed effetto.

Una prova utile conserva anche ciò che torna indietro

Prima della prova definiamo che cosa rende corretta una risposta: informazioni aggiornate, istruzioni compatibili con il caso e nessuna promessa non autorizzata. Poi fissiamo il periodo entro il quale riconoscere riaperture e interventi successivi. Una soluzione senza AI, come una risposta approvata collegata a una procedura verificata, deve poter partecipare al confronto. Se cambia solo la formulazione ma l’operatore deve comunque cercare tutte le informazioni da zero, stiamo misurando un aiuto alla scrittura, non una diagnosi automatica del problema.

Proponiamo, senza dichiararlo eseguito, un confronto su casi autorizzati o sintetici, stratificati per difficoltà definita prima dell’uso. L’assegnazione delle modalità dovrebbe evitare che l’AI riceva soltanto le richieste facili. Se lo stesso operatore vede due volte lo stesso problema, la seconda prova può beneficiare della memoria: ordine e apprendimento vanno controllati. Conservare tempi di revisione, modifiche necessarie, esito e riaperture permette di ricostruire dove nasce la differenza. Una sola media finale senza questo percorso non spiega che cosa cambiare.

Contare soltanto le bozze accettate introduce un’altra selezione: scompaiono rifiuti, tentativi falliti e richieste ritornate al manuale. Nell’analisi della modalità assistita vanno inclusi anche questi casi, secondo una regola decisa prima. Le valutazioni di qualità dovrebbero usare criteri ripetibili e, quando possibile, non mostrare a chi valuta quale modalità ha prodotto il testo. Qui non attestiamo né revisori umani né test con lettori: descriviamo le verifiche che mancano per passare da un esempio contabile a un’evidenza operativa.

Dove una soluzione semplice può vincere

Per domande ripetitive con risposte stabili, modelli di messaggio approvati e ricerca nei documenti possono ridurre lavoro senza generazione libera. Per casi che dipendono da dati di ordine o permessi, la qualità dell’accesso alle informazioni può essere più importante della forma del testo. Un modello verticale adattato al dominio è un’ipotesi da confrontare, non un requisito già dimostrato. Va valutato con gli stessi casi, criteri e costi di controllo delle alternative. Non esiste un premio automatico per la soluzione tecnologicamente più complessa.

Il costo di avvio resta fuori dal nostro esempio per renderne leggibile il meccanismo. Nella decisione reale entrano integrazione, aggiornamento delle procedure, formazione, licenze e controllo del servizio. Tempo liberato non significa necessariamente denaro risparmiato: può essere usato per ridurre arretrati o migliorare casi trascurati. Non disponiamo di dati per quantificarlo. Il confronto deve quindi dichiarare sia quale lavoro è incluso, sia quale risultato interessa all’impresa, evitando di sommare vantaggi che descrivono lo stesso fenomeno due volte.

La decisione che il conto permette davvero

Nel nostro insieme costruito l’assistenza uniforme riduce il tempo del 5%, ma peggiora i casi complessi; la strategia ideale selettiva lo riduce del 20%. Questi numeri insegnano a chiedere una verifica distinta per categoria, con controllo e rilavorazioni inclusi. Non autorizzano a promettere quelle percentuali a un cliente. Se la qualità non è sufficiente, un bilancio di minuti favorevole non basta. Se non sappiamo riconoscere le categorie a un costo sostenibile, non abbiamo ancora realizzato la strategia selettiva.

Il codice completo usa aritmetica decimale e asserzioni per verificare totali e soglie. Esegue una somma per categoria, quindi il tempo cresce linearmente con il numero delle categorie; non genera risposte né stima una rete neurale. Il file risultati registra ipotesi e limiti. Questa è analisi editoriale assistita da AI, non un esperimento EL-AI con clienti o operatori. Non vengono attribuiti all’azienda nuovi prodotti, risultati o installazioni: l’utilità del pezzo sta nel confronto riproducibile e nella domanda migliore da portare a una prova.

Brynjolfsson, Li & Raymond (2025) — QJE, doi:10.1093/qje/qjae044.

from decimal import Decimal as D
from pathlib import Path
import json,sys
# Hypothetical workload only: no customers, operators, models or timings measured.
groups=[dict(key='routine',count=80,manual=D(4),draft=D('.2'),review=D(2),reworkCases=4,reworkMinutes=D(8)),dict(key='complex',count=20,manual=D(12),draft=D('.2'),review=D(10),reworkCases=6,reworkMinutes=D(20))]
rows=[]
for g in groups:
 q=D(g['reworkCases'])/g['count'];mean=g['draft']+g['review']+q*g['reworkMinutes'];limit=(g['manual']-g['draft']-g['review'])/g['reworkMinutes']
 rows.append(dict(group=g['key'],count=g['count'],hypotheticalReworkFraction=str(q),manualMinutes=str(g['manual']),assistedMeanMinutes=str(mean),breakEvenReworkFraction=str(limit),manualTotalMinutes=str(g['count']*g['manual']),assistedTotalMinutes=str(g['count']*(g['draft']+g['review'])+g['reworkCases']*g['reworkMinutes'])))
manual=sum(D(x['manualTotalMinutes']) for x in rows);allAI=sum(D(x['assistedTotalMinutes']) for x in rows);selective=D(rows[0]['assistedTotalMinutes'])+D(rows[1]['manualTotalMinutes'])
assert (manual,allAI,selective)==(D(560),D(532),D(448))
assert D(rows[0]['breakEvenReworkFraction'])==D('.225') and D(rows[1]['breakEvenReworkFraction'])==D('.09')
assert D(rows[0]['assistedMeanMinutes'])==D('2.6') and D(rows[1]['assistedMeanMinutes'])==D('16.2')
assert D('.2')*60==12 and manual-allAI==28 and D(rows[1]['assistedTotalMinutes'])-D(rows[1]['manualTotalMinutes'])==84
assert manual/selective==D('1.25')
routeLow=selective+100*D('.5')+84*D('.5')
routeHigh=selective+100*D('.8')+84*D('.5')
assert routeLow==540 and routeHigh==570
result=dict(routingSensitivity=dict(complexMisrouteFraction='.5',halfMinuteRoutingTotal=str(routeLow),pointEightMinuteRoutingTotal=str(routeHigh)),python=sys.version.split()[0],seed=None,scope='Synthetic deterministic workload arithmetic. No model, staff, customer, causal trial, rework frequency or quality measured. Assumes every episode becomes resolved after one specified rework; no queue or service-level model.',rows=rows,totalsMinutes=dict(manual=str(manual),allAssisted=str(allAI),routineOnlyAssisted=str(selective)),timeReductionFractions=dict(allAssisted=str((manual-allAI)/manual),routineOnlyAssisted=str((manual-selective)/manual)),warning='Time reduction differs from throughput increase; cannot infer observed savings or wage reductions. Draft latency and active staff time must be separated in real measurement.')
Path(__file__).with_name('results.json').write_text(json.dumps(result,indent=2),encoding='utf8')
print(json.dumps(result))

Codice, dati e istruzioni · JSON. Calcoli didattici eseguiti con Python 3.14.0; figure con Matplotlib 3.11.2. Analisi con assistenza AI, senza dichiarare peer review o revisione umana. Copertina originale ImageGen, illustrativa: non documenta persone, sedi o installazioni EL-AI. Fonti consultate il 3 novembre 2026.