paint-brush
Google A2A - 別のエージェント間プロトコルの初見@zbruceli
新しい歴史

Google A2A - 別のエージェント間プロトコルの初見

Bruce Li5m2025/04/10
Read on Terminal Reader

長すぎる; 読むには

Google A2A - 別のエージェント・エージェント・プロトコルを最初に見て、AnthropicのMCPと比較して。
featured image - Google A2A - 別のエージェント間プロトコルの初見
Bruce Li HackerNoon profile picture
0-item
1-item

Today Google released its open source agent to agent protocol, imaginatively named A2A or Agent to Agent. Since we already see a lot of momentum behind Anthropic’s MCP (Model Context Protocol), Google claimed that A2A is complementary to MCP. They even used a heart emoji to drive home the point.

A2AA2AMCPMCPA2A is complementary to MCPA2A is complementary to MCP


私はそれほど確信していないので、もっと深く見てA2Aのエージェント宇宙における位置を確認することにしたので、A2Aが実際の生活でどのように機能するか、そしてMCPとの比較について説明します。

テストドライブ A2A

A2Aを使用することは、MCPと驚くほど似ています。あなたはいくつかのA2Aエージェント/サーバーを実行することができ、その後、A2Aクライアントはそれらすべてに接続することができます。

A2Aエージェント(サーバー)

