Các mẫu thiết kế AI agent: ReAct, Reflection và Planning

Bạn đã biết 4 thành phần của một agent. Bây giờ, hãy cùng tìm hiểu 3 mẫu thiết kế định nghĩa cách các agent sử dụng những thành phần đó để giải quyết vấn đề.

🔄 Tóm tắt nhanh: Trong bài học trước, bạn đã học về vòng lặp của agent: Nhận thức → lập kế hoạch → hành động → quan sát → lặp lại. Các mẫu thiết kế là những triển khai cụ thể của vòng lặp này - mỗi mẫu nhấn mạnh các khía cạnh khác nhau cho những loại nhiệm vụ khác nhau.

Mẫu 1: ReAct (Lý luận + Hành động)

ReAct là mẫu nền tảng cho các agent đa năng. Agent luân phiên rõ ràng giữa lý luận (suy nghĩ về những việc cần làm) và hành động (sử dụng công cụ).

Cách hoạt động

Suy nghĩ: Tôi cần tìm dân số của Tokyo vào năm 2025.
Hành động: web_search("Dân số Tokyo năm 2025")
Quan sát: Dân số Tokyo xấp xỉ 13,96 triệu người (năm 2025).

Suy nghĩ: Bây giờ tôi đã có dữ liệu. Người dùng cũng hỏi về
                tỷ lệ tăng trưởng dân số. Tôi nên tính toán sự thay đổi
                so với số liệu năm 2020.
Hành động: web_search("Dân số Tokyo 2020")
Quan sát: Dân số Tokyo xấp xỉ 13,96 triệu người (năm 2020).

Suy nghĩ: Dân số về cơ bản là không thay đổi. Giờ tôi có thể đưa ra
                câu trả lời đầy đủ về cả số liệu hiện tại và
                xu hướng tăng trưởng.
