Hướng dẫn tổ chức workflow Codex xuyên suốt app, CLI và IDE: chọn bề mặt làm việc, giao context, kiểm soát quyền, review diff, chạy test và tự động hóa tác vụ lặp.

1:04 ước tính · Chưa có giọng vi-VN

Codex không còn là một ô chat chỉ dùng để hỏi cách viết hàm. Cùng một tác nhân lập trình có thể xuất hiện trong terminal, editor, ứng dụng desktop và môi trường cloud. Sự mở rộng này tạo ra một lợi thế lớn: developer có thể bắt đầu công việc ở bề mặt phù hợp nhất, rồi tiếp tục review và hoàn thiện ở nơi có đủ ngữ cảnh. Nhưng nó cũng tạo ra một lỗi vận hành phổ biến: dùng mọi bề mặt theo cùng một cách, giao nhiệm vụ quá rộng và mặc định rằng agent sẽ tự hiểu ranh giới của repository.
Một workflow Codex tốt không bắt đầu bằng câu hỏi “dùng App hay CLI?”. Nó bắt đầu bằng việc phân loại nhiệm vụ, xác định bằng chứng hoàn thành và chọn mức quyền phù hợp. Tác vụ khám phá codebase cần khả năng đọc rộng nhưng chưa cần ghi. Sửa lỗi cục bộ cần diff nhỏ và test liên quan. Migration dài cần kế hoạch, checkpoint và cơ chế quay lui. Review pull request cần tập trung vào rủi ro, không phải tạo thêm thay đổi ngoài phạm vi.
Bài này xây một vòng làm việc xuyên suốt: chuẩn bị repository, viết yêu cầu, cung cấp context, chọn bề mặt, kiểm soát sandbox và approval, review diff, chạy kiểm thử rồi mới đưa tác vụ lặp vào automation. Mục tiêu không phải chứng minh Codex “thay developer”, mà là biến agent thành một thành phần có thể kiểm tra trong quy trình kỹ thuật.
Repository chính thức openai/codex được viết chủ yếu bằng Rust, dùng giấy phép Apache-2.0, không bị archived và vẫn nhận commit mới. Repository đã vượt mốc 100.000 star, nhưng star chỉ phản ánh mức độ quan tâm. Chất lượng triển khai vẫn phụ thuộc vào phiên bản, cấu hình, test, quyền truy cập và cách đội ngũ review kết quả.

Codex CLI chạy trên máy local và làm việc trong thư mục mà developer mở. Extension đưa trải nghiệm agent vào editor như VS Code, Cursor hoặc Windsurf. Codex App tập trung vào việc giao, theo dõi và review nhiều tác vụ. Codex Web chạy tác vụ trong môi trường cloud gắn với repository. Các bề mặt này có thể dùng cùng một tài khoản, nhưng phạm vi dữ liệu, hệ thống file, network và credential không giống nhau.
CLI phù hợp khi nhiệm vụ gắn chặt với terminal: đọc log, chạy test, kiểm tra Git, chỉnh một nhóm file hoặc làm việc trong môi trường đã cấu hình sẵn. IDE phù hợp khi developer cần nhìn code, diff và diagnostics liên tục. App hữu ích khi cần quản lý nhiều công việc, chuyển qua lại giữa dự án hoặc theo dõi tác vụ dài. Cloud phù hợp khi muốn tách tác vụ khỏi máy cá nhân và dùng một môi trường có thể tái tạo.
Đừng chọn bề mặt chỉ theo sở thích giao diện. Hãy hỏi bốn câu: dữ liệu nằm ở đâu, công cụ nào phải chạy, ai cần review và hành động nào có thể gây hậu quả. Một repository có database local, thiết bị giả lập hoặc service nội bộ có thể phù hợp với CLI hơn cloud. Một refactor độc lập chỉ cần checkout và test có thể chạy tốt trong môi trường tách biệt. Một pull request đang tranh luận về thiết kế nên được review trong editor hoặc giao diện diff, nơi con người thấy rõ từng thay đổi.
Bài Terminal Agent vs IDE Agent vs Cloud Agent trên NextGZ so sánh các nhóm công cụ và mô hình quyền. Ở đây, phạm vi hẹp hơn: dùng riêng Codex như một workflow thống nhất. Điểm quan trọng là bề mặt có thể đổi, nhưng hợp đồng nhiệm vụ phải giữ nguyên: phạm vi, ràng buộc, test và điều kiện hoàn thành.
Tình huống | Bề mặt khởi đầu | Lý do |
|---|---|---|
Khám phá codebase local | CLI | Đọc cấu trúc, chạy lệnh và tìm kiếm nhanh |
Sửa UI có diagnostics | IDE | Thấy code, type error và diff cùng lúc |
Nhiều tác vụ độc lập | App | Theo dõi hàng đợi và trạng thái rõ hơn |
Task dài, môi trường tách biệt | Cloud | Giảm phụ thuộc vào máy cá nhân |
Review pull request | IDE/App | Tập trung vào diff, findings và test |

