Capitolo 2 — Tag XML: dare una struttura ai prompt complessi

Finché il prompt è una frase, il modello se la cava. I problemi nascono quando il prompt diventa un contenitore di cose diverse: un documento da analizzare, i criteri con cui analizzarlo, le istruzioni, magari un esempio. Tutto testo in fila. E il modello, che legge solo una lunga sequenza di token, deve indovinare dove finisce il documento e dove iniziano le istruzioni.

Questo indovinare a volte fallisce in modi spettacolari. Il caso classico: gli passi una email da riassumere, e dentro l'email c'è scritto "rispondimi entro venerdì". Il modello potrebbe trattare quella frase come un'istruzione rivolta a lui. Confonde i dati con i comandi — nota bene questo problema, perché al Livello 5 lo ritroverai col nome di prompt injection, e lì sarà una questione di sicurezza.

La soluzione è semplice e con Claude funziona particolarmente bene: i tag XML. Delimiti ogni materiale con etichette di apertura e chiusura, come pacchi con l'etichetta sopra: <documento>...</documento>, <criteri>...</criteri>, <esempio>...</esempio>. Poi le istruzioni possono riferirsi ai pacchi per nome: "valuta il testo in <documento> secondo i <criteri>". Niente più ambiguità su cosa è cosa.

Il trucco funziona anche in uscita. Se chiedi al modello di rispondere dentro tag — "metti l'analisi in <analisi> e la versione corretta in <testo_finale>" — ottieni due vantaggi: la risposta è ordinata, e soprattutto è estraibile automaticamente. Oggi la copi a mano; al Livello 2, quando chiamerai il modello da codice, un output incasellato in tag sarà la differenza tra un programma affidabile e uno che va a fortuna.

Non serve conoscere XML: i tag li inventi tu, basta che i nomi siano sensati e che apertura e chiusura combacino. È solo un modo di dire al modello "questo blocco è una cosa sola, e si chiama così".

L'esperimento del giorno. Costruisci un prompt con due documenti in tag separati — due preventivi, due email, due versioni di un testo — e chiedi un confronto strutturato con l'output in tag. Poi rifallo senza tag, con i documenti semplicemente incollati in fila, e guarda cosa succede alla qualità quando i materiali sono lunghi.