6 điểm bởi neostom432 7 giờ trước | Chưa có bình luận nào. | Chia sẻ qua WhatsApp

Dạo gần đây trên X·Discord, số bài viết kiểu "dùng Claude Code cùng với Codex" tăng lên rõ rệt; ai cũng bảo là tốt, nên tôi đã thử cài cả hai công cụ vào cùng một repo và vận hành chúng trong khoảng một tháng để xem có thật vậy không. Khi bắt tay vào áp dụng thực tế thì có cả đống điểm phải quyết định: nên bắt đầu setup từ đâu, phân chia vai trò cho hai công cụ thế nào để không xung đột, AGENTS.md và CLAUDE.md có thể điền cùng một nội dung hay không. Vì thế tôi đã sắp xếp lại thành một curriculum gồm 8 chương để những ai đang mắc cùng nỗi băn khoăn có thể giảm bớt thử-sai khi bắt đầu.

Workflow hai agent này rất đơn giản. Nếu bắt cùng một model vừa viết code vừa tự review code của mình, nó sẽ giữ nguyên những giả định do chính nó tạo ra nên dễ bỏ sót lỗ hổng; vì vậy cấu trúc ở đây là đặt một model khác bên cạnh như một reviewer advisory (không chặn). Claude Code là người viết chính, Codex là reviewer advisory. Điểm mấu chốt không phải bên nào thông minh hơn, mà là chúng là các model khác nhau; và ngay khoảnh khắc một bên trở thành gate của bên kia thì workflow sẽ vỡ, nên quy tắc lớn nhất là tuyệt đối không biến advisory thành cơ chế chặn.

Bối cảnh — những thay đổi nhìn lại khi hệ thống hóa

• Câu hỏi trước đây: "Công cụ AI coding nào là tốt nhất"
• Câu hỏi hiện tại: "Phân chia từ hai công cụ trở lên như thế nào", "Lấy công cụ này bù vùng mù của công cụ kia ra sao"
• Khi các yếu tố như slash command·sub-agent của Claude Code, việc tách review/exec của Codex, và các file ngữ cảnh như AGENTS.md đã xuất hiện, thì đây là thời điểm việc đóng đinh cấu trúc kép vào workflow lần đầu tiên trở thành một lựa chọn thực tế

Điểm cốt lõi của mẫu cấu trúc kép (phần gây ấn tượng nhất sau một tháng vận hành)

• advisory tuyệt đối không phải chặn — kể cả khi Codex bắt được CRITICAL thì push vẫn đi qua. Một khi đã biến thành chặn, chỉ cần model bị down là toàn bộ công việc dừng lại, và chỉ một lần false positive cũng đủ khiến người dùng bắt đầu bỏ qua toàn bộ hook bằng --no-verify
• Không điền CLAUDE.md / AGENTS.md bằng cùng một nội dung — với người viết là "làm như thế nào", với reviewer là "cần nghi ngờ điều gì". Nếu trùng nhau hơn 80% thì đó là tín hiệu cho thấy việc phân công trên thực tế gần như không tồn tại
codex review --basecodex exec được chia theo use case — review đọc trực tiếp git nên gọn gàng, nhưng với PR lớn thì token dễ bùng nổ; exec thì có thể nhét trực tiếp diff vào prompt để kiểm soát chi phí. Mẫu thường dùng là khi thay đổi vượt 100 file thì chuyển sang exec
• Tuyến phòng thủ hai lớp cho secret trong pre-push hook — pattern theo file (.env, *.pem, secrets/) thì abort push, còn regex nội tuyến (sk-, ghp_, AKIA…) thì chỉ cảnh báo. Quy tắc "never block" của advisory là luật cho đầu ra của model, còn việc đẩy file secret là một sự cố bảo mật hoàn toàn khác nên chặn mới là đáp án đúng
• Hấp thụ bằng một wrapper graceful degradation duy nhất — mặc định dùng JSON envelope + --raw Markdown, timeout thuần bash, luôn exit 0. Bên gọi chỉ cần rẽ nhánh dựa trên status

Những gì thay đổi sau một tháng sử dụng

• Số bug bị bắt ngay trước lúc merge tăng lên. Có khá nhiều trường hợp Claude rất tự tin rằng mình "viết ổn rồi" nhưng Codex lại chỉ ra race condition hoặc thiếu kiểm tra null
• Việc mở lại PR vào ngày hôm sau rồi tự hỏi "ơ sao mình lại viết thế này" gần như biến mất. Vì đã có thêm một góc nhìn khác chen vào một lần, nên chi phí rà soát hồi quy giảm xuống
• Sự mệt mỏi của việc tự review code do chính mình viết giảm thấy rõ. Hiệu ứng giống như có thêm một reviewer con người
• Với các thay đổi khó rollback như migration SQL hay luồng thanh toán, việc có thêm một model xem lại ngay trước khi thực hiện là khác biệt lớn nhất về mặt tâm lý

Cấu trúc curriculum (8 chương, 5 phần)

• Part 1 Tư duy dùng song song hai agent · 1 chương — vùng mù của agent đơn, tiêu chí biện minh chi phí
• Part 2 Môi trường và ngữ cảnh · 2 chương — setup nền tảng VSCode + Claude Code + Codex CLI, phân chia AGENTS.md vs CLAUDE.md
• Part 3 Mẫu tự động hóa review · 3 chương — script wrapper advisory, pipeline nhiều pha bằng slash command, tự động hóa pre-push hook
• Part 4 Hướng dẫn vận hành · 1 chương — cây quyết định chọn công cụ theo loại công việc, hướng dẫn chi phí·model, phần Security & Privacy
• Part 5 Boilerplate · 1 chương — trọn bộ template wrapper·hook·CLAUDE.md/AGENTS.md có thể cài nguyên xi vào repo của bạn

Những điều tôi nghĩ đến khi tổng kết lại

• Giá trị thật sự của cấu trúc kép nằm ở chỗ "hai công cụ không trở thành gate của nhau". Chỉ cần cho phép chặn một lần thì khi một bên down, công việc sẽ dừng lại; và chỉ một lần false positive cũng đủ khiến người dùng bắt đầu bypass toàn bộ hook, làm chính hook đó mất tác dụng
• Càng về sau khi các công cụ AI nhanh hơn, có cảm giác biến số quyết định sẽ không còn là "dùng công cụ nào" mà là "chồng phủ vùng mù của nhiều công cụ ra sao". Cấu trúc này cũng giống với lý do người ta xin review code từ nhiều hơn một người
• Tôi chia sẻ bài này vì nghĩ rằng nó sẽ hữu ích cho những ai thấy không yên tâm với việc tự mình rà soát lại code do chính mình viết khi làm việc bằng công cụ AI coding, hoặc đang trì hoãn chuyện có nên cài cả Claude Code lẫn Codex hay không. Nếu có chỗ nào tôi hiểu sai hoặc sắp xếp chưa đúng, hãy cho tôi biết qua bình luận để tôi cập nhật.

Chưa có bình luận nào.

Chưa có bình luận nào.