ReAct (reason & act)

Sách: Kỹ thuật thiết lập câu lệnh - Tác giả: Lee Boonstra


ReAct (Lý luận & Hành động)

ReAct (reason & act) là một kỹ thuật đột phá giúp LLM giải quyết các tác vụ phức tạp bằng cách kết hợp lý luận ngôn ngữ tự nhiên với các công cụ bên ngoài (tìm kiếm, trình thông dịch code...). Phương pháp này cho phép LLM thực hiện các hành động cụ thể như tương tác với API để thu thập thông tin - bước đầu tiên hướng tới mô hình agent.

ReAct mô phỏng cách con người xử lý vấn đề: vừa lý luận bằng ngôn ngữ vừa hành động để thu thập thông tin. Kỹ thuật này thể hiện hiệu quả vượt trội so với các phương pháp prompt engineering khác trong nhiều lĩnh vực.

Cách hoạt động: ReAct kết hợp chu trình suy nghĩ-hành động (thought-action loop). LLM đầu tiên phân tích vấn đề và lập kế hoạch hành động. Sau đó thực thi các hành động này, quan sát kết quả, cập nhật lý luận và điều chỉnh kế hoạch lặp lại cho đến khi đạt được giải pháp.


Triển khai thực tế

Để chạy ví dụ này, bạn cần:

  1. Tạo API key miễn phí từ SerpAPI

  2. Thiết lập biến môi trường SERPAPI_API_KEY

Snippet 1: Tạo ReAct Agent bằng LangChain và VertexAI

from langchain.agents import load_tools, initialize_agent, AgentType
from langchain.llms import VertexAI

prompt = "Các thành viên ban nhạc Metallica có tổng cộng bao nhiêu người con?"

llm = VertexAI(temperature=0.1)
tools = load_tools(["serpapi"], llm=llm)
agent = initialize_agent(tools, llm, 
                       agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, 
                       verbose=True)
agent.run(prompt)

Snippet 2: Kết quả thực thi

> Bắt đầu chu trình AgentExecutor...
Metallica có 4 thành viên.
Hành động: Tìm kiếm
Đầu vào: James Hetfield có bao nhiêu con?
Quan sát: 3 con
Suy nghĩ: 1/4 thành viên có 3 con
Hành động: Tìm kiếm 
Đầu vào: Lars Ulrich có bao nhiêu con?
Quan sát: 3 con
Suy nghĩ: 2/4 thành viên có tổng 6 con
Hành động: Tìm kiếm
Đầu vào: Kirk Hammett có bao nhiêu con?
Quan sát: 2 con trai (2006 & 2008)
Suy nghĩ: 3/4 thành viên có tổng 8 con
Hành động: Tìm kiếm
Đầu vào: Robert Trujillo có bao nhiêu con?
Quan sát: 2 con
Suy nghĩ: 4/4 thành viên có tổng 10 con
Đáp án cuối: 10

Giải thích quy trình:

  1. Agent xác định Metallica có 4 thành viên

  2. Thực hiện tìm kiếm Google cho từng thành viên

  3. Tổng hợp kết quả theo từng bước

  4. Đưa ra tổng số con cuối cùng là 10

Lưu ý triển khai:

  • Cần xử lý việc gửi lại các prompt/response trước đó

  • Thiết lập ví dụ mẫu và hướng dẫn phù hợp cho model

  • Tham khảo notebook chi tiết trên GitHub GoogleCloudPlatform để hiểu rõ hơn về input/output của LLM