Skip to content
Lesson 8/11 · AI Agent cho người mới bắt đầu (Microsoft)

Mẫu thiết kế đa agent

Khi nào nên dùng nhiều agent, lợi ích so với một agent, các khối xây dựng, cách quan sát tương tác giữa agent và các mẫu group chat, hand-off, collaborative filtering.

This content is currently available in Vietnamese only.

Beginner@shine190415 min read

Ngay khi bắt đầu làm một dự án có nhiều agent, bạn sẽ cần cân nhắc mẫu thiết kế đa agent (multi-agent). Tuy nhiên, không phải lúc nào cũng rõ khi nào nên chuyển sang đa agent và lợi ích của nó là gì. Bài này giúp bạn trả lời những câu hỏi đó.

Video của bài: Multi-Agent Design.

Giới thiệu

Trong bài này, chúng ta muốn trả lời các câu hỏi sau:

  • Những kịch bản nào phù hợp với đa agent?
  • Dùng nhiều agent có lợi gì so với chỉ một agent làm nhiều tác vụ?
  • Các khối xây dựng để cài đặt mẫu thiết kế đa agent là gì?
  • Làm sao quan sát được cách các agent tương tác với nhau?

Mục tiêu học tập

Sau bài này, bạn sẽ có thể:

  • Nhận ra các kịch bản phù hợp với đa agent
  • Nhận biết lợi ích của việc dùng nhiều agent so với một agent
  • Hiểu các khối xây dựng để cài đặt mẫu thiết kế đa agent

Bức tranh lớn hơn là gì?

Đa agent là một mẫu thiết kế cho phép nhiều agent cùng làm việc để đạt một mục tiêu chung.

Mẫu này được dùng rộng rãi trong nhiều lĩnh vực, gồm robot học, hệ thống tự hành và tính toán phân tán.

Các kịch bản phù hợp với đa agent

Vậy kịch bản nào là trường hợp tốt để dùng đa agent? Câu trả lời là có rất nhiều kịch bản mà việc dùng nhiều agent mang lại lợi ích, đặc biệt trong các trường hợp sau:

  • Khối lượng công việc lớn: khối lượng lớn có thể được chia thành tác vụ nhỏ hơn và giao cho các agent khác nhau, cho phép xử lý song song và hoàn thành nhanh hơn. Ví dụ là một tác vụ xử lý dữ liệu lớn.
  • Tác vụ phức tạp: giống khối lượng lớn, tác vụ phức tạp có thể được chia thành tác vụ con nhỏ hơn và giao cho các agent khác nhau, mỗi agent chuyên về một khía cạnh của tác vụ. Ví dụ tốt là xe tự hành, nơi các agent khác nhau quản lý điều hướng, phát hiện vật cản và giao tiếp với các xe khác.
  • Chuyên môn đa dạng: các agent khác nhau có thể có chuyên môn khác nhau, giúp chúng xử lý các khía cạnh khác nhau của tác vụ hiệu quả hơn một agent duy nhất. Ví dụ tốt cho trường hợp này là y tế, nơi các agent có thể quản lý chẩn đoán, phác đồ điều trị và theo dõi bệnh nhân.

Lợi ích của nhiều agent so với một agent

Hệ thống một agent có thể làm tốt các tác vụ đơn giản, nhưng với tác vụ phức tạp hơn, dùng nhiều agent mang lại một số lợi ích:

  • Chuyên môn hoá: mỗi agent có thể chuyên cho một tác vụ cụ thể. Thiếu chuyên môn hoá ở một agent duy nhất nghĩa là bạn có một agent làm được mọi thứ nhưng có thể bối rối không biết làm gì khi gặp tác vụ phức tạp. Ví dụ, nó có thể làm một tác vụ mà nó không phải là lựa chọn phù hợp nhất.
  • Khả năng mở rộng: mở rộng hệ thống bằng cách thêm agent dễ hơn là làm quá tải một agent duy nhất.
  • Khả năng chịu lỗi: nếu một agent gặp sự cố, các agent khác vẫn có thể tiếp tục hoạt động, đảm bảo độ tin cậy của hệ thống.

