Il system prompt
Le istruzioni di regia che il modello riceve prima di salire sul palco. È la differenza fra un assistente generico e uno strumento che fa quello che serve a te.
Il video parte solo se lo chiedi: nessuna richiesta a YouTube prima del click.
In una conversazione con un modello ci sono tre voci: il sistema, l’utente e l’assistente. La prima la scrive chi costruisce lo strumento, arriva prima di tutto, e di solito l’utente finale non la vede mai.
| Messaggio | Chi lo scrive | Quando | Visibile? |
|---|---|---|---|
| System | Chi sviluppa | prima di tutto | di norma no |
| User | L’utente | a ogni turno | sì |
| Assistant | Il modello | in risposta | sì |
Non è un messaggio dell’utente con più autorità: è più simile alle indicazioni di regia che un attore riceve prima di entrare in scena. Definisce chi è, come si comporta, cosa non fa.
La differenza si vede subito
Senza system prompt, alla domanda “come ordino una lista in Python?” arriva una risposta generica con cinque metodi diversi e una spiegazione lunga.
Con questo davanti:
Sei un tutor di Python per principianti. Rispondi con UN solo metodo, il più semplice.
Massimo cinque righe. Sempre con un esempio eseguibile.
la risposta diventa:
numeri = [3, 1, 4, 1, 5]
numeri.sort()
print(numeri) # [1, 1, 3, 4, 5]
Stesso modello, stessa domanda. Cambia solo il copione.
Cosa metterci dentro
Un system prompt utile risponde a quattro domande. Chi sei — il ruolo, che orienta vocabolario e livello di dettaglio. Come rispondi — lunghezza, tono, formato. Cosa non fai — i limiti espliciti, più efficaci se detti in positivo (“se la domanda esce dal tema, dillo e fermati”). Con quale contesto — le informazioni fisse che servono ogni volta, che sarebbe uno spreco ripetere a ogni messaggio.
Le trappole
Il sovraccarico. Venti regole non producono un modello venti volte più preciso: ne producono uno che ne ignora metà. Meglio poche regole, ordinate per importanza, con le più critiche in cima.
Le regole in conflitto. “Sii sintetico” e “spiega sempre nel dettaglio il ragionamento” non possono valere insieme, e il modello finirà per accontentare l’una o l’altra a caso.
Il ruolo decorativo. “Sei un esperto di livello mondiale” non aggiunge quasi nulla se non è seguito da indicazioni concrete su cosa cambia nel comportamento.
Confondere sistema e conoscenza. Il system prompt definisce il comportamento; per far sapere al modello dei contenuti — documenti, dati, archivi — servono il contesto o il RAG, non una regola.
Una nota sulla sicurezza
Il system prompt non è un segreto blindato: con la giusta insistenza gli utenti riescono spesso a farselo raccontare, e istruzioni astute nascoste nel testo dell’utente possono provare a scavalcarlo. Non metterci mai chiavi, password o informazioni riservate, e non affidargli l’unico controllo di sicurezza di un sistema.
Non è un confine di sicurezza
Punto da mettere nero su bianco, perché è la fonte di un’intera categoria di guai: le istruzioni di sistema sono un suggerimento molto forte, non un muro.
Non sono segrete. Con abbastanza insistenza — richieste di ripetizione, giochi di ruolo, traduzioni — un utente riesce spesso a farsele raccontare. Vanno quindi trattate come pubbliche: niente chiavi, niente password, niente dettagli di sistemi interni.
Non sono inviolabili. Istruzioni contenute nel testo dell’utente, o dentro un documento che il sistema recupera da solo, possono provare a scavalcarle. Il modello non ha un modo affidabile di distinguere “istruzione legittima” da “istruzione arrivata dentro i dati”.
| Difesa | Perché funziona |
|---|---|
| Delimitare i dati esterni | Il modello distingue meglio istruzioni e contenuto |
| Ripetere il vincolo in coda | La parte finale del prompt pesa di più |
| Controlli fuori dal modello | L’unica difesa vera: validare l’output con del codice |
| Permessi minimi agli strumenti | Se non può fare una cosa, nessun prompt gliela fa fare |
L’ultima riga è la più importante. Se un sistema può cancellare file, inviare messaggi o spendere soldi, il controllo non può stare in una frase del system prompt: deve stare nel codice che esegue l’azione. Il prompt orienta il comportamento, il codice stabilisce cosa è possibile.
In una riga: il system prompt è regia, non sicurezza. Serve a far recitare bene la parte, non a impedire che qualcuno salga sul palco.
Un esempio completo, commentato
La teoria si capisce meglio su un caso vero. Ecco un system prompt che funziona, e perché.
Sei l'assistente di supporto di un software di fatturazione.
Rispondi solo su questo software.
Formato:
- Massimo 5 righe
- Se la procedura ha piu' passaggi, elencali numerati
- Se serve un dato che l'utente non ha fornito, chiedilo invece di indovinare
Limiti:
- Se la domanda esce dal tema, dillo in una riga e fermati
- Se non trovi la risposta nella documentazione fornita, dillo: non inventare procedure
Ricorda: massimo 5 righe.
Cosa lo rende diverso da un elenco di buone intenzioni.
Il ruolo è operativo, non decorativo: dice il dominio, non “sei un esperto di livello mondiale”. Il formato è misurabile: “massimo 5 righe” si può verificare, “sii conciso” no. I limiti dicono cosa fare, non solo cosa non fare: “dillo e fermati” è un’istruzione eseguibile, “non divagare” è un auspicio. La regola più importante è ripetuta in fondo, perché la coda del prompt pesa di più — trucco che vale doppio con i modelli piccoli.
E soprattutto: sono sei regole, non venti. Ogni regola in più diluisce le altre.
Come si prova che funziona
Un system prompt non si valuta leggendolo, si valuta rompendolo. Quattro prove, cinque minuti.
| Prova | Cosa verifichi |
|---|---|
| Domanda normale | Rispetta formato e lunghezza? |
| Domanda fuori tema | Si ferma come richiesto, o risponde comunque? |
| Domanda con dato mancante | Chiede, o inventa? |
| Domanda che lo contraddice | Tiene, o si fa convincere? |
L’ultima è quella che sorprende: chiedere esplicitamente di ignorare le istruzioni. Il modello di solito resiste, ma “di solito” non è una garanzia su cui costruire — e questo riporta al punto della sezione precedente, cioè che i limiti veri stanno nel codice.
In sintesi
| Concetto | In una riga |
|---|---|
| System prompt | Le indicazioni di regia, prima di ogni conversazione |
| Cosa contiene | Ruolo, stile di risposta, limiti, contesto fisso |
| Sovraccarico | Troppe regole ne fanno ignorare metà |
| Conflitti | Regole contraddittorie producono comportamenti casuali |
| Sicurezza | Non è un segreto: niente chiavi né dati riservati |
| Sicurezza | Il system prompt orienta, non protegge: i limiti stanno nel codice |
| Un buon esempio | Ruolo operativo, formato misurabile, limiti eseguibili, regola chiave ripetuta |
| Come si prova | Quattro prove: normale, fuori tema, dato mancante, contraddizione |
- System prompt
- Ruolo
- Regole
Lezioni collegate
- Le basi del prompting
L'anatomia di un prompt che funziona: istruzione, contesto, dati e formato. Quattro pezzi che spiegano la differenza fra una risposta vaga e una utile.
- Prompt per modelli piccoli
Un 8B non è un modello grande in miniatura: ha limiti diversi e vuole prompt diversi. Quello che funziona sui modelli di frontiera spesso qui fallisce.