LangChain: Blog
85

Thủ thuật

Kiến trúc Plan-and-Execute: Tách biệt lập kế hoạch và thực thi để xây dựng AI Agent đáng tin cậy

(giờ Việt Nam)

Tóm tắt AI

Khung làm việc Plan-and-Execute giúp tối ưu hóa AI Agent bằng cách tách rời giai đoạn lập kế hoạch phức tạp khỏi quá trình thực thi, từ đó giảm thiểu sai sót và tăng độ ổn định cho hệ thống.

Bản dịch AI

Plan-and-Execute Agents

TL;DR: Chúng tôi giới thiệu một loại trình thực thi tác nhân (agent executor) mới, gọi là “Plan-and-Execute” (Lập kế hoạch và Thực thi). Điều này nhằm tạo sự khác biệt so với các loại tác nhân trước đây mà chúng tôi hỗ trợ, vốn được gọi là các tác nhân “Action” (Hành động). Các tác nhân Plan-and-Execute lấy cảm hứng mạnh mẽ từ BabyAGI và bài báo Plan-and-Solve gần đây. Chúng tôi tin rằng Plan-and-Execute rất hiệu quả cho việc lập kế hoạch dài hạn phức tạp hơn, dù phải đánh đổi bằng việc gọi mô hình ngôn ngữ nhiều lần hơn. Chúng tôi đang đưa phiên bản đầu tiên của công cụ này vào mô-đun thử nghiệm vì dự đoán sẽ có nhiều thay đổi nhanh chóng.

Các liên kết:

Cho đến nay, tất cả các tác nhân trong LangChain đều tuân theo khung làm việc tiên phong bởi bài báo ReAct. Hãy gọi chúng là các “Action Agents”. Thuật toán cho các tác nhân này có thể được diễn đạt một cách khái quát qua mã giả sau:

Phong cách này đã hoạt động tốt cho đến nay, nhưng một vài yếu tố đang thay đổi đã bộc lộ những hạn chế trong thuật toán này:

Những yếu tố này tạo ra tác động kép: vừa đòi hỏi các hệ thống tác nhân phải xử lý được những yêu cầu phức tạp hơn, vừa phải đảm bảo độ tin cậy cao hơn. Hai yếu tố này kết hợp lại khiến kích thước prompt tăng lên nhanh chóng:

Nhu cầu về các khả năng ngày càng phức tạp và độ tin cậy cao hơn đang gây ra nhiều vấn đề khi làm việc với hầu hết các mô hình ngôn ngữ.

Triển khai Plan-and-Execute

Theo hướng đó, chúng ta đã thấy một phong cách khung làm việc tác nhân mới xuất hiện. Các khung làm việc này cố gắng tách biệt việc lập kế hoạch cấp cao khỏi việc thực thi ngắn hạn. Cụ thể, trước tiên chúng lập kế hoạch cho các bước cần thực hiện, sau đó thực thi lặp lại các bước đó. Tất nhiên, có một vài biến thể thú vị của thuật toán cốt lõi này (chúng ta có thể thảo luận sau). Mã giả cho các tác nhân này, mà chúng tôi gọi là tác nhân “Plan-and-Execute”, trông như sau:

Đây là khung làm việc tác nhân cốt lõi được triển khai bằng Python và TypeScript. Khung làm việc này dựa trên hai thành phần: một trình lập kế hoạch (planner) và một trình thực thi (executor).

Hãy nói về trình lập kế hoạch trước. Thành phần này gần như luôn luôn nên là một mô hình ngôn ngữ. Nó sẽ tận dụng khả năng suy luận của mô hình ngôn ngữ để lập kế hoạch thực hiện và xử lý các trường hợp mơ hồ hoặc các tình huống biên. Chúng ta có thể thêm một trình phân tích cú pháp đầu ra (output parser) ở cuối để phân tích đầu ra thô của LLM thành một danh sách các chuỗi (mỗi chuỗi là một bước).

Bây giờ hãy nói về trình thực thi. Trong bản triển khai ban đầu, chúng tôi đã biến nó thành một Action Agent. Điều này cho phép tác nhân thực thi tiếp nhận một mục tiêu cấp cao (một bước đơn lẻ) và tìm ra các công cụ cần sử dụng để hoàn thành mục tiêu đó (có thể thực hiện trong một hoặc hai bước).

Cách tiếp cận này có một số lợi ích. Nó tách biệt việc lập kế hoạch khỏi việc thực thi - điều này cho phép một LLM chỉ tập trung vào việc lập kế hoạch, và một LLM khác tập trung vào việc thực thi. Điều này giúp tăng độ tin cậy trên cả hai phương diện. Nó cũng giúp việc thay thế các thành phần này bằng các mô hình nhỏ hơn đã được tinh chỉnh (fine-tuned) trở nên dễ dàng hơn trong tương lai. Nhược điểm lớn nhất của cách tiếp cận này là cần thực hiện nhiều lệnh gọi hơn. Tuy nhiên, nhờ sự phân tách các mối quan tâm (separation of concerns), chúng tôi hy vọng rằng các lệnh gọi này có thể được thực hiện với các mô hình nhỏ hơn (do đó nhanh hơn và rẻ hơn).

Các hướng phát triển tương lai

Chúng tôi nghĩ rằng đây mới chỉ là sự khởi đầu của các tác nhân plan-and-execute. Các hướng phát triển tương lai bao gồm:

Cần lưu ý rằng đối với nhiều hướng phát triển tương lai này, chúng ta có thể lấy cảm hứng từ các công trình hiện có. Ví dụ, BabyAGI đã sử dụng một vectorstore để lưu trữ các bước trung gian và cũng xem xét lại kế hoạch trong mỗi lần lặp. Bài báo Plan-and-Solve thực hiện đánh giá đầu ra nghiêm ngặt hơn với các bộ tiêu chuẩn (benchmarks).

Kết luận

Chúng tôi thực sự hào hứng khi thấy mô hình tác nhân mới này xuất hiện trong BabyAGI (chúng tôi đã nhấn mạnh đây là một trong những điểm khác biệt lớn trong bài viết vài tuần trước). Chúng tôi cũng hào hứng không kém khi thấy bài báo Plan-and-Solve xuất hiện như một đánh giá nghiêm ngặt về các ý tưởng tương tự. Chúng tôi mong chờ được thấy cách tiếp cận Plan-and-Execute phát triển như thế nào - hãy thử nghiệm tại đây (Python) hoặc tại đây (JS).

AI AgentLangChainLập trình AIKiến trúc phần mềmTự động hóa
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ LangChain: Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.