Salta al contenuto principale

14 - Il Futuro degli AI Agents: Capacità Emergenti e Limitazioni

Come decidere sugli agenti AI con le misure in mano: errori che si compongono, capacità emergenti e metrica, autocorrezione, studi sul lavoro e AI Act.

Cosa ne pensi di questo articolo?

14 - Il Futuro degli AI Agents: Capacità Emergenti e Limitazioni
AI AgentsFoto:Pavel DanilyukPexels

In Breve

Come decidere sugli agenti AI con le misure in mano: errori che si compongono, capacità emergenti e metrica, autocorrezione, studi sul lavoro e AI Act.

Il problema: decidere su previsioni, con le misure in mano

Chiunque decida oggi se costruire un agente, assumere per farlo o affidargli un processo riceve due tipi di messaggi: promesse (autonomia in arrivo, mercati in crescita, lavori che spariscono) e fallimenti raccontati dopo. Nessuno dei due ti dice che cosa fare lunedì. Questo articolo chiude la serie scegliendo un'altra strada: parte da ciò che si può misurare o leggere in una fonte primaria, dice dove le previsioni sono davvero incerte, e ne ricava criteri per decidere. Le cifre di mercato, le percentuali di fallimento dei progetti e le stime di adozione che circolano non sono qui: non ho raggiunto una fonte primaria che le sostenga, e ho preferito tacerle.

Quello che resta sono quattro idee con un meccanismo e una prova. Gli errori di un agente si compongono lungo i passi. Le «capacità emergenti» dipendono anche da come le si misura. La correzione funziona quando il segnale arriva da fuori. E gli studi sul lavoro non dicono la stessa cosa tra loro, il che è già un'informazione. Tre listati le rendono concrete; usano numeri inventati, dichiarati tali, e girano con la sola libreria standard di Python 3.14.4, due volte con uscita identica, senza modelli.

Gli errori si compongono: la matematica dei passi

Un agente non risponde: esegue una catena di passi, e il compito riesce solo se la catena regge. Se ogni passo riesce con probabilità p e i passi sono indipendenti, il compito riesce con probabilità p elevato al numero di passi. È un'ipotesi semplificatrice (i passi reali sono correlati, e alcuni errori si correggono da soli), ma dà l'ordine di grandezza del problema, ed è quello che l'articolo sul testing misura con i tentativi ripetuti. Il listato calcola la tabella e un secondo caso, in cui un controllo scopre l'80% degli errori e il passo viene ripetuto una volta (valori d'esempio).

# Probabilità che TUTTI i passi di un compito riescano, se ogni passo riesce con probabilità p
# e i passi sono indipendenti (ipotesi semplificatrice, quasi mai vera nei sistemi reali).
def tutti_riescono(p, n):
    return p ** n


def con_verifica(p, n, d):
    """Dopo un passo sbagliato, un controllo lo scopre con probabilità d e il passo viene ripetuto UNA volta."""
    p_passo = p + (1 - p) * d * p
    return p_passo ** n


print(f"{'p per passo':>11} | {'5 passi':>8} {'10 passi':>9} {'20 passi':>9}")
for p in (0.99, 0.95, 0.90):
    print(f"{p:>11.2f} | " + " ".join(f"{tutti_riescono(p, n):>8.3f}" for n in (5, 10, 20)))

print("\ncon controllo che scopre l'80% degli errori (d = 0.8) e una ripetizione")
for p in (0.95, 0.90):
    print(f"{p:>11.2f} | " + " ".join(f"{con_verifica(p, n, 0.8):>8.3f}" for n in (5, 10, 20)))

# Output:
# p per passo |  5 passi  10 passi  20 passi
#        0.99 |    0.951    0.904    0.818
#        0.95 |    0.774    0.599    0.358
#        0.90 |    0.590    0.349    0.122
# 
# con controllo che scopre l'80% degli errori (d = 0.8) e una ripetizione
#        0.95 |    0.941    0.886    0.785
#        0.90 |    0.868    0.753    0.567

Con il 95% di successo per passo, un compito di dieci passi riesce 6 volte su 10 e uno di venti poco più di 1 su 3. Quel 95% sembra un ottimo modello e produce un agente che sbaglia spesso. Il secondo blocco mostra il rimedio che la serie ha ripetuto: un controllo che scopre gli errori e un nuovo tentativo portano il compito da dieci passi dal 60% all'89%. Ma funzionano solo se il controllo è indipendente dal passo che controlla e se il passo può essere ripetuto senza effetti (si veda l'articolo sul tool calling). Vale anche per le architetture a più agenti: l'articolo sull'orchestrazione riporta un lavoro in cui agenti indipendenti amplificano gli errori molto più di una struttura con coordinamento.