Hành động: respond("Dân số Tokyo năm 2025 xấp xỉ
                13,96 triệu người, về cơ bản không thay đổi so với năm 2020...")

Tại sao suy luận lại quan trọng

Nếu không có bước "Suy nghĩ" rõ ràng, các agent sẽ lựa chọn công cụ kém hiệu quả hơn. Nghiên cứu cho thấy ReAct cải thiện độ tin cậy khi sử dụng công cụ vì bước suy luận buộc LLM phải giải thích lý do tại sao nó thực hiện một hành động trước khi thực hiện - giảm các lệnh gọi công cụ ảo và những tham số không chính xác.

Khi nào nên sử dụng ReAct

Phù hợpKhông phù hợp
Các nhiệm vụ nghiên cứu (tìm kiếm, so sánh, tổng hợp)Các câu hỏi đơn giản, mang tính chất thực tế (không cần công cụ hỗ trợ)
Thu thập dữ liệu nhiều bướcCác tác vụ không yêu cầu công cụ bên ngoài
Các nhiệm vụ đòi hỏi sự thích ứng linh hoạtCác nhiệm vụ đòi hỏi khả năng sáng tạo cao (viết lách, động não)

Kiểm tra nhanh: Một ReAct agent đang nghiên cứu "các công cụ quản lý dự án tốt nhất cho nhóm làm việc từ xa". Sau khi tìm kiếm, nó tìm thấy 10 kết quả. Bước Suy nghĩ có nên là "Hãy để tôi đọc tất cả 10 kết quả" hay nên suy luận xem kết quả nào phù hợp nhất trước?

Đáp án: Suy luận trước. Một bước suy nghĩ tốt sẽ là: "Tôi có 10 kết quả. Kết quả 1, 3 và 7 là các bài viết so sánh từ những trang web công nghệ uy tín. Kết quả 2 và 5 là các trang của nhà cung cấp có thể mang tính thiên vị. Tôi sẽ đọc các bài viết so sánh trước". Suy luận có chọn lọc tạo ra kết quả tốt hơn so với xử lý toàn diện.

Mẫu 2: Reflection

Reflection bổ sung thêm một lớp tự phê bình. Agent tạo ra một đầu ra, sau đó chuyển sang "chế độ phê bình" để đánh giá công việc của chính mình.

Cách thức hoạt động

Bước 1: Soạn thảo
  "Đây là bản tóm tắt báo cáo quý..."

Bước 2: Suy ngẫm
  "Kiểm tra lại bài làm:
   ✗ Tôi đã ghi doanh thu là 12 triệu USD nhưng dữ liệu thực tế là 12,3 triệu USD
   ✗ Tôi đã bỏ sót hoàn toàn chỉ số tỷ lệ khách hàng rời bỏ
   ✓ Định dạng tuân theo mẫu yêu cầu
   ✓ Giọng văn phù hợp với đối tượng cấp quản lý"

Bước 3: Chỉnh sửa
  "Đây là bản tóm tắt đã được chỉnh sửa với doanh thu chính xác
  (12,3 triệu USD) và chỉ số tỷ lệ khách hàng rời bỏ bị thiếu (2,1%)..."

Bước 4: Suy ngẫm lại (nếu cần)
  "Tất cả các vấn đề đã được giải quyết. Doanh thu khớp với dữ liệu nguồn.
  Chỉ số tỷ lệ khách hàng rời bỏ đã được thêm vào. Sẵn sàng để gửi."

Câu hỏi suy ngẫm

Chất lượng của bài phản hồi phụ thuộc vào câu hỏi phê bình:

<reflect>
Xem lại kết quả trước đó của bạn dựa trên các tiêu chí sau:
1. Độ chính xác về mặt thực tế: Tất cả các con số có khớp với dữ liệu nguồn không?
2. Tính đầy đủ: Tất cả các chỉ số được yêu cầu đã được đề cập chưa?
3. Định dạng: Có khớp với mẫu đã chỉ định không? 
4. Giọng văn: Có phù hợp với đối tượng người nghe không?

Đối với mỗi tiêu chí, hãy đánh dấu ✓ hoặc ✗ và giải thích.
Nếu có bất kỳ dấu ✗ nào, hãy cung cấp các chỉnh sửa cụ thể.
</reflect>

Khi nào nên sử dụng Reflection

  • Viết bài quan trọng - Báo cáo, đề xuất, giao tiếp với khách hàng
  • Tạo code - Phát hiện lỗi trước khi phát hành
  • Phân tích - Xác minh kết luận dựa trên dữ liệu
  • KHÔNG dùng cho các nhiệm vụ đơn giản - Thêm phản hồi vào câu hỏi "Mấy giờ rồi?" là lãng phí

Mẫu 3: Planning

Planning agent tạo ra một lộ trình có cấu trúc trước khi thực hiện. Thay vì nhảy thẳng vào hành động, họ phân tích nhiệm vụ trước.

Cách thức hoạt động

Người dùng: "Tạo phân tích cạnh tranh về 3 đối thủ hàng đầu của chúng ta"

Giai đoạn lập kế hoạch:
1. Xác định 3 đối thủ hàng đầu (kiểm tra bối cảnh công ty)
2. Đối với mỗi đối thủ:
   a. Nghiên cứu các sản phẩm mới ra mắt gần đây
   b. Thu thập thông tin về giá cả
   c. Tìm kiếm đánh giá và ý kiến ​​khách hàng
3. Tạo ma trận so sánh
4. Xác định lợi thế cạnh tranh và điểm yếu của chúng ta
5. Viết tóm tắt điều hành kèm theo khuyến nghị

Các bước phụ thuộc:
  - Bước 2 phụ thuộc vào Bước 1 (cần danh sách đối thủ cạnh tranh trước)
  - Bước 3 phụ thuộc vào Bước 2 (cần dữ liệu để so sánh)
  - Bước 4-5 phụ thuộc vào Bước 3

Thực hiện: Bắt đầu với Bước 1...

Lập kế hoạch tĩnh so với lập kế hoạch động

Lập kế hoạch tĩnh tạo ra toàn bộ kế hoạch ngay từ đầu và tuân theo nó một cách cứng nhắc. Phù hợp với các nhiệm vụ đã được hiểu rõ.

Lập kế hoạch động (còn được gọi là lập kế hoạch thích ứng) sửa đổi kế hoạch dựa trên những gì agent phát hiện ra trong quá trình thực thi. Cần thiết cho các nhiệm vụ không xác định, nơi bạn không thể dự đoán những gì mình sẽ tìm thấy.

Hầu hết các agent sản xuất sử dụng lập kế hoạch động - thế giới thực quá khó đoán đối với những kế hoạch cứng nhắc.

Kiểm tra nhanh: Một agent lập kế hoạch phân tích một file CSV trong 5 bước. Ở bước 2 (đọc file), nó phát hiện ra file thực chất là một file JSON với dữ liệu lồng nhau. Một agent lập kế hoạch động nên làm gì?

Câu trả lời: Lập kế hoạch lại từ bước 2 trở đi. Các bước còn lại giả định cấu trúc CSV - tên cột, phân tích dựa trên hàng. Với JSON lồng nhau, agent cần phân tích cú pháp khác, có thể cần các phương pháp phân tích khác và có thể cần các công cụ khác. Bước 1 (hiểu yêu cầu) và bước cuối cùng (trình bày kết quả) có thể vẫn giữ nguyên, nhưng các bước ở giữa cần được sửa đổi hoàn toàn.

Kết hợp các mô hình

Sức mạnh thực sự đến từ việc kết hợp các mô hình:

ReAct + Reflection

Agent sử dụng ReAct để nghiên cứu được hỗ trợ bởi công cụ, sau đó sử dụng Reflection để xác minh chất lượng các phát hiện của mình trước khi gửi:

[Giai đoạn ReAct] Tìm kiếm → Đọc → Tổng hợp
[Giai đoạn Reflection] Kiểm tra độ chính xác → Kiểm tra tính đầy đủ → Sửa đổi
[Gửi] Gửi kết quả đã được xác minh

Planning + ReAct

Agent trước tiên lập kế hoạch, sau đó thực hiện từng bước bằng cách sử dụng ReAct:

[Giai đoạn Planning] Phân tích nhiệm vụ thành 5 bước
[Giai đoạn ReAct] Thực hiện Bước 1 với Suy nghĩ → Hành động → Quan sát
[Giai đoạn ReAct] Thực hiện Bước 2...
[Lập kế hoạch lại nếu cần] Điều chỉnh các bước còn lại dựa trên những phát hiện

Kết hợp cả ba cùng nhau

Đối với các nhiệm vụ phức tạp, có rủi ro cao:

[Planning] Tạo lộ trình
[ReAct] Thực hiện từng bước với lý luận được hỗ trợ bởi công cụ
[Reflection] Xem xét chất lượng đầu ra tại các checkpoint
[Lập kế hoạch lại] Điều chỉnh dựa trên phản hồi Reflection

Bài tập thực hành

  1. Hãy chọn một nhiệm vụ phức tạp từ công việc của bạn (viết báo cáo, phân tích dữ liệu, lập kế hoạch dự án)
  2. Hãy đối chiếu nó với một trong ba mô hình: Mô hình nào phù hợp nhất? Tại sao?
  3. Viết ba bước đầu tiên của agent Suy nghĩ → Hành động → Quan sát (ReAct), hoặc danh sách kiểm tra phê bình (Reflection), hoặc kế hoạch từng bước (Planning)

Những điểm chính cần ghi nhớ

  • ReAct kết hợp lý luận với hành động - bước Suy nghĩ rõ ràng giúp cải thiện việc lựa chọn công cụ và giúp agent dễ gỡ lỗi
  • Reflection bổ sung khả năng tự phê bình để phát hiện lỗi - sử dụng nó cho các nhiệm vụ quan trọng, nơi chất lượng xứng đáng với chi phí xử lý bổ sung
  • Planning phân tách các nhiệm vụ phức tạp trước khi thực hiện - lập kế hoạch động điều chỉnh lộ trình khi agent học hỏi thêm
  • Kết hợp các mô hình để đạt hiệu quả tối đa: Planning thiết lập lộ trình, ReAct thực hiện từng bước, Reflection xác minh chất lượng
  • Chọn dựa trên nhiệm vụ: ReAct cho nghiên cứu và các nhiệm vụ động, Reflection cho đầu ra quan trọng về chất lượng, Planning cho các dự án nhiều bước phức tạp
  • Câu 1:

    Một Planning agent nhận được yêu cầu 'Di chuyển cơ sở dữ liệu MySQL sang PostgreSQL'. Nó tạo ra một kế hoạch 12 bước. Sau bước 4 (xuất schema), nó phát hiện ra schema sử dụng các tính năng dành riêng cho MySQL mà không tồn tại trong PostgreSQL. Điều gì nên xảy ra?

    GIẢI THÍCH:

    Lập kế hoạch thích ứng là điều phân biệt các agent hữu ích với những kịch bản cứng nhắc. Agent nên giữ lại các bước 1-4 (đã hoàn thành thành công) và lập kế hoạch lại từ bước 5 trở đi, khi đã biết về các tính năng cụ thể của MySQL. Điều này có thể có nghĩa là thêm các bước mới cho việc chuyển đổi schema. Bắt đầu lại sẽ lãng phí công việc đã hoàn thành. Tiếp tục kế hoạch ban đầu sẽ bỏ qua thông tin mới quan trọng. Các agent tốt nhất sẽ liên tục lập kế hoạch lại khi chúng tìm hiểu thêm về nhiệm vụ.

  • Câu 2:

    Một Reflection agent viết một email tiếp thị, sau đó phê bình nó: 'Dòng tiêu đề quá chung chung. Lời kêu gọi hành động bị chôn vùi ở đoạn thứ 3. Giọng điệu quá trang trọng đối với đối tượng của chúng ta'. Sau đó, nó viết lại email để giải quyết từng vấn đề. Khi nào thì việc suy ngẫm (Reflection) mang lại giá trị cao nhất?

     

     

    GIẢI THÍCH:

    Reflection thêm một lệnh gọi LLM hoàn chỉnh cho mỗi lần lặp, làm tăng gấp đôi độ trễ và chi phí. Đối với những câu hỏi đơn giản mang tính thực tế ('Bây giờ là mấy giờ ở Tokyo?'), việc tự phản tỉnh là lãng phí. Nhưng đối với những nhiệm vụ có sự biến động chất lượng cao - viết lách, phân tích, lập trình, lập kế hoạch chiến lược - bước tự phê bình giúp phát hiện lỗi, cải thiện tính mạch lạc và nâng cao chất lượng đầu ra một cách đáng kể. Hãy sử dụng nó khi chi phí của một sản phẩm đầu ra kém chất lượng vượt quá chi phí của quá trình xử lý bổ sung.

  • Câu 3:

    Một ReAct agent nghĩ 'Tôi cần tìm giá cổ phiếu hiện tại' → gọi API cổ phiếu → nhận được $142,50 → nghĩ 'Bây giờ tôi cần so sánh với giá đóng cửa ngày hôm qua'. Điều gì làm cho ReAct này cụ thể như vậy?

    GIẢI THÍCH:

    Đặc điểm nổi bật của ReAct là chu trình Suy nghĩ → Hành động → Quan sát rõ ràng. Bước 'Suy nghĩ' là điều phân biệt ReAct với việc sử dụng công cụ đơn giản: Thay vì chỉ gọi các công cụ, agent giải thích lý do của nó trước. Điều này làm cho quá trình ra quyết định của agent trở nên minh bạch - bạn có thể thấy TẠI SAO nó chọn một công cụ cụ thể, TẠI SAO nó sử dụng các tham số cụ thể và TẠI SAO nó quyết định tiếp tục hoặc dừng lại. Tính minh bạch này rất quan trọng cho việc gỡ lỗi và sự tin tưởng.

Thứ Tư, 06/05/2026 11:54
51 👨
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo