Prompt Engineering là kỹ năng viết lời nhắc (prompt) để điều khiển AI làm đúng ý mình. Không phải ma thuật — mà là một kỹ năng có hệ thống, có thể học được.
Tại Sao Prompt Lại Quan Trọng?#
LLM không đọc suy nghĩ bạn. Nó chỉ nhìn vào chuỗi token bạn gõ và dự đoán token tiếp theo. Cùng một câu hỏi nhưng cách đặt khác nhau cho kết quả hoàn toàn khác:
- Not OK: “Viết code” → chung chung, AI tự guess
- OK: “Viết hàm TypeScript kiểm tra email hợp lệ, dùng regex, trả về boolean” → rõ ràng
Prompt tốt = kết quả tốt. Prompt tồi = AI đoán mò.
Nguyên Tắc Vàng Khi Viết Prompt#
1. Be Specific — Càng Cụ Thể Càng Tốt#
| Tệ | Tốt |
|---|---|
| ”Sửa lỗi" | "File auth.ts line 23-45, hàm validateToken không xử lý expired token. Thêm check exp claim trước khi verify" |
| "Viết API" | "Viết REST API endpoint POST /users nhận JSON {name, email, password}, validate đầu vào, hash password bằng bcrypt, trả về 201 với user object (không kèm password)“ |
2. Provide Context — Cho AI Biết Bối Cảnh#
Dự án: Next.js 15, App Router, Prisma + SQLite
Viết: Server action cho chức năng đăng ký
Yêu cầu: validate email, kiểm tra trùng, hash password, gửi email welcomemarkdown3. Define Constraints — Ràng Buộc Đầu Ra#
- Dùng TypeScript, strict mode
- No any, no !, no @ts-ignore
- Throw custom AppError, không throw Error thường
- Coverage tối thiểu 90%plaintext4. One Shot — Cho Ví Dụ (Few-shot Prompting)#
Viết test cho hàm sau. Format theo ví dụ:
// Example test
test('adds 1 + 2 = 3', () => {
expect(add(1, 2)).toBe(3)
})
Hàm cần test:
export function divide(a: number, b: number): number {
if (b === 0) throw new Error('Cannot divide by zero')
return a / b
}txtCác Kỹ Thuật Prompt Nâng Cao#
Chain-of-Thought (CoT)#
Yêu cầu AI suy luận từng bước trước khi trả lời:
Hãy phân tích từng bước:
1. Xác định input và output
2. Liệt kê edge cases
3. Đề xuất giải pháp cho từng edge case
4. Viết code
Yêu cầu: Viết hàm xử lý upload file ảnh, kiểm tra định dạng và resizeplaintextRole Prompting#
Gán vai trò để AI điều chỉnh phong cách:
Bạn là senior software engineer đang review code của junior.
Chỉ ra vấn đề, giải thích tại sao, và đề xuất cải tiến.
Code:
[Paste code ở đây]txtSystem Prompt vs User Prompt#
Với các tool hỗ trợ system message (như OpenCode, Cursor):
System: Bạn là chuyên gia TypeScript. Luôn ưu tiên type safety.
User: Thêm validation cho form đăng nhậptxtPrompt Template#
Xây dựng template có thể tái sử dụng:
## Task
{tên task}
## Context
Dự án: {tên dự án}, stack: {stack}
File liên quan: {danh sách file}
## Requirements
- {yêu cầu 1}
- {yêu cầu 2}
## Constraints
- {ràng buộc 1}
- {ràng buộc 2}markdownLỗi Thường Gặp#
1. Prompt Quá Ngắn#
“Fix bug” → AI không biết fix gì, ở đâu. Luôn kèm error message, stack trace, file path.
2. Prompt Mâu Thuẫn#
“Viết nhanh nhưng phải tối ưu, dùng O(1), nhưng đừng dùng map dễ đọc hơn” → AI confused.
3. Không Kiểm Tra Kết Quả#
AI có thể tự tin trả lời sai. Luôn verify output, đặc biệt là code.
Prompt Cho Coding Agent (OpenCode, Cursor, Copilot)#
Các coding agent có khả năng đọc codebase và chạy lệnh. Prompt hiệu quả hơn khi tận dụng:
@functions/auth.ts: Thêm rate limiting vào hàm login.
Tham khảo cách triển khai trong @api/middleware.ts
Chạy test sau khi xong: npm run testtxt- @filename — Tham chiếu file cụ thể
- Yêu cầu chạy lệnh — AI có thể chạy terminal, bảo nó chạy test
- Lặp lại — Không ưng kết quả? Nói “làm lại, nhưng dùng zod thay vì joi”
Prompt Cho Code Review#
Bạn là senior developer. Review code này:
1. Tìm bug tiềm ẩn
2. Đề xuất cải thiện performance
3. Check type safety
4. Gợi ý refactor nếu cần
[Paste code]txtPrompt Cho Tạo Test#
Viết unit test cho các function trong file utils/helpers.ts
- coverage 100%
- Dùng vitest
- Mock external calls
- Include edge cases: empty string, null, undefinedtxtTổng Kết#
Prompt Engineering không phải “nói chuyện với AI” — nó là kỹ thuật truyền đạt yêu cầu có cấu trúc. Cũng giống như viết requirement cho developer, càng rõ ràng càng đỡ tốn thời gian sửa đi sửa lại.
Ba điều ghi nhớ:
- Cụ thể — Đừng bắt AI đoán ý bạn
- Context — Cho AI biết nó đang ở đâu, làm gì
- Iterate — Prompt lần 1 chưa tốt? Sửa và chạy lại
AI càng ngày càng thông minh, nhưng prompt vẫn là kỹ năng quyết định chất lượng đầu ra. Học cách nói chuyện với AI hôm nay để tiết kiệm hàng giờ làm việc ngày mai.