Lấy một ví dụ: đặt chuyến đi cho người dùng. Hệ thống một agent sẽ phải xử lý mọi khía cạnh của quá trình đặt chuyến, từ tìm chuyến bay đến đặt khách sạn và thuê xe. Để làm được điều này với một agent, agent cần có tool cho tất cả các tác vụ đó. Điều này có thể dẫn đến một hệ thống phức tạp, nguyên khối, khó bảo trì và mở rộng. Ngược lại, một hệ đa agent có thể có các agent riêng chuyên tìm chuyến bay, đặt khách sạn và thuê xe. Điều này giúp hệ thống mô-đun hơn, dễ bảo trì và dễ mở rộng hơn.

Hãy so sánh điều này với một văn phòng du lịch kiểu cửa hàng gia đình và một văn phòng du lịch vận hành theo chuỗi nhượng quyền. Cửa hàng gia đình sẽ có một người lo mọi khía cạnh của quá trình đặt chuyến, còn chuỗi nhượng quyền sẽ có những người khác nhau lo các khía cạnh khác nhau.

Các khối xây dựng để cài đặt mẫu đa agent

Trước khi cài đặt mẫu thiết kế đa agent, bạn cần hiểu các khối xây dựng tạo nên mẫu này.

Chúng ta hãy làm cụ thể hơn bằng cách xem lại ví dụ đặt chuyến đi cho người dùng. Trong trường hợp này, các khối xây dựng gồm:

  • Giao tiếp giữa các agent: các agent tìm chuyến bay, đặt khách sạn và thuê xe cần giao tiếp và chia sẻ thông tin về sở thích và ràng buộc của người dùng. Bạn cần quyết định giao thức và phương thức cho việc giao tiếp này. Cụ thể, agent tìm chuyến bay cần giao tiếp với agent đặt khách sạn để đảm bảo khách sạn được đặt đúng các ngày của chuyến bay. Nghĩa là các agent cần chia sẻ thông tin về ngày đi của người dùng, tức là bạn cần quyết định agent nào chia sẻ thông tin và chia sẻ bằng cách nào.
  • Cơ chế phối hợp: các agent cần phối hợp hành động để đảm bảo đáp ứng sở thích và ràng buộc của người dùng. Một sở thích có thể là người dùng muốn khách sạn gần sân bay, còn một ràng buộc có thể là xe thuê chỉ có ở sân bay. Nghĩa là agent đặt khách sạn cần phối hợp với agent thuê xe để đáp ứng sở thích và ràng buộc của người dùng. Bạn cần quyết định các agent phối hợp hành động thế nào.
  • Kiến trúc agent: agent cần có cấu trúc bên trong để ra quyết định và học từ tương tác với người dùng. Nghĩa là agent tìm chuyến bay cần có cấu trúc bên trong để quyết định nên gợi ý chuyến bay nào cho người dùng. Bạn cần quyết định các agent ra quyết định và học từ tương tác với người dùng thế nào. Ví dụ về cách agent học và cải thiện: agent tìm chuyến bay có thể dùng một model học máy để gợi ý chuyến bay dựa trên sở thích trước đây của người dùng.
  • Quan sát tương tác đa agent: bạn cần quan sát được cách các agent tương tác với nhau. Nghĩa là bạn cần có tool và kỹ thuật theo dõi hoạt động và tương tác của agent, ở dạng tool ghi log và giám sát, tool trực quan hoá và chỉ số hiệu năng.
  • Các mẫu đa agent: có nhiều mẫu để cài đặt hệ đa agent, như kiến trúc tập trung, phi tập trung và lai. Bạn cần chọn mẫu phù hợp nhất với trường hợp sử dụng của mình.
  • Con người trong vòng lặp: trong hầu hết trường hợp, sẽ có con người trong vòng lặp và bạn cần chỉ dẫn agent khi nào cần xin con người can thiệp. Ví dụ người dùng yêu cầu một khách sạn hay chuyến bay cụ thể mà agent chưa gợi ý, hoặc xin xác nhận trước khi đặt chuyến bay hay khách sạn.

Quan sát tương tác đa agent

Quan sát được cách các agent tương tác với nhau là điều quan trọng. Khả năng quan sát này thiết yếu cho việc gỡ lỗi, tối ưu và đảm bảo hiệu quả tổng thể của hệ thống. Để làm được, bạn cần tool và kỹ thuật theo dõi hoạt động và tương tác của agent, ở dạng tool ghi log và giám sát, tool trực quan hoá và chỉ số hiệu năng.

