Cập nhật tháng 10/2026. Codex CLI ra phiên bản mới thường xuyên nên tên tuỳ chọn có thể thay đổi. Trước khi dùng thật, hãy chạy codex exec --help và đối chiếu với tài liệu chính thức dẫn ở cuối bài.
Bài này dành cho ai: lập trình viên, trưởng nhóm kỹ thuật và agency web đã dùng Codex ở chế độ trò chuyện, nay muốn giao việc lặp lại cho Codex chạy tự động.
Bạn sẽ nắm được gì: chế độ không tương tác codex exec hoạt động ra sao; cách cấp quyền sandbox vừa đủ; cách chạy Codex trong GitHub Actions bằng openai/codex-action; 3 mẫu lệnh cho kiểm tra chính tả nội dung, cập nhật changelog và review định kỳ; lỗi thường gặp; bài tập thực hành.
Thời gian đọc: khoảng 13 phút, thực hành thêm 60–90 phút.
Bài OpenAI Codex cho đội nhỏ đã hướng dẫn cài Codex CLI, viết AGENTS.md, giao việc lên đám mây và bật review qua @codex review. Bài này đi tiếp: biến Codex thành một bước trong kịch bản, chạy theo lịch hoặc theo sự kiện, kết quả ghi ra tệp để người duyệt sau.