Capacità emergenti: che cosa significa e che cosa può nascondere

Wei e colleghi (2022) chiamano emergente una capacità che non è presente nei modelli piccoli ma lo è nei grandi, e che quindi non si può prevedere estrapolando le prestazioni dei piccoli. L'idea ha guidato molte aspettative sul futuro degli agenti: la pianificazione, la correzione, l'uso degli strumenti compaiono a una certa scala. Schaeffer e colleghi (2023) propongono una spiegazione alternativa: quando si analizzano gli stessi output, la «comparsa improvvisa» dipende dalla scelta del ricercatore sulla metrica, perché metriche non lineari o discontinue producono emergenza apparente, mentre quelle continue danno variazioni lisce e prevedibili. Gli autori lo mostrano con un modello matematico e con test su famiglie di modelli reali.

Il meccanismo si capisce con un esempio da tavolo. Immagina una famiglia di modelli la cui accuratezza per singolo token cresce con regolarità e una domanda la cui risposta è lunga dieci token, valida solo se sono giusti tutti. Il listato usa numeri inventati, non quelli del paper, per riprodurre l'argomento: la colonna di sinistra è la misura continua, quella di destra la corrispondenza esatta.

# Accuratezza per token di una famiglia di modelli: numeri INVENTATI, crescono in modo liscio con la scala.
SCALE = [1, 2, 3, 4, 5, 6, 7, 8]
P_TOKEN = [0.60, 0.70, 0.78, 0.85, 0.90, 0.94, 0.97, 0.99]
LUNGHEZZA_RISPOSTA = 10   # la risposta giusta è una sequenza di 10 token

print(f"{'scala':>5} {'metrica continua':>17} {'corrispondenza esatta':>22}")
for s, p in zip(SCALE, P_TOKEN):
    esatta = p ** LUNGHEZZA_RISPOSTA   # la risposta conta solo se TUTTI i token sono giusti
    print(f"{s:>5} {p:>17.2f} {esatta:>22.3f}")

# Output:
# scala  metrica continua  corrispondenza esatta
#     1              0.60                  0.006
#     2              0.70                  0.028
#     3              0.78                  0.083
#     4              0.85                  0.197
#     5              0.90                  0.349
#     6              0.94                  0.539
#     7              0.97                  0.737
#     8              0.99                  0.904

La metrica continua sale da 0,60 a 0,99 senza nessun salto. La corrispondenza esatta resta sotto il 10% fino alla scala 3 e poi sale ripidamente, fino a 0,90 all'ottava: guardata da sola sembra una capacità che «si accende». È la stessa cosa osservata con un altro righello. Questo non dimostra che nessuna capacità sia davvero emergente (gli autori limitano la loro tesi ai casi che hanno analizzato), ma insegna una regola pratica a chi costruisce: non pianificare su una capacità che «arriverà con il prossimo modello». Misura il tuo compito con una metrica continua (quanti passi riescono, non solo se riesce tutto) e osserva la tendenza sui modelli che puoi provare davvero.

Autocorrezione: funziona con un segnale esterno

Il pattern Reflexion (Shinn e colleghi, 2023) fa osservare all'agente il risultato di un tentativo, scrivere una riflessione a parole e conservarla in una memoria per il tentativo successivo. Nell'abstract gli autori riportano il 91% di pass@1 su HumanEval contro l'80% di GPT-4 allora allo stato dell'arte, e precisano che il segnale di feedback può essere esterno o simulato internamente. Un altro lavoro (Huang e colleghi, ICLR 2024) esamina la correzione intrinseca, quella fatta dal modello senza alcun feedback esterno, e conclude che nel ragionamento i modelli faticano a correggersi e a volte peggiorano dopo la correzione.

