paint-brush
Google A2A - cái nhìn đầu tiên về một giao thức đại lý kháctừ tác giả@zbruceli
Bài viết mới

Google A2A - cái nhìn đầu tiên về một giao thức đại lý khác

từ tác giả Bruce Li5m2025/04/10
Read on Terminal Reader

dài quá đọc không nổi

Google A2A - cái nhìn đầu tiên về một giao thức tác nhân-tác nhân khác và so sánh với MCP của Anthropic. Vâng, chúng rất giống nhau.
featured image - Google A2A - cái nhìn đầu tiên về một giao thức đại lý khác
Bruce Li HackerNoon profile picture
0-item
1-item

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 A2A hoặc Agent to Agent. Vì chúng ta đã thấy rất nhiều động lực đằng sau Anthropic MCP (Giao thức ngữ cảnh mô hình), Google tuyên bố rằng A2A bổ sung cho MCP . Họ thậm chí còn sử dụng biểu tượng cảm xúc trái tim để nhấn mạnh quan điểm.


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.

Lái thử xe A2A

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.

Chạy tác nhân A2A (máy chủ)

Tôi đã tạo ra cả ba đại lý mẫu tại địa phương


  1. Đại lý Google ADK có thể gửi báo cáo chi phí cho bạn
  2. Đại lý CrewAI có thể tìm ra tạo ra một hình ảnh
  3. Đại lý LangGraph có thể tìm ra tỷ giá hối đoái mới nhất


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?" ] } ] }


Khởi chạy ứng dụng demo A2A Client

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. https://github.com/google/A2A/tree/main/demo


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à:


  • Google ADK
    • máy chủ cục bộ:10002
  • phi hành đoànAI
    • máy chủ cục bộ: 10001
  • Ngôn ngữ đồ thị
    • Máy chủ cục bộ: 10000


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:

Đại lý A2A


Bạn có thể xem lịch sử trò chuyện ở đây

Trò chuyện A2A


Tất cả danh sách sự kiện

Danh sách sự kiện A2A


Và tất cả danh sách nhiệm vụ

Danh sách nhiệm vụ A2A


Cài đặt khá cơ bản

Cài đặt A2A

Kiểm tra đại lý Google ADK để yêu cầu chi phí

Google ADK Agent - yêu cầu chi phí

Kiểm tra LangGraph cho tỷ giá ngoại hối

LangGraph Agent - tỷ giá ngoại hối


Test CrewAI agent để tạo hình ảnh

CrewAI Agent - tạo hình ảnh

Một thử nghiệm kết hợp cho nhiều tác nhâ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í.



Những quan sát ban đầu của A2A

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ụ.

So sánh A2A với MCP

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 bài viết này .


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

Kết luận

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.