Questions
Frequently Asked Questions
Everything you need to know about A2A and StackA2A.
A2A Protocol
What is the A2A protocol?
A2A (Agent-to-Agent) is an open protocol created by Google that lets AI agents communicate with each other regardless of framework or language. It defines a standard for agent discovery via Agent Cards, task execution via JSON-RPC, and streaming via Server-Sent Events. Think of it as HTTP for agents — a common language that makes any agent interoperable with any other.
How do A2A agents find each other?
Every A2A agent serves an Agent Card — a JSON document at
/.well-known/agent-card.json. The card describes the agent's name, skills, input/output formats, and authentication requirements. A client agent discovers another agent by fetching its card, evaluating the skills, and then sending tasks to the endpoint listed in the card. Check our Agent Card spec guide for the full breakdown.What is an Agent Card?
An Agent Card is a machine-readable JSON document that acts as an agent's resume. It includes the agent's name, description, version, skills, capabilities (streaming, push notifications), supported MIME types, and authentication schemes. Clients use it for discovery and routing. See our deep dive on Agent Cards.
What is the difference between A2A and MCP?
A2A handles agent-to-agent communication — agents talking to other agents. MCP (Model Context Protocol) handles model-to-tool communication — an LLM calling external tools like databases or APIs. They're complementary, not competing. An A2A agent can use MCP internally to access tools while exposing its capabilities via A2A externally. We covered this in detail in our A2A vs MCP comparison.
Is A2A open source?
Yes. The A2A specification is maintained by the Linux Foundation and the reference implementations are open source on GitHub. Google created it, but it's governed as an open standard with contributions from multiple organizations.
StackA2A
What is StackA2A?
StackA2A is a curated directory of A2A protocol agents. We index agents from GitHub, registries, and direct submissions, then score each one across six dimensions: GitHub stars, freshness, official status, skill maturity, protocol compliance, and authentication security. The result is a quality-scored, searchable directory with connection code snippets for Python, TypeScript, Java, Go, and C#. Browse the full directory at /agents.
How are quality scores calculated?
Each agent is scored across six weighted dimensions: GitHub stars (15%), freshness based on last update (25%), official vs community status (15%), skill maturity — number and documentation of skills (15%), protocol compliance — Agent Card, streaming, multi-turn support (15%), and authentication security — OAuth2 scores higher than API keys (15%). The total produces a score from 0 to 100.
How often is the directory updated?
We run discovery sweeps weekly to pick up new agents and re-score existing ones. Agent data like GitHub stars and last-updated dates are refreshed during each sweep. If you've published a new agent and want it indexed faster, use our submit form.
How do I submit my agent?
Head to /submit-agent and fill out the form with your repository URL, Agent Card URL (if live), category, framework, and a description. We review submissions within 48 hours. Once approved, your agent gets quality-scored and listed in the directory.
What are Stacks?
Stacks are curated collections of A2A agents that work well together for a specific use case. For example, the Code Generation stack groups the best code-writing agents. Each stack includes architecture context and connection snippets so you can wire agents together quickly.
Technical
Which SDKs support A2A?
Google maintains official SDKs for Python and TypeScript/JavaScript. Community SDKs exist for Java (Spring Boot), Go, and C#. The Python SDK is the most mature, with full support for streaming, push notifications, and extended Agent Cards. See our SDK guide by language for installation and usage.
How does A2A streaming work?
A2A streaming uses Server-Sent Events (SSE). When a client calls
message/stream instead of message/send, the agent sends back a series of SSE events, each containing a partial task update with incremental artifacts. The client can display results as they arrive. The agent must declare streaming: true in its Agent Card capabilities.Does A2A support multi-turn conversations?
Yes. A2A tasks can have multiple turns. After the agent responds, the client can send follow-up messages referencing the same task ID. The agent maintains conversation state across turns. This enables clarification flows, iterative refinement, and back-and-forth negotiation between agents.
How does authentication work in A2A?
A2A uses the OpenAPI security scheme pattern. Agent Cards declare their authentication requirements in
securitySchemes — supporting API keys, Bearer tokens (JWT), OAuth2 (client credentials, authorization code), OpenID Connect, and mutual TLS. Clients read the card and authenticate accordingly before sending tasks. Our security guide covers implementation details.Can I use A2A with LangChain, CrewAI, or AutoGen?
Yes. A2A is framework-agnostic. Google ADK has native
to_a2a() support. LangGraph agents can be wrapped with the A2A Python SDK. CrewAI and AutoGen agents need a thin adapter layer that maps their input/output to A2A's JSON-RPC format. Browse agents by framework: Google ADK, LangGraph, CrewAI, AutoGen.Still have questions?
Check our guides for in-depth coverage, or submit your agent to get listed.