Le due cose non si contraddicono: la differenza sta da dove viene il segnale. Il listato mette a confronto due cicli sullo stesso compito, una funzione che deve sommare i numeri pari di una lista. Il «modello» è un copione che propone prima una versione sbagliata e poi una giusta; la sua autocritica risponde sempre «ok», scelta mia per rappresentare un modello compiacente, non una misura di nessun modello reale.

# Un "modello" a copione propone due versioni di una funzione che deve sommare i numeri PARI di una lista.
CANDIDATI = [
    "def somma_pari(xs):\n    return sum(xs)\n",                      # sbagliata: somma tutto
    "def somma_pari(xs):\n    return sum(x for x in xs if x % 2 == 0)\n",
]
PROVE = [([1, 2, 3, 4], 6), ([], 0), ([7, 9], 0)]


def autocritica(codice):
    """Copione che rappresenta un modello compiacente: trova sempre il proprio lavoro corretto."""
    return "ok"


def prova_esterna(codice):
    ambiente = {}
    exec(codice, ambiente)   # solo perché il codice è nostro; codice di un modello va isolato (articolo 10)
    errori = [(x, atteso, ambiente["somma_pari"](x)) for x, atteso in PROVE
              if ambiente["somma_pari"](x) != atteso]
    return errori


print("--- accetta se l'autocritica dice ok")
for n, codice in enumerate(CANDIDATI, start=1):
    if autocritica(codice) == "ok":
        print(f"tentativo {n}: accettato; errori nelle prove = {len(prova_esterna(codice))}")
        break

print("--- accetta se le prove esterne passano")
for n, codice in enumerate(CANDIDATI, start=1):
    errori = prova_esterna(codice)
    if not errori:
        print(f"tentativo {n}: accettato")
        break
    print(f"tentativo {n}: respinto, {len(errori)} prove fallite, la prima {errori[0]}")

# Output:
# --- accetta se l'autocritica dice ok
# tentativo 1: accettato; errori nelle prove = 2
# --- accetta se le prove esterne passano
# tentativo 1: respinto, 2 prove fallite, la prima ([1, 2, 3, 4], 6, 10)
# tentativo 2: accettato

Il primo ciclo accetta la prima versione, che sbaglia due prove su tre. Il secondo la respinge, mostra il caso fallito (la somma di tutti i numeri, 10, invece di 6) e accetta la seconda. Il codice ha una nota: exec esegue le stringhe nel processo corrente solo perché le ho scritte io; il codice prodotto da un modello va isolato, come dice l'articolo sulla sicurezza. Il criterio per i tuoi agenti: se esiste un controllo esterno (test, validazione, un'altra fonte), mettilo nel ciclo; se non esiste, un secondo giro del modello su se stesso non va considerato una garanzia.

Contesto lungo e risposte inventate

Due limiti che la serie ha incontrato più volte hanno una spiegazione nella ricerca. Sul contesto, Liu e colleghi (TACL, 2023) hanno analizzato risposta a domande su più documenti e recupero chiave-valore: le prestazioni possono calare in modo significativo quando cambia la posizione dell'informazione rilevante, con i risultati migliori all'inizio o alla fine del contesto e il peggioramento quando l'informazione sta nel mezzo, anche nei modelli pensati per contesti lunghi. Conseguenza diretta per un agente che accumula cronologia: non basta che il dato sia nella finestra, conta dove (articoli su memoria e sui costi).

Sulle risposte inventate, Kalai e colleghi (2025) sostengono che i modelli «allucinano» perché le procedure di addestramento e di valutazione premiano l'indovinare rispetto all'ammettere l'incertezza, e che il rimedio passa anche dal modo in cui si assegnano i punteggi ai benchmark. Per chi costruisce, la lettura utile è un'altra: se la valutazione premia la risposta comunque, il tuo sistema deve avere una via d'uscita esplicita per «non lo so», come il report senza conclusione dell'esempio costruito, e un controllo che la rispetti.

