blog.dopana

Back

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 welcome
markdown

3. 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%
plaintext

4. 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
}
txt

Cá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à resize
plaintext

Role 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]
txt

System 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ập
txt

Prompt Template#

Xây dựng template có thể tái sử dụng:

Lỗ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 test
txt
  • @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]
txt

Prompt 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, undefined
txt

Tổ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ớ:

  1. Cụ thể — Đừng bắt AI đoán ý bạn
  2. Context — Cho AI biết nó đang ở đâu, làm gì
  3. 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.

Tài liệu tham khảo#