README chính thức cung cấp installer cho macOS, Linux và Windows. Codex CLI cũng có thể cài qua npm, Homebrew hoặc tải binary từ GitHub Releases. Với npm, lệnh cơ bản là npm install -g @openai/codex. Với Homebrew, dùng brew install --cask codex. Sau khi cài, chạy codex để đăng nhập và bắt đầu.
Đăng nhập bằng tài khoản ChatGPT phù hợp với người dùng muốn sử dụng quyền lợi Codex trong gói ChatGPT. Đăng nhập bằng API key là một luồng khác và có cách tính chi phí riêng. Đừng trộn hai cơ chế trong tài liệu nội bộ. Nếu một thành viên dùng gói ChatGPT còn CI dùng API key, hãy ghi rõ ai chịu chi phí, key nằm ở đâu và workload nào được phép chạy.
Repository phát hành binary cho nhiều kiến trúc macOS và Linux. Điều này tiện, nhưng “latest” không phải lựa chọn tốt cho mọi team. Khi Codex tham gia migration, CI hoặc quy trình có kiểm soát, hãy pin version. Release mới có thể thay đổi cấu hình, event, command hoặc hành vi tool. Một tác vụ đã ổn định tuần trước không nên tự động nhận binary mới giữa lần chạy mà không có smoke test.
Với project nhiều người, ghi phiên bản trong tài liệu setup hoặc bootstrap script. Repository Codex còn cung cấp DotSlash file trong GitHub Release để team có thể gắn một executable cụ thể với source control. Dù chọn npm, Homebrew, installer hay binary, nguyên tắc giống nhau: biết chính xác phiên bản đang chạy, có cách nâng cấp và có đường quay lui.
Trước khi mở Codex, repository cũng cần trạng thái sạch. Chạy test nền, ghi lại lỗi đã tồn tại và tách thay đổi cá nhân chưa commit. Nếu agent bắt đầu từ working tree lẫn nhiều thay đổi, diff cuối không còn là bằng chứng đáng tin. Một branch riêng hoặc worktree riêng cho tác vụ giúp review rõ hơn và giảm nguy cơ ghi đè công việc đang làm.
Kiểm tra phiên bản Codex và đường cài đặt.
Xác định cơ chế đăng nhập: ChatGPT hay API key.
Chạy test nền và lưu kết quả.
Tạo branch hoặc worktree riêng.
Đọc hướng dẫn build, lint và test của repository.
Loại secret khỏi file, prompt và log.
Chỉ mở network hoặc service thật khi nhiệm vụ cần.

Prompt “sửa app cho tốt hơn” không phải brief. Nó chuyển toàn bộ việc xác định phạm vi sang agent, trong khi agent không biết ưu tiên sản phẩm, mức rủi ro hay tiêu chuẩn chấp nhận. Một prompt vận hành tốt cần năm phần: mục tiêu, phạm vi, ràng buộc, bằng chứng và điều kiện dừng.
Mục tiêu mô tả kết quả người dùng hoặc kỹ thuật cần đạt. Phạm vi chỉ rõ file, module hoặc service được phép chạm. Ràng buộc nêu những gì không được đổi: API công khai, schema, dependency, style hoặc hành vi tương thích. Bằng chứng yêu cầu test, lint, screenshot, benchmark hoặc log. Điều kiện dừng buộc agent báo blocker thay vì đoán khi thiếu dữ liệu.
Ví dụ, thay vì “thêm retry cho notification API”, có thể giao: “Thêm exponential backoff cho client notification trong module X; không đổi public API; tối đa ba lần thử; không retry lỗi 4xx trừ 429; thêm unit test cho success, 429 và 500; chạy test module; nếu behavior hiện tại không xác định thì dừng và chỉ ra file cần quyết định”. Brief này giúp diff nhỏ hơn và review có tiêu chí.
Khi quản lý nhiều task trong App, mỗi task nên độc lập về branch, mục tiêu và output. Không xếp “refactor auth”, “nâng framework” và “sửa onboarding” vào cùng một task chỉ vì chúng nằm trong một sprint. Agent có thể chạy song song, nhưng Git conflict và thay đổi thiết kế vẫn phải được điều phối. Song song hóa chỉ có lợi khi ranh giới kỹ thuật thực sự tách biệt.
Đặt tên task theo outcome, không theo động từ chung. “Fix login” khó tìm lại; “Từ chối refresh token hết hạn và thêm regression test” tạo lịch sử rõ hơn. Với hàng đợi dài, thêm nhãn cho repository, risk, owner và trạng thái review. Một task hoàn thành về mặt agent chưa đồng nghĩa đã sẵn sàng merge.
Codex hỗ trợ file AGENTS.md để cung cấp hướng dẫn theo repository. Dùng file này cho lệnh test, convention, cấu trúc và quy tắc bền vững. Đừng biến nó thành kho prompt dài chứa quyết định tạm thời. Thông tin riêng cho một task nên nằm trong task; nguyên tắc lặp lại mới nên vào hướng dẫn repository.

