Mở đầu — vì sao bài này quan trọng
Hãy tưởng tượng bạn vừa được cấp một nhân viên mới cực kỳ thông minh, đọc nhanh, viết giỏi, biết gần như mọi lĩnh vực — nhưng người này chỉ làm đúng những gì bạn nói ra thành lời, không tự đoán ý, và không nhớ gì về công ty bạn trừ khi bạn kể. Đó chính xác là cách một mô hình ngôn ngữ lớn (LLM) như ChatGPT, Claude hay Gemini hoạt động. Chất lượng đầu ra bạn nhận được gần như phụ thuộc hoàn toàn vào chất lượng "lời dặn" bạn đưa vào — tức là prompt.
Rất nhiều người dùng AI trong công việc than phiền: "AI trả lời chung chung", "AI không hiểu ý tôi", "AI viết dở". Nhưng trong 90% trường hợp tôi quan sát được ở các doanh nghiệp Việt Nam, vấn đề không nằm ở mô hình — nó nằm ở prompt. Cùng một mô hình Claude hay GPT, một người viết prompt lỏng lẻo nhận về đoạn văn nhạt nhẽo, còn một người viết prompt có cấu trúc nhận về bản nháp gần như dùng được ngay. Sự khác biệt đó không phải năng khiếu, mà là kỹ năng học được.
Bài này là nền móng của cả khóa học. Trước khi bạn học zero-shot, few-shot, chain-of-thought hay xây workflow phức tạp ở các bài sau, bạn phải hiểu tường tận: prompt thực chất là gì, tại sao nó lại quyết định đầu ra, và một prompt tốt được cấu tạo từ những thành phần nào (anatomy). Nắm được "giải phẫu" này, bạn sẽ không còn viết prompt theo cảm tính, mà biết chính xác mình đang thiếu bộ phận nào khi kết quả chưa như ý.
Khái niệm cốt lõi
Prompt là gì?
Nói ngắn gọn: prompt là toàn bộ đoạn văn bản (câu lệnh) bạn gửi vào LLM để yêu cầu nó tạo ra một kết quả. Nó có thể là một câu hỏi ("Thủ đô Việt Nam là gì?"), một mệnh lệnh ("Viết email xin lỗi khách hàng"), hay cả một đoạn dài kèm dữ liệu, ví dụ, quy tắc và định dạng mong muốn.
Điểm quan trọng cần khắc cốt ghi tâm: với LLM, prompt là gần như tất cả những gì mô hình biết về nhiệm vụ của bạn tại thời điểm đó. Nó không đọc được suy nghĩ trong đầu bạn, không biết bối cảnh công ty bạn, không nhớ cuộc trò chuyện tuần trước (trừ khi bạn đưa lại vào). Cái gì không có trong prompt thì coi như không tồn tại với mô hình.
Vì sao prompt quyết định đầu ra: LLM là một "next-token predictor"
Để viết prompt tốt, bạn cần hiểu cơ chế bên dưới. Một LLM về bản chất là một cỗ máy dự đoán token tiếp theo (next-token predictor). "Token" là đơn vị nhỏ của văn bản — có thể là một từ, một phần của từ, hay một dấu câu. Ví dụ câu "Tôi yêu Hà Nội" có thể được cắt thành các token: "Tôi", " yêu", " Hà", " Nội".
Mô hình làm đúng một việc lặp đi lặp lại: nhìn vào toàn bộ chuỗi token hiện có (chính là prompt của bạn cộng với những gì nó đã sinh ra), rồi tính xác suất cho token tiếp theo và chọn ra token khả dĩ nhất. Sinh xong token đó, nó lại nối vào chuỗi và tiếp tục dự đoán token kế tiếp — cứ thế cho đến khi hoàn thành câu trả lời.
Hệ quả cực kỳ thực tế của cơ chế này:
- Prompt định hình "không gian xác suất" của câu trả lời. Khi bạn viết "Viết một đoạn giới thiệu công ty", mô hình có hàng triệu hướng để đi. Khi bạn viết "Viết đoạn giới thiệu 50 từ cho công ty giao đồ ăn tại TP.HCM, giọng thân thiện, nhấn mạnh giao trong 20 phút", bạn đã thu hẹp không gian đó lại rất nhiều, và token được sinh ra sẽ bám sát ý bạn.
- Mô hình không "hiểu" theo nghĩa con người — nó khớp mẫu (pattern matching) ở quy mô khổng lồ. Vì vậy prompt càng cung cấp đúng "mẫu" và ngữ cảnh, đầu ra càng đúng hướng.
- Mơ hồ vào thì mơ hồ ra. Nếu prompt thiếu thông tin, mô hình sẽ tự "điền vào chỗ trống" bằng những gì phổ biến nhất trong dữ liệu huấn luyện — và đó thường không phải cái bạn muốn.
Anatomy — 6 thành phần của một prompt tốt
Một prompt chất lượng thường có tối đa 6 "bộ phận". Không phải prompt nào cũng cần đủ cả sáu, nhưng khi kết quả chưa tốt, bạn hãy rà lại xem mình thiếu bộ phận nào.
- Task (Nhiệm vụ) — bắt buộc. Đây là mệnh lệnh cốt lõi: bạn muốn mô hình làm gì? Hãy dùng động từ rõ ràng: "viết", "tóm tắt", "phân loại", "dịch", "liệt kê". Đây là bộ phận duy nhất không bao giờ được thiếu.
- Context (Bối cảnh). Thông tin nền để mô hình hiểu tình huống: bạn là ai, đối tượng đọc là ai, dữ liệu liên quan là gì. Ví dụ: "Chúng tôi là chuỗi cà phê 30 chi nhánh ở miền Nam, khách hàng chủ yếu là dân văn phòng 25–35 tuổi."
- Role / Persona (Vai trò). Bạn yêu cầu mô hình đóng vai một chuyên gia cụ thể để đầu ra có chuyên môn và giọng điệu phù hợp. Ví dụ: "Bạn là một chuyên gia tuyển dụng có 10 năm kinh nghiệm." (Chủ đề này sẽ được đào sâu ở Bài 13.)
- Instructions / Constraints (Hướng dẫn & ràng buộc). Các quy tắc cụ thể mô hình phải tuân theo: độ dài, giọng văn, những điều được/không được làm, ngôn ngữ đầu ra. Ví dụ: "Tối đa 100 từ, giọng trang trọng, không dùng từ tiếng lóng." (Đào sâu ở Bài 14, 15.)
- Examples (Ví dụ). Một hoặc vài mẫu đầu vào–đầu ra để mô hình bắt chước đúng phong cách và định dạng. Đây là công cụ mạnh mẽ, sẽ là trọng tâm của Bài 6 (few-shot).
- Output format (Định dạng đầu ra). Bạn muốn kết quả trông như thế nào: đoạn văn, bảng, danh sách gạch đầu dòng, JSON, hay chỉ một câu. Ví dụ: "Trả về dưới dạng bảng 3 cột: Tên, Ưu điểm, Rủi ro." (Đào sâu ở Bài 9.)
Tình huống thực tế
Tình huống 1 — Chuỗi cà phê "Cỏ Mềm" và cái email khai trương
Chị Lan, quản lý marketing của một chuỗi cà phê giả định tên "Cỏ Mềm" (12 chi nhánh tại Đà Nẵng), cần viết email thông báo khai trương chi nhánh mới. Lần đầu chị gõ vào ChatGPT:
> "Viết email khai trương quán mới."
Kết quả nhận về là một email chung chung, giọng như thông cáo báo chí của tập đoàn lớn, dài dòng, không có chút "chất" nào của quán cà phê. Chị thấy vô dụng và định bỏ cuộc.
Sau khi học về anatomy, chị viết lại, bổ sung đủ các bộ phận còn thiếu:
> "Bạn là copywriter chuyên viết cho ngành F&B (Role). Cỏ Mềm là chuỗi cà phê phong cách mộc mạc, khách chủ yếu là sinh viên và nhân viên văn phòng trẻ ở Đà Nẵng (Context). Hãy viết một email thông báo khai trương chi nhánh thứ 12 tại đường Nguyễn Văn Linh, khai trương ngày 5/7, tặng 1 ly miễn phí cho 100 khách đầu tiên (Task). Yêu cầu: giọng thân thiện, gần gũi, tối đa 120 từ, có 1 dòng tiêu đề hấp dẫn (Constraints). Trả về gồm 2 phần rõ ràng: Tiêu đề và Nội dung email (Output format)."
Lần này email đúng tông, đúng độ dài, có call-to-action rõ, gần như chỉ cần chỉnh vài chữ là gửi được.
Bài học: Chị Lan không đổi mô hình, không cần "phần mềm AI xịn hơn". Chị chỉ bổ sung Role, Context, Constraints và Output format vào cái prompt vốn chỉ có mỗi Task. Kết quả tăng chất lượng gấp nhiều lần chỉ trong một lần chỉnh.
Tình huống 2 — Bộ phận CSKH của một sàn TMĐT và bài học về "mơ hồ vào, mơ hồ ra"
Một sàn thương mại điện tử tại Việt Nam giao cho đội chăm sóc khách hàng (CSKH) dùng AI để phân loại tin nhắn khách gửi về thành các nhóm để chuyển đúng bộ phận. Nhân viên viết:
> "Đây là tin nhắn khách. Nó thuộc loại nào?"
Mô hình trả về những câu trả lời không nhất quán: khi thì "Đây là một câu hỏi về đơn hàng", khi thì "Khách hàng đang phàn nàn về giao hàng chậm, có vẻ hơi bực bội...". Mỗi lần một kiểu, không thể đưa vào hệ thống tự động.
Vấn đề: prompt thiếu Context (không cho biết có những nhóm nào) và thiếu Output format (không quy định trả về cái gì). Đội sửa lại:
> "Bạn là hệ thống phân loại tin nhắn CSKH. Hãy phân loại tin nhắn dưới đây vào ĐÚNG MỘT trong các nhóm sau: [Đơn hàng], [Giao hàng], [Đổi trả], [Thanh toán], [Khác]. Chỉ trả về đúng tên nhóm trong ngoặc vuông, không giải thích thêm.\n\nTin nhắn: '{nội dung tin nhắn}'"
Bây giờ đầu ra luôn là một chuỗi cố định như [Giao hàng], hệ thống backend đọc được và tự động chuyển tiếp. Tỷ lệ tin nhắn cần con người xử lý thủ công giảm rõ rệt.
Bài học: Đây là minh họa sống động cho nguyên lý "mơ hồ vào thì mơ hồ ra". Khi bạn không nói rõ có những lựa chọn nào và cần đầu ra ở dạng gì, next-token predictor sẽ tự do "sáng tác" — điều tối kỵ trong tự động hóa. Anatomy giúp bạn phát hiện đúng hai bộ phận đang thiếu.
Tình huống 3 — So sánh trực tiếp trên cùng một nhiệm vụ
Để bạn cảm nhận rõ hơn, hãy xem cùng một yêu cầu "tóm tắt cuộc họp" với hai prompt khác nhau.
Prompt nghèo: "Tóm tắt cái này." (dán biên bản họp dài 2 trang)
Prompt giàu anatomy: "Bạn là trợ lý điều hành (Role). Dưới đây là biên bản cuộc họp ban giám đốc về kế hoạch quý 3 (Context). Hãy tóm tắt (Task) theo đúng cấu trúc sau (Output format): (1) 3 quyết định chính, (2) danh sách việc cần làm kèm người phụ trách, (3) các rủi ro được nêu. Mỗi mục viết dưới dạng gạch đầu dòng, tối đa 150 từ (Constraints)."
Prompt nghèo cho ra một đoạn văn xuôi mà sếp vẫn phải đọc kỹ mới rút được việc cần làm. Prompt giàu cho ra một bản tóm tắt có thể dán thẳng vào email gửi cả nhóm.
Bài học: Không có "mô hình thông minh hơn" ở đây — chỉ có prompt được cấu trúc tốt hơn. Cùng một lượng thông tin đầu vào, cách bạn tổ chức prompt quyết định bạn tiết kiệm được bao nhiêu phút mỗi ngày.
Hướng dẫn từng bước
Đây là quy trình bạn có thể áp dụng ngay cho mọi prompt:
- Viết Task trước tiên bằng một động từ rõ ràng. Trả lời câu hỏi: "Tôi muốn AI làm chính xác động tác gì?" Ví dụ: "Viết", "Phân loại", "Rút trích", "So sánh". Đừng để Task mập mờ như "giúp tôi về...".
- Thêm Context tối thiểu cần thiết. Tự hỏi: "Một người lạ hoàn toàn cần biết gì để làm được việc này?" Bạn là ai, cho ai, dữ liệu nào liên quan. Chỉ đưa thông tin có ích — đừng nhồi nhét thừa thãi (Bài 12 sẽ bàn về quản lý token).
- Gán Role nếu nhiệm vụ cần chuyên môn hoặc giọng điệu riêng. "Bạn là kế toán trưởng", "Bạn là giáo viên tiếng Anh". Bước này rẻ mà hiệu quả cao.
- Liệt kê Constraints rõ ràng. Độ dài, giọng văn, ngôn ngữ (nhớ ghi "trả lời bằng tiếng Việt" nếu cần), những điều cấm. Càng cụ thể càng ít bất ngờ.
- Chỉ định Output format. Đoạn văn? Bảng? Danh sách? JSON? Nếu bạn định copy kết quả vào một hệ thống khác, bước này gần như bắt buộc.
- Thêm Example nếu định dạng phức tạp hoặc phong cách khó mô tả bằng lời. Đôi khi một ví dụ mẫu còn giá trị hơn cả đoạn hướng dẫn dài.
- Chạy thử, đọc kết quả, rồi rà theo anatomy. Kết quả sai giọng → thiếu Role/Constraints. Kết quả sai định dạng → thiếu Output format. Kết quả chung chung → thiếu Context. Cách chẩn đoán theo bộ phận này giúp bạn sửa đúng chỗ thay vì viết lại từ đầu một cách mù mờ.
Lỗi thường gặp & mẹo
- Lỗi: Prompt chỉ có Task trần trụi. "Viết bài đăng Facebook" là ví dụ điển hình. Mẹo: mỗi khi viết xong Task, tự hỏi "AI có đủ thông tin để làm tốt chưa?" — nếu chưa, bổ sung Context và Constraints.
- Lỗi: Cho rằng AI nhớ bối cảnh trước đó. Trong một cuộc chat, mô hình có thể thấy lịch sử; nhưng khi bạn dùng qua API hoặc mở chat mới, nó không biết gì. Mẹo: luôn coi mỗi prompt phải "tự đứng vững" với thông tin bên trong nó.
- Lỗi: Nhồi quá nhiều yêu cầu mâu thuẫn. Ví dụ vừa bảo "ngắn gọn" vừa bảo "chi tiết đầy đủ mọi khía cạnh". Mẹo: ưu tiên rõ ràng, tránh ràng buộc chọi nhau.
- Lỗi: Viết mơ hồ rồi trách AI. "Làm cho hay hơn" — "hay" theo tiêu chí nào? Mẹo: biến tính từ cảm tính thành tiêu chí đo được ("giảm còn 3 câu", "thêm 1 số liệu cụ thể").
- Mẹo vàng — dùng ranh giới rõ ràng cho dữ liệu. Khi dán dữ liệu vào prompt, hãy tách nó khỏi phần hướng dẫn, ví dụ đặt trong dấu ngoặc kép ba
"""..."""hoặc gắn nhãn "Dữ liệu:". Điều này giúp mô hình phân biệt đâu là lệnh, đâu là nội dung cần xử lý.
- Mẹo — đọc to prompt của bạn như đọc cho một thực tập sinh. Nếu một người mới hoàn toàn cũng làm đúng theo lời bạn, prompt đã đủ rõ.
Bài tập thực hành
- Chẩn đoán anatomy. Lấy prompt sau và chỉ ra nó thiếu bộ phận nào trong 6 thành phần: "Viết cho tôi content bán hàng." Hãy viết lại thành một prompt đầy đủ cho một sản phẩm bạn tự chọn (ví dụ: nước rửa chén hữu cơ).
- Cùng Task, hai chất lượng. Chọn một nhiệm vụ công việc thật của bạn (soạn email, tóm tắt, phân loại). Viết một prompt "nghèo" và một prompt "giàu anatomy". Chạy cả hai trên ChatGPT hoặc Claude và ghi lại khác biệt.
- Bài toán phân loại. Viết một prompt phân loại phản hồi khách hàng thành [Khen], [Chê], [Góp ý], [Hỏi thông tin], có ràng buộc Output format sao cho một hệ thống tự động đọc được. Kiểm tra với 3 câu phản hồi mẫu.
- Tự thách thức. Viết một prompt có đủ cả 6 thành phần cho tình huống: nhờ AI soạn bản mô tả công việc (job description) cho vị trí bạn quen thuộc. Đánh dấu rõ trong prompt đâu là Task, Context, Role, Constraints, Examples, Output format.
Tóm tắt
- Prompt là toàn bộ câu lệnh văn bản bạn gửi vào LLM — và nó gần như là tất cả những gì mô hình biết về nhiệm vụ tại thời điểm đó. Cái gì không có trong prompt thì không tồn tại với mô hình.
- LLM là một next-token predictor: nó dự đoán token tiếp theo dựa trên toàn bộ ngữ cảnh. Vì vậy prompt định hình trực tiếp không gian xác suất của câu trả lời — mơ hồ vào thì mơ hồ ra.
- Anatomy của một prompt tốt gồm 6 thành phần: Task (bắt buộc), Context, Role, Constraints/Instructions, Examples, và Output format. Task là bộ xương; năm phần còn lại là phần thịt làm prompt khỏe mạnh.
- Khi kết quả chưa như ý, hãy chẩn đoán theo bộ phận: sai giọng thiếu Role/Constraints, sai định dạng thiếu Output format, chung chung thiếu Context.
- Đây là nền móng. Ở các bài tiếp theo, chúng ta sẽ đào sâu từng kỹ thuật: zero-shot (Bài 5), few-shot (Bài 6), chain-of-thought (Bài 7) và xa hơn. Nhưng dù kỹ thuật nào, tất cả đều được xây trên bộ khung anatomy bạn vừa học hôm nay.