Tui Học AI – Bài 1 – “AI trả lời tôi” → “Tôi kiểm soát câu trả lời”
BlogContents
23 prompt cho một hàm 15 dòng. Không phải vì bạn dev đó dở. Là vì bạn ấy đang để AI đoán, mỗi lượt một lần. Bài đầu tiên trong series, về bước chuyển mà ai cũng tưởng đã qua.
Dành cho ai chưa đọc qua bài: Tui Học AI – Bài 0 – Bạn đang dùng AI ở level nào? Tự soi qua 7 câu
23 prompt cho một hàm 15 dòng
Tháng trước một bạn trong team nhắn tui: “Anh ơi prompt em ổn rồi mà sao AI cứ ra code sai.” Bạn này đi làm hai năm, không phải lính mới. Tui bảo gửi lịch sử chat một task gần nhất xem thử.
Bạn gửi. Task nhỏ thôi: viết hàm format số tiền cho UI. Loại mười lăm dòng là cùng.
Tui kéo lên kéo xuống, đếm. Hai mươi ba lượt prompt.
Lượt đầu: “viết hàm format tiền”. AI trả về một hàm. Bạn copy vào, chạy, ra sai dấu phân cách. “Sửa lại đi.” AI sửa. Lần này mất luôn dấu đơn vị. “Thiếu chữ đồng kìa.” AI thêm vào, rồi tự nhiên đổi cả tên hàm. “Sao đổi tên?” Cứ vậy. Hai ba lượt. Khoảng bốn mươi phút. Cuối cùng bạn ấy tự sửa tay ba dòng cho xong.
Tui đọc xong không thấy bạn ấy “prompt dở”. Tui thấy một thứ khác. Mỗi lượt prompt là một lần bạn ấy bắt AI đoán lại xem mình muốn gì. AI đoán trúng vài chỗ, trật vài chỗ. Bạn ấy chỉ sửa cái trật vừa thấy, rồi lại để nó đoán tiếp phần còn lại. Vòng lặp đó không có điểm dừng.
Ở bài mở màn tui có nói: cùng một con AI, khác nhau ở cách dùng, và cách dùng là một cái thang. Bài này nói về bậc đầu tiên của cái thang đó. Bậc mà 70% anh em tưởng mình đã qua từ lâu.

Không phải viết prompt dài hơn
“AI trả lời tôi” → “Tôi kiểm soát câu trả lời”
Để tui nói luôn cái hiểu lầm phổ biến nhất: nhiều người tưởng bước này là “viết prompt dài và chi tiết hơn”. Sai. Bạn dev kia có prompt dài đó, hai mươi ba cái lận.
Khác biệt không nằm ở độ dài. Nằm ở thế đứng.
Trước: bạn coi AI như cái máy trả lời. Bạn hỏi, nó trả, bạn nhận. Sai thì hỏi lại. Bạn ở thế bị động, ngồi chờ xem nó nhả ra cái gì rồi mới phản ứng. Câu trả lời là của AI, bạn chỉ đi nhặt.
Sau: bạn quyết định trước. Trước khi gõ Enter, bạn đã biết mình muốn nhận về cái gì, dạng gì, và cái gì là không được phép. Bạn nói rõ ra trong prompt đầu. Rồi bạn đọc lại output, không phải để khen chê, mà để kiểm. Câu trả lời vẫn do AI sinh, nhưng cái khuôn là của bạn.
Nói gọn: bạn thôi để AI đoán. Đoán là việc của nó khi bạn không nói rõ. Bạn nói rõ thì nó hết phải đoán.
Vậy làm sao biết mình đã chuyển hay chưa? Có ba dấu hiệu khá rõ.
3 dấu hiệu bạn chưa chuyển
1. Prompt của bạn dưới 20 chữ và không nói rõ muốn nhận về cái gì
Mở lại chat history tuần rồi mà coi. Nếu phần lớn prompt của bạn kiểu “viết hàm check email”, “fix lỗi này”, “tối ưu đoạn code”, thì bạn đang ở đây. Mấy câu đó không sai, chỉ là thiếu. Thiếu chỗ nói rõ input là gì, output mong muốn dạng gì, cái gì không được làm.
AI gặp prompt kiểu vậy thì nó làm cái nó nghĩ là phổ biến nhất. Có khi trúng. Phần lớn là trật một hai chỗ mà bạn chưa nói. Rồi bạn vào sửa từng chỗ. Đó là lý do một task nhỏ kéo thành hai chục lượt.
2. Bạn copy code vào file rồi mới chạy thử, không đọc trước
Cái này kín hơn, nên nguy hơn. Bạn quen tin AI tới mức copy thẳng vào, chạy, lỗi thì mới quay lại đọc.
Vấn đề là có loại lỗi không nổ ra lúc chạy. AI hay “bịa” ra một hàm trông rất hợp lý nhưng không tồn tại, hoặc gọi sai tham số một thư viện. Có khi nó tự tin gọi Number.formatCurrency() như thật, mà JS làm gì có hàm đó. Có khi code chạy ngon nhưng logic sai âm thầm: lọc nhầm điều kiện, off-by-one, xử lý sai trường hợp rỗng. Không đọc trước thì mấy cái này lọt thẳng vào commit.
3. Bạn phải hỏi đi hỏi lại 3-5 lần mới ra thứ mình muốn
Đây là dấu hiệu dễ nhận nhất, vì nó hiện ngay trong số lượt chat. Nếu một task quen thuộc mà lần nào cũng ba bốn lượt mới xong, không phải AI hôm nay dở. Là cái khuôn chưa được đặt từ đầu, nên AI đoán lại mỗi lượt.
Bạn dev đầu bài chính là đây. Hai mươi ba lượt không phải vì task khó. Vì chưa lượt nào đặt đủ khuôn.