1. Chế độ không tương tác là gì
Khi gõ codex, bạn vào giao diện trò chuyện trong cửa sổ dòng lệnh. Khi gõ codex exec "yêu cầu", Codex nhận yêu cầu, tự làm đến khi xong rồi thoát, không hỏi lại. Tiến trình được in ra stderr, còn chỉ câu trả lời cuối được in ra stdout. Nhờ vậy bạn nối được kết quả sang lệnh khác hoặc ghi thẳng vào tệp.
Có ba cách dùng chính, từ đơn giản đến tự động hoàn toàn:
codex exec
Chạy một yêu cầu từ kịch bản shell, cron hoặc bước CI. Mặc định chỉ được đọc.
codex review
Lệnh review không tương tác: so với nhánh gốc (--base), một commit (--commit) hoặc thay đổi chưa commit (--uncommitted).
openai/codex-action
Action chính thức cho GitHub Actions: cài CLI, giữ API key qua proxy, chạy codex exec với quyền bạn đặt.
Khác với review qua @codex trong pull request, cách trong bài này chạy trên máy hoặc runner của bạn và thường xác thực bằng API key, trả tiền theo lượng dùng.
2. Việc nào nên tự động hoá, việc nào không
Ứng viên tốt là việc lặp lại, đầu vào rõ, kết quả dễ kiểm tra:
- Rà nội dung: lỗi chính tả, câu cụt, liên kết trỏ sai trong tệp Markdown, bản dịch thiếu chuỗi.
- Giấy tờ phát hành: soạn nháp changelog, ghi chú phát hành từ danh sách commit.
- Review định kỳ: mỗi tuần quét các thay đổi đã gộp, tìm chỗ thiếu kiểm tra dữ liệu đầu vào, chỗ thiếu test.
Không nên để chạy tự động: thay đổi thanh toán, di chuyển cơ sở dữ liệu, triển khai lên website đang chạy. Nguyên tắc chung: Codex đề xuất, người quyết định. Nếu bạn đang cân nhắc tự động hoá ở quy mô cả công ty, đọc thêm 5 việc nên làm trước khi tự động hoá quy trình bằng AI.
3. Thiết lập codex exec an toàn từng bước
Chạy thử ở chế độ chỉ đọc
Vào thư mục dự án (phải là kho Git) và gõ codex exec "tóm tắt cấu trúc dự án và liệt kê 5 khu vực rủi ro nhất". Sandbox mặc định của codex exec là chỉ đọc, nên lần chạy đầu không sửa được gì.
Ghi kết quả ra tệp
Thêm -o bao-cao.md (dạng dài --output-last-message) để lưu câu trả lời cuối vào tệp, hoặc nối | tee bao-cao.md. Có thể nối dữ liệu vào bằng đường ống, như mẫu 2 bên dưới. Khi cần máy đọc, dùng --json để nhận luồng sự kiện JSON Lines, hoặc --output-schema schema.json để buộc câu trả lời đúng khuôn JSON Schema.
Chỉ mở quyền ghi khi thật cần
Muốn Codex sửa tệp, thêm --sandbox workspace-write: được ghi trong thư mục làm việc, ngoài đó vẫn bị chặn. Tuỳ chọn cũ --full-auto nay là cờ tương thích đã lỗi thời, Codex in cảnh báo và tài liệu khuyên dùng --sandbox workspace-write. Chế độ danger-full-access chỉ dành cho môi trường cô lập dùng một lần.
Xác thực đúng cách khi chạy tự động
Mặc định codex exec dùng lại phiên đăng nhập đã lưu của CLI. Trên máy chủ hoặc CI, tài liệu khuyên dùng API key, đặt biến CODEX_API_KEY chỉ cho đúng lệnh cần nó, ví dụ CODEX_API_KEY=... codex exec --json "...". Không khai báo khoá ở cấp cả job trong workflow có chạy code của kho.
Viết AGENTS.md cho chế độ chạy tự động
codex exec vẫn đọc AGENTS.md như phiên trò chuyện: tệp ở thư mục Codex home trước, rồi các tệp từ gốc kho xuống thư mục hiện tại, tệp gần hơn ghi đè tệp xa hơn, tổng dung lượng mặc định tối đa 32 KiB. Vì không ai hỏi lại giữa chừng, hãy ghi rõ thư mục cấm sửa, định dạng báo cáo và “không chắc thì ghi vào báo cáo”. Kiểm tra tệp đã nạp bằng codex exec "List active instruction sources". Xem thêm bài CLAUDE.md và AGENTS.md cho dự án web.
4. Ba mẫu lệnh cho việc lặp lại
Sửa phần trong ngoặc vuông cho đúng dự án. Mỗi mẫu nêu rõ điều Codex không được làm.
Mẫu 1: Kiểm tra chính tả nội dung trước khi đăng (chỉ đọc)
Tìm: lỗi chính tả tiếng Việt, sai dấu thanh, lặp từ, câu cụt, liên kết nội bộ trỏ tới tệp không tồn tại.
Với mỗi lỗi ghi: tên tệp, số dòng, đoạn sai, đề xuất sửa.
Bỏ qua tên riêng, tên thương hiệu và đoạn nằm trong khối code.
Không sửa tệp nào. Nếu không chắc một từ có sai hay không, ghi vào mục Cần người kiểm tra.”
Không có --sandbox nên lệnh chạy ở chế độ chỉ đọc; người biên tập tự quyết định sửa chỗ nào.
Mẫu 2: Soạn mục changelog từ danh sách commit
1. Thêm một mục mới lên đầu CHANGELOG.md cho phiên bản [1.5.0], theo đúng định dạng các mục cũ.
2. Gom commit thành nhóm: Tính năng mới, Sửa lỗi, Thay đổi nội bộ. Viết lại bằng tiếng Việt dễ hiểu cho khách hàng.
3. Bỏ qua commit chỉ sửa định dạng hoặc cập nhật thư viện.
Chỉ sửa CHANGELOG.md, không đụng tệp khác. Không tự tạo tag hay commit.”
Sau khi chạy, gõ git diff CHANGELOG.md để duyệt rồi tự commit.
Mẫu 3: Review định kỳ mỗi sáng thứ Hai trên GitHub Actions
on:
schedule:
– cron: ‘0 1 * * 1’
workflow_dispatch:
jobs:
codex:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
final_message: ${{ steps.run_codex.outputs.final-message }}
steps:
– uses: actions/checkout@v5
with:
fetch-depth: 0
persist-credentials: false
– name: Run Codex
id: run_codex
uses: openai/codex-action@v1
with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }}
permission-profile: “:read-only”
prompt-file: .github/codex/review-tuan.md
report:
runs-on: ubuntu-latest
needs: codex
steps:
– name: Ghi ket qua vao trang tom tat
env:
CODEX_FINAL_MESSAGE: ${{ needs.codex.outputs.final_message }}
run: echo “$CODEX_FINAL_MESSAGE” >> “$GITHUB_STEP_SUMMARY”
Lịch cron của GitHub tính theo giờ UTC: 0 1 * * 1 là 8 giờ sáng thứ Hai giờ Việt Nam. Tệp .github/codex/review-tuan.md chứa yêu cầu, ví dụ: “Review các commit gộp vào main trong 7 ngày qua, tập trung vào bảo mật và chỗ thiếu test”. Job Codex chỉ có quyền đọc; job thứ hai ghi kết quả vào trang tóm tắt, không cần API key. Tuỳ chọn permission-profile đang ở dạng beta và cần Codex CLI 0.138.0 trở lên; kho cũ có thể dùng đầu vào sandbox (dạng cũ), không dùng cả hai cùng lúc.

