Ngày xưa, khi làm việc với AI, chúng ta buộc phải ra lệnh chi tiết. Làm bước nào trước, kiểm tra điều kiện gì, gọi hàm nào, xử lý lỗi ra sao. Không phải vì thích kiểm soát từng dòng, mà vì model buộc chúng ta phải làm vậy.
Model ngày đó reasoning yếu, context window nhỏ, không có khả năng tự explore codebase hay tự dùng tool để verify lại kết quả. Nó giỏi pattern matching hơn là suy luận sâu. Đưa cho nó một mục tiêu mơ hồ, nó sẽ chọn hướng đi gần nhất trong training data, không chắc đúng ý mình, đôi khi hallucinate. Prompt engineering vì vậy trở thành một kỹ năng riêng biệt, viết few-shot example, chỉ định format output, chain-of-thought từng bước, vì càng chi tiết hoá “how”, risk model đi lạc hướng càng thấp. Chi tiết hoá prompt là cách duy nhất để bù lại năng lực suy luận còn hạn chế của model.
Ngày nay, tình hình đã khác. Model reasoning sâu hơn, context window lớn hơn, có tool use, có khả năng tự explore, tự verify, tự lặp lại vòng làm rồi kiểm tra rồi sửa. Nó có thể tự đọc codebase, tự tìm ra convention hiện tại, tự đề xuất cách làm hợp lý hơn cách mình nghĩ ra ban đầu.
Vấn đề là nhiều người vẫn giữ thói quen cũ. Vẫn viết prompt như một kịch bản, chỉ rõ từng bước “how” phải làm gì. Cách này không sai, nhưng nó lấy đi chính thứ mà agent hiện đại làm tốt nhất, khả năng tự suy luận ra đường đi. Mình ép agent đi theo con đường mình vẽ sẵn, dù con đường đó chưa chắc tối ưu, thậm chí có thể là con đường mình chọn vì quen tay chứ không phải vì nó tốt nhất.
Cái nên tập trung đặc tả không còn là “how” nữa. Mà là:
- Một, mục tiêu, goal, outcome cuối cùng cần đạt là gì, tại sao cần nó, phục vụ cho ai.
- Hai, definition of done, tiêu chí nào để biết task đã hoàn thành, pass hay fail dựa trên gì, không phải dựa trên cảm giác “nhìn ổn”.
- Ba, checklist, những điều kiện, ràng buộc bắt buộc phải thoả trong lúc làm, những thứ không được phép bỏ qua dù agent chọn cách làm nào.
- Bốn, quy tắc đặc thù của project, convention, coding style, domain rule riêng mà agent phải tuân theo, để nó không tự sáng tạo ra thứ lệch chuẩn.
Bốn thứ này chính là rào chắn đúng chỗ. Nó không kiểm soát agent phải làm từng bước ra sao, nó kiểm soát kết quả cuối cùng phải như thế nào và trong khuôn khổ gì. Phần còn lại, để agent tự explore, tự suy luận, tự đề xuất. Nếu agent đủ mạnh, nó thường tìm ra cách làm tốt hơn cách mình tưởng, vì nó không bị giới hạn bởi thói quen hay kinh nghiệm cũ của mình.
Cách agent hiện đại vận hành tốt nhất không phải là nhận goal, DoD, checklist rồi bắt tay làm ngay. Tốt hơn nên để nó explore trước, suy luận, rồi đưa ra một plan, thay vì nhảy thẳng vào thực thi.
Human lúc này đổi vai trò. Không còn là người ra lệnh từng bước, mà là người review đề xuất, chỉnh sửa nếu cần, và duyệt trước khi agent thật sự bắt tay vào làm. Việc này giữ được quyền kiểm soát ở đúng chỗ, ở tầng quyết định hướng đi, không phải ở tầng viết từng dòng.
Đây mới là phần thú vị. Nhiều lúc agent đề xuất một hướng đi mà kinh nghiệm hay góc nhìn của mình không nhìn ra được, vì nó không bị giới hạn bởi thói quen cũ, bởi cách mình vẫn làm quen tay. Nếu plan đó hợp lý, đúng ràng buộc, pass được DoD, thì tại sao không học từ nó, thay vì phản xạ reject chỉ vì nó không giống cách mình từng làm.
Kỹ năng prompt hôm nay không còn nằm ở việc viết câu lệnh chi tiết. Nó nằm ở việc viết goal, definition of done, checklist, và rule đủ sắc, đủ rõ, để agent tự explore, tự đề xuất plan, và để mình review, học hỏi, duyệt, trước khi bắt tay thực thi.