
Hôm nay Google đã phát hành giao thức tác nhân đến tác nhân nguồn mở của mình, được đặt tên một cách sáng tạo
Tôi không chắc lắm, vì vậy tôi quyết định xem xét kỹ hơn và kiểm tra vị trí của A2A trong vũ trụ đại lý. Vì vậy, chúng ta sẽ đề cập đến cách A2A hoạt động trong cuộc sống thực và so sánh với MCP.
Sử dụng A2A khá giống với MCP. Bạn có thể chạy một vài tác nhân/máy chủ A2A, sau đó máy khách A2A có thể kết nối với tất cả chúng. Tin tốt là thông thường bạn không cần chạy tác nhân A2A cùng với máy khách A2A.
Tôi đã tạo ra cả ba đại lý mẫu tại địa phương
Cách mà máy chủ A2A cho thế giới biết về khả năng của nó là thông qua “Thẻ đại lý” ở định dạng JSON. Ví dụ, thẻ đại lý cho google ADK trông như thế này:
{ "name": "Reimbursement Agent", "description": "This agent handles the reimbursement process for the employees given the amount and purpose of the reimbursement.", "url": "http://localhost:10002/", "version": "1.0.0", "capabilities": { "streaming": true, "pushNotifications": false, "stateTransitionHistory": false }, "defaultInputModes": [ "text", "text/plain" ], "defaultOutputModes": [ "text", "text/plain" ], "skills": [ { "id": "process_reimbursement", "name": "Process Reimbursement Tool", "description": "Helps with the reimbursement process for users given the amount and purpose of the reimbursement.", "tags": [ "reimbursement" ], "examples": [ "Can you reimburse me $20 for my lunch with the clients?" ] } ] }
Chúng ta hãy tiếp tục với khách hàng. Hướng dẫn để chạy ứng dụng web demo có tại đây.
Sau khi ứng dụng web chạy, bạn có thể truy cập ứng dụng từ trình duyệt. Ứng dụng trông hơi giống Gemini AI Studio với thiết kế đặc trưng của Google Material.
URL: localhost:12000
Trước tiên, chúng ta cần thêm tất cả các tác nhân vào máy khách bằng cách chỉ định URL cơ sở của chúng. Vì trong trường hợp của tôi, tôi đã chạy tất cả các tác nhân cục bộ, URL cơ sở của chúng là:
Lưu ý: trong giao thức, URL cuối cùng trông giống như thế này:
https://localhost:10002/.well-known/agent.json
Bây giờ bạn có thể thấy cả ba tác nhân được kết nối:
Bạn có thể xem lịch sử trò chuyện ở đây
Tất cả danh sách sự kiện
Và tất cả danh sách nhiệm vụ
Cài đặt khá cơ bản
Tôi muốn xem liệu máy khách A2A có thể sử dụng nhiều tác nhân để đạt được một mục tiêu duy nhất hay không . Vì vậy, tôi đã thử nghiệm xem nó có thể kết hợp tác nhân yêu cầu chi phí với tác nhân tỷ giá hối đoái hay không. Và nó đã hoạt động.
Nhiệm vụ của tôi là “ yêu cầu chi phí cho một cốc bia ở Đức trong chuyến công tác, 5 euro, ngày 4 tháng 4 năm 2025 ”. Cuộc trò chuyện diễn ra qua một vài vòng trao đổi qua lại và cuối cùng đã đưa ra đúng số tiền đô la Mỹ trong biểu mẫu yêu cầu chi phí.
Tôi thích A2A là mô hình Client-Server thuần túy có thể chạy và lưu trữ từ xa. Client không phải chịu gánh nặng chỉ định và khởi chạy các tác nhân/máy chủ.
Cấu hình tác nhân khá đơn giản chỉ cần chỉ định URL cơ sở và “Thẻ tác nhân” sẽ xử lý việc trao đổi ngữ cảnh. Và bạn có thể thêm và xóa tác nhân sau khi máy khách đã được khởi chạy.
Ở định dạng demo hiện tại, hơi khó để hiểu cách các tác nhân giao tiếp với nhau và hoàn thành các nhiệm vụ phức tạp. Khách hàng gọi từng tác nhân riêng biệt cho các nhiệm vụ khác nhau, do đó rất giống với việc gọi nhiều công cụ.
Bây giờ tôi đã thử A2A, đã đến lúc so sánh nó với MCP mà tôi đã viết trước đó trong
Mặc dù cả A2A và MCP đều hướng đến mục tiêu cải thiện quá trình phát triển hệ thống tác nhân AI, về mặt lý thuyết, chúng giải quyết các nhu cầu riêng biệt. A2A hoạt động ở cấp độ tác nhân-tác nhân, tập trung vào tương tác giữa các thực thể độc lập, trong khi MCP hoạt động ở cấp độ LLM, tập trung vào việc làm phong phú ngữ cảnh và khả năng của từng mô hình ngôn ngữ.
Và để cung cấp cái nhìn tổng quan về điểm tương đồng và khác biệt chính của chúng theo tài liệu giao thức của chúng:
Tính năng | A2A | MCP |
---|---|---|
Trường hợp sử dụng chính | Giao tiếp và cộng tác giữa các tác nhân | Cung cấp bối cảnh và công cụ (API/SDK bên ngoài) cho LLM |
Kiến trúc cốt lõi | Máy khách-máy chủ (tác nhân đến tác nhân) | Máy khách-máy chủ-máy chủ (ứng dụng-LLM-tài nguyên bên ngoài) |
Giao diện chuẩn | Đặc tả JSON, Thẻ tác nhân, Nhiệm vụ, Tin nhắn, Hiện vật | JSON-RPC 2.0, Tài nguyên, Công cụ, Bộ nhớ, Lời nhắc |
Các tính năng chính | Hợp tác đa phương thức, năng động, an toàn, quản lý tác vụ, khám phá năng lực | Tính mô-đun, ranh giới bảo mật, khả năng tái sử dụng các kết nối, SDK, khám phá công cụ |
Giao thức truyền thông | HTTP, JSON-RPC, SSE | JSON-RPC 2.0 qua stdio, HTTP với SSE (hoặc HTTP có thể phát trực tuyến) |
Tập trung vào hiệu suất | Giao tiếp không đồng bộ để xử lý tải | Quản lý ngữ cảnh hiệu quả, xử lý song song, lưu trữ đệm để có thông lượng cao |
Nhận con nuôi & Cộng đồng | Hỗ trợ ban đầu tốt cho ngành, hệ sinh thái mới ra đời | Sự áp dụng đáng kể từ toàn bộ ngành, cộng đồng phát triển nhanh chóng |
Mặc dù Google đã nói rằng A2A là một giao thức bổ sung cho MCP, nhưng thử nghiệm đầu tiên của tôi cho thấy chúng có mục đích và tính năng trùng lặp nhau . Cả hai đều giải quyết nhu cầu của các nhà phát triển ứng dụng AI trong việc sử dụng nhiều tác nhân và công cụ để đạt được các mục tiêu phức tạp. Hiện tại, cả hai đều thiếu một cơ chế tốt để đăng ký và khám phá các tác nhân và công cụ khác mà không cần cấu hình thủ công.
MCP đã khởi đầu sớm và đã nhận được sự ủng hộ to lớn từ cả cộng đồng nhà phát triển và các doanh nghiệp lớn. A2A còn rất trẻ, nhưng đã tự hào nhận được sự ủng hộ ban đầu mạnh mẽ từ nhiều khách hàng doanh nghiệp của Google Cloud.
Tôi tin rằng đây là tin tuyệt vời cho các nhà phát triển, vì họ sẽ có nhiều lựa chọn hơn trong các giao thức agent-agent mở và chuẩn . Chỉ có thời gian mới có thể cho biết giao thức nào sẽ thống trị tối cao hoặc thậm chí chúng có thể hợp nhất thành một chuẩn duy nhất.