Sai lầm phổ biến khi debug bằng AI là dán một thông báo lỗi rồi yêu cầu “fix đi”. Codex có thể đưa ra một bản vá trông hợp lý nhưng xử lý triệu chứng thay vì nguyên nhân. Quy trình an toàn gồm năm nhịp: tái hiện, thu bằng chứng, lập giả thuyết, sửa tối thiểu và chứng minh bằng test hồi quy.
Kết quả sau bài học: Bạn sẽ thực hành lỗi bộ lọc tìm kiếm không bỏ dấu cách, tạo test tái hiện trước, sửa đúng lớp xử lý và tránh thay đổi ngoài phạm vi.
Tư duy quan trọng trước khi bắt đầu
AI coding agent là cộng sự có khả năng thao tác, không phải nguồn chân lý. Bạn vẫn chịu trách nhiệm về mã được đưa vào dự án. Hãy giữ nhiệm vụ nhỏ, cung cấp bối cảnh vừa đủ, yêu cầu bằng chứng và không phê duyệt điều mình chưa hiểu.
Hướng dẫn từng bước
Bước 1: Viết công thức tái hiện
Ghi trạng thái ban đầu, thao tác chính xác, kết quả thực tế và kết quả mong đợi. Nếu lỗi không tái hiện ổn định, thêm phiên bản runtime, trình duyệt và dữ liệu mẫu đã ẩn thông tin nhạy cảm.
Bước 2: Cho Codex điều tra, chưa sửa
Cung cấp stack trace, log và tệp liên quan. Yêu cầu nó lần theo luồng dữ liệu, chỉ ra nơi giá trị thay đổi và nêu 2–3 giả thuyết xếp theo khả năng. Buộc mỗi giả thuyết đi kèm bằng chứng cần kiểm tra.
Bước 3: Tạo test thất bại đúng lý do
Test hồi quy phải đỏ trước bản vá và mô tả hành vi, không khóa vào chi tiết triển khai. Với tìm kiếm, thêm ca chuỗi có khoảng trắng đầu/cuối, hoa thường và tiếng Việt. Kiểm tra test thất bại vì lỗi cần sửa chứ không phải setup.
Bước 4: Áp dụng bản vá nhỏ nhất
Cho phép sửa đúng module và test. Không nhân tiện đổi tên, format toàn dự án hoặc nâng dependency. Một diff nhỏ dễ đọc, dễ hoàn tác và giúp liên hệ nguyên nhân với kết quả.
Bước 5: Chạy phạm vi hẹp rồi toàn bộ
Chạy test mới trước, sau đó suite liên quan, lint/type-check và cuối cùng kiểm thử tay. Yêu cầu Codex nói rõ lệnh nào đã chạy, exit code và phần nào không chạy được.
Bài thực hành có đầu ra rõ ràng
Bài tập: hàm filterProducts không tìm thấy “ bàn phím ”. Viết test thất bại cho việc chuẩn hóa truy vấn, sửa tại ranh giới nhận input và xác nhận truy vấn rỗng không làm mất toàn bộ danh sách ngoài ý muốn.
Tiêu chuẩn nộp bài: lưu prompt đã dùng, ảnh hoặc log kết quả trước/sau, diff cuối cùng, lệnh kiểm tra và ba điều bạn tự học được từ mã. Nếu test không chạy được, ghi lý do thay vì coi như đã đạt.
Prompt mẫu có thể sao chép
Lỗi tái hiện như sau… Chỉ điều tra. Lần theo dữ liệu từ ô tìm kiếm đến hàm lọc, đưa ba giả thuyết và bằng chứng cho từng giả thuyết.
Viết một test hồi quy nhỏ nhất thể hiện lỗi. Chạy để xác nhận nó thất bại đúng nguyên nhân; chưa sửa production code.
Thực hiện bản vá tối thiểu, không refactor ngoài phạm vi. Chạy test mới, suite liên quan và tự review nguy cơ regression.
Lỗi người mới thường gặp
- Để agent sửa trước khi lỗi được tái hiện
- Thêm log chứa token hoặc dữ liệu người dùng
- Viết test sau bản vá nên không biết test có bắt được lỗi
- Chấp nhận bản vá lớn vì “tiện dọn code”
Checklist hoàn thành
- Có bước tái hiện ổn định
- Có bằng chứng thay vì đoán
- Test đỏ trước bản vá
- Diff tối thiểu
- Test mới và suite cũ đều xanh
Cách tự học để không phụ thuộc AI
- Trước khi hỏi, tự dự đoán tệp và nguyên nhân trong năm phút.
- Sau câu trả lời, yêu cầu giải thích một khái niệm bạn chưa hiểu bằng ví dụ nhỏ.
- Tự viết lại phần cốt lõi hoặc test mà không nhìn câu trả lời.
- Lưu lỗi và bài học vào ghi chú dự án, không lưu bí mật.
- Một tuần sau, làm lại bài tập với yêu cầu hơi khác.
Kết luận: dùng tác nhân AI tốt không nằm ở việc tạo nhiều code, mà ở khả năng đặt mục tiêu rõ, kiểm soát phạm vi và chứng minh kết quả. Nếu giữ được vòng lặp đọc → kế hoạch → thay đổi nhỏ → test → review, người mới vừa đi nhanh hơn vừa thực sự tiến bộ.
Nguồn tham khảo chính thức: tài liệu sản phẩm dành cho nhà phát triển. Giao diện và tính năng có thể thay đổi; hãy đối chiếu tài liệu hiện hành khi cài đặt.