Lavoro e adozione: due studi, due risultati

Sul lavoro circolano molte percentuali; due studi con un metodo dichiarato mostrano perché vanno lette con cautela. Brynjolfsson, Li e Raymond (NBER, 2023) studiano l'introduzione graduale di un assistente conversazionale con i dati di 5.179 operatori di assistenza clienti: la produttività, misurata in problemi risolti all'ora, sale in media del 14%, del 34% per i lavoratori meno esperti, con un impatto minimo sugli esperti. Il lavoro del gruppo METR (2025) è una prova randomizzata su 16 sviluppatori open source esperti e 246 compiti in progetti che conoscevano da anni: gli sviluppatori prevedevano una riduzione dei tempi del 24%, e hanno invece impiegato il 19% di tempo in più quando gli strumenti AI erano permessi.

Non sono in contrasto: misurano lavori, strumenti, livelli di esperienza e periodi diversi. Il punto è che nessuno dei due dice che cosa succederà nel tuo reparto, e che la previsione degli stessi sviluppatori (24% più veloci) era sbagliata di segno. Anche le previsioni degli esperti variano molto: nel sondaggio a 2.778 ricercatori di AI (Grace e colleghi, 2024) l'aggregato dà il 10% di probabilità entro il 2027 e il 50% entro il 2047 a macchine che superano gli umani in ogni compito, 13 anni prima del sondaggio dell'anno precedente, mentre per l'automazione completa di tutte le occupazioni il 50% arriva al 2116. Prima di fidarti di una previsione, poni quattro domande:

  • Chi ha misurato e su che cosa: un'intervista, un dato di vendita o una prova controllata hanno pesi diversi.
  • Quale metrica: la corrispondenza esatta, il tempo, il gradimento di chi usa lo strumento raccontano cose diverse.
  • Rispetto a quale base: «più veloce» di chi, e su quali compiti.
  • Chi ci guadagna se la previsione è creduta: un fornitore, un analista di mercato, un ricercatore con un finanziamento.

Una cifra che non risponde a queste domande è un'opinione. In pratica significa che le decisioni sul tuo agente si prendono con una prova piccola e tua (un reparto, un mese, un confronto con e senza) e non con una media di settore. Le metriche introdotte nell'articolo sul deployment servono anche a questo.

Il quadro normativo europeo: che cosa dice il testo

Per chi opera in Europa, il riferimento è il regolamento (UE) 2024/1689 sull'intelligenza artificiale (AI Act), pubblicato nella Gazzetta ufficiale il 12 luglio 2024. Ciò che segue non è consulenza legale.

Il calendario di applicazione del regolamento (UE) 2024/1689 (AI Act) è stato modificato dal regolamento (UE) 2026/1744 (GU L, 24.7.2026, in vigore dal 27.7.2026). Oggi: divieti e art. 4 dal 2 febbraio 2025; modelli per finalità generali, governance e sanzioni dal 2 agosto 2025; applicazione generale e art. 50 dal 2 agosto 2026; alto rischio dell'allegato III dal 2 dicembre 2027; alto rischio dell'allegato I dal 2 agosto 2028. Date lette su EUR-Lex il 2026-11-13; verifica la versione consolidata prima di fissare una scadenza. L'articolo 113 del testo del 2024 diceva che il regolamento si applica dal 2 agosto 2026, con eccezioni: i capi I e II dal 2 febbraio 2025, alcune parti (tra cui gli obblighi per i modelli per finalità generali e la governance) dal 2 agosto 2025, e l'articolo 6, paragrafo 1, dal 2 agosto 2027; le ultime due date per l'alto rischio sono state spostate come sopra.

Per un agente contano la classificazione e tre articoli. Un sistema è ad alto rischio secondo l'articolo 6 se è un componente di sicurezza di un prodotto regolato (allegato I) o se rientra negli usi dell'allegato III, salvo la deroga del paragrafo 3 per i casi senza rischio significativo: conta l'uso, non il fatto che il sistema sia «agentico». Per i sistemi ad alto rischio l'articolo 14 chiede una sorveglianza umana efficace, con misure commisurate ai rischi, al livello di autonomia e al contesto, e vuole che chi sorveglia possa restare consapevole della tendenza ad affidarsi automaticamente al risultato. L'articolo 50 impone ai fornitori di sistemi destinati a interagire direttamente con persone di garantire che siano informate di parlare con un sistema di IA, a meno che non sia evidente.

