Concept: System Prompts & Agent Specialization
Overview
This example demonstrates how to transform a general-purpose LLM into a specialized agent using system prompts. The key insight: you don’t need different models for different tasks—you need different instructions.
What is a System Prompt?
A system prompt is a persistent instruction that shapes the AI’s behavior for an entire conversation session.
Analogy
Think of hiring someone for a job:
Without System Prompt With System Prompt
───────────────────── ──────────────────────
"Hi, I'm an AI." "I'm a professional translator
with expertise in scientific
What do you want?" German. I follow strict quality
guidelines and output format."
How System Prompts Work
The Context Structure
┌─────────────────────────────────────────────┐
│ CONTEXT WINDOW │
│ │
│ ┌───────────────────────────────────────┐ │
│ │ SYSTEM PROMPT (Always present) │ │
│ │ "You are a professional translator..." │
│ │ "Follow these rules..." │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ USER MESSAGES │ │
│ │ "Translate this text..." │ │
│ └───────────────────────────────────────┘ │
│ ↓ │
│ ┌───────────────────────────────────────┐ │
│ │ AI RESPONSES │ │
│ │ (Shaped by system prompt) │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
The system prompt sits at the top of the context and influences every response.
Agent Specialization Pattern
Transformation Flow
┌──────────────────┐ ┌─────────────────┐ ┌──────────────────┐
│ General Model │ + │ System Prompt │ = │ Specialized Agent│
│ │ │ │ │ │
│ • Knows many │ │ • Define role │ │ • Translation │
│ things │ │ • Set rules │ │ Agent │
│ • No specific │ │ • Constrain │ │ • Coding Agent │
│ role │ │ output │ │ • Analysis Agent │
└──────────────────┘ └─────────────────┘ └──────────────────┘
Example Specializations
Translation Agent (this example):
System Prompt = Role + Rules + Output Format
Code Assistant:
systemPrompt: "You are an expert programmer.
Always provide working code with comments.
Explain complex logic."Data Analyst:
systemPrompt: "You are a data analyst.
Always show your calculations step-by-step.
Cite data sources when available."Anatomy of an Effective System Prompt
The 5 Components
┌─────────────────────────────────────────┐
│ 1. ROLE DEFINITION │
│ "You are a [specific role]..." │
├─────────────────────────────────────────┤
│ 2. TASK DESCRIPTION │
│ "Your goal is to..." │
├─────────────────────────────────────────┤
│ 3. BEHAVIORAL RULES │
│ "Always do X, Never do Y..." │
├─────────────────────────────────────────┤
│ 4. OUTPUT FORMAT │
│ "Format your response as..." │
├─────────────────────────────────────────┤
│ 5. CONSTRAINTS │
│ "Do NOT include..." │
└─────────────────────────────────────────┘
This Example’s Structure
Role: "Professional scientific translator"
Task: "Translate English to German with precision"
Rules: 8 specific translation guidelines
Format: Idiomatic German, scientific style
Constraints: "ONLY translated text, no explanation"
Why Detailed System Prompts Matter
Comparison Study
Minimal System Prompt:
systemPrompt: "Translate to German"Result:
- May add unnecessary explanations
- Inconsistent terminology
- Mixed formality levels
- Extra conversational text
Detailed System Prompt (this example):
systemPrompt: `You are a professional translator...
- Rule 1: Preserve technical accuracy
- Rule 2: Use idiomatic German
- Rule 3: Follow scientific conventions
...
DO NOT add any explanations`Result:
- ✅ Consistent quality
- ✅ Correct terminology
- ✅ Proper formatting
- ✅ Only translation output
Quality Impact
Detail Level Output Quality
─────────── ─────────────────
Very minimal → Unpredictable
Basic role → Somewhat consistent
Detailed → Highly consistent ⭐
Over-detailed → May confuse model
System Prompt Design Patterns
Pattern 1: Role-Playing
"You are a [profession] with expertise in [domain]..."
Makes the model adopt that perspective.
Pattern 2: Rule-Based
"Follow these rules:
1. Always...
2. Never...
3. When X, do Y..."
Explicit constraints lead to predictable behavior.
Pattern 3: Output Formatting
"Format your response as:
- JSON
- Markdown
- Plain text only
- Step-by-step list"
Controls the structure of responses.
Pattern 4: Contextual Awareness
"You remember: [previous facts]
You know that: [domain knowledge]
Current situation: [context]"
Primes the model with relevant information.
How This Relates to AI Agents
Agent = Model + System Prompt + Tools
┌────────────────────────────────────────────┐
│ AI Agent │
│ │
│ ┌──────────────────────────────────────┐ │
│ │ System Prompt (Agent's "Identity") │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ LLM (Agent's "Brain") │ │
│ └──────────────────────────────────────┘ │
│ ↓ │
│ ┌──────────────────────────────────────┐ │
│ │ Tools (Agent's "Hands") [Optional] │ │
│ └──────────────────────────────────────┘ │
└────────────────────────────────────────────┘
In this example:
- System Prompt: “You are a translator…”
- LLM: Apertus-8B model
- Tools: None (translation is done by the model itself)
In more complex agents:
- System Prompt: “You are a research assistant…”
- LLM: Any model
- Tools: Web search, calculator, file access, etc.
Practical Applications
1. Domain Specialization
Medical → "You are a medical professional..."
Legal → "You are a legal expert..."
Technical → "You are an engineer..."
2. Output Control
JSON API → "Always respond in valid JSON"
Markdown → "Format all responses as markdown"
Code → "Only output executable code"
3. Behavioral Constraints
Concise → "Use maximum 2 sentences"
Detailed → "Explain thoroughly with examples"
Neutral → "Avoid opinions, state only facts"
4. Multi-Language Support
systemPrompt: `You are a multilingual assistant.
Respond in the same language as the input.`
Chat Wrappers Explained
Different models need different conversation formats:
Model Type Format Needed Wrapper
────────────── ─────────────────── ─────────────────
Llama 2/3 Llama format LlamaChatWrapper
GPT-style ChatML format ChatMLWrapper
Harmony models Harmony format HarmonyChatWrapper
What they do:
Your Message → [Chat Wrapper] → Formatted Prompt → Model
↓
Adds special tokens:
<|system|>, <|user|>, <|assistant|>
The wrapper ensures the model understands which part is the system prompt, which is the user message, etc.
Key Takeaways
- System prompts are powerful: They fundamentally change how the model behaves
- Detailed is better: More specific instructions = more consistent results
- Structure matters: Role + Rules + Format + Constraints
- No retraining needed: Same model, different behaviors
- Foundation for agents: System prompts are the first step in building specialized agents
Evolution Path
1. Basic Prompting (intro.js)
↓
2. System Prompts (translation.js) ← You are here
↓
3. System Prompts + Tools (simple-agent.js)
↓
4. Multi-turn reasoning (react-agent.js)
↓
5. Full Agent Systems
This example bridges the gap between basic LLM usage and true agent behavior by showing how to specialize through instructions.