5. Đưa Codex vào GitHub Actions: 6 nguyên tắc an toàn
- Lưu khoá trong GitHub Secrets và chỉ truyền vào action qua
openai-api-key. - Quyền tối thiểu cho job chạy Codex:
contents: read. Việc cần quyền ghi (bình luận PR, đẩy nhánh) tách sang job khác không có API key. - Chọn hồ sơ quyền hẹp nhất:
:read-onlycho việc đọc và báo cáo,:workspacekhi cần sửa tệp. Hồ sơ:workspacekhông có mạng, nên cài thư viện ở bước trước khi chạy Codex. - Coi nội dung PR, issue, commit là dữ liệu chưa tin cậy. Tài liệu OpenAI khuyên làm sạch đầu vào lấy từ pull request và soát cả bình luận HTML, chữ ẩn trước khi đưa cho Codex.
- Giới hạn người kích hoạt: mặc định chỉ người có quyền ghi vào kho mới kích hoạt được action; thêm người hoặc bot tin cậy bằng
allow-users,allow-bots. - Để action là bước cuối của job, dùng runner Linux hoặc macOS để giữ chiến lược mặc định
drop-sudo(thu hồi sudo trước khi Codex chạy).
6. Ví dụ minh hoạ: agency web 4 người ở Hà Nội
Tình huống giả định: một agency bảo trì 15 website WordPress và một kho tài liệu hướng dẫn cho khách viết bằng Markdown. Viết changelog tốn nhiều giờ, còn lỗi chính tả thường do khách phát hiện.
- Mỗi tối: cron trên máy chủ nội bộ chạy mẫu 1, biên tập viên đọc báo cáo đầu giờ sáng.
- Khi phát hành: lập trình viên chạy mẫu 2, đọc
git diff, sửa vài câu rồi commit. - Sáng thứ Hai: workflow mẫu 3 chạy, trưởng nhóm tạo việc sửa cho các mục mức cao.
AGENTS.md của họ cấm sửa vendor/ và plugin bên thứ ba, yêu cầu báo cáo chia mức Cao, Trung bình, Thấp. Nếu đội bạn dùng Claude Code song song, quy trình review diff tương tự được mô tả trong bài Claude Code sửa lỗi website WordPress.

7. Lỗi thường gặp và cách khắc phục
Codex báo không chạy vì thư mục không phải kho Git
codex exec mặc định yêu cầu chạy trong kho Git. Hãy git init cho thư mục đó; chỉ dùng --skip-git-repo-check khi chắc chắn lệnh chỉ đọc.
Codex nói đã sửa nhưng tệp không đổi
Bạn đang ở sandbox chỉ đọc mặc định. Thêm --sandbox workspace-write và kiểm tra tệp nằm trong thư mục làm việc.
Workflow trượt ở bước cài thư viện hoặc gọi mạng
Hồ sơ :workspace và :read-only không cấp mạng cho Codex. Chuyển bước npm ci, composer install lên trước bước chạy Codex.
8. Bài tập thực hành
- Chạy mẫu 1 cho một thư mục tài liệu, đếm số lỗi báo nhầm rồi thêm quy tắc vào AGENTS.md để giảm chúng.
- Chạy mẫu 2 trên một nhánh thử, so với changelog bạn tự viết.
- Tạo kho thử trên GitHub, thêm secret
OPENAI_API_KEY, đưa workflow mẫu 3 vào và bấm chạy tay quaworkflow_dispatch. Xem trang tóm tắt của lần chạy.
9. Thuật ngữ cần biết
- Chế độ không tương tác (non-interactive mode): cách chạy Codex bằng
codex exectừ kịch bản hoặc CI, không mở giao diện trò chuyện. Nguồn: Non-interactive mode. - Sandbox mode: mức giới hạn Codex được đọc, ghi và dùng mạng tới đâu, gồm
read-only,workspace-write,danger-full-access. Nguồn: Agent approvals and security. - Permission profile: hồ sơ quyền đặt sẵn cho Codex trong GitHub Actions, như
:read-onlyhay:workspace. Nguồn: openai/codex-action.
10. Tìm hiểu thêm
- Non-interactive mode: hướng dẫn chính thức về
codex exec, có ví dụ tự sửa lỗi CI. - Codex GitHub Action: điều kiện, quyền và lưu ý an toàn khi chạy trong CI.
- Custom instructions with AGENTS.md: thứ tự nạp tệp và giới hạn dung lượng.
- Kho mã nguồn Codex CLI và kho openai/codex-action trên GitHub.
11. Câu hỏi thường gặp
Chạy codex exec trong CI tốn phí thế nào?
Khi xác thực bằng API key, bạn trả theo lượng dùng của API. Bắt đầu với việc nhỏ, chạy theo lịch thay vì mỗi lần đẩy code, và theo dõi chi phí vài tuần đầu.
Có nên cho Codex tự commit và đẩy code trong workflow không?
Không nên với đội mới bắt đầu. Để Codex tạo bản vá hoặc báo cáo, rồi một người mở pull request để duyệt như mọi thay đổi khác.
Đọc tiếp
- Bài trước (Công cụ AI): Chat, Cowork và Code trong Claude Desktop: chọn đúng chế độ cho từng loại việc
- Bài sau trong chuyên mục Công cụ AI: Qwen Code cho người làm web: cài đặt, chọn mô hình đám mây hoặc tự host và giao việc an toàn
- Nên đọc cùng: OpenAI Codex cho đội nhỏ: giao việc lập trình chạy nền và nhờ review code
PDL Digital đào tạo và triển khai AI cho đội ngũ doanh nghiệp, từ thiết lập tác tử lập trình, viết AGENTS.md đến đưa AI vào quy trình CI có người duyệt an toàn. Xem trang đào tạo để chọn khoá phù hợp.