Agent có thể đọc repository, nhưng không tự biết ảnh nào là thiết kế đã duyệt, ticket nào là nguồn sự thật hoặc API nào thuộc môi trường thật. Context cần có nguồn và ranh giới. Với bug UI, đính kèm screenshot, viewport, expected state và đường dẫn component. Với bug backend, cung cấp log đã loại secret, request mẫu và điều kiện tái hiện. Với migration, chỉ rõ schema hiện tại, trạng thái đích và kế hoạch rollback.
Hình ảnh đặc biệt hữu ích khi yêu cầu liên quan layout, responsive behavior hoặc lỗi hiển thị. Tuy nhiên, một screenshot không thay thế token thiết kế, accessibility tree hoặc acceptance criteria. Nếu ảnh thể hiện màu và khoảng cách nhưng không nêu breakpoint, agent có thể tạo bản giống ở một kích thước rồi hỏng ở kích thước khác. Hãy ghép ảnh với dữ kiện có thể kiểm tra.
Context cũng cần được tối giản. Gửi cả kho tài liệu khiến agent mất thời gian và tăng khả năng bám nhầm phiên bản. Thay vào đó, đưa đường dẫn file quan trọng, rồi cho phép agent khám phá phần liên quan. Nếu có nhiều spec mâu thuẫn, chỉ rõ spec nào thắng. Nếu không biết, yêu cầu agent liệt kê mâu thuẫn trước khi sửa.
Với repository lớn, bắt đầu bằng một lượt chỉ đọc. Yêu cầu Codex lập bản đồ module, entrypoint, data flow, test và rủi ro. Review bản đồ đó trước khi cho phép thay đổi. Đây là cách rẻ để phát hiện agent đang hiểu sai phạm vi. Kế hoạch không cần dài; nó cần chỉ ra file dự kiến chạm, lệnh dự kiến chạy và giả định còn thiếu.
Không đặt secret vào prompt để “tiện chạy thử”. Dùng biến môi trường, secret manager hoặc credential ngắn hạn theo cơ chế của môi trường. Khi task cần dữ liệu production, cân nhắc tạo fixture đã ẩn danh. Một agent có khả năng đọc file và chạy lệnh phải được coi như một actor có quyền, không phải một autocomplete vô hại.
Loại task | Context nên có | Bằng chứng |
|---|---|---|
Bug UI | Screenshot, viewport, component, expected behavior | Test UI, screenshot hoặc steps tái hiện |
Bug API | Request mẫu, log đã làm sạch, contract | Unit/integration test |
Refactor | Boundary, invariant, performance budget | Test cũ pass, diff hành vi bằng 0 |
Migration | Schema, dữ liệu mẫu, rollback | Dry-run, backup, validation query |
Review | PR intent, threat model, area rủi ro | Finding có file, tác động và cách tái hiện |

