La documentazione ufficiale di OpenAI sui simboli
OpenAI raccomanda di strutturare i prompt con Markdown (titoli e liste) per separare le sezioni e con tag XML per segnare dove un contenuto inizia e finisce. La guida ufficiale del prompt engineering non contiene alcuna lista di simboli speciali né di comandi nascosti. Titoli, liste e tag sono gli unici strumenti che la documentazione OpenAI cita veramente come parte della struttura consigliata.
La pagina ufficiale inizia parlando dei ruoli dei messaggi, poiché è qui che si decide cosa ha più peso. I messaggi developer portano le istruzioni dello sviluppatore dell'applicazione e hanno priorità sui messaggi user, quelli dell'utente finale. OpenAI ricorre a un'analogia di programmazione: il messaggio developer assomiglia alla definizione di una funzione, mentre il messaggio user corrisponde agli argomenti che le si passano.
È soltanto dopo che arriva la parte che interessa chi cerca dei "simboli". Nei messaggi developer e user, è possibile utilizzare una combinazione di formattazione Markdown e tag XML per indicare i confini logici del prompt e dei dati di contesto. I titoli e le liste Markdown marcano le sezioni e comunicano la gerarchia, con il vantaggio collaterale di rendere il prompt più leggibile mentre lo si scrive. I tag XML delimitano dove un pezzo di contenuto inizia e finisce, ad esempio un documento di riferimento incollato nella richiesta.
La stessa pagina aggiunge un dettaglio che quasi nessun carousel ripropone. Gli attributi XML, del tipo id="esempio-1", servono a fornire metadati a un contenuto, e le istruzioni possono poi richiamarla per nome. Gli esempi ufficiali utilizzano il cancelletto semplice per i titoli (#), mai il triplo.
I simboli che contano, uno per uno
Il cancelletto per le sezioni
Un # all'inizio di una riga apre un titolo Markdown. Per ChatGPT, funziona come un cartello che dice "da qui in poi, cambiamo argomento". Gli esempi di OpenAI lo utilizzano per quattro blocchi ricorrenti. Nulla vieta un secondo livello con ## se il prompt è lungo, ma la guida non lo richiede.
Il trattino e l'asterisco per le liste
Le liste puntate, con - o *, servono per le regole che il modello deve rispettare tutte, separatamente. Una lista di tre vincoli si legge meglio di una frase che li nasconde in tre subordinate. Chi ripassa il prompt settimane dopo impiega anche meno tempo a capire cosa aveva chiesto.
I tag XML per i confini
Aprire <document> e chiudere </document> attorno a un testo incollato fa una cosa precisa. Dice al modello dove finisce l'istruzione e dove inizia il materiale da elaborare. Nelle istruzioni, lo si cita poi per nome (ad esempio "riassumi solo il contenuto di <document>"). I nomi dei tag li scegliete voi. Negli esempi di OpenAI appaiono <userquery>, <assistantresponse> e <product_review>.
Gli attributi per ritrovare gli esempi
Con più esempi nello stesso prompt, è meglio numerarli, come fa la guida nell'esercizio sulle recensioni di prodotti, dove ogni coppia porta un id (esempio 1, 2, 3). Questo costa alcuni caratteri. Successivamente, potete scrivere "segui il formato dell'esempio 2" senza ambiguità.
Tripli apici, backtick e tre cancelletti
È qui che le cose si confondono. Una versione precedente della guida OpenAI citava tra i delimitatori i tripli apici, i tag XML e i titoli di sezione, come documentano le copie di terzi di questa tattica. Il ###, invece, non figura nel testo OpenAI trovato. È consigliato da guide non ufficiali, come pagine su le buone pratiche del 2026, insieme ai tag e ai tripli apici. Funziona? Quasi certamente, perché fanno la stessa cosa di un tag, cioè marcano un confine. Ma "funziona" non è "OpenAI lo prescrive". Un carousel che li presenta come comandi ufficiali dice una cosa che la documentazione non dice.
La seguente tabella riassume cosa la documentazione ufficiale recommanda:
- # - Titolo di sezione - Sì, cancelletto semplice negli esempi
- - o * - Lista di regole - Sì, liste Markdown
- <tag></tag> - Confini di un contenuto - Sì, con attributi per i metadati
- """ - Incorniciare un testo - No nella pagina attuale, solo in versioni precedenti
- ### - Separatore di blocchi - No, indicazione di terzi
Come si compone un prompt: Identity, Instructions, Examples, Context
La parte più utile della guida è l'ordine dei blocchi. OpenAI descrive un messaggio developer in quattro blocchi, generalmente in questa sequenza, precisando che l'ordine ottimale può variare da un modello all'altro.
Identity spiega lo scopo e lo stile di comunicazione dell'assistente. Instructions contiene le regole, cosa fare e cosa evitare. Examples mostra possibili input con l'output desiderato. Context apporta i dati supplementari, da posizionare verso la fine perché cambiano da una richiesta all'altra.
Il consiglio sul contesto ha anche una ragione pratica. La stessa pagina suggerisce di posizionare all'inizio il contenuto che si ripete e di lasciare in coda ciò che varia, al fine di sfruttare la cache dei prompt, con un vantaggio su costi e latenza. Per chi utilizza solo la chat, il guadagno è diverso: avere un modello riutilizzabile dove si rimpiazza solo l'ultimo blocco.
Ecco uno schema costruito su questa struttura per riassumere i verbali di un servizio tecnico municipale:
# Identity
Sei un assistente che prepara riassunti di verbali per il servizio tecnico di un comune.
# Instructions
- Riassumi il testo contenuto in <verbale> in massimo cinque punti.
- Usa un italiano semplice e non aggiungere nessuna informazione assente dal testo.
- Se manca la data della seduta, scrivi "data non indicata".
# Examples
<verbale id="esempio-1">
Seduta del 12 marzo. Variante del piano di circolazione approvata, tre voti contrari.
</verbale>
<riassunto id="esempio-1">
- Data: 12 marzo
- Variante del piano di circolazione approvata (tre voti contrari)
# Context
<verbale>
[incolla qui il testo]
</verbale>
Leggete con occhio critico. Il blocco Context è in fondo, i confini del verbale sono espliciti, l'esempio ha un identificatore. Un ordine semplice. Se il vostro lavoro non richiede un esempio, rimuovete questa sezione senza perdere nulla.
Markdown o XML, quale scegliere?
OpenAI non impone una scelta e suggerisce addirittura di combinarli. Un thread sul forum della comunità OpenAI riporta la stessa impressione, cioè che l'azienda utilizza Markdown nei suoi stessi prompt di sistema e raccomanda un mix. Tuttavia, questi sono commenti di utenti, non documentazione ufficiale.
Una differenza strutturale esiste, riconosciuta anche da coloro che scrivono sul prompting. Un titolo marca dove una sezione inizia ma non dove finisce; un tag XML chiude chiaramente il confine. Per testi brevi, la differenza è minima. Per documenti lunghi incollati nel contesto, i tag sono più espliciti. La documentazione ufficiale li raccomanda proprio per questo: dire al modello esattamente dove il vostro input esterno comincia e termina.
OpenAI non cita "comandi nascosti" o simboli magici. Cita strumenti di organizzazione: strutture che rendono il prompt più leggibile per voi e più chiaro per il modello. Quando leggete un carousel che promette sette simboli segreti per sbloccare ChatGPT, chiedetevi se la fonte è la documentazione ufficiale o una terza parte che trae ispirazione da essa. La differenza tra "ça fonctionne" (funziona) e "OpenAI lo prescrive" è piccola nei titoli dei social, ma grande nella pratica.
