Prompts & System Messages
The system prompt is your agent's constitution. Everything else — tools, RAG, swarms — sits on top of it.
A prompt is just text you send to the model. The 'system' prompt is a special, sticky instruction that tells the model who it is and how to behave. The 'user' prompt is what the human asks. Models read both as one big conversation. Change the system prompt and the same model will talk like a teacher, a lawyer, or a sarcastic pirate.
System prompts are the cheapest, highest-leverage place to encode policies, output schemas, refusal rules, and persona. Treat them like configuration: version them, write evals against them, and never let users override them via prompt-injection. Pair with structured outputs (JSON schema mode) to make the model's contract enforceable, not aspirational. Few-shot exemplars belong in the system prompt only when role-shaping fails — otherwise they bloat tokens and reduce instruction-following.
You are {{role}}, a helpful assistant for {{audience}}.
# Goals
- {{primary_goal}}
- Always cite sources when using retrieved context.
# Tone
- Friendly, concise, never condescending.
# Refusals
- If asked for medical, legal, or financial advice,
acknowledge limits and suggest a professional.
# Output format
Respond in markdown. For lists, use "-".
For code, use fenced blocks with the language tag.- A study buddy that always quizzes back with 1 question
- A cooking assistant that converts units before answering
- A journaling coach that mirrors your mood
- Brand-voice enforcement across 50+ marketing agents
- Refusal policies for regulated content
- Locale-aware compliance disclaimers
- Stuffing it with examples instead of rules
- Letting user input override system instructions
- Forgetting to version it — drift kills evals