AI Agents & Skills

ReAct và Toolformer: nguồn gốc vòng lặp suy nghĩ–hành động của mọi agent

Tóm tắt

ReAct cho agent vòng lặp suy nghĩ, hành động, quan sát; Toolformer chứng minh model tự học được khi nào gọi tool. Mọi agent hiện đại thừa hưởng cả sức mạnh lẫn điểm yếu đó: giới hạn bước, mô tả tool rõ, coi kết quả tool là dữ liệu không tin cậy.

Mọi agent hiện nay, từ Claude Code tới các trợ lý nghiên cứu, đều chạy cùng một vòng lặp: suy nghĩ → gọi tool → đọc kết quả → suy nghĩ tiếp. Vòng lặp đó có nguồn gốc rõ ràng từ hai bài báo năm 2022–2023: ReAct (Princeton và Google) và Toolformer (Meta AI). Hiểu chúng giúp bạn hiểu vì sao agent mạnh, và vì sao nó hay "lạc đường".

ReAct: suy luận xen kẽ hành động

Yao và cộng sự (2022) quan sát: chỉ suy luận (chain-of-thought) thì model dễ bịa vì không kiểm chứng được với thế giới; chỉ hành động thì model thiếu kế hoạch. ReAct kết hợp hai thứ thành một chuỗi xen kẽ:

Thought: Cần biết công ty X thành lập năm nào.
Action: search["Công ty X thành lập"]
Observation: Công ty X được thành lập năm 1998 tại...
Thought: Đã có năm thành lập, giờ tìm CEO hiện tại.
Action: search["CEO công ty X"]
...
  • Với hỏi đáp (HotpotQA) và kiểm chứng sự kiện (FEVER), việc tra cứu Wikipedia giúp giảm ảo giác so với CoT thuần.
  • Với môi trường tương tác ALFWorld và WebShop, ReAct vượt các phương pháp học bắt chước và học tăng cường với mức tăng tỷ lệ thành công tuyệt đối lần lượt 34% và 10%, chỉ với một hai ví dụ trong prompt.
  • Chuỗi suy nghĩ hiển thị giúp con người đọc và sửa hành vi của agent.

Toolformer: model tự học khi nào gọi tool

Schick và cộng sự (2023) đặt câu hỏi khác: thay vì dạy qua prompt, liệu model có thể tự học dùng API? Cách làm:

  1. Model tự chèn các lời gọi API tiềm năng vào văn bản (máy tính, hỏi đáp, tìm kiếm, dịch, lịch).
  2. Thực thi các lời gọi đó.
  3. Chỉ giữ lời gọi nào giúp dự đoán phần văn bản phía sau tốt hơn, rồi fine-tune trên dữ liệu đó.

Kết quả: một model 6,7 tỷ tham số dùng tool vượt các model lớn hơn nhiều ở một số tác vụ như tính toán, mà không mất khả năng ngôn ngữ chung.

Từ nghiên cứu tới hôm nay

Ý tưởng gốcHình thức hiện nay
Thought / Action / Observation dạng văn bảnKhối thinking, tool_use và tool_result có cấu trúc trong API
Vài tool cố định (search, lookup)Hàng trăm tool qua MCP, có tool search để nạp theo nhu cầu
Model tự học khi nào gọi toolModel được huấn luyện sẵn để dùng tool, chọn tool dựa trên mô tả

Rủi ro thừa hưởng từ vòng lặp ReAct

  • Lặp vô hạn: agent gọi đi gọi lại cùng một tool khi kết quả không như ý. Cần giới hạn số bước.
  • Lỗi tích luỹ: một observation sai ở đầu làm lệch mọi bước sau.
  • Kết quả tool là dữ liệu không tin cậy: văn bản trả về có thể chứa chỉ dẫn độc hại (prompt injection).
  • Mô tả tool tệ = gọi sai: model chọn tool dựa trên tên và mô tả; mô tả mơ hồ dẫn tới gọi nhầm.

Áp dụng thế nào?

  • Dev: Khi agent hỏng, đọc lại chuỗi thought/action/observation để tìm bước lệch đầu tiên, thay vì chỉ nhìn kết quả cuối.
  • Tech Lead: Đặt giới hạn số bước, timeout và điều kiện dừng cho mọi vòng lặp agent; log đầy đủ từng tool call.
  • PM: Với tác vụ mới, bắt đầu bằng 2–3 tool rõ ràng; thêm tool khi thấy nhu cầu thật, đừng đưa cả chục tool ngay từ đầu.

Nguồn & tham khảo

  1. ReAct: Synergizing Reasoning and Acting in Language Models — Yao et al. (arXiv)
  2. Toolformer: Language Models Can Teach Themselves to Use Tools — Schick et al. (arXiv)