3 dấu hiệu bạn đã chuyển
1. Prompt đầu tiên đã có format yêu cầu rõ ràng
Bạn không đợi tới lượt thứ ba mới nói “à anh muốn nó trả về dạng table”. Bạn nói ngay từ lượt đầu. So sánh hai prompt cho cùng cái task format tiền ở trên:
Cách cũ:
viết hàm format số tiền
Cách đã chuyển:
Viết function JS formatVND(amount) trả về string. - Input: số nguyên (vd 1500000). Nếu không phải số hợp lệ, trả về "0 ₫". - Output: phân cách hàng nghìn bằng dấu chấm, kết thúc bằng " ₫" (vd "1.500.000 ₫"). - Không dùng thư viện ngoài. Ưu tiên Intl.NumberFormat nếu chạy được. - Trả về code block kèm 3 dòng test, không giải thích dài.
Cái prompt thứ hai không “thần thánh” gì. Nó chỉ đơn giản là không để chỗ nào cho AI đoán: input gì, ra dạng gì, ca rỗng xử lý sao, cấm cái gì. Đoán hết đường thì output đầu tiên đã gần đúng.
2. Bạn đọc output trước khi copy, và bắt được lỗi nó giấu
Bạn có một bước nhỏ mà người ở L0-L1 hay bỏ: liếc qua code trước khi dán. Không cần đọc kỹ từng dòng. Chỉ cần đủ để bắt hai thứ. Một, có hàm hay API nào nghe lạ, trông giống bịa không. Hai, mấy chỗ dễ sai logic: điều kiện lọc, vòng lặp biên, trường hợp rỗng hay null.
Bắt được hai loại đó trước khi commit là bạn đã hơn hẳn cái bạn của hôm qua.
3. Bạn dùng được vài môi trường AI cho vài loại việc khác nhau
Bạn không cột chặt vào một chỗ duy nhất. Việc cần ngữ cảnh cả repo thì bạn mở trong IDE. Việc hỏi nhanh một khái niệm hay nháp một đoạn thì bạn quăng vào chat web cho lẹ. Không phải vì bạn sưu tầm tool, mà vì bạn biết loại việc nào hợp chỗ nào.
Nhớ bạn dev hai mươi ba lượt không? Bữa đó tui ngồi cùng, tụi tui viết lại đúng một prompt theo cái khung ở trên: nói rõ input, output, ca rỗng, ràng buộc. Một prompt. Hàm ra đúng ngay lượt đầu, chỉ chỉnh một chỗ tên biến cho hợp convention. Bạn ấy ngồi im mấy giây rồi nói: “Ủa vậy nãy giờ em đang để nó đoán hả anh.” Đúng rồi. Cả buổi chiều, hai mươi ba lượt, chỉ để AI đoán dùm một thứ mà bạn ấy hoàn toàn nói rõ được trong ba dòng.
Bài tập tuần này
Tuần này lấy đúng một task bạn định làm với AI. Đừng tạo task giả, lấy task thật.
Trước khi gõ, viết prompt theo năm phần. Có một cái khung tên là RCTFC, viết tắt của Role, Context, Task, Format, Constraints. Nó không phải công thức bắt buộc, chỉ là một cách để nhớ năm chỗ hay bị bỏ sót:
- Role: bạn muốn AI đóng vai gì (vd dev JS).
- Context: input là gì, ngữ cảnh nào, ca đặc biệt nào phải lo.
- Task: làm chính xác cái gì.
- Format: trả về dạng gì (code block, table, JSON, kèm test).
- Constraints: cấm cái gì (không lib ngoài, không giải thích dài).

