MCP và A2A không thay thế nhau: một nối công cụ, một nối tác nhân

|Tác giả: Ban biên tập QUASA|8 phút đọc| 1
MCP và A2A không thay thế nhau: một nối công cụ, một nối tác nhân

Theo tài liệu A2A, MCP nối ứng dụng AI hoặc agent với công cụ và dữ liệu, còn A2A nối các agent độc lập để giao việc và trao đổi kết quả. Hai giao thức phục vụ những quan hệ khác nhau trong cùng một hệ thống; một agent nhận việc qua A2A vẫn có thể dùng MCP để truy cập công cụ của mình.

Nếu một ứng dụng tự điều phối công việc và chỉ cần gọi công cụ hoặc lấy dữ liệu, MCP thường đủ. Nếu nó cần giao mục tiêu cho một agent chuyên môn tự xử lý rồi nhận phản hồi, A2A phù hợp với kết nối giữa hai agent. Khi agent chuyên môn còn phải đọc dữ liệu hoặc thực hiện hành động qua công cụ, cả hai giao thức có thể xuất hiện trong một luồng nghiệp vụ, mỗi giao thức trên một chặng riêng.

Đầu bên kia là công cụ hay agent độc lập?

Trong kiến trúc MCP, ứng dụng AI là host và tạo client kết nối tới server cung cấp khả năng. Tài liệu kiến trúc MCP mô tả các khả năng mà server có thể cung cấp gồm công cụ để thực hiện hành động, tài nguyên để lấy dữ liệu và mẫu lời nhắc. Client có thể tìm công cụ được cung cấp rồi gọi công cụ phù hợp với yêu cầu.

Giả sử một công cụ nhận mã hàng và trả về lượng tồn kho. Agent gọi công cụ đó phải tự quyết định kết quả có đủ để tiếp tục xử lý đơn hay không. Nếu đầu bên kia là agent chuyên môn về tồn kho, yêu cầu có thể là đánh giá khả năng đáp ứng đơn hàng; agent nhận việc tự chọn cách kiểm tra, xử lý thông tin còn thiếu và trả lại đánh giá. Bên giao việc không cần điều khiển từng công cụ nội bộ của agent chuyên môn.

Ranh giới nằm ở hợp đồng tương tác. Công cụ cung cấp một khả năng để bên gọi sử dụng; agent độc lập nhận một phần công việc và phản hồi về phần việc đó. Tên gọi “agent” trong mã nguồn không tự tạo ra nhu cầu dùng A2A: một thành phần được ứng dụng điều khiển như công cụ vẫn có thể nằm sau giao diện công cụ.

Luồng đơn hàng: giao việc ở đâu, gọi công cụ ở đâu?

Đơn hàng giả định chờ agent chuyên môn kiểm tra tồn kho trước khi agent điều phối tiếp tục xử lý.

Xét một luồng giả định: người mua yêu cầu ứng dụng kiểm tra hàng và tạo đơn. Ứng dụng đưa yêu cầu tới agent điều phối qua giao diện phục vụ người dùng; chặng này không mặc nhiên là MCP hoặc A2A. Agent điều phối giao phần đánh giá tồn kho cho một agent chuyên môn hoạt động độc lập.

  1. Agent điều phối chọn agent tồn kho phù hợp rồi gửi yêu cầu kiểm tra khả năng đáp ứng qua A2A. Yêu cầu nêu mục tiêu và dữ liệu đơn hàng cần thiết, thay vì chỉ định từng thao tác nội bộ.
  2. Agent tồn kho dùng client MCP thuộc môi trường của mình để gọi server cung cấp công cụ đọc dữ liệu hàng còn. Quyền đọc ở chặng này được cấp cho kết nối công cụ của agent tồn kho; agent điều phối không nhận quyền đó chỉ vì đã giao việc.
  3. Agent tồn kho gửi kết quả hoặc yêu cầu bổ sung thông tin trở lại qua A2A. Agent điều phối dùng phản hồi ấy để quyết định luồng đơn hàng có thể tiếp tục hay cần hỏi lại người mua.
  4. Nếu được phép tạo đơn, agent điều phối gọi một công cụ tạo đơn qua kết nối MCP riêng. Công cụ thực hiện thao tác ghi phải kiểm tra quyền của yêu cầu này; kết quả kiểm tra tồn kho không tự biến thành quyền tạo đơn.

Luồng trên có thể hình dung bằng các cạnh kết nối: người mua → ứng dụng → agent điều phối; agent điều phối ↔ agent tồn kho bằng A2A; agent tồn kho ↔ công cụ tồn kho bằng MCP; agent điều phối ↔ công cụ tạo đơn bằng MCP. Đây là ví dụ kiến trúc giả định, không phải mô tả một hệ thống bán lẻ cụ thể. Nó tách rõ bên chịu trách nhiệm đánh giá tồn kho khỏi bên có quyền ghi đơn hàng.

