
Chất lượng code AI có đảm bảo được khi giao việc cho một model rẻ hơn Claude không? Câu trả lời của tôi sau một tháng làm thật: không model nào tự đảm bảo chất lượng; thứ đảm bảo là vòng kiểm. Tôi đặt 4 lớp, rẻ trước đắt sau, để lỗi bị chặn càng sớm càng tốt mà không đốt hạn mức của model mạnh.
Bài này là phần cuối của chuỗi về việc dùng nhiều AI để code. Nếu bạn đang giao việc cho Codex, DeepSeek hay một tài khoản Claude phụ, 4 lớp dưới đây dùng được ngay.
Vì sao không thể chỉ tin vào model?
Model giỏi vẫn làm sai theo những cách rất đời thường:
- sửa lan ra file không được phép đụng;
- sửa luôn file test để test «xanh»;
- viết lại hàm mà repo đã có sẵn, vì không đọc quy tắc dự án;
- chạy công cụ định dạng trên phạm vi quá rộng. Tôi từng gặp một lần làm đổi định dạng khoảng 580 file không liên quan.
Những lỗi này không phụ thuộc model đắt hay rẻ. Chúng phụ thuộc việc có ai kiểm hay không.
Bốn lớp kiểm hoạt động thế nào?
| Lớp | Ai làm | Chặn được gì | Chi phí |
|---|---|---|---|
| 1. Máy tự kiểm | script | sửa ngoài phạm vi, sửa test, lỗi kiểu, test đỏ | gần như 0 |
| 2. Test đặc tả | viết trước khi giao | logic sai so với ý muốn | thấp |
| 3. Soát chéo | model hoặc tài khoản khác | lỗi thiết kế, ca biên bị bỏ sót | thấp, không dùng tài khoản chính |
| 4. Soát cuối | Claude chính | chỗ nhạy cảm còn sót | cao nhất, nên chỉ đọc có trọng điểm |
Lớp 1: máy tự kiểm
Đề bài giao việc có mục «file được phép đụng». Script giao việc tự so danh sách file thay đổi với mục này và gắn cờ file nằm ngoài. Sau đó nó tự chạy typecheck và test liên quan, in kết quả thành bốn dòng ngắn ở cuối. Phiên chính không chạy lại những lệnh này, chỉ đọc bốn dòng đó.
Lớp 2: test đặc tả cấm sửa
Với việc có logic (tính tiền, phân quyền, ngày tháng, đọc file Excel), tôi viết trước 3–5 ca test cạnh file nguồn và ghi vào đề bài: «làm cho test này xanh, cấm sửa file test». Script chụp mã băm file test trước và sau khi giao, nên sửa test là bị phát hiện ngay. Test đặc tả xanh nghĩa là logic đúng với ý mình, không cần đọc kỹ từng dòng phần đó.
Lớp 3: soát chéo bằng model khác
Nguyên tắc: tài khoản làm không tự soát mình. Codex làm thì Claude tài khoản phụ soát, và ngược lại. Người soát nhận đề bài và patch, trả về tối đa 20 dòng với kết luận ĐẠT hoặc CẦN SỬA.
Khi dựng lớp này, tôi thử bằng một patch cố ý cài lỗi: đề bài cấm một vòng lặp chạy thừa một lần, patch lại làm đúng như thế. Người soát mất khoảng 20 giây, kết luận «CẦN SỬA», chỉ đúng lỗi đó, và còn tự tìm thêm một ca biên tôi không cài (đầu vào nhỏ hơn hoặc bằng 0). Từ đó tôi tin lớp này đáng giữ.
Lớp 4: soát cuối có trọng điểm
Claude chính đọc kết quả ba lớp trên, danh sách file thay đổi và nhận xét soát chéo. Nó chỉ đọc đủ diff của file nhạy cảm (tiền, phân quyền, chứng từ, parser, schema) và file bị gắn cờ. Phần giao diện và chữ chỉ lướt. Diff quá lớn thì giao lượt soát cho một agent con, vì agent con không mang theo lịch sử hội thoại dài nên rẻ hơn.
Làm sao để AI khác hiểu quy tắc của repo?
Một nửa số lỗi «lệch nếp» đến từ việc AI phụ không đọc được quy tắc dự án. Claude Code đọc CLAUDE.md mặc định, còn Codex CLI thì không. Với Codex, tôi thêm dòng sau vào config.toml:
project_doc_fallback_filenames = ["CLAUDE.md"]
Rồi tôi thử: cấm Codex đọc file, hỏi «hàm gọi API phía client tên gì, lệnh typecheck là gì». Nó trả lời đúng theo CLAUDE.md. Các harness khác đọc quy tắc ra sao, tôi so sánh ở bài harness là gì.
Đề bài cũng quan trọng không kém. Đề bài tốt thì ngắn, nói theo nghiệp vụ, ghi sẵn file và vùng cần sửa, có mục «bẫy đã biết» (những chỗ lần trước AI hay làm sai) và mục cách tự kiểm.
Chặn quyền cho AI phụ thế nào?
Với AI chạy model của nhà cung cấp khác, tôi chặn chặt hơn bình thường:
- cấm đọc
.envvà thư mục chứa khoá bí mật; - cấm lệnh vào database thật (
psql) và máy chủ (ssh); - cấm
git pushvà cấm cài thêm gói; - không cho tự commit: tôi soát rồi mới commit.
Cả Claude Code lẫn OpenCode đều cho khai các luật cấm này trong file cấu hình, và luật cấm vẫn giữ nguyên kể cả khi bật chế độ tự duyệt.
Những gì 4 lớp này chưa bắt được?
- Giao diện: typecheck và test xanh không có nghĩa màn hình hiển thị đúng, ví dụ hiện mã thô thay vì nhãn. Phần này vẫn phải mở trình duyệt kiểm.
- Thiết kế lớn: chia module, đổi kiến trúc thì nên làm trực tiếp với model mạnh, không giao.
Tóm tắt và bước tiếp theo
- Chất lượng code AI đến từ vòng kiểm, không từ tên model.
- Bốn lớp rẻ trước đắt sau: máy tự kiểm, test đặc tả cấm sửa, soát chéo bằng model khác, soát cuối có trọng điểm.
- Cho AI phụ đọc được quy tắc repo và chặn quyền chặt.
Bước tiếp theo: lần giao việc tới, viết trước 3 ca test cho phần logic quan trọng nhất và ghi «cấm sửa file test» vào đề bài. Đây là lớp rẻ nhất mà hiệu quả nhất. Toàn bộ chuỗi bắt đầu từ bài vì sao vẫn hết hạn mức Claude.
Câu hỏi thường gặp
›Giao code cho AI rẻ hơn có đảm bảo chất lượng không?
Không model nào tự đảm bảo chất lượng. Thứ giữ chất lượng là vòng kiểm: máy tự kiểm phạm vi, typecheck và test; test đặc tả do người hoặc model mạnh viết trước; soát chéo bằng model khác; và soát cuối có trọng điểm.
›Test đặc tả là gì?
Là 3–5 ca test viết trước khi giao việc, mô tả đúng hành vi mong muốn. AI làm việc phải làm cho test xanh và bị cấm sửa file test; script chụp mã băm trước và sau để phát hiện nếu file bị sửa.
›Soát chéo nên dùng model nào?
Một model hoặc tài khoản khác với model vừa làm việc. Tài khoản làm không tự soát mình, vì nó dễ bỏ qua đúng những lỗi nó vừa mắc.
›Có cần đọc toàn bộ diff không?
Không. Chỉ đọc đủ diff các file nhạy cảm như tiền, phân quyền, chứng từ, parser, schema và các file bị lớp trước gắn cờ. Phần giao diện, chữ thì lướt danh sách file thay đổi.
Tác giả
Chuyên gia chuyển đổi số · Đại diện 5F Edu
Hơn 8 năm triển khai và tư vấn chuyển đổi số cho doanh nghiệp vừa và nhỏ: chuẩn hoá quy trình, xây phần mềm quản lý bằng AppSheet và web app, tự động hoá bằng N8N. Người làm kênh YouTube Nghiện AppSheet.