Làm xong, mở lại cách bạn hay hỏi trước đây cho cùng loại task. So hai cái. Đếm số lượt mỗi bên cần để ra thứ dùng được.
Lưu lại hai prompt và hai output vào một file. Tuần sau giở ra coi lại. Cái cần có sau khi làm là một file chứa hai cặp prompt-output, cũ và mới, để bạn tự thấy khác biệt bằng mắt chứ không bằng cảm giác.
Cảnh báo nhỏ: lần đầu viết theo khung sẽ thấy hơi cồng kềnh, mất công hơn gõ một câu. Bình thường. Vài lần là quen, rồi nó thành phản xạ, và bạn sẽ thấy mình hết ngồi sửa vặt mỗi lượt.
Tạm kết
Nếu bài này chỉ còn lại một câu để nhớ, thì là câu này: kiểm soát câu trả lời không phải gõ nhiều hơn, mà là thôi để AI đoán.
Đặt khuôn trước khi hỏi, đọc lại trước khi xài. Hai thói quen nhỏ vậy thôi. Nhưng đủ để bạn hết ngồi sửa vặt mỗi lượt như cái buổi chiều hai mươi ba prompt kia.
Và đây mới là bậc một. Còn sáu bước nữa phía trước.
Cảm ơn bạn đã đọc bài viết này!
Related Posts:
Written by chuotfx
Hãy ngồi xuống, uống miếng bánh và ăn miếng trà. Chúng ta cùng nhau đàm đạo về đời, về code nhóe!
Leave a Reply Cancel reply
Fan page
Tags
Recent Posts
- Tui Học AI – Bài 1 – “AI trả lời tôi” → “Tôi kiểm soát câu trả lời”
- Ý ĐỊNH trong PROMPT – Vì sao AI làm đúng Lời và sai Hồn
- Meeting Culture – Khi nào họp là lãng phí, khi nào là cần thiết
- Tui Học AI – Bài 0 – Bạn đang dùng AI ở level nào? Tự soi qua 7 câu
- Documentation Culture – Tại sao thời đại AI lại cần viết doc hơn bao giờ hết
- 5 Thuật Ngữ AI Nền Tảng – Hiểu Đúng Để Dùng AI Thông Minh Hơn
- Agent Skills của OpenAI
- Reading Culture – Văn hóa đọc trong thời đại AI: Kỹ năng bị lãng quên của developer
- Claude Design – “Figma Killer” hay chỉ là thêm một công cụ thiết kế?
- AI Coding Tools 2026 – Toàn cảnh công cụ AI Coding hiện nay
You may also like:
Archives
- June 2026 (4)
- May 2026 (2)
- April 2026 (5)
- March 2026 (5)
- February 2026 (1)
- January 2026 (10)
- December 2025 (1)
- October 2025 (1)
- September 2025 (4)
- August 2025 (5)
- July 2025 (10)
- June 2025 (1)
- May 2025 (2)
- April 2025 (1)
- March 2025 (8)
- January 2025 (7)
- December 2024 (4)
- September 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (4)
- April 2024 (2)
- March 2024 (5)
- January 2024 (4)
- February 2023 (1)
- January 2023 (2)
- November 2022 (2)
- October 2022 (1)
- September 2022 (5)
- August 2022 (6)
- July 2022 (7)
- June 2022 (8)
- May 2022 (5)
- April 2022 (1)
- March 2022 (3)
- February 2022 (5)
- January 2022 (4)
- December 2021 (6)
- November 2021 (8)
- October 2021 (8)
- September 2021 (8)
- August 2021 (8)
- July 2021 (9)
- June 2021 (8)
- May 2021 (7)
- April 2021 (11)
- March 2021 (12)
- February 2021 (3)
- January 2021 (3)
- December 2020 (3)
- November 2020 (9)
- October 2020 (7)
- September 2020 (17)
- August 2020 (1)
- July 2020 (3)
- June 2020 (1)
- May 2020 (2)
- April 2020 (3)
- March 2020 (20)
- February 2020 (5)
- January 2020 (2)
- December 2019 (12)
- November 2019 (12)
- October 2019 (19)
- September 2019 (17)
- August 2019 (10)