Tradotto in scelte di progetto: il confine tra proporre e agire (permessi, conferma umana dopo contenuto esterno, tetti) è la stessa struttura che l'articolo sulla sicurezza costruisce per ragioni tecniche, e il registro delle azioni dello stesso articolo è ciò che permette a una persona di sorvegliare davvero. Se il tuo uso cade nell'allegato III, chiedi un parere a chi ne ha titolo; non farlo decidere a un listato.

Quando non usare un agente: la sintesi della serie

Dopo quattordici articoli la domanda più utile resta la prima: serve davvero un agente? La tabella raccoglie i criteri emersi, ciascuno con l'articolo dove è dimostrato con un listato.

DomandaSe la risposta è noDove rileggere
Il percorso non si può scrivere in anticipo?Usa un workflow con passi fissiArticolo 1
Il ciclo ha un tetto e un modo di fermarsi?Non metterlo in produzioneArticolo 2, 3
Servono davvero più ruoli?Una funzione o un agente singolo4, 5, 6
Gli strumenti hanno permessi minimi e sono ripetibili?Restringi o aggiungi conferma8, 10
Sai misurare se funziona, con compiti ripetuti?Non sai cosa stai rilasciando9
Il costo per compito è sotto controllo?Tetto, cache, cascata12
Reggi un arresto a metà compito?Stato fuori dal processo11, 7

Ogni riga è una condizione, non una raccomandazione assoluta: un agente passa se tutte reggono per il tuo compito, e quasi mai per tutti i compiti. Il caso costruito dell'articolo 13 mostra come le righe diventano un grafo, un tetto e un verificatore.

Domande frequenti

Perché un agente con il 95% di successo per passo sbaglia così spesso?

Perché i successi si moltiplicano. Con passi indipendenti, il 95% elevato a 10 passi dà circa il 60%, e a 20 passi circa il 36%. Un controllo esterno che scopre gli errori e una ripetizione alzano il risultato, a patto che il passo si possa ripetere senza danni.

Le capacità emergenti dei modelli sono reali?

È un tema dibattuto. Wei e colleghi le definiscono come capacità presenti nei modelli grandi e assenti nei piccoli; Schaeffer e colleghi mostrano che, per i casi analizzati, la comparsa improvvisa dipende dalla metrica scelta. Per un progetto, misura il tuo compito con metriche continue.

Un modello può correggere da solo i propri errori?

Nel ragionamento, senza feedback esterno, i modelli faticano a correggersi e a volte peggiorano, secondo Huang e colleghi. Con un segnale esterno come test o validazioni la correzione funziona molto meglio: Reflexion lo usa per riflettere sui risultati dei tentativi.

Che cosa sai fare adesso

Sai calcolare quanto regge una catena di passi e che cosa guadagna un controllo con ripetizione, riconoscere quando una «capacità emergente» dipende dalla metrica, e mettere nel ciclo un segnale esterno invece di affidarti all'autocritica del modello. Sai leggere una previsione con quattro domande, sapendo che due studi seri sul lavoro hanno dato risultati opposti, e sai dove il regolamento europeo parla di sorveglianza umana e trasparenza. Soprattutto sai decidere se un compito merita un agente, e rileggere la serie dal punto che serve: dalla definizione al deployment.

Fonti

AI Agents Complete Guide

La guida completa agli AI Agents: architetture, pattern, implementazione e casi d'uso reali. 10 capitoli, 172 pagine, esempi pratici in Python.

Prova Questi Strumenti

Strumenti gratuiti correlati a questo argomento.

Commenti

Caricamento commenti...

Accedi per commentare

Discuti questo articolo nella community

Unisciti al gruppo Telegram per discutere con altri sviluppatori, fare domande e condividere le tue esperienze.

Ti è piaciuto questo articolo?

Esplora altri contenuti sul blog o scopri i miei progetti