Ví dụ, trong trường hợp đặt chuyến đi, bạn có thể có một dashboard hiển thị trạng thái từng agent, sở thích và ràng buộc của người dùng, và các tương tác giữa agent. Dashboard này có thể hiển thị ngày đi của người dùng, các chuyến bay do agent chuyến bay gợi ý, các khách sạn do agent khách sạn gợi ý và các xe do agent thuê xe gợi ý. Nhờ đó bạn thấy rõ các agent tương tác với nhau thế nào và sở thích, ràng buộc của người dùng có được đáp ứng không.

Chúng ta hãy xem chi tiết hơn từng khía cạnh:

  • Tool ghi log và giám sát: bạn muốn ghi log cho mọi hành động của agent. Một mục log có thể lưu thông tin về agent thực hiện hành động, hành động đã làm, thời điểm và kết quả của hành động. Thông tin này sau đó có thể dùng để gỡ lỗi, tối ưu và nhiều việc khác.
  • Tool trực quan hoá: tool trực quan hoá giúp bạn thấy tương tác giữa các agent một cách trực quan hơn. Ví dụ, bạn có thể có một đồ thị thể hiện luồng thông tin giữa các agent. Điều này giúp xác định điểm nghẽn, chỗ kém hiệu quả và các vấn đề khác trong hệ thống.
  • Chỉ số hiệu năng: chỉ số hiệu năng giúp bạn theo dõi hiệu quả của hệ đa agent. Ví dụ, bạn có thể theo dõi thời gian hoàn thành một tác vụ, số tác vụ hoàn thành trong một đơn vị thời gian và độ chính xác của các gợi ý do agent đưa ra. Thông tin này giúp bạn tìm ra chỗ cần cải thiện và tối ưu hệ thống.

Các mẫu đa agent

Chúng ta hãy đi vào một số mẫu cụ thể dùng để tạo ứng dụng đa agent. Đây là vài mẫu thú vị đáng cân nhắc:

Group chat

Mẫu này hữu ích khi bạn muốn tạo một ứng dụng trò chuyện nhóm, nơi nhiều agent có thể giao tiếp với nhau. Các trường hợp sử dụng điển hình gồm cộng tác nhóm, hỗ trợ khách hàng và mạng xã hội.

Trong mẫu này, mỗi agent đại diện cho một người dùng trong nhóm chat, và tin nhắn được trao đổi giữa các agent bằng một giao thức nhắn tin. Các agent có thể gửi tin nhắn vào nhóm chat, nhận tin nhắn từ nhóm chat và trả lời tin nhắn của agent khác.

Mẫu này có thể được cài đặt bằng kiến trúc tập trung, nơi mọi tin nhắn được định tuyến qua một server trung tâm, hoặc kiến trúc phi tập trung, nơi tin nhắn được trao đổi trực tiếp.

Group chat

Hand-off

Mẫu này hữu ích khi bạn muốn tạo một ứng dụng nơi nhiều agent có thể chuyển giao tác vụ cho nhau.

Các trường hợp sử dụng điển hình gồm hỗ trợ khách hàng, quản lý tác vụ và tự động hoá quy trình.

Trong mẫu này, mỗi agent đại diện cho một tác vụ hoặc một bước trong quy trình, và agent có thể chuyển giao tác vụ cho agent khác dựa trên các quy tắc định sẵn.

Hand-off

Collaborative filtering

Mẫu này hữu ích khi bạn muốn tạo một ứng dụng nơi nhiều agent cộng tác để đưa ra gợi ý cho người dùng.

Lý do bạn muốn nhiều agent cộng tác là mỗi agent có thể có chuyên môn khác nhau và đóng góp vào quá trình gợi ý theo những cách khác nhau.

Lấy ví dụ người dùng muốn được gợi ý cổ phiếu tốt nhất để mua trên thị trường chứng khoán.

  • Chuyên gia ngành: một agent có thể là chuyên gia về một ngành cụ thể.
  • Phân tích kỹ thuật: một agent khác có thể là chuyên gia phân tích kỹ thuật.
  • Phân tích cơ bản: và một agent khác nữa có thể là chuyên gia phân tích cơ bản. Bằng cách cộng tác, các agent này có thể đưa ra gợi ý toàn diện hơn cho người dùng.

Gợi ý

Kịch bản: quy trình hoàn tiền

Xét một kịch bản khách hàng muốn được hoàn tiền cho một sản phẩm. Có thể có khá nhiều agent tham gia quy trình này, nhưng chúng ta hãy chia thành các agent riêng cho quy trình này và các agent chung có thể dùng ở quy trình khác.

Các agent riêng cho quy trình hoàn tiền:

