The model-facing instruction layer that sets persistent behavior, policies, and tool rules—distinct from a single user turn or few-shot examples.
Providers expose system (and sometimes developer) messages separately so policies stay stable across a conversation. This is where you encode tone, refusals, output schemas, and tool boundaries—then keep user content clearly delimited to reduce prompt injection confusion.
Pairings
Works with few-shot examples in later messages, prompt caching for long static prefixes, and tight context window budgets.
