Giới thiệu

Một prompt không chỉ là một câu hỏi bạn gõ vào hộp trò chuyện. Nó là nguồn duy nhất chỉ dẫn cho LLM biết phải làm gì, làm như thế nào và ở định dạng nào để phản hồi. Khác với mã truyền thống nơi một compiler tuân thủ các quy tắc xác định, một LLM diễn giải prompt của bạn một cách xác suất — có nghĩa là chất lượng đầu ra phụ thuộc nhiều vào mức độ rõ ràng bạn truyền đạt ý định của mình.

Rõ ràng và Tính cụ thể

Prompt mơ hồ cho ra kết quả mơ hồ. Một yêu cầu như "viết điều gì đó về ứng dụng web" cho model quá nhiều tự do, và bạn sẽ nhận được đầu ra chung chung, thiếu tập trung. Một prompt cụ thể ràng buộc model và giảm sự mơ hồ.

python
prompt_vague = "Tell me about web apps"
prompt_specific = "List the top 3 security risks of a Node.js REST API that uses JWT authentication, each with a one-sentence mitigation."

Prompt thứ hai hoạt động vì nó xác định miền (Node.js REST API), thu hẹp chủ đề (rủi ro bảo mật với JWT), chỉ định số lượng (top 3), và yêu cầu một cấu trúc (mỗi biện pháp giảm thiểu trong một câu). Khi bạn loại bỏ sự mơ hồ, bạn loại bỏ việc phỏng đoán của mô hình.

Cấu trúc và Phân vai

LLMs phản hồi tốt với prompts có cấu trúc gán vai trò, định nghĩa nhiệm vụ, và đặt các ràng buộc. Mẫu phổ biến là: Role — Task — Context — Constraints — Output Format. Xếp chồng các lớp này theo thứ tự tạo ra các đầu ra có tính dự báo cao hơn so với một câu đơn nối liền.

javascript
const structuredPrompt = `
Role: You are a senior backend engineer reviewing code.
Task: Review the following Express.js route handler for bugs.
Context: This endpoint handles payment webhooks from Stripe.
Constraints: Focus only on error handling and idempotency. Do not suggest new dependencies.
Output Format: Return a numbered list of issues, each with a code fix.
`;

Việc thiết lập vai trò làm cho mô hình có một góc nhìn cụ thể. Các ràng buộc lọc bỏ lời khuyên không mong muốn. Định dạng đầu ra định hình phản hồi để bạn có thể phân tích được một cách lập trình — điều này rất quan trọng trong các quy trình agent nơi đầu ra của AI sẽ được đưa vào bước tiếp theo.

sơ đồ luồng cho cấu trúc prompt Role-Task-Context-Constraints-Format như một đường ống tuyến tính cung cấp đầu ra cho một LLM

Cách LLMs hiểu Instructions khác với Code như thế nào

Mã truyền thống được thực thi theo thứ tự từ trên xuống dưới với các quy tắc cú pháp nghiêm ngặt. Một LLM đọc toàn bộ prompt của bạn như một khối ngôn ngữ tự nhiên và dự đoán phần tiếp theo có xác suất cao nhất. Điều này có nghĩa là: thứ tự từ ngữ quan trọng, các ví dụ trong prompt của bạn ảnh hưởng mạnh đến phong cách output, và đặt các chỉ dẫn chính ở cuối một prompt dài có thể khiến chúng bị “mất” do sự lệch tập trung (attention drift).

python
# Bad: key instruction buried in the middle of noise
prompt_bad = "You can be creative. Try different tones. Oh and by the way, respond only in valid JSON."
# Good: key instruction placed last where attention is strongest
prompt_good = "You can be creative. Try different tones. Respond only in valid JSON."

Sự khác biệt tinh vi đối với con người, nhưng lại đáng kể đối với mô hình. Đây là lý do vì sao kỹ thuật prompt là một kỹ năng — bạn học cách dự đoán mô hình sẽ cân nhắc mỗi phần của input như thế nào.

Ví dụ thực tế: Từ Casual đến Production-Ready

Hình dung bạn đang xây dựng một AI agent tạo ra các quy tắc xác thực mẫu cho một thư viện dạng React form.

typescript
const casualPrompt = "Write validation for a login form.";
const productionPrompt = `
Task: Generate Yup validation schemas for a React login form.
Fields: email (required, valid format), password (required, min 8 chars, must contain 1 number).
Output: Return a single JavaScript code block exporting the schema object. No explanations.
`;

Prompt ở mức casual có thể trả về prose, HTML mẫu, hoặc một sơ đồ đang viết dở. Prompt ở mức production sẽ trả về đúng một khối mã có thể parse được để bạn đưa trực tiếp vào quá trình build của mình.

Những sai lầm phổ biến

Ba sai lầm xuất hiện lặp đi lặp lại trong prompts cho người mới bắt đầu. Thứ nhất, trộn nhiều nhiệm vụ không liên quan trong một prompt — hãy tách chúng ra hoặc mô hình sẽ ưu tiên một nhiệm vụ và bỏ qua các nhiệm vụ khác. Thứ hai, bỏ qua định dạng đầu ra — nếu không có nó, mô hình sẽ chọn một định dạng và bạn có thể không thể phân tích kết quả. Thứ ba, cho rằng mô hình nhớ hoàn hảo bối cảnh cuộc đối thoại trước đó trong các phiên làm việc dài — lặp lại các ràng buộc quan trọng ở mỗi prompt mới.

Tóm tắt

Những prompt hiệu quả cần rõ ràng, cụ thể và có cấu trúc. Chúng gán vai trò, nêu nhiệm vụ, cung cấp bối cảnh, áp dụng ràng buộc và xác định định dạng đầu ra. Hiểu cách LLMs diễn giải ngôn ngữ một cách xác suất — chứ không phải thực thi một cách deterministically — là sự chuyển đổi tư duy then chốt từ lập trình truyền thống. Ở bài học tiếp theo, chúng ta sẽ áp dụng nền tảng này để xây dựng các luồng công việc agent đa bước.

Bài kiểm tra cuối bài

1. Đâu là rủi ro chính khi viết một prompt mơ hồ như "Kể cho tôi về các ứng dụng web"?

2. Trong cấu trúc Role-Task-Context-Constraints-Format, mục đích của phần “Constraints” là gì?

3. Tại sao việc đặt một chỉ dẫn quan trọng ở cuối một prompt dài lại cải thiện độ tin cậy?

4. Điểm khác biệt chính giữa cách code và LLM xử lý hướng dẫn là gì?

5. Trong ví dụ xác thực biểu mẫu đăng nhập, tại sao việc chỉ định "Return a single JavaScript code block exporting the schema object. No explanations." lại quan trọng?

6. Which is NOT one of the three common beginner mistakes mentioned in the lesson?

7. What is the recommended fix when a model's output mixes prose with code and is hard to parse programmatically?