Ruoli System, User e Assistant
- I tre ruoli su cui è costruita ogni conversazione con l'AI — e a cosa serve ciascuno
- Perché il system prompt è il punto a massima leva per orientare il comportamento
- Come la stessa idea si presenta nelle app di chat, in Claude Code e nell'API
- Una trappola comune: seppellire le regole in un turno user invece che nel messaggio system
Ogni conversazione con l'AI è costruita a partire da messaggi, e ogni messaggio ha un ruolo. Comprendere i tre ruoli spiega come orientare il modello — e perché alcune istruzioni attecchiscono mentre altre no.
I tre ruoli
- Configurazione di alto livello per l'intera conversazione: chi deve essere il modello, le regole, il formato dell'output. Impostato una volta, vale per ogni turno che segue.
- Le tue domande e i tuoi input, un turno per volta. Tienili focalizzati sul task effettivo; non ri-incollare le regole permanenti a ogni turno.
- Le risposte del modello. Puoi anche mettere parole in bocca all'assistant come esempi few-shot (vedi /docs/prompting/few-shot) — il modello li tratta come turni precedenti e continua in quello stile.
Perché il system prompt è la tua leva più potente
Il messaggio system inquadra tutto ciò che segue. È dove imposti il ruolo del modello, gli standard, il tono e le regole ferree — e il modello gli dà molto peso. Se vuoi un comportamento coerente lungo un'intera conversazione (o app), mettilo qui, non sepolto in un turno user.
Stessa idea, tre superfici:
| Superficie | Cosa svolge il ruolo di system prompt |
|---|---|
| App di chat (Claude.ai, ChatGPT, Gemini) | Le istruzioni personalizzate del tuo account |
| Claude Code | CLAUDE.md alla radice del progetto |
| L'API | Il parametro system nella richiesta (prima chiamata) |
Un before/after concreto
L'errore più comune è mettere le regole permanenti in ogni turno user invece che nel messaggio system. Guarda cosa cambia.
Prima — regole ficcate in un turno user, ripetute ogni volta:
Regole nel turno user (fragile)
user: You are a precise financial analyst. Always show your assumptions. Never invent numbers. Now: summarize this 10-K. [10-K text]
Dopo — regole sollevate nel messaggio system, i turni user restano puliti:
Regole nel messaggio system (durevoli)
system: You are a precise financial analyst. Always show your assumptions. Never invent numbers. Cite the section of the filing for each claim. user: Summarize this 10-K. [10-K text] user: Now flag the risks.
La versione "dopo" tiene il comportamento stabile lungo i turni, dimezza i token che rispedisci a ogni turno e rende l'app più facile da cambiare — modifichi il brief permanente in un solo posto.
Mettere parole in bocca all'assistant
Una mossa sottoutilizzata: puoi anteporre un turno assistant come esempio few-shot o primer di formato, e il modello continuerà in quello stile. È così che template e rubriche vengono imposti senza un prompt enorme.
Primare l'assistant a seguire un formato
system: You are a code reviewer. Return only the sections below. user: Review this pull request. [diff] assistant: ## Summary - ## Risks - ## Suggested changes -
Il modello tratta il turno assistant che hai seminato come una risposta precedente e completa nella stessa forma.
Errori comuni
- Regole in ogni turno user — metti le regole permanenti una volta nel messaggio system; usa i turni user per il task effettivo.
- Contraddirsi lungo i turni — un'istruzione user successiva ed esplicita può prevalere su una system vaga. Sii coerente.
- Trattare il ruolo assistant come sola lettura — puoi seminarlo per primare formato, tono o un pattern few-shot.
- Sovraccaricare il system prompt con fatti che cambiano — metti i fatti volatili (documenti, dati, stato attuale) nel turno user o nel contesto di retrieval, non nel messaggio system.
Verifica
Verifica
0/4- Tre ruoli: system imposta il brief, user chiede a ogni turno, assistant risponde (o viene seminato).
- Il system prompt è la leva a massimo effetto — metti lì le regole permanenti, una sola volta.
- Le istruzioni personalizzate delle chat, CLAUDE.md e il campo `system` dell'API sono la stessa idea su tre superfici.
- I fatti volatili vanno nei turni user o nel retrieval, non nel messaggio system.