- Chia sẻ trải nghiệm so sánh thực chiến giữa Claude Code (Opus 4.6) và Codex (GPT-5.4) của một kỹ sư cấp cao với 14 năm kinh nghiệm, trên dự án Python/TypeScript quy mô 80.000 dòng mã
- Claude Code nhanh và có tính tương tác cao nhưng cần được giám sát sát sao vì hay phớt lờ chỉ thị, bỏ dở công việc, và thêm hàm vào các file hiện có một cách thiếu kiểm soát
- Codex chậm hơn 3~4 lần nhưng cẩn trọng và có hệ thống hơn khi viết mã, chủ động refactor và tuân thủ triệt để file chỉ dẫn (
AGENTS.md)
- Claude Code phù hợp cho tạo mẫu nhanh, còn Codex được đánh giá phù hợp hơn với phát triển phần mềm cấp doanh nghiệp
- Kết luận là cả hai công cụ đều có điểm chung: nếu không có năng lực kỹ thuật phần mềm thì khó tạo ra kết quả tốt
Bối cảnh tác giả và môi trường phát triển
- Kỹ sư ở cấp Principal/Staff Eng Manager với 14 năm làm việc tại MAG7 (7 đại công ty công nghệ Mỹ) và một công ty công nghệ lớn khác
- Chủ yếu có kinh nghiệm phát triển ở cấp nền tảng và rất dày dạn trong hệ thống phân tán
- Dự án là một mã nguồn Python/TypeScript 80.000 dòng cấu thành dưới dạng extension VSCode, với khoảng 2.800 bài test
- Ứng dụng phân tích dữ liệu, nơi người dùng tải lên file PDF/CSV/XML, sau đó hệ thống phân tích và chuẩn hóa thành mô hình dữ liệu có cấu trúc dựa trên Postgres
- Kết nối với nhà cung cấp dữ liệu thời gian thực ở backend qua WebSocket để stream dữ liệu hiện tại vào mô hình dữ liệu
- Phía máy chủ cập nhật phân tích dựa trên luồng dữ liệu và truyền tới web UI bằng SSE (Server-Sent Events)
- Đây không phải kiểu vibe coding mà là phát triển dựa trên kiến trúc có hệ thống
Quy trình agent chung
- Trước tiên bắt đầu ở chế độ Plan với prompt có phạm vi được xác định rõ, rồi dùng kỹ năng plan-review để chạy 8 sub-agent (kiến trúc, tiêu chuẩn code, thiết kế UI, hiệu năng, v.v.)
- Mỗi sub-agent có prompt cụ thể cùng với các tài liệu tham chiếu được tạo từ các phiên nghiên cứu trước đó (ví dụ:
postgres_performance.md, python_threading.md, software_architecture.md)
- Prompt của chuyên gia review kiến trúc được cấu hình để review cùng với các tài liệu tham chiếu theo từng khái niệm như SOLID, DRY, KISS, YAGNI
- Sau khi viết mã, tạo commit riêng cho từng bước trong kế hoạch, dùng kỹ năng code-review (tái sử dụng plan sub-agent) để review từng commit, rồi kiểm tra và điều chỉnh phản hồi thủ công
CLAUDE.md dài khoảng 100 dòng, bao gồm TDD, Git workflow, các convention DevEx chính, lệnh Docker và cách dùng công cụ của dự án
Trải nghiệm với Claude Code (Opus 4.6)
- Tạo cảm giác như một kỹ sư đang bị deadline dí sát, có xu hướng chỉ tập trung triển khai tính năng bằng hack, patch và helper function chắp vá, thay vì rà soát lại kiến trúc cốt lõi
- Tương tác tốt nhưng vì vậy cũng cần quản lý (babysitting) nhiều hơn
- Tạo ra mã chạy được rất nhanh, nhưng không suy nghĩ đủ kỹ trước khi hành động
- Dù chủ động quản lý context rất chặt (tác giả cho rằng context 1M là cái bẫy cho người mới và nên giữ dưới 1/4) thì gần như phiên nào cũng có lúc phớt lờ
CLAUDE.md một cách lộ liễu
- Khá thường xuyên để công việc ở trạng thái làm dở nửa chừng
- Ví dụ: khi migrate pattern bất đồng bộ cho 8 test suite, xử lý phần lớn nhưng vẫn bỏ lại một số chỗ ở pattern cũ
- Gần như không tạo file mới cho tính năng mới, mà có xu hướng tiếp tục nhồi thêm hàm vào các file hiện có
- Điều này xung đột với sở thích về nguyên tắc OO mạnh và giới hạn mỗi file dưới 600 dòng
- Khi test bị vỡ, có xu hướng tự ý sửa mà không cần prompt, nên phải thêm nhiều chỉ thị kiểu “nếu test bị vỡ thì dừng lại và hỏi tôi”
- 95% test mà nó viết là hữu ích nhưng 5% lại cố định hành vi sai, và theo thời gian điều này sẽ tích lũy
Trải nghiệm với Codex (GPT-5.4)
- Tạo cảm giác như một kỹ sư senior còn trẻ với khoảng 5~6 năm kinh nghiệm, có thể tự dừng lại và làm lại cho sạch hơn mà không cần chỉ thị riêng
- Chậm hơn Claude 3~4 lần (trên cùng một loại công việc)
- Làm việc cẩn trọng và có chủ đích hơn, không mở rộng “god class” như Claude mà tự động tổ chức mã chặt chẽ hơn
- Trong lúc làm việc còn tự rà soát lại giả định của chính mình và rework giữa chừng để dọn dẹp
- Đôi khi còn tự nguyện làm thêm những công việc gia tăng giá trị ngoài mong đợi
- Chưa từng thấy phớt lờ
AGENTS.md, thậm chí nếu cố override chỉ thị giữa phiên thì nó cũng không cho phép
- Vì đã chứng minh đủ năng lực nên có thể chuyển sang cách làm cho chạy rồi review sau khi xong, không cần giám sát thời gian thực
So sánh tổng hợp
- Giới hạn sử dụng của Codex Pro x5 ở mức tương tự Claude x20
- Codex rõ ràng chậm hơn và ít tương tác hơn nhưng cẩn trọng hơn, còn Claude thì nhanh và tương tác hơn nhưng cần quản lý sát (babysitting)
- Trong một phiên, Claude có thể xử lý khối lượng công việc lớn hơn, nhưng chất lượng đầu ra của Codex cao hơn
- Claude cho phép tạo mẫu và build cực nhanh, nhưng cứ vài ngày lại phải hướng dẫn refactor
- Codex cũng cần refactor khi ứng dụng lớn dần, nhưng ở mức “đã đến lúc refactor vì app phát triển” chứ không phải “cần dọn mớ vấn đề này là gì”
- Với vibe coding cho dự án có độ phức tạp thấp đến trung bình, Claude có thể hoàn thành nhanh hơn
- Với phần mềm doanh nghiệp, Codex phù hợp hơn
- Cả hai công cụ đều hữu ích, nhưng Claude cần một người điều khiển giàu kinh nghiệm và tập trung hơn so với Codex
- Nếu không hề biết về kỹ thuật phần mềm thì cả hai công cụ đều cho ra kết quả tệ
📋 Tóm tắt các luận điểm chính trong bình luận Reddit
Chiến lược dùng song song hai công cụ (được nhắc nhiều nhất)
- Mẫu phổ biến nhất là workflow kiểm chứng chéo: dùng Claude để làm bản nháp/làm nhanh → dùng Codex để review mã
- “Hãy để Codex review mã do Claude viết, rồi thử làm ngược lại” — rất hiếm khi hai mô hình cùng hallucinate theo một kiểu giống nhau
- Cũng có người dùng chiến lược chuyền gậy (baton-pass) sang Codex sau khi Claude hết token
- Lưu trạng thái vào
save-state.md và next-task.md để Codex tiếp quản, chất lượng handoff được cải thiện sau mỗi lần chuyển
- Có cả trường hợp bọc Codex CLI như một MCP server để tự động hóa cộng tác với Codex ngay bên trong Claude Code
- Sau khi Claude làm việc xong, Codex trả về đề xuất rồi Claude triển khai, giúp chất lượng mã tăng lên đáng kể
- Luồng làm việc kiểu dùng Codex cả ngày, rồi đến giai đoạn hoàn thiện thì dùng Claude để polish, sau đó quay lại Codex cũng được đánh giá là hiệu quả
Sự đồng cảm với ưu điểm của Codex
- Đã xuất hiện người dùng hạ gói Claude Code từ 20x ($200) xuống 5x ($100) và dùng kèm gói Codex $100
- Không cảm nhận thấy khoảng cách chất lượng quá nghiêm trọng giữa GPT-5.4 và Opus 4.6, tùy bài toán mà có thể chia 50:50
- “Cứ giao việc rồi đi pha cà phê, quay lại là xong” — về khía cạnh thực thi tự chủ (fire-and-forget) thì Codex vượt Opus
- Codex tuân thủ chỉ thị trong
AGENTS.md đến mức gần như từ chối làm trái, chỉ phớt lờ khi được yêu cầu override một cách rõ ràng
- Có báo cáo cho biết kết quả tốt hơn sau khi chuyển sang quy trình lập kế hoạch + triển khai + dùng một instance Codex khác để review, tất cả đều bằng Codex thuần
Nhược điểm của Codex
- Phàn nàn lớn nhất là phong cách giao tiếp máy móc
- Ví dụ, với giá trị Python dict
[0.1, 0.3, 0.5, 0.7, 0.9], nó không viết trên một dòng mà lại liệt kê từng giá trị mỗi dòng một dòng
- Có suy đoán rằng quá trình RL đã thưởng theo hướng “càng dùng nhiều bullet point càng tốt”
- Dù điều chỉnh thiết lập giao tiếp thì nó vẫn dao động giữa hai cực (quá ít vs quá nhiều) và khó tìm được mức phù hợp
- Có xu hướng liên tục cãi lại người dùng — kể cả khi lập trình viên hơn 10 năm kinh nghiệm đã chỉ thị rõ ràng, nó vẫn phản đối và cuối cùng cũng không đưa ra được phương án tốt hơn
- Vấn đề hội thoại kéo dài vô tận — không tập trung được vào công việc và trở nên lan man
- Khi triển khai tính năng lớn, đôi khi bỏ sót nhiều phần và không nắm được đúng codebase hiện có
- Ví dụ, dù đã có formatter sẵn nhưng lại tự tạo formatter mới, hoặc chèn chuỗi hardcode vào ViewModel
- Về tính năng, so với Claude Code thì hooks, hỗ trợ MCP, plugin, v.v. còn kém hơn, nên khi chuyển sang dễ có cảm giác bị thụt lùi
Sự đồng cảm với các vấn đề cố hữu của Claude Code
- Có sự đồng thuận rộng rãi về kiểu hành vi Claude phớt lờ chỉ thị của người dùng và làm theo ý nó muốn
- “Claude cố thực hiện điều nó tưởng tượng rằng bạn muốn” — độ tin cậy trong tuân thủ chỉ thị là thấp
- Có người chứng kiến trường hợp nó hardcode 100 object trong list rồi vẫn khẳng định là thành công, thậm chí còn lách cả hooks vốn dùng để ngăn điều này
- Trong vài tháng gần đây, xu hướng Claude không tìm ra vấn đề thật trong mã phức tạp có vẻ nặng hơn
- Nó chỉ vá triệu chứng chứ không phải nguyên nhân gốc, rồi vẫn tự tin khẳng định “đã tìm ra vấn đề”
- Thậm chí Codex đôi khi cũng bị dẫn lệch bởi những phân tích đầy tự tin nhưng sai của Claude
- Có người còn hủy đăng ký vì Claude tiêu hao credit quá nhanh — nhanh đến mức không kịp có thời gian học cách dùng
Ý kiến ngược lại: góc nhìn cho rằng Claude vẫn nhỉnh hơn
- Có trải nghiệm cho rằng Opus 4.6 thể hiện sự cẩn trọng và chiều sâu suy nghĩ tốt hơn, và ở giai đoạn thiết kế/kiến trúc thì chất lượng phân tích cao hơn GPT-5.4
- Có trường hợp Opus phát hiện thêm vấn đề trong review mà GPT-5.4 không tìm ra
- Tuy vậy, điều này cũng có thể liên quan đến tin đồn gần đây rằng mô hình Claude đã bị điều chỉnh theo hướng “ít tốn công hơn”
- Nếu yêu cầu Clean Architecture, Claude cũng sẽ tích cực tạo file mới và không phát sinh vấn đề god class
- Nếu cả hai công cụ đều tuân thủ kiến trúc thì chất lượng mã gần như tương đương, khác biệt chủ yếu nằm ở tốc độ và độ tiện khi sử dụng
- Nếu xây dựng workflow có hệ thống (plan mode + custom skill + phản hồi từ coderabbit/sonarqube) thì ngay cả trong thời gian những người khác đang than phiền, vẫn tạo ra mã tốt và không bị chạm giới hạn
Một số ý kiến thú vị khác
- “Ấn tượng là đội Anthropic có thể phát hành nhiều tính năng đến vậy, xét việc 100% mã đều do Claude viết” (mang tính châm biếm)
- “Code bằng Codex → review trong Claude → rồi thêm Gemini vào review nữa” — chiến lược review chéo 3 mô hình, đôi khi Sonnet bắt được thứ mà Opus bỏ lỡ
- Có kỳ vọng rằng “có lẽ khi Mythos (mô hình thế hệ tiếp theo) ra mắt thì kiểu phải xử lý thủ công như vậy sẽ giảm bớt”
17 bình luận
Dù là cái nào thì cũng cần HITL. (ít nhất là cho tới hôm nay)
Làm ơn đừng nói mấy thứ như Ralph Loop nữa.
Tôi chỉ dùng Codex, và đúng là nó khớp chính xác với những gì tôi cảm nhận.
Nó cũng hợp với phong cách của tôi nên tôi đang dùng rất ổn.
Tôi đã định sau khi gói ChatGPT trên KakaoTalk hết thì sẽ chuyển sang Claude,
nhưng không hiểu sao tôi có cảm giác nhược điểm của Claude sẽ không hợp với phong cách của tôi..
Liệu có sự khác biệt về ngôn ngữ chủ đạo giữa người dùng Claude và Codex không?
> Có xu hướng liên tục phản bác người dùng — ngay cả khi một lập trình viên có hơn 10 năm kinh nghiệm đưa ra chỉ dẫn rõ ràng thì vẫn tiếp tục nêu ý kiến phản đối, rồi cuối cùng cũng không tự mình đưa ra được phương án thay thế tốt hơn
ha ha
Có lẽ cũng có sự khác biệt về cách sử dụng. Tùy theo khuynh hướng của từng lập trình viên mà cách xử lý và sở thích cũng khác nhau. Khi dùng nhiều, ta sẽ quen với quy trình làm việc cùng một mô hình cụ thể, nên khi chuyển sang mô hình khác có thể sẽ thấy không quen.
Có vẻ cũng chẳng có lý do gì để phải cố chấp với một mô hình cụ thể nhỉ~
Có phải còn tùy vào việc áp dụng cho lĩnh vực nào không?
Với những việc như
rhwpmà tôi đang làm hiện tại, khi phải bắt và xử lý cả khác biệt render cỡ 1 mm, nếu dùng Codex thì nó sẽ làm hỏng. Đến lúc này, ở các bài toán độ khó cao thì Claude Code vẫn nhỉnh hơn, nhưng với phát triển web app kiểu chỉ cần xử lý đến một mức độ nhất định theo quy trình và chỉ cần có workflow cùng framework là được, thì cá nhân tôi cảm thấy dùng Codex sẽ tốt hơn cho sức khỏe tinh thần.Cảm ơn rất nhiều.
Ồ, tôi đang dùng rất tốt. Cảm ơn vì dự án tuyệt vời.
Tôi sẽ sử dụng rhwp thật tốt.
Tôi đồng ý là Codex rất kỹ lưỡng. Tôi khuyên nên viết bằng Claude rồi dùng Codex để review. Mất khá nhiều thời gian, nhưng nếu chạy trước khi đi vệ sinh hoặc trước cuộc họp thì tỷ lệ hoàn thành cũng khá cao.
Tôi cũng đang làm như vậy. Chi tiết hơn một chút thì tôi dùng Claude gói 100 đô và Codex gói 200 đô, rồi để Claude Code Opus chạy theo quy trình: lập kế hoạch -> Sonnet triển khai -> Codex review -> Opus kiểm chứng review -> Sonnet triển khai lại -> Codex review (sau đó lặp lại), tôi đã biến hẳn nó thành một skill để nó cứ chạy liên tục như vậy và khá hài lòng.
Tôi cũng đang dùng như vậy. Tuy nhiên, thay vì cố định vai trò cho một mô hình, tôi phân việc trước cho mô hình vừa mạnh mẽ vừa còn quota thoải mái nhất.
Tôi đã thử dùng cả hai và lại nghĩ là ngược lại, hóa ra không phải vậy sao.
Khi tôi dùng thì Codex thường hay bỏ qua chỉ dẫn.
Gần đây có vẻ Anthropic đã giảm hiệu năng của 4.6 Opus nên mọi thứ có lẽ đã thay đổi.
Không phải ngược lại sao? Senior có vẻ còn thiếu hơn tưởng tượng đấy
Vấn đề cố hữu của Claude Codechắc là bạn chưa từng gặp nhỉ. Trên Reddit cũng ngày nào người ta cũng làm ầm lên về chuyện này.Theo tôi, codex mang lại trải nghiệm tốt hơn.