Sau đây là một số agent có thể tham gia quy trình hoàn tiền:

  • Agent khách hàng: đại diện cho khách hàng và chịu trách nhiệm khởi động quy trình hoàn tiền.
  • Agent người bán: đại diện cho người bán và chịu trách nhiệm xử lý hoàn tiền.
  • Agent thanh toán: đại diện cho quy trình thanh toán và chịu trách nhiệm hoàn lại khoản thanh toán của khách hàng.
  • Agent giải quyết: đại diện cho quy trình giải quyết và chịu trách nhiệm xử lý mọi vấn đề phát sinh trong quá trình hoàn tiền.
  • Agent tuân thủ: đại diện cho quy trình tuân thủ và chịu trách nhiệm đảm bảo quy trình hoàn tiền tuân thủ quy định và chính sách.

Các agent chung:

Các agent này có thể được dùng ở những phần khác trong doanh nghiệp của bạn.

  • Agent vận chuyển: đại diện cho quy trình vận chuyển và chịu trách nhiệm gửi sản phẩm lại cho người bán. Agent này có thể dùng cho cả quy trình hoàn tiền lẫn việc vận chuyển sản phẩm thông thường, ví dụ khi mua hàng.
  • Agent phản hồi: đại diện cho quy trình thu thập phản hồi và chịu trách nhiệm thu phản hồi từ khách hàng. Phản hồi có thể được thu bất cứ lúc nào, không chỉ trong quá trình hoàn tiền.
  • Agent chuyển cấp: đại diện cho quy trình chuyển cấp và chịu trách nhiệm chuyển vấn đề lên cấp hỗ trợ cao hơn. Bạn có thể dùng loại agent này cho bất kỳ quy trình nào cần chuyển cấp vấn đề.
  • Agent thông báo: đại diện cho quy trình thông báo và chịu trách nhiệm gửi thông báo cho khách hàng ở các giai đoạn khác nhau của quy trình hoàn tiền.
  • Agent phân tích: đại diện cho quy trình phân tích và chịu trách nhiệm phân tích dữ liệu liên quan đến quy trình hoàn tiền.
  • Agent kiểm toán: đại diện cho quy trình kiểm toán và chịu trách nhiệm kiểm tra quy trình hoàn tiền để đảm bảo nó được thực hiện đúng.
  • Agent báo cáo: đại diện cho quy trình báo cáo và chịu trách nhiệm tạo báo cáo về quy trình hoàn tiền.
  • Agent tri thức: đại diện cho quy trình tri thức và chịu trách nhiệm duy trì một cơ sở tri thức liên quan đến quy trình hoàn tiền. Agent này có thể am hiểu cả về hoàn tiền lẫn các phần khác trong doanh nghiệp của bạn.
  • Agent bảo mật: đại diện cho quy trình bảo mật và chịu trách nhiệm đảm bảo an ninh cho quy trình hoàn tiền.
  • Agent chất lượng: đại diện cho quy trình chất lượng và chịu trách nhiệm đảm bảo chất lượng của quy trình hoàn tiền.

Danh sách trên khá dài, gồm cả agent riêng cho quy trình hoàn tiền lẫn agent chung dùng được ở các phần khác trong doanh nghiệp. Hy vọng nó giúp bạn hình dung cách quyết định nên dùng những agent nào trong hệ đa agent của mình.

Bài tập

Thiết kế một hệ đa agent cho quy trình hỗ trợ khách hàng. Xác định các agent tham gia, vai trò và trách nhiệm của chúng, và cách chúng tương tác với nhau. Hãy xét cả agent riêng cho quy trình hỗ trợ khách hàng lẫn agent chung dùng được ở các phần khác trong doanh nghiệp.

Hãy suy nghĩ trước khi đọc lời giải, có thể bạn cần nhiều agent hơn bạn tưởng.

Lời giải: solution.md.

Tóm tắt

Trong bài này, chúng ta đã xem mẫu thiết kế đa agent, gồm các kịch bản phù hợp với đa agent, lợi ích của nhiều agent so với một agent, các khối xây dựng để cài đặt mẫu đa agent và cách quan sát tương tác giữa các agent.

Còn câu hỏi về mẫu thiết kế đa agent?

Tham gia Microsoft Foundry Discord để gặp gỡ những người cùng học, dự các buổi office hours và được giải đáp thắc mắc về AI agent.

Tài liệu bổ sung

Nguồn