ReAct xen kẽ suy nghĩ → hành động → quan sát, quyết định bước tiếp theo dựa trên kết quả vừa nhận. Plan-and-Execute tách làm hai vai: một model lập toàn bộ kế hoạch trước, một model thực thi từng bước, thường kèm bước lập lại kế hoạch khi thực tế lệch.
Khác biệt cốt lõi: ReAct quyết định muộn nhất có thể, Plan-and-Execute quyết định sớm nhất có thể. Mọi ưu nhược điểm đều bắt nguồn từ đó.
| ReAct | Plan-and-Execute | |
|---|---|---|
| Thích nghi giữa chừng | tốt | phải lập lại kế hoạch |
| Giữ đúng hướng | dễ lạc sau nhiều bước | khó lạc vì có kế hoạch |
| Chạy song song | không | các bước độc lập chạy song song được |
| Chi phí | vừa | cao hơn, vì phần lập kế hoạch cần model mạnh |
| Theo dõi tiến độ | khó | dễ, vì biết trước còn bao nhiêu bước |
Dùng ReAct khi việc ngắn (dưới khoảng năm bước) và không đoán trước được đường đi: gỡ lỗi, hỏi đáp có tra cứu, những việc mà mỗi kết quả trả về đều đổi hướng bước sau. Lập kế hoạch trước cho loại việc này là vô ích, vì kế hoạch hỏng ngay ở bước hai.
Dùng Plan-and-Execute khi việc dài và hình dung được từ đầu: nghiên cứu tổng hợp, viết tài liệu dài, chuyển đổi code hàng loạt. Ba cái lợi thật sự: các bước độc lập chạy song song được, người dùng nhìn thấy tiến độ, và kế hoạch có thể đưa cho người duyệt trước khi chạy — điểm này quan trọng khi agent có quyền thao tác thật.
Điểm yếu chí mạng của ReAct là mất phương hướng: sau mười lăm bước, ngữ cảnh đầy quan sát trung gian và model quên mất mục tiêu ban đầu. Đây là lý do chính khiến agent chạy dài cần kế hoạch.
Thực tế thường lai cả hai: dùng kế hoạch ở tầng ngoài để giữ hướng, còn trong từng bước thì để agent chạy kiểu ReAct để xoay xở với tình huống cụ thể. Các hệ deep research chạy nhiều bước hiện nay đều theo dạng này.
Framework: LangGraph viết được cả hai vì bản chất là máy trạng thái; CrewAI nghiêng về kiểu lập kế hoạch theo vai; agent mặc định của LlamaIndex theo ReAct.