37 điểm bởi GN⁺ 2026-02-23 | 4 bình luận | Chia sẻ qua WhatsApp
  • Tiêu chí cốt lõi để chọn coding agent đang chuyển từ năng lực mô hình thuần túy sang thời gian người dùng có thể dành ra và thời gian tác vụ có thể tự chạy, và Claude Code cùng Codex được dùng song song tùy tình huống
  • Opus có thế mạnh về quản lý context window và sử dụng công cụ, đồng thời có lợi thế trong việc khám phá và lập kế hoạch nhanh nhờ chạy đồng thời nhiều sub-agent
  • Codex vượt Opus về độ chính xác của mã, nhưng có nhược điểm là tốc độ xử lý chậm do thiếu khả năng ủy quyền công việc giữa các context window
  • Thông qua tự động hóa skill, tác giả đã xây dựng dần vòng lặp kế hoạch → triển khai → review → sửa lỗi, và cách tiếp cận hiệu quả là tự động hóa dần các thao tác thủ công lặp đi lặp lại thay vì cố thiết kế mọi thứ ngay từ đầu
  • Về lâu dài, tương lai hướng tới các agent làm việc tự chủ 24/7, nhưng giới hạn của context windowkhả năng chống prompt injection vẫn là các rào cản chính

Bối cảnh

  • Tác giả từng làm việc liên quan đến phiên bản web của Codex, và rời OpenAI vào tháng 7/2025
  • Bài viết này được tổng hợp nhằm hệ thống hóa chiến lược chi tiết trong việc dùng coding agent sau YC Lightcone Podcast
  • Tiêu chí chọn agent đang dịch chuyển từ hiệu năng mô hình sang thời gian tự chủ và mức độ quan trọng của công việc
  • Tác giả hiện đều đăng ký Claude Max, ChatGPT Pro và Cursor Pro+, và thấy hiệu quả chi phí so với năng suất là cao

Nguyên tắc cốt lõi: hiểu context

  • Muốn dùng coding agent tốt thì nhất định phải hiểu context
  • Dù agent có giỏi đến đâu thì rốt cuộc vẫn đang thực hiện next token prediction, và mọi token đều phải nằm trong context window
  • Những nguyên tắc chính rút ra từ đó:
    • Cần chia nhỏ vấn đề ở kích thước phù hợp với context window; bài toán quá lớn sẽ tốn nhiều thời gian và cho kết quả kém
    • Compaction là kỹ thuật có mất mát; agent phải tự quyết định thông tin nào giữ lại và thông tin nào lược bỏ, và càng compaction nhiều thì hiệu năng càng có xu hướng giảm
    • Nếu externalize context ra filesystem bằng các tài liệu kế hoạch v.v., agent có thể đọc chọn lọc và ghi nhớ mà không cần lấp đầy toàn bộ context hội thoại
    • Điều quan trọng là duy trì trong “nửa thông minh” của context window; vì mô hình được huấn luyện tốt hơn trên dữ liệu context ngắn, nên khi cửa sổ chưa bị lấp quá nhiều sẽ cho kết quả tốt hơn — Dex Horthy gọi điều này là ở ngoài 'dumb zone'
    • Nếu agent bỏ sót file hoặc package liên quan, nó có thể đi chệch theo hướng không ngờ tới; progressive disclosure về cấu trúc codebase và kiến trúc sẽ hữu ích — OpenAI từng đăng bài blog về cách họ cấu trúc nhiều file Markdown
  • Hiệu năng và tốc độ của mô hình không chỉ phụ thuộc vào sức mạnh thuần túy của chính mô hình, mà còn phụ thuộc vào khả năng quản lý nhiều context window và ủy quyền cho sub-agent/nhóm

