← Tutte le lezioni
Lezione 14 Prompt Engineering 8:43

Tecniche avanzate di prompting

Oltre il passo-passo: far usare strumenti al modello, esplorare strade alternative, fargli rileggere il proprio lavoro. Le tecniche che stanno dietro agli agenti.

Il video parte solo se lo chiedi: nessuna richiesta a YouTube prima del click.

Quando il problema non si risolve in un colpo solo, servono schemi che facciano lavorare il modello a cicli: cercare, verificare, ripensare. Sono le tecniche su cui poggia tutto ciò che oggi chiamiamo “agente”.

ReAct: pensare e agire, alternati

L’idea è mettere in ciclo il ragionamento e l’uso di strumenti esterni. Il modello pensa, decide un’azione, riceve il risultato, e ricomincia con un’informazione in più.

Pensiero:    devo sapere quante Champions ha vinto ciascuna squadra
Azione:      cerca("Real Madrid Champions League totale")
Osservazione: 15 titoli, l'ultimo nel 2024
Pensiero:    ora l'altra squadra
Azione:      cerca("Milan Champions League totale")
Osservazione: 7 titoli, l'ultimo nel 2007
Pensiero:    15 meno 7 fa 8
Risposta:    il Real Madrid ne ha vinte 8 in più

Il valore sta nel fatto che il modello non deve sapere: deve sapere come procurarsi le informazioni e cosa farne. È il motivo per cui gli agenti reggono anche su fatti recenti o molto specifici.

Self-consistency: chiedere più volte e votare

Su un problema con una risposta corretta ben definita, si può eseguire lo stesso prompt più volte con una temperature medio-alta, e poi tenere la risposta che compare più spesso.

Il ragionamento sbagliato tende a sbagliare in modi diversi ogni volta, mentre quello giusto converge sempre sullo stesso risultato. Costa quanto le esecuzioni che fai — cinque passaggi costano cinque volte tanto — quindi si riserva ai casi in cui l’accuratezza vale il prezzo.

Farsi rileggere

Un modello è spesso più bravo a criticare che a produrre. Da qui uno schema in due tempi: prima genera, poi in una chiamata separata gli si chiede di trovare gli errori nel testo appena prodotto, infine di correggerlo.

Funziona meglio se la revisione è specifica: “controlla che ogni affermazione numerica sia coerente con i dati forniti” produce risultati molto migliori di “migliora il testo”. E funziona meglio ancora se chi rilegge non sa di essere l’autore.

Scomporre invece di chiedere tutto

La tecnica più sottovalutata resta la più semplice: dividere un problema grande in passi piccoli, ciascuno con la sua chiamata, usando l’uscita di uno come ingresso del successivo. Ogni passo è verificabile, e quando qualcosa va storto sai esattamente dove.

Un compito che chiede “analizza questo contratto e dimmi i rischi” diventa: estrai le clausole, classificale per tipo, valuta ciascuna, riassumi le più gravi. Quattro chiamate mediocri di un’unica risposta enciclopedica.

Il costo di tutto questo

Ognuna di queste tecniche moltiplica le chiamate e quindi tempo e spesa. Vale la pena adottarle quando l’errore costa più della latenza — analisi, decisioni, elaborazioni automatiche — e lasciarle perdere quando serve semplicemente una risposta rapida.

Fra un passo e l’altro, controlla con del codice

Il difetto comune a tutte le tecniche a più passaggi è che l’errore del passo N entra come verità nel passo N+1. Nessuna di queste tecniche, da sola, se ne accorge.

La contromossa non è un prompt migliore: è un controllo deterministico fra un passo e l’altro.

Passo 1  estrai le clausole dal contratto
   ↓     verifica: è JSON valido? la lista non è vuota?
Passo 2  classifica ogni clausola
   ↓     verifica: ogni categoria è fra quelle ammesse?
Passo 3  valuta quelle a rischio
   ↓     verifica: ogni valutazione cita una clausola esistente?
Passo 4  riassumi

Ogni controllo è banale — poche righe — e trasforma un fallimento silenzioso in un errore esplicito che puoi gestire: ripetere il passo, chiedere una correzione, fermarti.

Due regole: vincola il formato dove puoi, così il controllo è meccanico invece che interpretativo; e fai fallire presto, perché un errore al passo 1 scoperto al passo 4 ha già consumato tre chiamate e prodotto una risposta plausibile ma sbagliata.

È la differenza fra una catena che funziona in dimostrazione e una che regge nell’uso vero: non sta nelle tecniche di prompting, sta nel codice che le tiene insieme.

Il conto delle chiamate

Ognuna di queste tecniche moltiplica le richieste, e quindi tempo e spesa. Vale la pena tenerlo a mente prima di adottarle.

TecnicaChiamate
Risposta diretta1
Scomposizione in quattro passi4
Cinque esecuzioni con voto5
Generazione più revisione2-3
Agente con strumentiimprevedibile, spesso 5-15

La domanda da farsi non è “questa tecnica migliora il risultato” — quasi sempre sì — ma “quanto vale, qui, quel miglioramento”. Su un’analisi che verrà usata per decidere, cinque chiamate sono niente. Su una funzione chiamata mille volte al giorno, moltiplicare per cinque cambia l’economia del sistema.

In sintesi

TecnicaA cosa serve
ReActAlternare ragionamento e strumenti: la base degli agenti
Self-consistencyPiù esecuzioni, si tiene la risposta più frequente
Auto-revisioneGenerare, poi criticare, poi correggere: la critica sia specifica
ScomposizionePassi piccoli e verificabili invece di una richiesta enorme
Controlli fra i passiPoche righe di codice trasformano fallimenti silenziosi in errori
CostoOgni tecnica moltiplica le chiamate: valuta se il caso lo merita

Lezioni collegate

  • Few-shot e Chain of Thought

    Insegnare con gli esempi e far ragionare a voce alta. Le due tecniche che alzano di più l'accuratezza senza toccare il modello.

  • Come scegliere un modello

    Quattro domande in fila — compito, dimensione, quantizzazione, runtime — che portano dal 'quale prendo?' a una scelta motivata in pochi minuti.

Guarda su YouTube