Agent2Agent (A2A) Protocol
An open protocol enabling communication and interoperability between opaque agentic applications.
- Source repo
- a2aproject/A2A
- Stars
- ★ 26k
- Last updated
- 3d ago
- License
- Apache-2.0
- Primary language
- Shell
- FA score
- 0/100 · Major gaps
At a glance
- How it runs
- Works with
- Universal · cross-platform
- Cost
- Free, no paid service needed
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- A developer uses the Python SDK to expose a LangGraph-built agent as an A2A server, allowing other systems to invoke it.
- Not a fit if
- Teams that need fully offline, network-free operation
- Teams wanting a drop-in tool without learning a new protocol and SDKs
- Teams needing a mature protocol with many proven production deployments
- Source review
- 0/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
Agent2Agent (A2A) is an open protocol that defines standard message formats and interaction flows, enabling AI agents built on different frameworks and by different vendors to communicate and collaborate. It addresses the lack of interoperability between AI agents, allowing them to work together as agents, not just as tools. The protocol is based on JSON-RPC 2.0 over HTTP(S), uses 'Agent Cards' for discovery, supports synchronous request/response, streaming (SSE), and asynchronous push notifications, and can exchange text, files, and structured data. The project is hosted under the Linux Foundation, with official SDKs for Python, Go, JS, and other languages, along with comprehensive documentation and samples. Adopting A2A provides agents with a common language, fostering a more interconnected, powerful, and innovative AI ecosystem.
A2A defines standardized mechanisms for agents to: 1) discover each other's capabilities by publishing 'Agent Cards' that detail capabilities and connection info; 2) negotiate interaction modalities including text, forms, and media; 3) securely collaborate on long-running tasks using task management methods (e.g., message/send, task/get, task/cancel), supporting synchronous, streaming, and asynchronous push patterns; 4) operate without exposing internal state, memory, or tools. The protocol itself is not an executable; it is implemented via SDKs (e.g., a2a-python, a2a-go, a2a-js) that provide libraries for developers to expose their agents as A2A servers or create clients to connect to other agents.
- A developer uses the Python SDK to expose a LangGraph-built agent as an A2A server, allowing other systems to invoke it.
- In a healthcare scenario, multiple agents built with different frameworks are connected via A2A to build a collaborative patient triage system.
- An enterprise IT team needs to integrate agents from multiple vendors; A2A serves as the standard for cross-vendor agent collaboration.
- A developer creates an A2A client to call a remote agent for a specific task, such as a customer service bot integrating a local order lookup agent.
- Using A2A's streaming and asynchronous push features to enable real-time conversations or progress notifications for long-running tasks.
How do you install or deploy this agent?
A2A is a protocol specification; no installation is required. To use it, choose an SDK and install dependencies. Official SDKs include: Python SDK (pip install a2a-sdk), Go SDK (go get github.com/a2aproject/a2a-go), JS SDK (npm install @a2a-js/sdk), Java SDK (via Maven), .NET SDK (dotnet add package A2A), Rust SDK (cargo add a2a-lf). After installation, consult the official documentation and samples to learn how to implement A2A servers or clients.
How do you use this agent?
First, review the official documentation and protocol specification at https://a2a-protocol.org. Then, select the appropriate SDK for your language and follow the docs to create A2A-compliant agent servers or clients. Use the official samples (a2a-samples repository) to get started quickly. For example, with the Python SDK, you can import A2ARequestHandler and A2AServer from a2a.server, define your agent logic, and start the server.
What are this agent's strengths and limitations?
- Open, community-driven standard under the Linux Foundation, promoting multi-vendor collaboration.
- Provides official SDKs in multiple languages, lowering the barrier to adoption.
- Supports flexible interaction modes (synchronous, streaming, asynchronous) to suit different scenarios.
- Protocol design considers enterprise-grade security, authentication, and observability.
- Being a new protocol, the ecosystem is still early, with limited real-world deployments.
- Requires developers to learn a new protocol and SDKs, incurring a learning curve.
- Depends on network and HTTP services; not suitable for offline environments.
- Currently lacks dynamic method discovery (e.g., QuerySkill()), limiting flexibility and extensibility.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Agent2Agent (A2A) Protocol This agent | 0 · Major gaps | Library / SDKFree | ★ 26k | 3d ago | Shell | — |
| pi ACP Adapter | 66 · Some gaps | CLIFree + model costs | ★ 734 | 13d ago | TypeScript | — |
| Cotal | 77 · Good | CLIFree | ★ 331 | today | TypeScript | Codex · Claude Code |
| Pydantic Deep Agents | 68 · Some gaps | CLIFree + model costs | ★ 1.1k | 13d ago | Python | OpenAI API · Claude API |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence only includes README, LICENSE, SECURITY.md, and CI workflows, with no specific implementation or documentation on least privilege, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. Therefore all trust criteria score 0.
No code or tests are included in the evidence, so self-consistency, dependency availability, and failure messages cannot be assessed. Therefore all reliability criteria score 0.
README describes target audience and use cases, but lacks specific capability boundaries, trigger precision, or environment fit details. Therefore all adaptability criteria score 0.
README provides project overview and links, but lacks install notes, naming stability, examples, known limitations, versioning/changelog, or maintenance responsibility specifics. License file exists but is not reflected in scoring. Therefore all convention criteria score 0.
No specific information on output usability, marginal value, or cost-benefit is provided in the evidence. Therefore all effectiveness criteria score 0.
No verifiable claims or sources are provided in the evidence, so claim traceability, cross-source corroboration, and fact-inference separation cannot be assessed. Therefore all verifiability criteria score 0.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- The repository contains only protocol documentation and CI configuration, with no executable code or tests, so its actual functionality cannot be verified.
- Publisher identity is unverified, and no security or permission implementation details are provided; careful evaluation is needed before use.
Recent releases
Latest entries from the project's GitHub Releases. Notes are quoted from upstream as written, not rewritten or tested by FollowAgents.
-
Release notes excerpt
[1.0.1](https://github.com/a2aproject/A2A/compare/v1.0.0...v1.0.1) (2026-05-26) Bug Fixes * spec: prefer application/a2a+json in HTTP binding ([#1753](https://github.com/a2aproject/A2A/issues/1753)) ([7ff1004](https://github.com/a2aproject/A2A/commit/7ff10041597b9c8a736a477e1890d2c79173bbcf)) * spec: recent transcoding-related error changes ([#1627](https://github.com/a2aproject/A2A/issues/1627)) ([757f0ec](https://github.com/a2aproject/A2A/commit/757f0ec6d067ec071ff915f21ab420200ba1baa3)) …View on GitHub ↗ -
Release notes excerpt
[1.0.0](https://github.com/a2aproject/A2A/compare/v0.3.0...v1.0.0) (2026-03-12) ⚠ BREAKING CHANGES * spec: Combine TaskPushNotificationConfig and PushNotificationConfig ([#1500](https://github.com/a2aproject/A2A/issues/1500)) * spec: remove duplicated ID from the create task push config request ([#1487](https://github.com/a2aproject/A2A/issues/1487)) * spec: pluralize configs in ListTaskPushNotificationConfigs ([#1486](https://github.com/a2aproject/A2A/issues/1486)) * spec: Add LF prefix to the package. ([#1474](https://github.com/a2aproject/A2A/issues/1474)) …View on GitHub ↗ -
Release notes excerpt
[0.3.0](https://github.com/a2aproject/A2A/compare/v0.2.6...v0.3.0) (2025-07-30) ⚠ BREAKING CHANGES * Add mTLS to SecuritySchemes, add oauth2 metadata url field, allow Skills to specify Security ([#901](https://github.com/a2aproject/A2A/issues/901)) * Change Well-Known URI for Agent Card hosting from agent.json to agent-card.json ([#841](https://github.com/a2aproject/A2A/issues/841)) * Add method for fetching extended card ([#929](https://github.com/a2aproject/A2A/issues/929)) Features …View on GitHub ↗