Opus: quản lý context, dùng công cụ, và cảm giác “giống con người”

  • Tác giả dùng Claude Code làm công cụ chủ lực cho lập kế hoạch, điều phối terminal, và quản lý công việc git/GitHub
  • Opus được huấn luyện để hoạt động rất hiệu quả khi đi qua lại giữa nhiều context window, nên khi dùng Claude Code thì cảm giác nhanh hơn Codex
  • Thường xuyên quan sát thấy Opus chạy đồng thời nhiều sub-agent qua các lệnh gọi như Explore hoặc Task
    • Công cụ Explore dùng Haiku, nên có thể xử lý lượng token lớn nhanh chóng và chuyển context liên quan cho Opus
  • Nó cũng được huấn luyện tốt để dùng công cụ cục bộ như gh, git, và nhiều MCP server khác nhau
    • Có thể xác minh bug bằng extension /chrome, nhưng đôi khi chậm và không ổn định
  • Mô hình quyền hạn của Claude Code dễ hiểu hơn Codex — mô hình Codex có xu hướng script lệnh trong bash nên khó whitelist từng CLI tool riêng lẻ
  • Một số ưu điểm UX chi tiết của Claude Code: cập nhật tiêu đề terminal theo nội dung công việc, hiển thị PR hiện tại ở thanh trạng thái, cùng các thông báo trạng thái nhỏ
  • Opus cũng giỏi hơn Codex trong việc tạo mô tả PR dễ hiểu cho con người và sơ đồ kiến trúc chi tiết
  • Khi cần yêu cầu giải thích cấu trúc mã, tác giả chủ yếu dùng Claude Code
  • Khi lập kế hoạch, Opus có xu hướng “sáng tạo” hơn, đề xuất những phần người dùng chưa nhắc tới hoặc chỉ ra các vùng còn mơ hồ

Codex: độ chính xác mã áp đảo

  • Điểm Codex tỏa sáng là độ chính xác (correctness) của mã, và nhiều lập trình viên khác dùng mô hình nhiều cũng đồng ý với điều này
  • Khi chạy với GPT-5.3-Codex-xhigh hoặc high, mã do Codex tạo ra có ít bug hơn thấy rõ
  • Một số lỗi Opus hay mắc:
    • React component vượt qua unit test nhưng quên thêm vào <App> cấp cao nhất
    • Không phát hiện lỗi off-by-one hiển nhiên
    • Các lỗi tinh vi như dangling references hoặc race condition
  • Trong thời gian dài, tác giả nghĩ sự khác biệt giữa hai mô hình là không đáng kể, nhưng sau khi xem đủ nhiều PR qua review tự động của Codex và Cursor Bugbot, tác giả đi tới kết luận rằng chất lượng mã của mô hình OpenAI tốt hơn
    • Nếu muốn tự A/B test, chỉ cần checkout branch rồi so sánh /code-review của Claude Code với /review của Codex
  • Tuy nhiên Codex chậm — lý do chính là thiếu khả năng ủy quyền công việc giữa các context window, và độ trễ giữa các token cũng được cảm nhận là cao hơn
    • Dùng hỗ trợ sub-agent thử nghiệm (bật /experimental) thì có hoạt động, nhưng chưa mượt như Claude và vẫn thiếu tính song song
  • Kết quả là tác giả thường bắt đầu với Claude Code, để nó mở sẵn, rồi chuyển sang Codex ở giai đoạn coding thực tế

Công cụ và thiết lập hữu ích

  • Tác giả hiện làm việc trên codebase greenfield, nhỏ hơn nhiều so với codebase production nên hiệu quả token tốt hơn
  • Cấu trúc repo: mọi repo đều có thư mục plans/ để quản lý các bản kế hoạch được đánh số, tách dịch vụ bằng thư mục apps/, quản lý TypeScript monorepo bằng turborepo, và dùng bun để cài đặt nhanh
  • Ghostty: terminal của Mitchellh, nhanh, native và đang tiếp tục được cải thiện — trước đây tác giả từng chạy nhiều instance Claude/Codex bằng tmux, nhưng giờ dùng nhiều pane trong cùng một tab terminal
  • Next.js trên Vercel, API dùng Cloudflare Durable Objects: kiến trúc này chia partition dữ liệu từ trước, đánh thức theo nhu cầu và ít phải lo concurrent write — rất phù hợp từ góc độ hạ tầng trong thời đại agent xử lý các mảnh dữ liệu nhỏ
    • Cloudflare cũng đang mở rộng theo hướng gắn compute với storage nhỏ được colocate qua thư viện cloudflare/actors
  • Worktrees: vì mã tương đối nhẹ, tác giả tận dụng worktree song song và trong mỗi worktree chạy bun installbun run dev để xác minh cục bộ — dùng skill worktree để sao chép kế hoạch liên quan, biến môi trường, cập nhật và bắt đầu branch mới
    • Trước thời coding agent, tác giả chủ yếu chỉ dùng branch, nhưng kết hợp worktree với Claude Code tỏ ra cực kỳ hữu ích
  • Plan, Implement, Review: gần như lúc nào cũng yêu cầu mô hình bắt đầu từ kế hoạch — 1) externalize context ra ngoài một context window đơn lẻ 2) cho phép review hoặc đặt câu hỏi về những gì đã làm — nếu agent bị gián đoạn, có thể tiếp tục kế hoạch trong một context window mới
  • Preview deploys: mọi branch đều nhận một deployment Web + API mới, rất thuận tiện cho chạy song song và test nhanh — khó có thể làm việc nếu thiếu tính năng này
  • Cursor Bugbot và Codex Code Review: tác giả để chúng hiểu mã ở cấp kiến trúc và spot check, đồng thời ngày càng không còn đọc mọi dòng của mọi PR — agent giỏi hơn trong việc tìm bug tinh vi
    • Có lúc tác giả dùng cả Claude Code, Cursor Bugbot và Codex, nhưng vì Claude Code không bắt được vấn đề thực chất nên giờ Cursor là lựa chọn mặc định, còn Codex cũng được đánh giá có kết quả tốt

Skills: cốt lõi của tự động hóa

  • Nhiều skill cùng AGENTS.md/CLAUDE.md dùng chung được định nghĩa trong một repo tên là claudefiles
  • Quy tắc thêm skill: không thêm quá sớm, mà chỉ thêm sau khi đã lặp lại vài lần và workflow ổn định
  • AGENTS/CLAUDE.md hữu ích để định hướng chung cho mô hình, còn skill phục vụ hai mục đích:
    1. Chaining workflow và tự động hóa — biến kế hoạch → triển khai theo bước → review thành các skill riêng, rồi tạo meta skill chạy lần lượt chúng
    2. Chia nhỏ context window — khi gọi skill trong Claude Code, có thể đặt context: fork để chạy ở context window mới, tách “master orchestrator” khỏi sub-agent
  • Skill rất hiệu quả về context; khác với lệnh gọi MCP có thể tốn hàng nghìn token, skill thường chỉ khoảng ~50-100 token

Quá trình tiến hóa của tự động hóa skill

  • Ban đầu tác giả hứng thú với ý tưởng skill marketplace (cài các skill cho thiết kế frontend, kiểm tra bảo mật, review kiến trúc...), nhưng sau khi làm việc thực tế thì hầu như từ bỏ các skill do người khác viết
  • Thay vào đó, tác giả chuyển sang cách làm thủ công trước, rồi mới suy nghĩ xem nên tự động hóa ra sao
  • Quá trình tiến hóa của skill:
    • /commit: thay vì hướng dẫn mô hình commit và push theo nhiều cách khác nhau, gom vào một skill duy nhất — lấy trực tiếp từ Claude Code
    • /worktree: để agent làm việc trong một worktree riêng, tạo worktree mới dựa trên số kế hoạch (ví dụ: 00034-add-user-auth)
    • /implement: gom việc thực thi từng bước kế hoạch rồi chạy /commit vào một skill duy nhất
    • /implement-all: liên kết đường dẫn worktree hiện tại với số kế hoạch để tự động triển khai mọi bước — khi chạy qua đêm, /ralph-loop sẽ tiếp tục chạy cho đến khi xong hết các bước, còn /codex-review cục bộ tạo tiến trình codex --review
    • /address-bugs: tìm comment của Cursor + Codex qua GitHub API kể từ commit gần nhất, rồi thử xác minh và sửa bug
    • /pr-pass: chạy khi /implement-all kết thúc, với quy trình 1) push lên remote 2) chờ toàn bộ CI pass 3) chạy /address-bugs, sau đó nếu cần thì lặp lại bước 1
    • /focus: xem thư mục plans, PR chưa hoàn tất, và worktree để làm mới trí nhớ và hỗ trợ theo dõi công việc
  • Nếu cố xây dựng quy trình này ngay từ đầu thì có lẽ tác giả đã không thành công; mấu chốt là dần dần phát hiện các vùng nhỏ có thể tự động hóa theo thời gian và xây từng phần

Các công cụ khác

  • Tác giả gần đây đã thử Codex App và có ấn tượng tích cực với các chi tiết nhỏ và sự chăm chút, nhưng chưa chuyển hẳn vì vẫn thích tính linh hoạt của công cụ CLI
  • Cũng đã thử Cowork, nhưng khó làm cho nó chạy ổn định; trong cả hai trường hợp, mô hình sandboxing tạo ra khác biệt lớn
  • Thỉnh thoảng vẫn dùng giao diện web cho tác vụ bất đồng bộ, nhưng ngày càng phụ thuộc vào CLI hơn — trái ngược với 6 tháng trước khi chủ yếu dùng Cursor và agent/extension tích hợp sẵn
  • Đang dùng pencil.dev cho công việc UI frontend — mô hình triển khai shell-out sang Claude Code cục bộ để tận dụng lại gói đăng ký hiện có là một hướng thú vị
  • Tác giả cảm thấy cần một issue tracker bài bản hơn; Dex của David Cramer và beads của Steve Yegge có vẻ hứa hẹn nhưng hiện vẫn thấy phức tạp hơn mức cần thiết
  • Hiện chưa dùng e2e MCP tự động như Playwright

Lời khuyên cho các phòng lab

  • Phản hồi cho Anthropic

    • Mô hình: Opus cho cảm giác giống con người, giỏi dùng công cụ kỹ thuật, chia context, và gợi ý những thứ “người dùng có thể đã quên”, nhưng thiếu độ chính xác mã — tác giả hy vọng có chế độ 'Opus Strict' để tăng cường RL trên mô hình nền nhằm cải thiện hiệu năng
      • Tác giả khởi đầu bằng Opus nhưng để Codex viết mã; nếu bị giới hạn ngân sách thì sẽ chọn Codex
    • Product harness: gần như không có gì để chê, ý tưởng của Boris và Cat rất xuất sắc
      • Tác giả đề nghị chấp nhận chuẩn agent skills — việc thao tác symlink thư mục giữa nhiều CLI khá bất tiện
      • Tác giả cũng muốn công bố format output của --stream-json — vì quan tâm đến việc chạy Claude Code trong sandbox thay mặt người dùng, nhưng lo ngại format thay đổi và việc cấu hình đường dẫn phiền hơn các công cụ CLI khác như Codex, Cursor, Gemini
  • Phản hồi cho OpenAI

    • Mô hình: ưu tiên cải thiện hàng đầu là chia nhỏ qua nhiều context window và ủy quyền cho sub-agent — khái niệm “làm nhiều hơn yêu cầu” mà Opus đạt được khi lập kế hoạch cũng sẽ rất hữu ích
    • Phản hồi chi tiết về product harness:
      • Mô hình sandboxing hiện khó hiểu hơn so với Claude Code — vì mô hình có xu hướng viết script nên phát sinh nhiều yêu cầu phê duyệt, đặc biệt đáng lo khi chạy ở chế độ --yolo
      • Tác giả muốn có hướng dẫn sử dụng tích hợp ngay trong CLI như Claude Code — để có thể hỏi về vị trí skill, các field được hỗ trợ, cài đặt mô hình sandboxing v.v.
      • Đề nghị chuyển /review từ một lệnh đóng gói sẵn thành skill thông thường để mô hình có thể gọi động
      • Đề nghị đổi tiêu đề tab terminal theo nội dung công việc khi chạy — nếu mở hàng chục tab codex sẽ rất rối
      • Cần huấn luyện chuyên biệt cho mô tả PR và mô tả commit — phong cách ngắn gọn của Codex là tốt, nhưng cần mở rộng phần giải thích
      • Đề nghị hỗ trợ context: fork trong định nghĩa skill
      • Cần sửa để khi link xuống dòng trong pane thì vẫn có thể click được
      • Đề nghị hiển thị worktree/PR/tên branch hiện tại ở thanh trạng thái phía dưới

Triển vọng sắp tới

  • Tác giả trích dẫn bài viết Gas Town của Steve Yegge — lập luận rằng nên luôn dùng token ở mức tối đa, để một nhóm worker chạy 24/7, và kỳ vọng sẽ phải lập rất nhiều kế hoạch rồi loại bỏ chúng
    • Bất kể phép trừu tượng đó có chính xác hoàn toàn hay không, tác giả đánh giá rằng về mặt định hướng thì hoàn toàn đúng
  • Tương lai lý tưởng: laptop hoặc cloud sandbox sẽ liên tục xử lý ý tưởng ở chế độ nền, còn người dùng chủ yếu điều chỉnh phương hướng, nghiên cứu, hoặc review kết quả
    • Làm việc với coding agent mang lại cảm giác gần giống vai trò engineering manager, nhưng không cần bận tâm đến động lực hay tính cách của agent
  • Hiện tại đã tiến khá gần tới tương lai đó — dù trên Twitter có phần bị thổi phồng, tác giả thực sự có thói quen khởi động 3-4 tác vụ trong Codex trước khi đi ngủ rồi sáng hôm sau review
    • Tuy vậy, vẫn chưa đến mức có thể cho agent chạy 24/7
  • hai rào cản chính đang ngăn cản bước tiến lớn hơn:
    1. Kích thước/điều phối context window — agent không thể nén/tái sử dụng vô tận trong cùng một context window; cần harness thông minh hơn hoặc cơ chế ủy quyền tốt hơn
    2. Khả năng chống prompt injection — agent chỉ sau vài phút đã yêu cầu phê duyệt, không thể thật sự tin tưởng chế độ --yolo, dù vẫn tồn tại một tập con quyền hạn/domain có thể chấp nhận được
  • Về vấn đề thứ nhất, Cursor đang đẩy giới hạn của swarm agent trải trên nhiều context window, còn vấn đề thứ hai là một hướng nghiên cứu rất sôi động
    • Chạy trong sandbox hiện là cách vòng tránh tốt nhất, nhưng việc cấu hình vẫn phiền phức, và nếu agent đồng thời có quyền truy cập internet mở và dữ liệu đặc quyền, nó sẽ dễ bị cái mà Simon Willison gọi là 'Lethal Trifecta'
  • Với một kỹ sư làm việc một mình, giờ đây ý tưởng đúng đắn đã trở thành nút thắt cổ chai, và càng về sau thì ý tưởng, kiến trúc, và cách sắp xếp thứ tự dự án sẽ ngày càng là yếu tố giới hạn trong việc tạo ra sản phẩm xuất sắc

4 bình luận

 
yangeok 2026-02-23

Cả kiến trúc nữa sao..?

 
wegaia 2026-02-24

Nếu Codex chỉ cần có tính năng sub-agent thôi thì có lẽ tôi sẽ chuyển sang dùng.

Nhưng mà không biết là họ không quan tâm hay sao..

 
tested 2026-02-24

https://developers.openai.com/codex/multi-agent
Dù vẫn đang ở giai đoạn thử nghiệm, nhưng có vẻ là họ vẫn đang triển khai.

 
kgcrom 2026-02-24

Trong codex cli, nếu nhập lệnh /experimental thì sẽ cung cấp Multi-agents như một tính năng thử nghiệm. › [x] Multi-agents Yêu cầu Codex khởi chạy nhiều agent để song song hóa công việc và tăng hiệu quả.

Tôi không chắc nó có cùng hướng với sub-agent mà bạn nói hay không, nhưng bạn thử tìm hiểu xem.