Claude Certification Guide
0% chương trình học đã hoàn thành
4.1

System Prompt với tiêu chí rõ ràng

Những điều bạn cần biết

Sai lầm lớn nhất trong prompt engineering ở môi trường production là dựa vào những chỉ dẫn mơ hồ. Các cụm từ như "hãy thận trọng", "chỉ báo cáo những phát hiện có độ tin cậy cao" hay "hãy dùng phán đoán tốt nhất của bạn" không đưa ra cho model bất kỳ ranh giới quyết định nào có thể hành động được. Chúng nghe có vẻ hợp lý — và chính vì vậy đề thi hay dùng chúng làm phương án gây nhiễu.

Cách tiếp cận đúng là dùng tiêu chí phân loại rõ ràng (explicit categorical criteria), xác định chính xác model nên gắn cờ điều gì và bỏ qua điều gì. So sánh hai system prompt sau đây cho một pipeline review code trong CI/CD:

Cách tiếp cận sai:

Review this code. Be conservative. Only report high-confidence findings.

Cách tiếp cận đúng:

Flag comments only when claimed behaviour contradicts actual code behaviour. Report bugs and security vulnerabilities. Skip minor style preferences and local patterns.

Prompt đầu tiên không cho model bất kỳ tiêu chí nào để áp dụng. "Thận trọng" mang nghĩa khác nhau tùy ngữ cảnh, còn "độ tin cậy cao" là một ngưỡng chủ quan mà model không thể tự hiệu chỉnh. Prompt thứ hai cung cấp các hạng mục cụ thể: cái gì cần báo cáo (bug, lỗ hổng bảo mật), cái gì cần bỏ qua (style, các quy ước cục bộ), và một điều kiện kích hoạt rõ ràng cho việc gắn cờ comment (mâu thuẫn giữa hành vi được khai báo và hành vi thực tế của code).

Vấn đề niềm tin bị đánh sập bởi dương tính giả

Tỷ lệ dương tính giả (false positive) cao ở một hạng mục sẽ phá hủy niềm tin của developer vào tất cả các hạng mục khác. Đây là một insight then chốt mà đề thi kiểm tra. Nếu những phát hiện "documentation mismatch" của bạn sai đến 40% số lần, developer sẽ ngừng đọc cả những phát hiện "lỗ hổng bảo mật" — dù những phát hiện đó chính xác tới 98%. Niềm tin không giới hạn ở từng hạng mục riêng lẻ; nó lan ra toàn bộ output.

Cách khắc phục nghe có vẻ phản trực giác nhưng lại hiệu quả: tạm thời tắt các hạng mục có tỷ lệ dương tính giả cao trong lúc bạn cải thiện prompt cho những hạng mục đó. Điều này lập tức khôi phục niềm tin vào các hạng mục đang hoạt động tốt. Sau đó bạn lặp lại quá trình tinh chỉnh tiêu chí của hạng mục có vấn đề bằng các ví dụ code cụ thể, và chỉ bật lại nó khi độ chính xác đã được cải thiện.

Đây không phải là từ bỏ hạng mục đó — mà là ưu tiên niềm tin của toàn hệ thống hơn là sự đầy đủ của từng hạng mục.

Hiệu chỉnh mức độ nghiêm trọng bằng ví dụ code

Việc định nghĩa các mức độ nghiêm trọng (severity) đòi hỏi ví dụ code cụ thể, chứ không phải mô tả bằng văn xuôi. So sánh:

Mô tả bằng văn xuôi (không đủ):

Critical: Issues that could cause system failures or data loss Minor: Issues that affect code readability but not functionality

Cách tiếp cận bằng ví dụ code (đúng):

Critical — Unsanitised user input in SQL query: query = f"SELECT * FROM users WHERE id = {user_input}" Minor — Inconsistent variable naming: userName vs user_name in the same module

