Google’s Agent Development Kit (ADK) cung cấp hai cách chính để quản lý các tác vụ.
Định tuyến Đa Agent Động (Dynamic Multi-Agent Routing)
Trong mô hình định tuyến, một điều phối viên trung tâm sẽ nhận yêu cầu của người dùng và chuyển tiếp yêu cầu đó đến các agent chuyên biệt. Điều phối viên quyết định agent chuyên biệt nào sẽ thực hiện, agent đó thực hiện phần việc của mình, sau đó quyền kiểm soát được trả lại cho agent cha.
- Cách thức hoạt động – Điều phối viên chọn một agent chuyên biệt, chuyển tiếp tác vụ, sau đó chờ phản hồi trước khi tiếp tục.
- Ưu điểm – Tính linh hoạt vượt trội. Vì LLM chọn lộ trình tại thời điểm thực thi (runtime), hệ thống có thể thích ứng với các đầu vào mới hoặc không mong đợi mà không cần viết lại luồng xử lý.
- Nhược điểm – Mỗi bước chuyển tiếp đều làm tăng chi phí mạng và xử lý, do đó độ trễ sẽ tăng lên so với một đường ống (pipeline) tuyến tính.
Vòng lặp Quy trình Công việc Tuần tự (Sequential Workflow Loops)
Mô hình vòng lặp thay thế điều phối viên bằng một LoopAgent duy nhất, thực hiện qua một chuỗi các bước đã được định trước và chia sẻ một trạng thái phiên (session state) có thể thay đổi.
- Cách thức hoạt động – Các agent đọc một khóa chung, cập nhật nó và chuyển quyền kiểm soát cho bước tiếp theo cho đến khi chuỗi kết thúc.
- Ưu điểm – Tính dự đoán được. Thứ tự không bao giờ thay đổi, giúp việc gỡ lỗi (debugging) và tinh chỉnh hiệu suất trở nên dễ dàng.
- Nhược điểm – Tính cứng nhắc. Bất kỳ nhu cầu nào muốn thay đổi khỏi thứ tự cố định đều buộc phải thiết kế lại vòng lặp.
Thử nghiệm Thực tế: Trình phân tích Biểu thức Toán học
Để thấy các mô hình này hoạt động trong thực tế, chúng tôi đã xây dựng một trình phân tích đơn giản để đánh giá các biểu thức số học bằng cách sử dụng bốn agent chuyên biệt: adder, subtracter, multiplier, và divider.
Bài học từ Vòng lặp Quy trình Công việc
- Ngăn chặn vòng lặp vô hạn – Chúng tôi đã hướng dẫn mỗi agent xuất văn bản và kết thúc lượt của mình ngay lập tức sau khi cập nhật trạng thái chung. Nếu không có cơ chế bảo vệ đó, vòng lặp có thể chạy mãi mãi.
- Duy trì logic toán học – Chúng tôi đã đưa ra hướng dẫn rõ ràng cho
adderđể tuân thủ thứ tự thực hiện các phép toán, ngăn nó vi phạm các quy tắc phép trừ. - Tránh thoát chương trình trong im lặng – Chúng tôi buộc các agent phải in kết quả cuối cùng trước khi gọi công cụ thoát (exit tool), để người dùng thấy được kết quả thay vì một sự kết thúc đột ngột.
Xử lý lỗi
Chúng tôi đã thêm một cơ chế bảo vệ chia cho số 0 trước agent chuyên biệt divider. Cơ chế này sẽ kiểm tra số chia trước; nếu nó bằng 0, quá trình sẽ dừng lại, giúp toàn bộ hệ thống tránh khỏi lỗi ngoại lệ khi thực thi (runtime exception).
Mô hình nào phù hợp với dự án của bạn?
- Chọn Định tuyến Đa Agent khi các tác vụ thay đổi linh hoạt, đầu vào đa dạng, hoặc bạn cần LLM quyết định agent chuyên biệt tốt nhất tại thời điểm thực thi. Sự đánh đổi là độ trễ cao hơn, nhưng hệ thống có thể xử lý các tình huống không lường trước được mà không cần thay đổi mã nguồn.
- Chọn Vòng lặp Quy trình Công việc khi bạn có một đường ống xử lý được xác định rõ ràng—ví dụ như làm sạch dữ liệu, chuyển đổi, tổng hợp—nơi mỗi bước phải diễn ra theo một thứ tự nghiêm ngặt. Lợi ích là độ trễ thấp hơn và dễ gỡ lỗi hơn, nhưng cái giá phải trả là không thể rẽ nhánh một cách linh hoạt.