Khám phá khả năng và trạng thái công việc thuộc chặng nào?

Agent điều phối chọn agent tồn kho theo khả năng được công bố và theo dõi kết quả của nhiệm vụ.

Ở chặng giữa các agent, đặc tả A2A quy định Agent Card mô tả danh tính, kỹ năng, khả năng và yêu cầu tương tác của agent phục vụ. Agent điều phối có thể dựa vào thông tin đó để chọn agent tồn kho và biết cách gửi yêu cầu. Agent Card mô tả khả năng được công bố; quyền sử dụng một kỹ năng vẫn phải được phía nhận yêu cầu kiểm tra.

Khi agent tồn kho bắt đầu xử lý, A2A có thể trả lời trực tiếp hoặc tạo Task để biểu diễn công việc đang diễn ra. Task cho phép bên giao việc nhận trạng thái, cung cấp thêm thông tin khi được yêu cầu và lấy kết quả khi việc hoàn tất. Trong ví dụ đơn hàng, trạng thái này thuộc quan hệ giữa agent điều phối và agent tồn kho, dù agent tồn kho có thể gọi nhiều công cụ để đi tới kết quả.

Ở chặng MCP, client khám phá những khả năng mà server công cụ cung cấp, chẳng hạn chức năng đọc tồn kho. MCP cũng có thông báo tiến độ và tiện ích mở rộng cho yêu cầu kéo dài. Vì thế, thời gian xử lý hay việc có trạng thái không phải tiêu chí duy nhất để chọn giao thức; câu hỏi quyết định là bên nhận đang cung cấp công cụ cho ứng dụng sử dụng hay nhận trách nhiệm xử lý một nhiệm vụ như agent độc lập.

Danh tính và quyền hạn được kiểm tra tại chặng nào?

Quyền đọc tồn kho và quyền tạo đơn được kiểm tra ở hai kết nối công cụ riêng trong luồng đơn hàng giả định.

Ứng dụng trước hết phải xác định người mua được xem thông tin và đặt đơn trong phạm vi nào. Khi agent điều phối gọi agent tồn kho bằng A2A, agent nhận yêu cầu xác thực bên gọi và áp dụng chính sách của mình cho kỹ năng được yêu cầu, dữ liệu đơn hàng và quyền xem Task. Việc tìm thấy Agent Card không cấp sẵn quyền thực hiện mọi việc mà card mô tả.

Sau đó, server công cụ tồn kho kiểm tra quyền đọc trên yêu cầu MCP do agent tồn kho gửi. Server công cụ tạo đơn kiểm tra quyền ghi trên yêu cầu MCP của agent điều phối. Danh tính và phạm vi quyền ở hai kết nối công cụ có thể khác nhau, dù cả hai cùng phục vụ một đơn hàng. Một kết quả A2A hợp lệ cho biết agent chuyên môn đã phản hồi; nó không thay thế quyết định phân quyền của server thực hiện thao tác ghi.

Nếu agent tồn kho cần thêm quyền trong lúc xử lý, A2A có trạng thái Task để báo rằng công việc đang chờ cấp quyền. Trạng thái ấy là tín hiệu để tiếp tục quy trình cấp quyền, không phải chính quyền truy cập. Cách cấp thông tin xác thực, phạm vi được phép và nơi kiểm tra quyền cần gắn với từng dịch vụ thực hiện hành động, thay vì dùng chung một thông tin xác thực có quyền rộng cho toàn bộ luồng.

Khi nào chỉ cần một giao thức?

Chỉ cần MCP khi một ứng dụng hoặc agent tự quyết định toàn bộ luồng công việc và cần giao diện chuẩn để dùng dữ liệu, API hay công cụ. Trong ví dụ đơn hàng, nếu agent điều phối tự kiểm tra tồn kho bằng công cụ rồi tạo đơn bằng công cụ khác, không có ranh giới giao việc cho agent độc lập; A2A không giải quyết thêm nhu cầu nào của luồng ấy.

Chỉ cần A2A tại một kết nối giữa các agent khi vấn đề cần giải là tìm agent phù hợp, giao nhiệm vụ và nhận phản hồi, còn mỗi agent đã có cách riêng để dùng khả năng nội bộ. Một agent phục vụ A2A không bắt buộc phải triển khai MCP. Dùng cả hai khi việc cộng tác giữa các agent và việc truy cập công cụ đều hiện diện: A2A giữ quan hệ giao việc, còn MCP giữ các kết nối tới dữ liệu và hành động mà từng agent được phép sử dụng.

Đọc thêm:

Chia sẻ:

Đăng ký bản tin

Nhận tin Web3, AI và tiền mã hóa mới nhất ngay trong hộp thư.

0