Il role prompting significa dire al modello chi essere prima di dirgli cosa fare: "Sei un tutor di matematica paziente", "Agisci come responsabile delle assunzioni per un posto da sviluppatore junior". Il ruolo cambia per chi viene scritta la risposta, quali parole usa, quanto va in profondità e a cosa presta attenzione. Non dà al modello conoscenze che non ha già: un ruolo è un modo per orientare una risposta, non per aggiungere fatti.
Cosa cambia un ruolo
Un ruolo è un modo compatto per impostare più cose insieme:
- Il pubblico e il vocabolario. Un tutor per principianti definisce i termini e usa analogie; un ingegnere senior che scrive per i colleghi salta entrambe le cose.
- Lo standard. Un editor severo segnala una frase che un lettore indulgente lascerebbe passare. Il ruolo decide cosa conta come problema.
- Il punto di vista. Un revisore di sicurezza e un revisore di prestazioni leggono la stessa funzione e notano cose diverse.
- Il comportamento. Un selezionatore fa domande e aspetta; a un tutor puoi chiedere di dare suggerimenti invece delle risposte.
Passa da una scheda all'altra qui sotto. Il compito è identico in tutte e tre; cambia solo il ruolo.
Un'API (Application Programming Interface) è un insieme di regole che permette a un software di comunicare con un altro. Definisce quali richieste puoi fare, come farle e cosa ricevi in cambio. Per esempio, un'app meteo usa l'API di un servizio meteorologico per ottenere le previsioni. Le API permettono agli sviluppatori di usare funzionalità e dati di altri sistemi senza sapere come funzionano all'interno.
"Sei un esperto" ha spostato la risposta di pochissimo: ha mantenuto la stessa forma generica e ha aggiunto gergo, perché "esperto" non dice niente su chi legge. Il ruolo preciso ha cambiato il vocabolario, l'esempio e il punto di riferimento, perché nominava un pubblico e qualcosa che quel pubblico conosce già.
Cosa non cambia un ruolo
Un ruolo non può aggiungere conoscenze. "Sei un avvocato tributarista di livello mondiale" non dà al modello le norme fiscali di quest'anno se non le ha mai imparate, e un personaggio sicuro di sé può far sembrare una risposta sbagliata più autorevole, non meno. Non contare su un'etichetta da esperto per migliorare la precisione. Se la correttezza conta, dai al modello i fatti o i documenti che gli servono e chiedigli di dire quando non è sicuro; allucinazioni dell'IA raccoglie i prompt che aiutano.
Lo stesso vale per le persone reali. "Rispondi come risponderebbe un programmatore famoso" ti dà un'imitazione dello stile pubblico di quella persona. Il modello non conosce le sue opinioni private, quindi tutto ciò che dice con la sua voce su una domanda nuova è inventato.
Scrivi ruoli precisi
Un ruolo utile di solito indica quattro cose: il mestiere, il pubblico, l'obiettivo e lo standard. Confronta:
- "Sei uno scrittore" diventa "Sei un editor di un blog tecnico che taglia qualsiasi frase che non aiuta un principiante a seguire i passaggi".
- "Sei un programmatore" diventa "Sei uno sviluppatore Python senior che revisiona la pull request di un collega junior. Segnala prima i bug, poi la leggibilità, e spiega ogni punto così che possa imparare". Vedi prompt per la code review per prompt di revisione completi.
- "Agisci come un insegnante" diventa "Agisci come un insegnante di chimica che prepara un ragazzo di 15 anni a un esame. Fammi domande invece di darmi le risposte, e dammi un suggerimento quando ne sbaglio una".
Un ruolo è una parte del prompt, non il prompt intero. Funziona insieme a un compito chiaro, al contesto che il modello non può indovinare e alla forma della risposta che vuoi; la guida per scrivere un prompt copre le altre parti. Se il ruolo e il compito tirano in direzioni diverse, come "un revisore severo" a cui chiedi di "rassicurare l'autore", la risposta cerca di fare entrambe le cose e spesso non ne fa bene nessuna.
Prompt "agisci come" per esercitarti
La forma "agisci come" è diventata popolare grazie alle raccolte di prompt condivise, in cui il modello fa il selezionatore a un colloquio di lavoro, il partner per esercitarsi in una lingua o perfino un terminale Linux. Il gioco di ruolo è utile per tutto ciò che vuoi provare prima: colloqui, una conversazione difficile, una presentazione, una nuova lingua.
La differenza tra un gioco di ruolo che funziona e uno che si sfalda sono le regole. Di' al ruolo cosa fare a ogni turno, quando aspettarti e quando fermarsi. Senza regole, il modello può svolgere tutta la sessione in una sola risposta: cinque domande insieme, oppure una domanda seguita da una risposta di esempio.
Perfetto, cominciamo. Parto con una domanda sulle basi.
Domanda 1: In JavaScript, qual è la differenza tra let, const e var?
Prenditi il tuo tempo e rispondi come faresti in un colloquio vero.
Cambia la posizione e l'argomento per provare il tuo colloquio. La frase "aspetta la mia risposta" è quella che tiene il modello a una domanda per turno, e "dopo cinque domande, fermati" dà alla sessione una fine e un riepilogo.
Dove va il ruolo
Un ruolo che vuoi in ogni risposta va nel prompt di sistema: il campo system nell'API, oppure le istruzioni personalizzate e le istruzioni del progetto nelle app di chat. Lì vale per tutta la conversazione senza doverlo ripetere. Per una richiesta singola, metti il ruolo nella prima frase del messaggio, prima del compito.
import anthropic
client = anthropic.Anthropic()
MODEL = "your-model-id" # e.g. from your provider's model list
message = client.messages.create(
model=MODEL,
max_tokens=500,
system="You are a patient programming tutor for adults in their first month of coding. Give hints before full solutions.",
messages=[{"role": "user", "content": "Why does my loop print the last item twice?"}],
)
print(message.content[0].text)
I ruoli funzionano anche a metà conversazione. Dopo che il modello ha scritto una bozza, chiedergli "ora agisci come un revisore scettico della bozza qui sopra ed elenca i suoi tre punti più deboli" spesso fa emergere problemi che il primo passaggio aveva trascurato, perché il nuovo ruolo cambia ciò che il modello cerca.
Domande frequenti
Cos'è il role prompting?
Il role prompting consiste nel dire al modello chi essere prima di dirgli cosa fare, per esempio "Sei un tutor di matematica paziente per ragazzi di 12 anni" o "Agisci come selezionatore per un posto da sviluppatore junior". Il ruolo definisce il pubblico, il vocabolario, la profondità e il punto di vista della risposta, e in una conversazione può cambiare il comportamento del modello, per esempio facendogli porre domande invece di rispondere.
Dire all'IA che è un'esperta la rende più precisa?
Non contarci. Un'etichetta come "Sei un esperto di livello mondiale" non dà al modello conoscenze che non ha, e può far sembrare più sicura una risposta sbagliata. Per migliorare la precisione, dai al modello i fatti o le fonti che gli servono, chiedigli di dire quando non è sicuro e controlla il risultato.
Dove devo mettere il ruolo?
Per un ruolo che deve durare tutta la conversazione, mettilo nel prompt di sistema: il campo system nell'API, oppure le istruzioni personalizzate e le istruzioni del progetto nelle app di chat. Per una richiesta singola, mettilo nella prima frase del messaggio, prima del compito.
Cosa sono i prompt "agisci come"?
Sono prompt che iniziano con "Agisci come" e danno al modello una parte da interpretare: un selezionatore, un partner per esercitarsi in una lingua, un terminale Linux, una guida turistica. Le raccolte di prompt condivise hanno reso popolare lo schema. Funzionano meglio quando dicono anche cosa deve fare il ruolo a ogni turno e quando fermarsi.
Cosa rende buono un prompt di ruolo?
La precisione. Indica il mestiere, il pubblico, l'obiettivo e lo standard: "uno sviluppatore Python senior che revisiona la pull request di un collega junior, prima i bug e poi la leggibilità" dà al modello molto più materiale di "un esperto". Poi scrivi il resto del prompt come al solito: il compito, il contesto e il formato.