Từ Một Agent Đến Một Đội Ngũ: Hiểu Về Codex Subagents
Khi tác vụ AI trở nên phức tạp, một agent duy nhất không còn đủ sức xử lý. Codex giải quyết vấn đề này bằng cách chia nhỏ công việc và giao cho các subagents chuyên trách, hoạt động song song dưới sự điều phối của agent chính. Bài viết hướng dẫn chi tiết cách định nghĩa các agent chuyên gia, phối hợp chúng trong Codex CLI và kết hợp kết quả để đưa ra quyết định cuối cùng.

Từ Một Agent Đến Một Đội Ngũ: Hiểu Về Codex Subagents
Khi chúng ta yêu cầu Codex hoàn thành một nhiệm vụ, thường ta nghĩ đó là một agent đơn lẻ. Nhưng nếu nhiệm vụ đủ phức tạp và bao gồm nhiều loại công việc khác nhau, Codex sẽ tự động chia nhỏ vấn đề và tạo ra các agent riêng biệt — gọi là subagents — để xử lý song song. Mỗi subagent hoạt động trong luồng riêng, tập trung vào một phần cụ thể, còn agent chính đóng vai trò điều phối và tổng hợp kết quả cuối cùng.
Bài viết này sẽ hướng dẫn bạn cách tận dụng subagents một cách chủ động thông qua một nghiên cứu tình huống thực tế: lập kế hoạch du lịch với ba agent chuyên gia.
Nghiên Cứu Tình Huống: Lên Kế Hoạch Du Lịch Với Các Agent Chuyên Gia
Giả sử bạn muốn lên kế hoạch cho chuyến du lịch bốn ngày từ Zurich với ngân sách 1.200 CHF. Các điểm đến tiềm năng gồm Lisbon, Prague và Copenhagen, với tiêu chí quan tâm về di chuyển thuận tiện, bảo tàng và ẩm thực địa phương.
Chúng ta sẽ chuẩn bị ba agent chuyên gia:
- Travel logistics agent — chuyên so sánh lộ trình và sự thuận tiện di chuyển
- Budget analyst — chuyên phân tích chi phí chuyến đi
- Experience researcher — chuyên đánh giá mức độ phù hợp với sở thích du khách
Mỗi agent sẽ đánh giá cả ba điểm đến từ góc nhìn riêng, sau đó agent chính sẽ thu thập, so sánh và đề xuất một lựa chọn cuối cùng.
Định Nghĩa Các Agent Chuyên Gia
Codex cho phép định nghĩa agent tùy chỉnh cho từng dự án bằng cách thêm file TOML vào thư mục .codex/agents/:
.codex/
├── config.toml
└── agents/
├── travel-logistics.toml
├── budget-analyst.toml
└── experience-researcher.toml
Mỗi định nghĩa agent bắt buộc có ba trường:
- name: cách Codex nhận diện agent
- description: mô tả vai trò của agent
- developer_instructions: hướng dẫn cách agent hành xử
Ví dụ cho travel logistics agent:
name = "travel_logistics"
description = "Travel specialist for comparing routes and journey convenience across candidate destinations."
developer_instructions = """
Evaluate every destination from a travel-logistics perspective.
Return concise, source-backed findings to the main agent."""
Tương tự cho budget analyst và experience researcher. Ngoài ra, agent tùy chỉnh có thể chỉ định model riêng, mức độ reasoning, cấu hình sandbox, công cụ và kỹ năng — nếu không ghi đè, chúng sẽ kế thừa từ phiên Codex chính.
Ta cũng thêm cấu hình cấp dự án trong .codex/config.toml:
[agents]
max_concurrent_threads_per_session = 3
Điều này cho phép tối đa ba subagent chạy song song.
Chạy Quy Trình Với Subagents
Bây giờ, chúng ta đưa nhiệm vụ cụ thể cho agent chính:
"Lên kế hoạch du lịch 4 ngày từ Zurich (15-18/10/2026), ngân sách 1.200 CHF. So sánh Lisbon, Prague, Copenhagen. Tôi quan tâm đến di chuyển thuận tiện, bảo tàng và ẩm thực. Dùng các agent travel_logistics, budget_analyst, experience_researcher chạy song song. Chờ tất cả hoàn thành, rồi đề xuất một điểm đến và giải thích sự đánh đổi với nguồn dẫn."
Khởi động Codex từ thư mục dự án với tìm kiếm web:
codex --search
Lưu ý: chỉ cần bật web search cho phiên chính — các subagent sẽ kế thừa khả năng này.
Codex CLI khởi động và nhận prompt du lịch
Hình 1: Khởi động Codex và gửi prompt.
Codex sẽ tự động spawn ba agent chuyên gia chạy song song:
Ba subagent được tạo ra song song
Hình 2: Codex tạo ra ba agent chuyên gia đồng thời.
Bạn có thể kiểm tra tiến trình từng agent bằng lệnh:
/agent
Lệnh này mở giao diện xem thread của từng agent, với context, hoạt động công cụ và kết quả riêng.
Kiểm tra hoạt động từng subagent
Hình 3: Xem chi tiết hoạt động của từng agent.
Agent chính giám sát toàn bộ quy trình
Hình 4: Agent chính điều phối toàn bộ quy trình.
Phân Tích Kết Quả
Điểm thú vị: ba subagent không đi đến cùng một kết luận. Cụ thể:
- Travel logistics đề xuất Copenhagen
- Budget analyst khuyên chọn Prague
- Experience researcher cho rằng Lisbon là tốt nhất
Agent chính sau đó đã thu thập các câu trả lời và chọn Lisbon làm điểm cân bằng tốt nhất giữa di chuyển, chi phí, bảo tàng và ẩm thực. Điều này cho thấy agent chính thực sự so sánh các phát hiện với yêu cầu gốc và đưa ra phán đoán tổng thể — không đơn thuần lặp lại một câu trả lời hay nối ba báo cáo lại với nhau.
Khi Nào Nên Dùng Mô Hình Subagents?
Mô hình subagents phát huy hiệu quả khi nhiệm vụ chứa nhiều loại công việc khác nhau, có thể hoàn thành độc lập rồi kết hợp lại. Agent chính đóng vai trò dàn nhạc trưởng, điều phối toàn bộ quy trình.
Trong nghiên cứu tình huống trên, chúng ta yêu cầu subagents trực tiếp trong prompt — cách đơn giản nhất cho tác vụ một lần. Nhưng đó không phải cách duy nhất:
- Ghi mô hình này vào AGENTS.md nếu muốn Codex tuân theo chiến lược đó xuyên suốt dự án
- Đóng gói hướng dẫn vào SKILL.md nếu quy trình lặp lại thường xuyên
Điểm mấu chốt: các file agent (
.codex/agents/*.toml) định nghĩa ai là subagent, còn prompt, AGENTS.md hay skills xác định khi nào và cách dùng chúng.
Với khả năng mở rộng này, Codex không chỉ là một trợ lý lập trình đơn thuần — nó trở thành một đội ngũ phát triển thu nhỏ, sẵn sàng phối hợp nhiều chuyên gia để giải quyết những bài toán phức tạp nhất.


