Prompt là giao diện điều khiển rẻ nhất và nhanh nhất của một sản phẩm LLM. Trước khi nghĩ tới RAG hay fine-tune, một prompt tốt thường giải quyết được 70% vấn đề. PM cần hiểu prompt đủ để review, đặt yêu cầu và đo lường — không cần là người viết giỏi nhất, nhưng phải biết cái gì tạo ra chất lượng.
Cấu trúc một system prompt sản xuất
Một prompt cho sản phẩm thật khác xa việc chat vu vơ. Nó có cấu trúc:
- Vai trò & mục tiêu — "Bạn là trợ lý hỗ trợ khách hàng của công ty X."
- Ràng buộc & chính sách — được/không được làm gì (không hứa hoàn tiền, không tư vấn pháp lý).
- Định dạng đầu ra — JSON, markdown, độ dài, ngôn ngữ.
- Cách xử lý khi không chắc — "Nếu không đủ thông tin, hãy nói 'Tôi không rõ' và đề nghị chuyển người thật."
- Ví dụ (few-shot) — vài cặp input/output mẫu cho ca khó.
Kỹ thuật cốt lõi PM cần biết
- Zero-shot vs few-shot: thêm ví dụ mẫu giúp mô hình bắt chước đúng định dạng và giọng điệu. Đắt hơn về token nhưng thường đáng.
- Chain-of-thought: yêu cầu mô hình suy luận từng bước cho bài toán logic. Nhưng với sản phẩm, hãy giấu phần suy luận và chỉ trả kết quả cho người dùng.
- Structured output: ép mô hình trả JSON theo schema để hệ thống downstream parse được — cực quan trọng cho tích hợp.
- Delimiters rõ ràng: ngăn cách ngữ cảnh và câu hỏi người dùng để tránh nhầm lẫn và chống prompt injection.
Ví dụ cụ thể
Prompt kém: > "Tóm tắt review này."
Prompt sản xuất: > "Tóm tắt review sản phẩm dưới đây thành đúng 2 câu tiếng Việt, giọng trung lập. Nếu review nhắc lỗi kỹ thuật, nêu rõ lỗi. Trả về JSON: {\"summary\": string, \"sentiment\": \"positive|neutral|negative\"}. Review: <<<{review}>>>"
Prompt thứ hai cho kết quả ổn định, parse được, và đo được.
Khung tư duy: prompt như một spec, không phải câu thần chú
Đừng "vọc" prompt ngẫu nhiên. Hãy coi mỗi prompt là một phiên bản có version:
- Ghi lại thay đổi + lý do.
- Chạy qua golden set (Bài 4) để so trước/sau.
- Chỉ giữ thay đổi nếu metric cải thiện, không chỉ vì "đọc thấy hay hơn".
Checklist review một prompt
- [ ] Có ràng buộc rõ về việc không được làm gì?
- [ ] Có hướng dẫn xử lý khi thiếu thông tin (chống bịa)?
- [ ] Định dạng đầu ra cố định và parse được?
- [ ] Ngữ cảnh người dùng được đặt trong delimiter an toàn?
- [ ] Ngôn ngữ đầu ra được chỉ định rõ (tránh trả lời lẫn tiếng Anh)?
- [ ] Đã test với input rác/độc hại (adversarial)?
Sai lầm thường gặp
- Prompt phình to vô tận: nhồi 30 quy tắc khiến mô hình bỏ sót — ưu tiên quy tắc quan trọng, cắt bớt.
- Không cố định ngôn ngữ: sản phẩm tiếng Việt bỗng trả lời tiếng Anh vì prompt không ràng buộc.
- Trộn dữ liệu người dùng vào system prompt không có delimiter → dễ bị prompt injection ("bỏ qua hướng dẫn trên...").
- Đánh giá prompt bằng cảm tính thay vì chạy eval — mỗi lần sửa lại phá một ca khác.
- Không giấu chain-of-thought: lộ suy luận thô ra người dùng, vừa dài vừa rủi ro lộ chính sách nội bộ.