Thêm một câu vào cuối yêu cầu — "trước khi viết mã, hãy liệt kê các câu hỏi còn chưa rõ và trình bày kế hoạch thay đổi, chờ xác nhận rồi mới làm" — là cách rẻ nhất để bắt được giả định sai của trợ lý AI trước khi nó thành vài trăm dòng mã. Đọc một kế hoạch mười dòng mất một phút; đọc rồi gỡ mã viết theo hướng sai mất cả buổi.
Bài này hướng dẫn cách viết câu yêu cầu đó sao cho trợ lý hỏi đúng chỗ thay vì hỏi tràn lan, cách đọc và sửa một kế hoạch do AI đề xuất, và những trường hợp không cần làm vậy. Các mẫu câu lệnh dùng được với chatbot chung, khung chat trong trình soạn thảo và tác tử AI có chế độ lập kế hoạch.
Giả định ngầm là nơi phần lớn lỗi bắt đầu
Trợ lý AI được huấn luyện để trả lời ngay. Gặp chỗ mơ hồ, nó hiếm khi dừng lại hỏi nếu không được dặn; nó chọn cách hiểu phổ biến nhất và đi tiếp. Với câu "thêm chức năng xuất danh sách khách ra tệp", nó sẽ tự chọn định dạng CSV, tự chọn dấu phẩy làm phân cách, tự chọn bảng mã, tự quyết xuất toàn bộ hay chỉ trang đang xem. Bất kỳ lựa chọn nào trong đó cũng có thể sai với người dùng của bạn — ví dụ tệp CSV mở bằng Excel trên máy cài tiếng Việt thường cần dấu chấm phẩy và ký hiệu đầu tệp UTF-8, nếu không cột bị dồn và chữ có dấu bị vỡ.
Những giả định đó không nằm trong lời giải thích, chúng nằm rải rác trong mã. Người đọc lướt khó thấy, và chỉ phát hiện khi người dùng thật báo lỗi. Bắt trợ lý nói ra giả định trước khi viết là đưa chúng lên bề mặt, ở dạng câu chữ dễ đọc, khi việc sửa chỉ là gõ lại một câu trả lời.
Kế hoạch cũng giúp bạn thấy phạm vi. Nếu trợ lý dự định sửa bảy tệp cho một việc bạn nghĩ chỉ chạm hai tệp, đó là tín hiệu một trong hai bên đang hiểu sai bài toán.
Mẫu câu lệnh: hỏi lại trước, kế hoạch sau, mã sau cùng
Gắn đoạn sau vào cuối yêu cầu, sau phần mô tả việc. Đoạn này viết bằng tiếng Việt và đánh số để trợ lý trả lời theo đúng thứ tự:
- "Chưa viết mã. Làm ba việc theo thứ tự."
- "Một: liệt kê tối đa năm câu hỏi mà câu trả lời sẽ làm thay đổi cách viết. Bỏ qua câu hỏi có thể tự trả lời bằng cách đọc mã đã đưa."
- "Hai: với mỗi câu hỏi, ghi luôn giả định sẽ dùng nếu không được trả lời."
- "Ba: trình bày kế hoạch thay đổi: tệp nào, hàm nào, thêm gì, sửa gì, mỗi mục một dòng. Nêu rủi ro có thể làm hỏng phần đang chạy."
- "Dừng lại sau bước ba và chờ xác nhận."
Hai chi tiết khiến mẫu này hiệu quả. Giới hạn "tối đa năm câu" buộc trợ lý chọn những câu thật sự quan trọng, không hỏi tràn lan. Yêu cầu ghi kèm giả định mặc định giúp bạn trả lời nhanh: đồng ý thì gõ "theo giả định", không đồng ý thì sửa đúng câu đó. Bạn không phải soạn câu trả lời từ đầu.
Đọc một kế hoạch AI đề xuất: nhìn vào đâu
Kế hoạch tốt thì ngắn và cụ thể. Bảng dưới là những chỗ nên nhìn khi duyệt, và phản ứng gợi ý khi thấy vấn đề.
| Nhìn vào | Dấu hiệu đáng ngờ | Phản hồi gợi ý |
|---|---|---|
| Danh sách tệp sẽ sửa | Có tệp không liên quan tới việc được giao | Yêu cầu bỏ tệp đó hoặc giải thích vì sao cần |
| Thư viện mới | Đề xuất cài thêm gói cho việc làm được bằng mã sẵn có | Yêu cầu làm bằng thư viện chuẩn, hoặc kiểm gói đó có thật và còn được duy trì |
| Thay đổi cấu trúc dữ liệu | Thêm hoặc đổi cột mà không nói dữ liệu cũ xử lý thế nào | Hỏi cách chuyển dữ liệu cũ và cách quay lui |
| Đổi tên hoặc chữ ký hàm | Đổi hàm đang được gọi ở chỗ khác | Yêu cầu giữ chữ ký cũ, thêm hàm mới nếu cần |
| Phần rủi ro | Để trống hoặc ghi chung chung | Hỏi cụ thể: thay đổi này có thể làm hỏng luồng nào |
| Cách kiểm | Không nhắc gì tới kiểm thử | Yêu cầu bổ sung cách kiểm cho từng mục |
Bạn không cần đồng ý toàn bộ kế hoạch. Cách làm hay là duyệt từng dòng: "dòng 1, 2, 4 đồng ý; dòng 3 bỏ; dòng 5 làm theo cách khác như sau". Trợ lý xử lý phản hồi dạng này tốt hơn một câu chung chung kiểu "chỉnh lại cho gọn".
Một vòng trọn vẹn: từ yêu cầu tới kế hoạch đã duyệt
Lấy lại ví dụ xuất danh sách khách ra tệp, bài toán giả định của một cửa hàng phụ tùng ở Hải Phòng. Bạn gửi mô tả việc kèm mẫu hỏi lại. Một câu trả lời tốt của trợ lý có thể gồm các câu hỏi: xuất CSV hay tệp Excel; người nhận mở bằng phần mềm nào; xuất toàn bộ khách hay theo bộ lọc đang chọn trên màn hình; có cột nào nhạy cảm cần bỏ như số căn cước; danh sách lớn cỡ bao nhiêu dòng. Mỗi câu kèm giả định mặc định, ví dụ "giả định xuất CSV theo bộ lọc hiện tại".
Bạn trả lời gọn: CSV để mở bằng Excel trên máy văn phòng; theo bộ lọc; bỏ cột ghi chú nội bộ; khoảng vài nghìn dòng. Lúc này trợ lý mới đưa kế hoạch: thêm một nút trên trang danh sách, một tệp xử lý nhận cùng tham số lọc, ghi ký hiệu đầu tệp UTF-8 và dùng dấu chấm phẩy, đọc dữ liệu theo từng khối để không đầy bộ nhớ, kiểm quyền người dùng trước khi xuất.
Dòng kiểm quyền là thứ bạn có thể đã quên nói, và trợ lý đưa vào kế hoạch. Ngược lại, nếu kế hoạch thiếu dòng đó, bạn thấy ngay khi đọc mười dòng chữ, thay vì phát hiện sau khi trang xuất dữ liệu đã chạy cho cả người không có quyền. Cả vòng này mất vài phút và chưa có dòng mã nào phải bỏ đi.
Bắt AI giải thích cách hiểu của nó bằng lời
Nhắc lại yêu cầu bằng lời của nó. Câu "trước hết, tóm tắt lại bằng ba câu điều được yêu cầu" nghe thừa nhưng rất hiệu quả với yêu cầu dài. Nếu bản tóm tắt bỏ sót ràng buộc quan trọng, bạn biết ngay trợ lý đã không để ý tới nó.
Giải thích thuật toán trước khi viết. Với việc có logic phức tạp như chia ca làm việc hay tính lãi trả chậm theo ngày, yêu cầu mô tả cách giải bằng lời và chạy tay một ví dụ nhỏ. Lỗi logic lộ ra trong lời giải thích dễ hơn nhiều so với trong mã.
Nêu điều nó không chắc. Thêm câu "chỗ nào không chắc về API hay hành vi của thư viện, ghi rõ là không chắc". Trợ lý không phải lúc nào cũng tự biết mình sai, nhưng câu dặn này làm tăng khả năng nó đánh dấu những chỗ đáng tra lại.
So sánh hai cách. Khi có nhiều hướng, yêu cầu nêu hai cách với ưu nhược điểm ngắn gọn rồi đề xuất một. Bạn chọn, không phải trợ lý chọn ngầm.
Chế độ lập kế hoạch của tác tử AI
Nhiều tác tử AI dòng lệnh và trình soạn thảo tích hợp AI có một chế độ chỉ đọc và lập kế hoạch, trong đó tác tử được đọc mã, tìm kiếm, nhưng không được sửa tệp hay chạy lệnh thay đổi hệ thống. Tên gọi và cách bật chế độ này khác nhau giữa các công cụ và thay đổi theo phiên bản, nên kiểm tài liệu của công cụ bạn dùng. Nếu công cụ không có chế độ riêng, câu lệnh "chỉ đọc, chưa sửa tệp nào" vẫn có tác dụng tương tự, dù không được bảo đảm bằng cơ chế.
Với tác tử, bước kế hoạch còn quan trọng hơn với chatbot, vì tác tử có thể sửa hàng chục tệp trong một lượt. Kế hoạch nên có danh sách lệnh sẽ chạy, không chỉ danh sách tệp. Một lệnh xoá thư mục hay một lệnh chạy chuyển đổi cơ sở dữ liệu cần được bạn nhìn thấy trước.
Khi đã duyệt kế hoạch, yêu cầu tác tử ghi nó ra một tệp trong dự án rồi mới bắt đầu làm. Nếu phiên làm việc bị ngắt giữa chừng, bạn và tác tử ở phiên sau đều biết đang ở bước nào.
Dặn dừng lại giữa chừng khi gặp điều bất ngờ
Hỏi lại ở đầu việc là chưa đủ, vì nhiều điều chỉ lộ ra khi bắt đầu làm. Trợ lý đọc mã và phát hiện hàm bạn bảo dùng lại đang có lỗi, hoặc bảng dữ liệu thiếu cột mà kế hoạch cần. Nếu không được dặn, nó sẽ tự xử lý theo cách nó cho là hợp lý: âm thầm sửa luôn hàm kia, hoặc thêm cột mới vào bảng. Cả hai đều là thay đổi ngoài phạm vi bạn đã duyệt.
Một câu dặn đi kèm kế hoạch giải quyết việc này: "Trong lúc làm, nếu phát hiện điều gì khác với kế hoạch đã duyệt — mã có sẵn chạy khác mô tả, thiếu dữ liệu, cần sửa tệp ngoài danh sách — thì dừng lại, mô tả điều phát hiện được và đề xuất cách xử lý, chưa tự sửa." Với chatbot, câu này ít khi phát huy vì mỗi lượt trả lời là trọn gói; với tác tử chạy nhiều bước, nó là chốt an toàn đáng giá.
Khi tác tử dừng lại báo một phát hiện, đó là thông tin quý chứ không phải sự phiền. Một hàm cũ chạy sai mà không ai biết là thứ nên được ghi lại thành việc riêng, sửa có kiểm thử đàng hoàng, thay vì bị vá tiện tay trong một thay đổi không liên quan.
Khi nào bỏ qua bước hỏi lại
Việc một dòng, kết quả nhìn là biết. Đổi màu nút, sửa lỗi chính tả trong thông báo, thêm một dòng ghi log. Bắt lập kế hoạch cho những việc này chỉ làm chậm.
Mã thử nghiệm sẽ vứt đi. Khi bạn đang thử một ý tưởng trong tệp nháp, mã sai cũng không sao. Để trợ lý viết ngay rồi đọc kết quả còn nhanh hơn.
Bạn đã đưa yêu cầu rất chi tiết. Nếu yêu cầu đã đủ sáu phần bối cảnh, mục tiêu, ràng buộc, ví dụ, cách trả lời và tiêu chí xong, phần hỏi lại thường chỉ ra một hai câu. Lúc đó có thể gộp: "nếu có chỗ chưa rõ thì hỏi, nếu không thì viết luôn".
Trợ lý hỏi những câu đã có câu trả lời. Nếu nó hỏi lại điều đã ghi trong yêu cầu, đó là dấu hiệu yêu cầu quá dài hoặc lộn xộn. Sửa cách trình bày thay vì trả lời lại từng câu.
Câu hỏi thường gặp
Trợ lý vẫn viết mã dù đã dặn chưa viết, phải làm sao?
Đặt câu "chưa viết mã" lên đầu yêu cầu thay vì để cuối, và nhắc lại một lần ở cuối. Nếu dùng tác tử, bật chế độ chỉ đọc nếu công cụ có. Khi nó vẫn viết, đừng đọc mã đó; trả lời rằng cần kế hoạch trước và giữ nguyên yêu cầu.
Câu hỏi của AI có thể thay cho việc mình tự phân tích yêu cầu không?
Không thay được hoàn toàn. Trợ lý chỉ hỏi về những gì nó thấy trong yêu cầu và mã được đưa. Những ràng buộc nghiệp vụ nằm ngoài, như quy định thuế hay thói quen của khách, nó không biết để hỏi. Danh sách câu hỏi của AI là gợi ý thêm, không phải danh sách đầy đủ.
Kế hoạch AI đề xuất có nên lưu vào kho mã không?
Với việc lớn, nên. Kế hoạch đã được duyệt cho người rà mã sau này biết vì sao thay đổi được làm như vậy. Lưu dưới dạng ghi chú trong yêu cầu gộp mã hoặc một tệp ngắn trong thư mục tài liệu, sau khi đã bỏ chi tiết nhạy cảm.
Có nên để AI tự trả lời câu hỏi của chính nó không?
Với câu hỏi về mã có sẵn, như hàm này trả về gì, trợ lý có thể tự tra nếu nó đọc được tệp. Với câu hỏi về ý muốn của bạn hay nghiệp vụ, câu trả lời của nó chỉ là đoán. Chính vì vậy mẫu câu lệnh yêu cầu ghi giả định riêng để bạn xác nhận.
Hỏi lại nhiều có làm tốn hạn mức sử dụng hơn không?
Có thêm một lượt trao đổi, nhưng lượt đó ngắn vì chưa có mã. So với việc nhận một khối mã dài sai hướng rồi phải viết lại, bước kế hoạch thường tiết kiệm hơn. Mức tính phí cụ thể tuỳ công cụ, nên kiểm trang chính thức.