import { Alert } from '@/components/mdx/alert';
Prompt Engineering — Nghệ Thuật Ra Lệnh Cho AI
TL;DR: Prompt là cách bạn "nói chuyện" với AI. Prompt tốt = output đúng ý. Prompt tệ = output vô dụng. Công thức 5 phần: Role + Task + Context + Constraint + Format. Đây là kỹ năng QUAN TRỌNG NHẤT của AI Engineer.
Prompt Là Gì?
Prompt = câu hỏi/yêu cầu bạn gửi cho AI.
Prompt: "Viết code JavaScript validate email"
↑
Đây là prompt
Nghe đơn giản — nhưng 90% người dùng AI không biết viết prompt đúng. Kết quả: AI trả lời chung chung, sai ý, hoặc hallucinate.
ℹ️ Info: Thực tế: Không có AI dở — chỉ có prompt dở. Cùng 1 model, prompt khác nhau → output khác nhau hoàn toàn.
Prompt Tệ vs Prompt Tốt
Ví dụ 1: Viết code
❌ Prompt tệ:
Viết code cho tôi
→ AI: "Code gì? Ngôn ngữ gì? Mục đích gì?"
✅ Prompt tốt:
Viết hàm JavaScript validate email:
- Dùng regex
- Handle null/undefined
- Return true/false
- Có comment giải thích regex
- Viết test cases cho 5 email: valid, invalid, empty, null, có tiếng Việt
→ AI: Code hoàn chỉnh, có test, đúng ý 100%.
Ví dụ 2: Phân tích data
❌ Prompt tệ:
Phân tích data này
✅ Prompt tốt:
Phân tích file CSV đính kèm:
1. Tính tổng doanh thu theo tháng
2. Tìm top 5 sản phẩm bán chạy
3. So sánh Q1 2026 vs Q1 2025 (growth %)
4. Đề xuất 3 actions dựa trên data
Output: Bảng + bullet points
Ví dụ 3: Viết email
❌ Prompt tệ:
Viết email cho khách hàng
✅ Prompt tốt:
Viết email gửi khách hàng SME:
- Nội dung: Thông báo ra mắt gói automation mới
- Tone: Chuyên nghiệp nhưng thân thiện
- Độ dài: 200-300 từ
- CTA: Đặt lịch demo miễn phí
- Include: 3 benefits chính, pricing starting từ 5tr/tháng
Công Thức Prompt 5 Phần
✅ Success: Công thức vàng: Role + Task + Context + Constraint + Format
1. Role — AI là ai?
Cho AI biết nó đang đóng vai gì → output đúng tone, đúng expertise.
"Bạn là senior JavaScript developer với 10 năm kinh nghiệm"
"Bạn là marketing manager cho startup SaaS"
"Bạn là business analyst phân tích quy trình SME"
2. Task — Làm gì?
Mô tả cụ thể task cần làm.
"Viết hàm X làm Y"
"Phân tích data Z"
"Tóm tắt tài liệu này thành 3 bullet points"
3. Context — Bối cảnh là gì?
Cho AI biết thông tin nền để output relevant.
"Công ty Diginno làm về automation (n8n, Lark). Khách hàng là SME 10-50 nhân viên."
"Data này là doanh thu Q1 2026 của shop bán mỹ phẩm online."
4. Constraint — Giới hạn gì?
Đặt rule để output không đi lạc.
"Không dùng external libraries"
"Tối đa 50 dòng code"
"Chỉ dùng tiếng Việt, không tiếng Anh"
"Không giải thích — chỉ output kết quả"
5. Format — Output dạng gì?
Chỉ định format output mong muốn.
"Output dạng JSON"
"Viết thành bảng markdown"
"Trả về code block, có comment tiếng Việt"
"Format: bullet points, mỗi point max 1 câu"
Prompt Template (Copy-Paste Ready)
<Role>
Bạn là [vai trò] với [X năm] kinh nghiệm về [lĩnh vực].
<Task>
Nhiệm vụ: [mô tả task cụ thể]
<Context>
Bối cảnh: [thông tin nền, data, mục tiêu]
<Constraint>
Giới hạn:
- [constraint 1]
- [constraint 2]
- [constraint 3]
<Format>
Output format: [mô tả format mong muốn]
Các Kỹ Thuật Prompt Nâng Cao
1. Zero-Shot Prompting
Không cho ví dụ — AI tự làm từ mô tả.
"Viết hàm JavaScript debounce với delay 300ms"
✅ Dùng khi: Task đơn giản, AI đã biết pattern.
2. Few-Shot Prompting
Cho 1-3 ví dụ mẫu → AI follow pattern.
Convert các câu sau thành JSON format:
Ví dụ 1:
Input: "Tôi muốn đặt lịch họp vào thứ 2 lúc 10h"
Output: {"action": "schedule_meeting", "day": "Monday", "time": "10:00"}
Ví dụ 2:
Input: "Hủy đơn hàng #12345"
Output: {"action": "cancel_order", "order_id": "12345"}
Input: "Gửi báo cáo doanh thu tháng 3 cho sếp"
Output: ?
✅ Dùng khi: Task cần format cụ thể, AI dễ nhầm nếu không có example.
3. Chain-of-Thought (CoT)
Yêu cầu AI giải thích từng bước.
"Hãy giải quyết bài toán này. Trước khi trả lời, hãy giải thích từng bước suy nghĩ của bạn."
Hoặc ngắn gọn:
"Hãy suy nghĩ từng bước (think step by step)"
⚠️ Warning: Lưu ý: Chain-of-thought giúp AI reasoning tốt hơn — nhưng tốn nhiều tokens hơn vì AI phải "nghĩ aloud". Chỉ dùng khi cần accuracy cao.
4. System Prompt vs User Prompt
| System Prompt | User Prompt | |
|---|---|---|
| Là gì? | Instruction cho AI (ẩn với user) | Câu hỏi của user |
| Tồn tại khi nào | Suốt conversation | Chỉ message đó |
| Ví dụ | "Bạn là trợ lý tiếng Việt, tone thân thiện" | "Viết email cho khách hàng" |
| Priority | Cao nhất — AI luôn follow | Bình thường |
5. Negative Prompting
Nói AI cái KHÔNG làm.
"Viết blog post về AI. KHÔNG:
- Dùng từ 'revolutionary' hay 'game-changing'
- Viết dài hơn 1500 từ
- Nhắc đến ChatGPT
- Dùng passive voice"
Prompt Examples Từ Diginno (Thực Tế)
Example 1: Generate n8n Workflow
Bạn là n8n developer senior.
Thiết kế workflow automation cho use case sau:
- Khi có đơn hàng mới từ Pancake POS → sync vào Lark Base
- Nếu đơn > 500K → gửi Zalo notification cho quản lý
- Nếu đơn bị hủy → update status trong Lark Base + gửi email cho khách
Output:
- JSON config cho n8n workflow
- Giải thích từng node
- Error handling cho mỗi step
Example 2: Phân Tích Quy Trình Khách Hàng
Bạn là business analyst cho SME.
Phân tích quy trình sau và đề xuất automation:
[Quy trình hiện tại của khách hàng]
1. Nhận đơn hàng từ Facebook → nhập tay vào Excel
2. Check tồn kho → nhắn kho trên Zalo
3. Kho xác nhận → in phiếu giao hàng
4. Giao hàng → cập nhật status vào Excel
5. Cuối tháng → tổng hợp Excel → gửi sếp
Yêu cầu:
1. Vẽ flow diagram (mermaid)
2. Identify bottlenecks
3. Đề xuất automation (dùng n8n + Lark)
4. Ước tính thời gian tiết kiệm/tháng
5. ROI estimate
Output: Bảng phân tích + đề xuất cụ thể
Example 3: Generate SQL Query
Bạn là data engineer PostgreSQL.
Viết query cho yêu cầu sau:
- Bảng: orders (id, customer_id, total, created_at, status)
- Bảng: customers (id, name, email, level)
- Yêu cầu: Top 10 khách hàng có tổng chi tiêu cao nhất trong Q1 2026,
include: tên, email, total spent, số đơn, level
- Filter: chỉ đơn status = 'completed'
- Sort: total spent DESC
Output: SQL query, có comment giải thích từng phần
Các Lỗi Prompt Phổ Biến
Lỗi 1: Quá chung chung
❌ "Viết code"
✅ "Viết hàm Python sort list dict theo key 'name'"
Lỗi 2: Thiếu context
❌ "Phân tích data"
✅ "Phân tích file CSV này, tìm top 5 trends, so sánh YoY"
Lỗi 3: Không chỉ định format
❌ "Cho tôi kết quả"
✅ "Output dạng bảng markdown, 3 cột: metric, value, trend"
Lỗi 4: Nhiều task trong 1 prompt
❌ "Viết code + test + deploy + document"
✅ Tách thành 4 prompts riêng biệt
Lỗi 5: Không set constraint
❌ "Viết blog post"
✅ "Viết blog post 1000-1500 từ, tiếng Việt, tone chuyên nghiệp"
Bài Tập Thực Hành
Task 1: Rewrite prompts
Rewrite 3 prompts sau thành prompt tốt (dùng công thức 5 phần):
- "Dịch cái này"
- "Làm báo cáo"
- "Fix bug"
Task 2: Practice few-shot
Viết 1 prompt few-shot để convert Vietnamese sentences thành JSON (3 examples).
Task 3: Test chain-of-thought
- Hỏi AI 1 bài toán logic đơn giản
- Lần 1: Không dùng CoT
- Lần 2: Dùng "think step by step"
- So sánh kết quả
Tóm Tắt
| Kỹ thuật | Khi nào dùng | Ví dụ |
|---|---|---|
| Zero-shot | Task đơn giản, AI đã biết | "Viết hàm debounce JS" |
| Few-shot | Cần format cụ thể | Cho ví dụ → AI follow pattern |
| Chain-of-thought | Cần reasoning sâu | "Think step by step" |
| System prompt | Set role/context cố định | "Bạn là senior dev" |
| Negative prompt | Tránh output không mong muốn | "KHÔNG dùng từ X" |
Công thức vàng: Role + Task + Context + Constraint + Format
Bài Tiếp Theo
→ Bài 5: Tool — Khi AI Biết "Dùng Tay"
← Bài 3: Context — Bộ Nhớ Của AI
Liên hệ tư vấn
- Hotline: 0816226086
- Email: contact@diginno.net
- Website: diginno.net
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools