Giải Mã Codex Harness — OpenAI Xây Dựng App Server Như Thế Nào

OpenAI công bố kiến trúc đằng sau Codex App Server — lớp JSON-RPC hai chiều điều phối mọi bề mặt của Codex từ CLI, IDE đến web, tất cả chạy cùng một agent harness.
Một Harness Cho Tất Cả
Codex — coding agent AI của OpenAI — chạy trên nhiều bề mặt khác nhau: web app, CLI, extension VS Code, plugin JetBrains, tích hợp Xcode và ứng dụng desktop macOS. Dù đa dạng như vậy, tất cả đều chạy cùng một vòng lặp agent. Chất kết dính làm điều này khả thi là Codex App Server — một API JSON-RPC hai chiều cung cấp Codex harness cho bất kỳ client nào muốn nhúng nó.
Bài đăng từ kỹ sư OpenAI Celia Chen là cái nhìn hiếm có vào hạ tầng giúp một AI agent sản xuất nhất quán trên các môi trường hoàn toàn khác nhau — và là hướng dẫn hữu ích cho bất kỳ developer nào muốn xây dựng trên nền tảng đó.
Tại Sao App Server Ra Đời?
Codex CLI ban đầu là một terminal UI. Khi VS Code extension được xây dựng, nhóm cần một cách để tái sử dụng cùng logic agent mà không phải triển khai lại. Họ thử nghiệm MCP trước nhưng ngữ nghĩa MCP không chuyển tải tốt sang các tương tác phong phú hơn của VS Code — streaming tiến trình, live diff, approval flow. Vì vậy họ xây dựng một giao thức JSON-RPC phản chiếu vòng lặp TUI. Thứ ban đầu chỉ là lối tắt nội bộ dần trở thành giao thức chuẩn cho mọi bề mặt Codex.
Ba Primitive Mô Hình Hóa Tương Tác Agent
Tương tác agent không phải trao đổi request/response đơn giản. Một prompt người dùng có thể mở ra chuỗi dài các tool call, chỉnh sửa file, bước lý luận và diff — tất cả cần được biểu diễn trung thực cho UI client. App Server xử lý điều này với ba primitive lồng nhau:
- Item — đơn vị nguyên tử của input hoặc output. Mỗi item có vòng đời: started → delta events → completed. Ví dụ: tin nhắn người dùng, khối lý luận, tool call, hoặc diff.
- Turn — đơn vị công việc agent được kích hoạt bởi một yêu cầu người dùng. Một turn chứa nhiều item và kết thúc khi agent hoàn thành hoặc yêu cầu đầu vào từ người.
- Thread — phiên hội thoại bền vững. Thread tồn tại qua các turn và có thể được tiếp tục, phân nhánh hoặc lưu trữ. Đây là thứ cho phép Codex Web tiếp tục hoạt động ngay cả khi tab trình duyệt đóng lại.
Giao thức hoàn toàn hai chiều — server có thể khởi tạo yêu cầu giữa chừng, ví dụ tạm dừng để hỏi người dùng phê duyệt trước khi thực thi lệnh nguy hiểm. Client phản hồi và turn tiếp tục.
Cách Các Client Kết Nối
Kiến trúc linh hoạt theo thiết kế, mỗi loại client tích hợp khác nhau:
- IDE local và desktop app (VS Code, JetBrains, macOS app) đóng gói binary App Server theo từng nền tảng, khởi chạy như tiến trình con và duy trì kênh stdio hai chiều cho JSON-RPC. Binary được ghim vào phiên bản đã kiểm tra.
- Xcode và đối tác có chu kỳ phát hành chậm hơn tách biệt phiên bản client và server — giữ client ổn định trong khi trỏ đến binary App Server mới hơn. Thiết kế giao thức tương thích ngược làm điều này an toàn.
- Codex Web chạy harness trong container. Worker cung cấp container, khởi chạy App Server bên trong, và trình duyệt giao tiếp qua HTTP và Server-Sent Events. Công việc tiếp tục ở phía server ngay cả khi tab đóng — phiên mới kết nối lại và bắt kịp mà không cần xây dựng lại trạng thái.
Tại Sao Chọn JSON-RPC Thay Vì MCP?
Nhóm đã thử MCP trước và rút lui. MCP được thiết kế như giao thức phổ quát cho giao tiếp agent-editor — giống LSP nhưng cho AI agent. App Server giải quyết vấn đề hẹp hơn nhưng sâu hơn: quản lý các phiên agent trạng thái, chạy lâu dài với approval flow, streaming diff và thread persistence. Những ngữ nghĩa này không ánh xạ gọn vào MCP. App Server và MCP cùng tồn tại — Codex vẫn cung cấp giao diện MCP cho các tích hợp đơn giản hơn — nhưng App Server là giao thức hạng nhất mà OpenAI sẽ duy trì.
Client binding có sẵn bằng Go, Python, TypeScript, Swift và Kotlin, với công cụ tạo schema được tích hợp sẵn trong CLI. Toàn bộ mã nguồn được mở trong repository Codex CLI.
Ý Nghĩa Với Developer
Việc công bố kiến trúc App Server là một lời mời. Bất kỳ công cụ nào muốn nhúng coding agent cấp sản xuất — IDE tùy chỉnh, nền tảng dev nội bộ, hệ thống CI/CD — giờ có giao thức ổn định, được ghi chép, tương thích ngược để xây dựng. Cùng harness cung cấp sức mạnh cho các bề mặt của chính OpenAI hiện có sẵn cho bất kỳ ai muốn triển khai JSON-RPC client. Đây là cơ hội đáng kể trong một không gian mà hầu hết nội tại coding agent AI vẫn còn độc quyền.