System Prompt là gì?
Đoạn instruction 'cài đặt' cho LLM trước khi user nói chuyện — quyết định persona, format, giới hạn của AI.
System Prompt là đoạn hướng dẫn được đặt vào TRƯỚC mọi cuộc đối thoại với LLM, dùng để “cài đặt” persona, hành vi, format, và giới hạn của model. User không thấy nó nhưng model bị nó “ràng buộc” trong toàn bộ session.
Phân biệt với user prompt
[System prompt] ← bạn (developer) viết, ẩn với user
"Bạn là trợ lý của Vietnam Airlines, chỉ trả lời về vé máy bay..."
[User message] ← user gõ
"Mua vé Hà Nội - Sài Gòn ngày mai"
[Assistant reply]
"Để giúp bạn, mình cần biết..."
System prompt là cái CỐ ĐỊNH. User prompt thay đổi mỗi lần.
System prompt làm được gì
1. Gán persona/vai trò
“Bạn là gia sư toán cấp 3, kiên nhẫn, dùng ví dụ Việt Nam…“
2. Set format output
“Luôn trả lời dạng JSON với schema { reply, confidence, sources }“
3. Giới hạn topic
“Chỉ trả lời câu hỏi về sản phẩm A. Bất kỳ topic khác → ‘Tôi chỉ hỗ trợ về A‘“
4. Cài kiến thức nền
“Đây là context về công ty: […]. Trả lời dựa trên đây.”
5. Tone & style
“Friendly, dùng emoji vừa phải, tránh thuật ngữ kỹ thuật…”
System prompt KHÔNG làm được gì
- Không bí mật tuyệt đối: user có thể dụ model leak system prompt qua jailbreak
- Không thay thế authentication: đừng để token/secret trong system prompt
- Không 100% tuân thủ: model có thể quên hoặc bị user override (cần guardrails ngoài)
Ví dụ thực tế
Claude/ChatGPT
Mỗi lần bạn chat, ở dưới có system prompt mặc định của OpenAI/Anthropic mô tả model là ai, ngày là bao nhiêu, không được làm X Y Z.
Custom GPT, Claude Project
Bạn tự viết system prompt cho bot của mình. Đây là “linh hồn” của bot.
API
response = client.messages.create(
model="claude-sonnet-4-7",
system="Bạn là chuyên gia luật Việt Nam. Trả lời ngắn gọn, trích điều luật cụ thể.",
messages=[
{ "role": "user", "content": "Hợp đồng lao động không xác định thời hạn được quy định ở đâu?" }
]
)
Best practices viết system prompt
- Cụ thể, không mơ hồ (“trả lời ≤ 200 từ” thay vì “ngắn gọn”)
- Cho ví dụ few-shot trong system prompt cho task khó
- Liệt kê edge case model nên xử lý thế nào
- Test với input lừa: user thử lái sang topic khác → model có giữ persona?
- Không nhồi quá dài — vẫn tốn token mỗi request
Liên quan
- Prompt Engineering
- Jailbreak — cách user phá system prompt