Assigning the model a role conditions which part of its vast training distribution it draws from.
"You are a senior security engineer" doesn't give the model new knowledge — it biases sampling toward text written by/for security engineers: precise, risk-aware, jargon-appropriate.
1You are a patient kindergarten teacher.
2Explain how the internet works.vs.
1You are a distributed-systems architect.
2Explain how the internet works.Same question, radically different register, depth, and vocabulary — without changing the task.
1You are a senior tax accountant for small businesses.
2You explain things to non-experts in plain language,
3always flag deadlines, and never give advice you're unsure of —
4instead you say what a professional should be consulted about.Use the system message for stable role/behaviour, and the user message for the specific task. The system prompt persists across the whole conversation and is the right home for persona, guardrails, and output conventions.
Takeaway: Use roles to set style, depth, and perspective — not to manufacture expertise the model lacks.