Các bài trong khoáBài 19/30

30 bài

Domain 4: Prompt Engineering & Structured Output·Task 4.1

Viết prompt có tiêu chí rõ ràng để bớt báo sai

Vì sao dặn "chỉ báo khi chắc chắn" không làm review chính xác hơn, cách viết tiêu chí cụ thể cho cái cần báo và cái bỏ qua, và cách giữ lòng tin của dev.

  • 6 phút đọc
  • Đối chiếu docs 02/11/2026
  • 2 nguồn

Đọc xong bạn nắm được

  • Thay lời dặn chung chung bằng tiêu chí cụ thể về cái cần báo và cái bỏ qua
  • Hiểu vì sao "chỉ báo khi chắc chắn" không làm giảm báo sai
  • Hiểu báo sai nhiều ở một loại lỗi làm dev mất lòng tin vào cả hệ thống
  • Tạm tắt loại lỗi hay báo sai trong lúc sửa prompt cho loại đó
  • Định nghĩa mức nghiêm trọng kèm ví dụ code cho từng mức

Bạn dựng một bot review code, và sau vài tuần dev bắt đầu bỏ qua mọi comment của nó vì quá nhiều comment vô nghĩa. Phản xạ đầu tiên thường là thêm vào prompt "chỉ báo những lỗi bạn chắc chắn". Cách đó hầu như không giúp được gì.

Bài này giúp bạn trả lời: viết prompt thế nào để Claude báo đúng cái cần báo, bỏ qua cái nên bỏ qua?

Ví dụ xuyên suốt: bot review code của một nền tảng tuyển dụng

Nhóm bạn làm nền tảng tuyển dụng: nhà tuyển dụng đăng tin, ứng viên nộp CV. Bot review mọi PR với prompt:

Review đoạn code sau. Kiểm tra comment trong code có chính xác không,
tìm lỗi bảo mật, và góp ý chất lượng code. Hãy thận trọng.

Sau một tháng:

  1. Bot hay báo "comment chưa chính xác" cho những comment chỉ viết hơi ngắn, trong khi code vẫn đúng như comment nói.
  2. Nó góp ý đổi tên biến, đổi cách viết vòng lặp theo sở thích, trái với quy ước nhóm đã thống nhất.
  3. Dev bắt đầu bấm "bỏ qua" mọi comment, kể cả comment báo một lỗ hổng để lộ CV của ứng viên.
  4. Cùng một kiểu lỗi, lúc bot xếp "nghiêm trọng", lúc xếp "nhẹ".

Tiêu chí cụ thể thay cho lời dặn chung chung

"Kiểm tra comment có chính xác không" để Claude tự hiểu thế nào là chính xác. Comment ngắn, comment thiếu chi tiết, comment viết vụng đều có thể bị coi là "không chính xác". Tiêu chí rõ ràng (explicit criteria) như "chỉ báo khi điều comment nói trái với điều code thật sự làm" hiệu quả hơn hẳn lời dặn mơ hồ như "kiểm tra comment có chính xác không".

Tài liệu prompt của Anthropic cũng khuyên: hãy coi Claude như một nhân viên mới rất giỏi nhưng chưa biết quy ước của nhóm; bạn giải thích càng cụ thể, kết quả càng tốt. Kèm lý do cho mỗi yêu cầu cũng giúp Claude hiểu mục tiêu và áp dụng đúng hơn.

Viết lại prompt, nói rõ báo gì và bỏ qua gì:

Báo:
- Lỗi logic làm sai kết quả (ví dụ lọc sai ứng viên theo điều kiện).
- Lỗi bảo mật: lộ dữ liệu cá nhân, thiếu kiểm quyền, SQL ghép chuỗi.
- Comment nói một điều mà code làm điều khác.
Không báo:
- Cách đặt tên, cách viết vòng lặp, độ dài hàm.
- Những mẫu code nhóm đang dùng chung trong repo, dù bạn thấy có cách hay hơn.
- Comment ngắn hoặc thiếu chi tiết nhưng không sai.

Vì sao "hãy thận trọng" không giúp được

Những lời dặn như "hãy thận trọng" (be conservative) hay "chỉ báo lỗi bạn rất chắc chắn" (only report high-confidence findings) nghe như sẽ giảm báo sai. Thực tế chúng không làm review chính xác hơn, còn tiêu chí cụ thể theo từng loại lỗi thì có.

Lý do: lời dặn đó không cho Claude biết cái gì là lỗi đáng báo. Claude vẫn coi việc đổi tên biến là vấn đề, chỉ là bớt nói ra. Bạn mất cả lỗi thật lẫn lỗi vặt, chứ không lọc riêng được lỗi vặt. Tiêu chí theo loại lỗi thì cắt đúng chỗ: góp ý đặt tên bị loại hẳn, lỗi bảo mật vẫn được báo đủ.

Báo sai làm mất lòng tin vào cả hệ thống

Vấn đề 3 là hậu quả nguy hiểm nhất. Dev không đọc từng comment rồi đánh giá riêng. Khi thấy phần lớn comment về đặt tên là vô nghĩa, họ kết luận "bot này nói nhảm" và bỏ qua luôn comment về lỗ hổng bảo mật, dù loại comment đó vẫn chính xác.

Đây là ảnh hưởng của tỉ lệ báo sai (false positive rate) tới lòng tin của dev: một loại lỗi báo sai nhiều làm dev mất tin cả những loại đang báo đúng.

Cách xử lý: tạm tắt những loại hay báo sai (ở ví dụ là góp ý chất lượng code và kiểm comment), chỉ giữ lại loại đang báo đúng (lỗi bảo mật, lỗi logic). Trong lúc đó bạn sửa prompt cho các loại bị tắt, thử lại, rồi mới bật lại khi chúng đã đủ chính xác.

Mức nghiêm trọng kèm ví dụ code

Vấn đề 4: bot xếp mức nghiêm trọng mỗi lần một kiểu vì "nghiêm trọng" là chữ ai hiểu cũng khác. Cách sửa là định nghĩa từng mức bằng tiêu chí, và kèm một ví dụ code cụ thể cho mỗi mức:

MứcTiêu chíVí dụ code
Nghiêm trọngLộ dữ liệu cá nhân hoặc cho người không có quyền thao tácAPI trả CV ứng viên mà không kiểm người gọi có phải nhà tuyển dụng của tin đó
CaoSai kết quả nghiệp vụ, không lộ dữ liệuLọc "kinh nghiệm từ 3 năm" bằng > thay vì >=, bỏ sót ứng viên đúng 3 năm
Trung bìnhCó thể gây lỗi trong trường hợp hiếmKhông xử lý khi CV tải lên là file rỗng

Có ví dụ code, Claude so một lỗi mới với các mẫu này thay vì tự đoán, nên lần nào cũng xếp giống nhau.

Nguồn

  1. Exam Guide CCAR-F v1.0, Task Statement 4.1(mở tab mới)
  2. Prompting best practices (Claude API)(mở tab mới)

Nắm rồi thì thử sức với đề

Xem khoá luyện thi
Viết prompt có tiêu chí rõ ràng để bớt báo sai · Anthropic Exam Pro