Codex có cơ chế sandbox và approval để giới hạn hành động, nhưng cấu hình an toàn không thể bù cho brief mơ hồ. Trước một task, xác định agent cần đọc gì, ghi ở đâu, chạy lệnh nào và có cần network hay không. Nếu tác vụ chỉ phân tích, giữ chế độ chỉ đọc. Nếu cần sửa code, giới hạn vùng ghi vào workspace. Nếu cần cài package hoặc gọi service, yêu cầu approval ở ranh giới đó.
Quyền network là một quyết định dữ liệu. Khi agent có thể gửi request ra ngoài, repository, prompt hoặc output lệnh có thể trở thành input của dịch vụ khác. Chỉ mở network tới host cần thiết và tránh dùng credential có phạm vi rộng. Một task đọc docs công khai không cần token production; một test integration nên dùng môi trường staging hoặc mock nếu có thể.
Approval cũng cần được review theo ý nghĩa, không theo thói quen bấm đồng ý. Một lệnh npm test và một lệnh chạy migration có tác động khác nhau dù đều xuất hiện trong terminal. Team nên định nghĩa nhóm lệnh an toàn, nhóm cần xác nhận và nhóm bị cấm trong workflow agent. Với lệnh phá hủy, đừng chỉ dựa vào prompt “hãy cẩn thận”; dùng permission, backup và policy thực tế.
Codex có non-interactive mode qua codex exec. Đây là nền tảng cho script và CI, nhưng non-interactive không có nghĩa autonomous vô điều kiện. Đầu vào phải ổn định, output phải máy đọc được khi cần, exit code phải được kiểm tra và quyền phải hẹp hơn phiên tương tác. Task không xác định hoặc cần quyết định sản phẩm không nên bị ép vào automation chỉ để tiết kiệm vài phút.
Self-hosting cũng cần được hiểu đúng. Codex CLI chạy local và repository mã nguồn mở cho phép xem, build và tích hợp phần client theo Apache-2.0. Điều đó không đồng nghĩa model suy luận được self-host trên hạ tầng của bạn. Việc xử lý model phụ thuộc cơ chế dịch vụ và tài khoản đã chọn. Team có yêu cầu dữ liệu nghiêm ngặt cần đọc chính sách sản phẩm, cấu hình tổ chức và data boundary thay vì suy luận từ chữ “local”.
Để debug CLI, Codex viết bằng Rust và tôn trọng biến RUST_LOG. Tài liệu repository nêu rằng chế độ non-interactive mặc định dùng mức error và in thông báo inline. Tăng log chỉ khi cần, vì log chi tiết có thể chứa path, command hoặc dữ liệu không nên lưu lâu.

Kết thúc tốt nhất của một task agent không phải câu “đã hoàn thành”, mà là một gói bằng chứng nhỏ: mục tiêu, file thay đổi, test đã chạy, kết quả, giới hạn và phần chưa xác minh. Developer có thể đọc gói này rồi đi thẳng vào diff thay vì đoán agent đã làm gì.
Review theo thứ tự từ phạm vi tới chi tiết. Trước hết, xem có file ngoài scope không. Sau đó kiểm tra public API, schema, dependency và cấu hình. Tiếp theo đọc logic, error path và test. Cuối cùng mới xem format hoặc style. Nếu phạm vi đã sai, không nên mất thời gian tranh luận tên biến.
Đừng chỉ hỏi test có pass. Hãy hỏi test nào đã chạy và test có thật sự bao phủ thay đổi. Một agent có thể chạy suite nhỏ không liên quan hoặc giữ nguyên test cũ dù behavior mới chưa được kiểm chứng. Với bug fix, cần regression test thất bại trước sửa và pass sau sửa khi có thể. Với refactor, test cần chứng minh invariant không đổi. Với performance, cần benchmark hoặc ít nhất đo trước–sau trong cùng điều kiện.
Diff nhỏ dễ tin hơn diff lớn. Nếu Codex vừa sửa bug vừa đổi formatter, nâng dependency và refactor module, hãy tách lại. Một commit nên kể một câu chuyện. Khi agent đề xuất thay đổi phụ “để code sạch hơn”, yêu cầu giải thích mối liên hệ hoặc đưa sang task riêng.
Ảnh giao diện editor cho thấy vòng lặp có thể tiếp tục sau khi Codex liệt kê file đã sửa: reviewer yêu cầu thêm test, chỉnh phạm vi hoặc sửa một finding. Đây là điểm khác giữa sử dụng agent như máy phát patch và sử dụng agent như cộng tác viên có kiểm soát. Con người không cần viết lại mọi dòng, nhưng phải giữ quyền quyết định tiêu chí và phạm vi.
Scope: chỉ file cần thiết được thay đổi.
Correctness: happy path và error path đúng contract.
Security: quyền, input, secret và network không mở rộng ngoài dự kiến.
Compatibility: API, schema, config và dữ liệu cũ vẫn xử lý được.
Evidence: test, lint, typecheck hoặc benchmark phù hợp.
Operability: log, rollback và cách phát hiện lỗi sau release đã rõ.