Mô tả bằng văn xuôi buộc model phải tự diễn giải "có thể gây ra lỗi hệ thống" nghĩa là gì. Ví dụ code loại bỏ hoàn toàn sự mơ hồ đó. Khi model nhìn thấy các mẫu code thực tế đã được phân loại ở từng mức độ nghiêm trọng, nó sẽ đưa ra phân loại nhất quán qua các lần gọi khác nhau.

Khái niệm chính

Tiêu chí phân loại rõ ràng luôn vượt trội hơn các chỉ dẫn mơ hồ. Hãy định nghĩa cái gì cần gắn cờ (bug, lỗ hổng bảo mật) và cái gì cần bỏ qua (sở thích về style, quy ước cục bộ) bằng các ví dụ code cụ thể cho từng mức độ nghiêm trọng. Đừng bao giờ dựa vào "hãy thận trọng" hay việc lọc theo độ tin cậy.

Tại sao lọc theo độ tin cậy lại thất bại

Đề thi thường xuyên đưa ra "chỉ báo cáo những phát hiện có độ tin cậy cao" như một đáp án gây hấp dẫn. Nghe có vẻ như kỹ thuật tốt — lọc theo độ tin cậy, chỉ giữ lại những tín hiệu mạnh. Nhưng độ tin cậy do chính LLM tự báo cáo lại được hiệu chỉnh rất kém. Model thường tự tin cao độ vào những phát hiện sai, trong khi lại không chắc chắn về những phát hiện đúng. Điểm tin cậy có ích cho việc định tuyến (gửi những phát hiện có độ tin cậy thấp cho con người review, như đã trình bày ở Task Statement 4.6), nhưng chúng không thể thay thế cho các tiêu chí rõ ràng xác định ngay từ đầu thế nào là một phát hiện hợp lệ.

Thứ tự ưu tiên là: tiêu chí rõ ràng trước, định tuyến theo độ tin cậy sau. Đừng bao giờ bỏ qua bước đầu tiên.

Bẫy thi

Bẫy thi: Chọn 'hãy thận trọng' hoặc 'chỉ báo cáo phát hiện có độ tin cậy cao' làm cách cải thiện prompt hợp lệ

Chỉ dẫn mơ hồ không cải thiện độ chính xác. Model không có cách diễn giải khả thi nào cho từ "thận trọng". Các tiêu chí phân loại cụ thể, xác định chính xác cái gì cần gắn cờ và cái gì cần bỏ qua, mới là cách tiếp cận đúng.

Bẫy thi: Cho rằng ngưỡng độ tin cậy giải quyết được vấn đề dương tính giả

Độ tin cậy do LLM tự báo cáo được hiệu chỉnh rất kém. Tiêu chí rõ ràng kèm ví dụ code cụ thể cho kết quả tốt hơn việc lọc theo độ tin cậy. Định tuyến theo độ tin cậy có ích, nhưng chỉ sau khi tiêu chí đã được xác định.

Bẫy thi: Giữ tất cả các hạng mục review đang hoạt động trong khi vẫn đang lặp lại cải thiện các hạng mục có tỷ lệ dương tính giả cao

Tỷ lệ dương tính giả cao ở một hạng mục phá hủy niềm tin vào TẤT CẢ các hạng mục. Tạm thời tắt các hạng mục có vấn đề trong khi cải thiện prompt của chúng sẽ khôi phục niềm tin của toàn hệ thống.

Tình huống luyện tập

Không tìm thấy câu hỏi luyện tập "q-4-1-001".

Bài tập thực hành

Xây dựng một prompt review code với tiêu chí rõ ràng