I spinned up all three example agents locally


  1. Google ADK agent that can submit expenses reports for you
  2. CrewAI agent that can find out generate an image
  3. LangGraph agent that can find out the latest foreign exchange rate
  • Google ADK agent that can submit expenses reports for you
  • Google ADK agentGoogle ADK agent
  • CrewAI agent that can find out generate an image
  • CrewAI agentCrewAI agent
  • LangGraph agent that can find out the latest foreign exchange rate
  • LangGraph agentLangGraph agent


    A2Aサーバが世界にその機能を知らせる方法は、JSON形式の「エージェントカード」を通してです。


    {"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" ], "スキル": { "id": "process_reimbursement", "name: "Process Reimbursement Tool", "description": "ユーザーに与えられた金額と目的のための{
    
    	"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?"
    
    			]
    
    		}
    
    	]
    
    }
    


    Launch A2A Client デモアプリケーション

    Let’s continue with the client. The instructions to get the demo web app working are here. https://github.com/google/A2A/tree/main/demo

    https://github.com/google/A2A/tree/main/demohttps://github.com/google/A2A/tree/main/demo


    Webアプリが実行されると、ブラウザからアクセスできます。クライアントは、Google マテリアルデザインの署名を持つ Gemini AI Studio に似ています。


    URL: localhost:12000

    URL: localhost:12000


    まず、すべてのエージェントを地元で実行したので、そのベースURLは以下の通りでした


    • Google ADK
      • localhost:10002
    • crewAI
      • localhost:10001
    • LangGraph
      • Localhost:10000
  • Google ADK
    • localhost:10002
    • localhost:10002
  • localhost:10002
  • crewAI
    • localhost:10001
    • localhost:10001
  • localhost:10001
  • LangGraph
    • Localhost:10000
    • Localhost:10000
  • Localhost:10000

  • Side note: within the protocol, the final URL looks a bit like this:

    https://localhost:10002/.well-known/agent.json

    https://localhost:10002/.well-known/agent.json


    Now you can see all three agents that are connected:

    all three agents すべてのエージェント

    A2A agents

    A2A agents


    You can see the chat history here

    チャットの歴史

    A2A chats

    A2A chats


    All the event list

    イベントリスト

    A2A event list

    A2A event list


    And all the task list

    タスクリスト

    A2A task list

    A2A task list


    Settings はかなり基本的な

    です。 Settings

    A2A settings

    A2A settings

    Google ADKエージェントの費用請求のテスト

    Google ADK Agent - expense claim

    Google ADK Agent - expense claim

    Test LangGraph for forex rate

    LangGraph Agent - forex rate

    LangGraph Agent - forex rate


    画像生成用のCrewAIエージェントテスト

    CrewAI Agent - image generation

    CrewAI Agent - image generation

    複数のエージェントの組み合わせテスト

    I want to see if the A2A client can use multiple agents to a single goal. So I tested if it can combine the expenditure claim agent with the forex rate agent. そしてそれは働いた。 複数のエージェントを使用して、単一の目標を達成する


    私の任務は「ドイツでのビジネス旅行でビールの費用を請求すること、5ユーロ、2025年4月4日」でした。ビジネス旅行中のドイツでのビールの費用に対する請求、5ユーロ、2025年4月4日



    A2Aの初期観察

    I like that A2A is a pure Client-Server model that both can be run and hosted remotely. クライアントは、エージェント/サーバーを指定し、起動することに負担を負わない。


    エージェントの構成は、ベースURLを指定するだけでかなりシンプルで、「エージェントカード」はコンテキスト交換を担当します。


    At the current demo format, it is a bit difficult to understand how agents communicate with each other and accomplish complex tasks. The client calls each agent separately for different tasks, thus very much like multiple tool calling.

    A2AとMCPの比較

    Now I have tried out A2A, it is time to compare it with MCP which I wrote about earlier in this article.

    this articlethis article


    A2AとMCPの両方がAIエージェントシステムの開発を改善することを目指しているが、理論的には、A2Aはエージェント対エージェントレベルで活動し、独立したエンティティ間の相互作用に焦点を当て、MCPはLLMレベルで活動し、個々の言語モデルの文脈と能力を豊かにすることに焦点を当てている。


    およびプロトコル文書に従って、その主要な類似性と違いを確認するために:

    トップページ > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション > コミュニケーション >コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュニケーション コミュ

    機能

    機能

    A2A

    A2A

    MCP

    MCP

    Primary Use Case

    Agent-to-agent communication and collaboration

    LLMs

    Primary Use Case


    PRIMARY USE CASE

    Agent-to-agent コミュニケーションとコラボレーション

    Agent-to-agent コミュニケーションとコラボレーション

    LLMsに文脈とツール(外部API/SDK)を提供する

    LLMsに文脈とツール(外部API/SDK)を提供する

    コアアーキテクチャ

    クライアント・サーバー(エージェント・オブ・エージェント)

    クライアント・ホスト・サーバー(アプリケーション・LLM・外部リソース)

    コアアーキテクチャ

    コアアーキテクチャ

    クライアントサーバー(エージェント対エージェント)

    クライアントサーバー(エージェント対エージェント)

    Client-host-server (application-LLM-external resource)

    Client-host-server (application-LLM-external resource)

    標準インターフェイス

    JSON仕様、エージェントカード、タスク、メッセージ、アーティファクト

    JSON-RPC 2.0、リソース、ツール、メモリ、プロンプト

    標準インターフェイス

    標準インターフェイス

    JSON仕様、エージェントカード、タスク、メッセージ、アーティファクト

    JSON仕様、エージェントカード、タスク、メッセージ、アーティファクト

    JSON-RPC 2.0、リソース、ツール、メモリ、プロンプト

    JSON-RPC 2.0、リソース、ツール、メモリ、プロンプト

    Key Features

    Multimodal, dynamic, secure collaboration, task management, capability discovery

    Modularity, security boundaries, reusability of connectors, SDKs, tool discovery

    キー機能

    キー機能

    Multimodal、ダイナミック、セキュアなコラボレーション、タスク管理、機能発見

    Multimodal、ダイナミック、セキュアなコラボレーション、タスク管理、能力発見

    Modularity, security boundaries, reusability of connectors, SDKs, tool discovery

    Modularity, security boundaries, reusability of connectors, SDKs, tool discovery

    コミュニケーションプロトコル

    HTTP, JSON-RPC, SSE

    JSON-RPC 2.0 over stdio, HTTP with SSE (or streamable HTTP)

    コミュニケーションプロトコル

    通信プロトコル

    HTTP、JSON-RPC、SSE

    HTTP、JSON-RPC、SSE

    JSON-RPC 2.0 over stdio, HTTP with SSE (or streamable HTTP)

    JSON-RPC 2.0 over stdio, HTTP with SSE (or streamable HTTP)

    Performance Focus

    Asynchronous communication for load handling

    Efficient context management, parallel processing, caching for high throughput

    パフォーマンス・フォーカス

    パフォーマンス・フォーカス

    負荷処理のための非同期通信

    負荷処理のための非同期通信

    Efficient context management, parallel processing, caching for high throughput

    Efficient context management, parallel processing, caching for high throughput

    Adoption & Community

    Good initial industry support, nascent ecosystem

    Substantial adoption from the entire industry, fast growing community

    Adoption & コミュニティ

    アフィリエイト & コミュニティ

    Good initial industry support, nascent ecosystem

    Good initial industry support, nascent ecosystem

    業界全体の大幅な採用、急速に成長するコミュニティ

    業界全体の大幅な採用、急速に成長するコミュニティ

    結論

    GoogleがA2AがMCPへの無料プロトコルであるように聞こえたにもかかわらず、私の最初のテストでは、彼らは目的と機能で圧倒的に重なっていることを示しています

    . They both address the needs of AI application developers to utilize multiple agents and tools to complex goals. Right now, they both lack a good mechanism to register and discover other agents and tools without manual configuration.


    overwhelmingly overlapping in purpose and features 目的と機能で圧倒的に重なり合う


    MCPは早期にスタートし、既に開発者コミュニティと大企業の両方から莫大なサポートを得ています。


    I believe this is great news for developers, since they will have more choices in open and standard agent-agent protocols. Only time can tell which will reign supreme, or they might even merge into a single standard.

    これは、開発者にとって大きなニュースです。オープンおよび標準エージェント・エージェント・プロトコル