Review bằng agent dễ tạo nhiều nhận xét nghe hợp lý nhưng khó hành động. Một finding tốt phải có vị trí, điều kiện kích hoạt, tác động và hướng sửa. “Có thể có race condition” chưa đủ. Finding cần chỉ ra hai luồng nào cạnh tranh, trạng thái nào bị ghi đè và test nào có thể tái hiện.
Ưu tiên finding theo rủi ro thay vì số lượng. Lỗi làm mất dữ liệu, vượt quyền, phá API hoặc khiến giao dịch lặp phải đứng trước naming và style. Nếu agent không đủ bằng chứng, đánh dấu là giả thuyết cần xác minh thay vì bug đã xác nhận. Cách phân loại này giảm cảnh báo giả và giúp reviewer tập trung.
Code review cũng nên biết intent của pull request. Một đoạn code có thể trông dư thừa nhưng tồn tại để tương thích dữ liệu cũ. Nếu chỉ đưa diff mà không có context, agent dễ khuyên xóa guard quan trọng. Hãy cung cấp mô tả PR, issue, invariant và area rủi ro. Với security review, thêm threat model tối thiểu: actor, asset, trust boundary và hậu quả.
Codex có thể sửa finding sau khi reviewer chấp nhận, nhưng nên tạo một diff mới dễ so sánh. Đừng để vòng sửa review âm thầm thay đổi yêu cầu gốc. Mỗi vòng cần ghi rõ finding nào được xử lý, test nào bổ sung và finding nào được bác bỏ cùng lý do.
Với team nhỏ, có thể dùng agent như reviewer thứ nhất để tìm lỗi cơ học và thiếu test. Reviewer con người vẫn chịu trách nhiệm cho kiến trúc, nghiệp vụ và rủi ro. Với team lớn, sampling các finding đã merge giúp đo precision của review agent. Nếu phần lớn nhận xét bị bác bỏ, cần sửa prompt, scope hoặc policy thay vì tăng số lượt review.