Bạn sẽ học được gì

  • Hiểu tại sao các chỉ dẫn mơ hồ (hãy thận trọng, chỉ báo cáo độ tin cậy cao) thất bại trong prompt ở môi trường production
  • Thiết kế tiêu chí phân loại rõ ràng xác định cái gì cần gắn cờ và cái gì cần bỏ qua
  • Hiệu chỉnh các mức độ nghiêm trọng bằng ví dụ code cụ thể thay vì mô tả văn xuôi
  • Đo tỷ lệ dương tính giả và áp dụng chiến lược khôi phục niềm tin bằng cách tắt các hạng mục có vấn đề
  • Nhận diện thứ tự ưu tiên: tiêu chí rõ ràng trước, định tuyến theo độ tin cậy sau

Các bước

Vì sao: Thiết lập một baseline với các chỉ dẫn mơ hồ giúp minh họa vấn đề dương tính giả mà đề thi kiểm tra. Bạn cần bằng chứng thực nghiệm rằng các cụm từ như hãy thận trọng không cho model bất kỳ ranh giới quyết định nào có thể hành động.

Bạn sẽ thấy: Phân loại không nhất quán qua 5 đoạn code: một số điểm nhặt sạn về style bị gắn cờ là nghiêm trọng, một số bug thật sự bị bỏ sót hoặc gắn nhãn nhẹ, và kết quả khác nhau nếu bạn chạy lại cùng những đoạn code đó lần thứ hai.

Vì sao: Tiêu chí phân loại rõ ràng là cách tiếp cận đúng được kiểm tra trong đề thi. Bước này minh họa rằng các hạng mục cụ thể loại bỏ sự mơ hồ vốn là nguyên nhân gây ra dương tính giả.

Bạn sẽ thấy: Prompt được viết lại có các hạng mục rõ ràng: báo cáo bug và lỗ hổng bảo mật, bỏ qua sở thích về style và quy ước cục bộ, chỉ gắn cờ comment khi hành vi được khai báo mâu thuẫn với hành vi thực tế của code.

Vì sao: Đề thi kiểm tra cụ thể việc các ví dụ code vượt trội hơn mô tả văn xuôi trong việc hiệu chỉnh mức độ nghiêm trọng. Văn xuôi kiểu vấn đề có thể gây ra lỗi hệ thống buộc model phải tự diễn giải, trong khi ví dụ code loại bỏ hoàn toàn sự mơ hồ.

Bạn sẽ thấy: Prompt của bạn giờ chứa ít nhất một đoạn code cho mỗi mức độ nghiêm trọng, mỗi đoạn thể hiện mẫu thực tế xác định mức độ nghiêm trọng đó, chứ không phải một mô tả văn xuôi về ý nghĩa của mức độ đó.

Vì sao: Định lượng mức độ cải thiện giúp xác nhận tính đúng đắn của cách tiếp cận tiêu chí rõ ràng và xây dựng kỹ năng đánh giá mà đề thi yêu cầu. Bạn cần có khả năng giải thích tại sao cách tiếp cận này vượt trội hơn cách kia dựa trên dữ liệu, chứ không phải trực giác.

Bạn sẽ thấy: Sự giảm rõ rệt về dương tính giả với phiên bản dùng tiêu chí rõ ràng. Prompt mơ hồ nên cho mức độ không nhất quán khoảng 30-50%, trong khi phiên bản tiêu chí rõ ràng nên dưới 15%. Kết quả phân loại nên ổn định qua các lần chạy lặp lại.

Vì sao: Chiến lược khôi phục niềm tin là một khái niệm then chốt trong đề thi: tỷ lệ dương tính giả cao ở một hạng mục phá hủy niềm tin của developer vào TẤT CẢ các hạng mục. Việc tắt các hạng mục có vấn đề khôi phục niềm tin của toàn hệ thống trong khi bạn tiếp tục lặp lại tinh chỉnh tiêu chí của chúng.

Bạn sẽ thấy: Một tài liệu liệt kê những hạng mục nào vượt ngưỡng 25%, những tinh chỉnh tiêu chí cụ thể nào cần thiết (ví dụ: thêm ví dụ code cho các trường hợp biên), và một kế hoạch bật lại kèm tỷ lệ dương tính giả mục tiêu.

Nguồn tham khảo