- Prompt engineering là kỹ năng thiết kế đầu vào cho mô hình AI để có kết quả đúng ý, đo được và ổn định.
- Trước khi sửa prompt, Anthropic yêu cầu có sẵn thước đo thành công và cách đo; OpenAI muốn prompt nằm trong code của ứng dụng, có kiểm thử đi kèm.
- Tức là viết prompt gắn chặt với kỹ thuật phần mềm và đánh giá. Người chỉ biết "viết câu lệnh hay" mà không đo được kết quả khó làm việc này một cách chuyên nghiệp.
- Với sinh viên: học viết prompt như một kỹ năng nền, đi kèm Python, gọi API và đánh giá; đó là bộ kỹ năng của AI Engineer.
Bài này dựa trên tài liệu prompt của Anthropic, OpenAI và Google, đọc ngày 11/11/2026. Bài không đưa số liệu lương hay số tin tuyển dụng cho chức danh "prompt engineer", vì không tìm được khảo sát gốc có nhóm người trả lời rõ ràng cho chức danh này; con số trên các trang tổng hợp thường không ghi nguồn.
Prompt engineering là gì
Khi dùng một mô hình ngôn ngữ, mọi thứ bạn muốn nó làm đều phải nói qua văn bản: nhiệm vụ, bối cảnh, ví dụ, ràng buộc, định dạng đầu ra. Prompt engineering là việc thiết kế phần văn bản đó sao cho mô hình làm đúng việc, đều đặn, với chi phí hợp lý. Ba hãng lớn đều khuyên những điều tương tự: nói thẳng việc cần làm, cho mô hình biết bối cảnh, minh họa bằng ví dụ, chia prompt thành các phần có ranh giới rõ, và chốt hình dạng của câu trả lời (xem tổng hợp trong bài tài liệu chính thức của các hãng AI).
Trang Prompting best practices của Anthropic gợi ý một cách tự kiểm: hình dung một người mới vào nhóm, chưa biết gì về việc này, cầm prompt của bạn lên làm; chỗ nào họ phải đoán thì mô hình cũng phải đoán. Viết prompt tốt trước hết là viết rõ ràng.
Tài liệu các hãng đặt prompt ở đâu trong quy trình
Điều đáng chú ý là không hãng nào mô tả prompt engineering như một việc tách rời. Trang tổng quan về prompt engineering của Anthropic mở đầu bằng điều kiện tiên quyết: người đọc cần biết thế nào là thành công, cần có cách đo điều đó bằng thực nghiệm, và cần có sẵn một bản nháp prompt để cải thiện. Trang còn nhắc rằng có những mục tiêu, như tốc độ phản hồi hay giá thành, mà đổi sang mô hình khác hiệu quả hơn là sửa câu chữ.
Phía OpenAI, hướng dẫn prompt engineering coi prompt của sản phẩm là một phần mã nguồn: đặt trong code ứng dụng, đi qua review, có kiểm thử, triển khai cùng phần còn lại. Hướng dẫn cũng khuyên cố định phiên bản mô hình và giữ một bộ bài đo để thấy hành vi đổi ra sao mỗi lần sửa prompt hay lên mô hình mới.
Trang Prompt design strategies của Google thì nhấn mạnh việc lặp lại: khi kết quả chưa đạt, diễn đạt lại, đổi sang một tác vụ tương đương, hoặc đổi thứ tự nội dung trong prompt.
Ghép ba tài liệu lại, công việc với prompt trông như một vòng lặp kỹ thuật: đặt tiêu chí, làm bộ câu hỏi mẫu, thử, đo, sửa, đo lại, và quản lý phiên bản. Đó là lý do bài này cho rằng prompt engineering là kỹ năng của những người xây sản phẩm AI, hơn là một nghề đứng riêng.
Thấy bằng số: hai phiên bản prompt
Đoạn Python dưới đây so hai phiên bản prompt cho bài toán phân loại phản hồi của học viên thành "khen", "chê" hoặc "hỏi", trên tám câu mẫu. Đầu ra của mô hình được ghi sẵn (số liệu giả định) để chương trình chạy không cần mạng; khi làm thật, bạn thay phần đó bằng lời gọi API và giữ nguyên phần chấm điểm.
"""So hai phiên bản prompt bằng một bộ câu hỏi mẫu, thay vì so bằng cảm giác.
Bài toán giả định: phân loại phản hồi của học viên thành "khen", "chê" hoặc "hỏi".
Đầu ra của mô hình cho từng phiên bản prompt được ghi sẵn (số liệu giả định) để chương trình chạy không cần mạng;
khi làm thật, thay bằng hàm gọi API rồi giữ nguyên phần chấm điểm.
"""
BO_MAU = [ # (phản hồi, nhãn đúng)
("Bài giảng rất dễ hiểu", "khen"),
("Video bị mất tiếng ở phút 12", "chê"),
("Khi nào có bài tập tuần 3?", "hỏi"),
("Thầy giải thích hơi nhanh", "chê"),
("Cho em hỏi nộp bài ở đâu", "hỏi"),
("Cảm ơn, phần ví dụ rất hay", "khen"),
("Không hiểu sao code không chạy, giúp em với", "hỏi"),
("Tạm được", "chê"),
]
# Đầu ra ghi lại khi chạy hai phiên bản prompt (giả định).
DAU_RA = {
"v1: chỉ có câu lệnh": ["Khen", "chê", "câu hỏi", "chê", "hỏi", "khen.", "chê", "trung lập"],
"v2: thêm định nghĩa nhãn, ví dụ, chỉ trả về một từ": ["khen", "chê", "hỏi", "chê", "hỏi", "khen", "hỏi", "chê"],
}
NHAN = {"khen", "chê", "hỏi"}
def chuan(ra):
return ra.strip().strip(".").lower()
def cham(dau_ra):
dung, sai_dinh_dang, sai = 0, [], []
for (phan_hoi, nhan), ra in zip(BO_MAU, dau_ra):
if ra not in NHAN: # chấm chặt: đầu ra phải đúng định dạng đã yêu cầu
sai_dinh_dang.append(ra)
elif ra == nhan:
dung += 1
else:
sai.append(phan_hoi)
return dung, sai_dinh_dang, sai
def chay_thu():
dong = []
for ten, ra in DAU_RA.items():
dung, sdd, sai = cham(ra)
dong.append(f"{ten}: đúng {dung}/{len(BO_MAU)}, sai định dạng {len(sdd)}, sai nhãn {len(sai)}")
if sdd:
dong.append(" đầu ra sai định dạng: " + ", ".join(repr(x) for x in sdd))
if sai:
dong.append(" phân loại sai: " + ", ".join(repr(x) for x in sai))
dung_long, *_ = cham([chuan(x) for x in DAU_RA["v1: chỉ có câu lệnh"]])
dong.append(f"Nếu chấm lỏng (bỏ chữ hoa, dấu chấm), v1 đạt {dung_long}/{len(BO_MAU)}")
print("\n".join(dong))
return dong
if __name__ == "__main__":
chay_thu()
Phiên bản 1 chỉ có câu lệnh "phân loại phản hồi này" và đúng 3/8: bốn đầu ra sai định dạng ("Khen" viết hoa, "khen." có dấu chấm, "câu hỏi" thay vì "hỏi", và "trung lập" là nhãn không có trong danh sách), một câu phân loại sai. Phiên bản 2 thêm định nghĩa từng nhãn, vài ví dụ, và yêu cầu chỉ trả về đúng một từ trong ba nhãn; kết quả đúng 8/8. Dòng cuối cho thấy một bẫy của việc đo: nếu chấm lỏng (bỏ chữ hoa và dấu chấm), phiên bản 1 lên 5/8, trông khá hơn thực tế; nhưng chương trình phía sau đọc nhãn sẽ vẫn hỏng với các đầu ra đó. Cách chấm phải giống cách sản phẩm dùng đầu ra.
Đây là phần việc thật của người làm prompt: không phải tìm "câu thần chú", mà là đặt định nghĩa rõ, cho ví dụ, chốt định dạng, và đo trên đủ nhiều câu mẫu. Cách làm bộ đánh giá kỹ hơn có trong bài đánh giá câu trả lời của AI.
Vậy có phải nghề thật không
Có những vị trí mà phần lớn công việc là thiết kế và đánh giá prompt, nhất là ở các nhóm làm sản phẩm AI lớn. Nhưng nhìn vào cách tài liệu các hãng mô tả công việc, người làm tốt việc này cần nhiều hơn khả năng viết: họ phải hiểu bài toán của người dùng, xây bộ đánh giá, đọc số liệu, làm việc với code và API, và biết khi nào vấn đề không nằm ở prompt mà ở dữ liệu, ở mô hình hay ở thiết kế hệ thống. Bộ kỹ năng đó trùng phần lớn với AI Engineer (xem AI Engineer làm gì).
Một lý do nữa để không đặt cược vào chức danh riêng: mô hình ngày càng tốt hơn trong việc hiểu chỉ dẫn bình thường, nên phần "mẹo" của prompt engineering giảm dần, còn phần "viết rõ, đo đúng" thì vẫn cần. Trang Prompting best practices của Anthropic có hẳn mục hướng dẫn chuyển prompt sang mô hình mới, nghĩa là cách viết prompt thay đổi theo mô hình; người hiểu nguyên lý và biết đo thì thích nghi được, người chỉ thuộc mẹo thì không.
Với sinh viên, lời khuyên thực tế là: học viết prompt như một kỹ năng nền, giống viết email hay viết tài liệu kỹ thuật, và gắn nó với Python, gọi API, đánh giá. Khi đi phỏng vấn, một dự án có bộ đánh giá cho thấy prompt phiên bản sau tốt hơn phiên bản trước bao nhiêu phần trăm có sức nặng hơn nhiều so với một danh sách "100 prompt hay".
Học viết prompt thế nào
Bắt đầu bằng tài liệu chính thức của hãng mô hình bạn dùng; với Claude là trang tổng quan và trang Prompting best practices, cùng bài hướng dẫn tương tác trên GitHub mà trang tổng quan dẫn tới. Sau đó tự làm một vòng hoàn chỉnh trên một bài toán nhỏ của bạn: viết tiêu chí thành công, làm 20 đến 50 câu mẫu có đáp án, viết bản prompt đầu tiên, chạy, chấm, sửa một chỗ mỗi lần, chấm lại, và lưu từng phiên bản trong git. Cuối cùng, ghép prompt vào một ứng dụng nhỏ có gọi API thật; lúc đó bạn sẽ gặp các vấn đề thật như định dạng đầu ra, chi phí token và câu hỏi ngoài phạm vi.
Hãy để ý ba thói quen tách người viết prompt nghiệp dư với người làm chuyên nghiệp: luôn có bộ câu mẫu trước khi sửa prompt; mỗi lần chỉ đổi một thứ; và chấm theo đúng cách sản phẩm dùng đầu ra.
- Tin vào danh sách "prompt thần thánh" mà không đo trên bài toán của mình.
- Sửa prompt nhiều chỗ cùng lúc, đến khi kết quả đổi thì không lần ra nguyên nhân.
- Chấm lỏng tay, trong khi chương trình đọc đầu ra cần đúng định dạng.
- Đổ lỗi cho câu chữ trong khi gốc rễ nằm ở dữ liệu hay ở việc chọn mô hình.
- Ghi "Prompt Engineer" trong CV mà không có dự án nào có số đo.
Câu hỏi thường gặp
Không biết lập trình có làm prompt engineering được không?
Dùng AI tốt trong công việc hằng ngày thì không cần lập trình. Nhưng làm prompt cho sản phẩm (chạy hàng nghìn lần, có bộ đánh giá, gắn vào ứng dụng) thì cần Python và hiểu API ở mức cơ bản.
Prompt viết cho mô hình này có dùng cho mô hình khác được không?
Nguyên tắc chung dùng được, chi tiết thì khác. Khi đổi mô hình, chạy lại bộ đánh giá; tài liệu các hãng đều nói hành vi có thể đổi giữa các phiên bản.
Có chứng chỉ prompt engineering nào đáng học không?
Tài liệu và bài hướng dẫn chính thức của các hãng đều miễn phí và cập nhật nhất. Một dự án có số đo rõ ràng trên GitHub thường thuyết phục hơn chứng chỉ.
Kỹ năng viết prompt có giúp gì khi học lập trình không?
Có: giúp bạn hỏi AI rõ ràng hơn khi gặp lỗi, và giúp bạn mô tả yêu cầu rõ ràng hơn nói chung. Nhưng khi học, hãy dùng AI để hỏi và giải thích, không để nó làm hộ bài.
Học tiếp
- Đọc tài liệu gốc về prompt của ba hãng: tài liệu chính thức của các hãng AI.
- Bộ kỹ năng đầy đủ khi làm sản phẩm AI: AI Engineer làm gì.
- Làm bộ đánh giá cho prompt của bạn: đánh giá câu trả lời của AI.
Nếu bạn muốn học Python và AI bài bản cùng giảng viên, tham khảo khóa học AI của Big-O Coding.
Khóa AI – Introduction to Machine Learning: nền tảng Máy học từ thuật toán cơ bản đến Neural Networks và LLM, học bằng Python. Học thử buổi 1 miễn phí.