Khi một task chạy tốt vài lần, team thường muốn biến nó thành plugin, script hoặc lịch. Đây là bước hợp lý chỉ khi input, output, quyền và failure path đã ổn định. Tự động hóa một prompt mơ hồ chỉ biến lỗi ngẫu nhiên thành lỗi lặp lại.
Ứng viên tốt cho automation gồm cập nhật dependency có policy rõ, tạo changelog từ release đã merge, chạy smoke test, kiểm tra link, tổng hợp finding hoặc chuẩn bị bản nháp issue. Ứng viên kém gồm migration không có rollback, gửi thông báo ra ngoài, chỉnh permission, xử lý dữ liệu khách hàng hoặc quyết định kiến trúc chưa thống nhất.
Plugin mở thêm tool và dữ liệu. Mỗi plugin phải được coi như một integration có permission. Kiểm tra tool nào được expose, connector đọc hay ghi, phạm vi tài khoản và nơi lưu output. Không cài plugin chỉ vì nó “hữu ích”; hãy gắn nó với một workflow có owner. Bài 10 plugin Codex hữu ích giới thiệu các nhóm khả năng; khi đưa vào production, cần thêm permission review và log hành động.
Scheduled task cần idempotency. Nếu job chạy lại, nó không được tạo hai pull request, hai issue hoặc hai migration. Dùng khóa theo ngày, commit hoặc task ID; kiểm tra trạng thái trước khi ghi; phân biệt retry kỹ thuật với chạy lại nghiệp vụ. Khi nguồn không đổi, job nên dừng yên thay vì tạo output mới để lấp lịch.
Automation trong GitHub Actions cần giới hạn token, secret và quyền workflow. Đặt permission ở mức tối thiểu, pin action, kiểm tra input từ issue hoặc pull request và tránh đưa nội dung không tin cậy thẳng vào lệnh shell. Bài GitHub Agentic Workflows thực chiến đi sâu vào safe outputs, secret và prompt injection khi chạy agent trong GitHub Actions.
Với codex exec, wrapper nên kiểm tra exit code, timeout và output. Lưu artifact cần thiết cho review nhưng không lưu secret. Nếu task thay đổi code, yêu cầu branch riêng và pull request thay vì ghi thẳng vào nhánh chính. Nếu task chỉ phân tích, dùng quyền read-only và xuất report có cấu trúc.
Mức | Đặc điểm | Hành động phù hợp |
|---|---|---|
Thử nghiệm | Prompt còn đổi, nhiều ngoại lệ, cần hướng dẫn liên tục | Chạy tương tác, review toàn bộ |
Lặp lại có kiểm soát | Input/output rõ, test ổn, failure path đã biết | Tạo template, script hoặc plugin nội bộ |
Automation | Idempotent, quyền hẹp, có alert và rollback | Đưa vào lịch hoặc CI với owner |
Đừng đánh giá maturity bằng việc agent có chạy hết task hay không. Workflow production-oriented cần quan sát được, quay lui được và có người chịu trách nhiệm. Một demo thành công chưa chứng minh task sẽ an toàn khi dữ liệu, dependency hoặc service thay đổi.
Chi phí Codex không chỉ là subscription hoặc token. Phần lớn chi phí ẩn nằm ở setup môi trường, review diff, sửa test flaky, quản lý branch, triage finding và khôi phục khi task đi sai phạm vi. Agent tạo code nhanh nhưng có thể chuyển thời gian từ viết sang review. Nếu review không được tổ chức, tốc độ đầu vào tăng còn throughput merge không tăng.
Developer cá nhân hưởng lợi nhiều ở exploration, boilerplate, test và tác vụ bảo trì. Solopreneur có thể dùng Codex để giữ nhịp sản phẩm, nhưng nên tránh để một agent vừa viết code, tự review và tự deploy mà không có gate. AI Creator có thể kết nối tài liệu, GitHub và workflow nội dung, nhưng cần tách code production khỏi thử nghiệm. Doanh nghiệp cần thêm SSO, policy, audit, data boundary và quy trình phê duyệt.
Apache-2.0 cho phép sử dụng và sửa mã nguồn repository trong phạm vi giấy phép, bao gồm use case thương mại, nhưng không biến dịch vụ model hoặc gói sản phẩm thành phần mềm tự host miễn phí. Hãy tách ba lớp khi tính chi phí: client open source, quyền sử dụng model và hạ tầng tích hợp của tổ chức.
Một cách đo giá trị thực tế là theo dõi cycle time từ issue tới pull request đã review, tỷ lệ task cần làm lại, số finding hợp lệ, test coverage và incident sau merge. Số dòng code hoặc số task “completed” dễ tối ưu sai. Agent tốt phải giảm thời gian tới thay đổi đúng, không chỉ tăng lượng thay đổi.
Codex App, CLI, IDE và cloud không phải bốn sản phẩm tách rời về mặt workflow. Chúng là các bề mặt cho những giai đoạn khác nhau: giao việc, khám phá, thực thi, review và điều phối. Giá trị xuất hiện khi team giữ cùng một hợp đồng nhiệm vụ qua mọi bề mặt và không đánh mất ranh giới quyền khi chuyển môi trường.
Hãy bắt đầu với một task nhỏ, branch riêng, prompt có tiêu chí hoàn thành và mức quyền tối thiểu. Yêu cầu agent đưa bằng chứng, review diff theo rủi ro rồi lưu những hướng dẫn bền vững vào repository. Chỉ khi task đã lặp lại ổn định mới đưa nó vào plugin, codex exec, lịch hoặc CI.
Codex có thể rút ngắn phần khám phá và thực thi, nhưng con người vẫn giữ trách nhiệm đối với intent, dữ liệu, security và quyết định merge. Workflow tốt không cố loại con người khỏi vòng lặp; nó đặt con người đúng chỗ, với diff, test và finding đủ rõ để quyết định nhanh hơn.








Đăng ký miễn phí, lấy link riêng và giới thiệu NextGZ cho người cần học tiếng Trung hoặc Digital Art.
Cộng đồng thực chiến
Tham gia nhóm để nhận tài nguyên, cập nhật công cụ và trao đổi cách xây dựng digital business cùng AI.
Tham gia nhóm ZaloCộng đồng sáng tạo
Kết nối với cộng đồng Digital Art, chia sẻ tác phẩm và học hỏi quy trình sáng tạo mới.
Tham gia DiscordCộng đồng thực chiến
Tham gia nhóm để nhận tài nguyên, cập nhật công cụ và trao đổi cách xây dựng digital business cùng AI.
Tham gia nhóm ZaloCộng đồng sáng tạo
Kết nối với cộng đồng Digital Art, chia sẻ tác phẩm và học hỏi quy trình sáng tạo mới.
Bình luận
0 bình luận
Đăng nhập để tham gia thảo luận cùng cộng đồng!
Đăng nhập ngayĐang tải bình luận...