mrkeyoor.com_
Tue 22 Sept 06:43 UTC
AI Toolsevaluationupdated 22 Sept 2026

A2A review

A2A is an open protocol for one software agent to discover and hand work to another across frameworks or organizations. It standardizes machine-readable Agent Cards, messages, long-running tasks, streaming updates, and push notifications over HTTP while each agent keeps its model and internal tools private. This repository holds the protocol and documentation, while working clients and servers live in separate SDK repositories.

Verdict

Our A2A checkout installed 35 packages in 7 seconds and built in 1 second, but the repository exposed no test target. Use A2A v1.0 when agents cross a real team, vendor, or service boundary and long-running task state matters. Hold off when signed Agent Card compatibility is a release blocker, or when a single framework already owns the whole workflow.

We ran it

Lab card: what happened when we ran A2AScreenshot of A2A (a2a-protocol.org)
Install✓ · 7s35 packages · 37 MB
Build✓ · 1s
Testsn/ano test script
Known vulns0(pip-audit)
Repo135 files~1,223 lines of source · 2.2 MB · 11 CI workflows

Answers from our run

Does A2A build from source?

Dependencies installed in 7 seconds (35 packages), and the build succeeded in 1 seconds. We cloned commit afda831 into a clean Debian container with 3 CPUs and no project-specific setup.

Does A2A have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does A2A have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use A2A?

Developers who only need an LLM to call a database or fixed tool: the project's own comparison assigns that job to MCP rather than A2A.

What are the alternatives to A2A?

Model Context Protocol, AutoGen, LangGraph. Our A2A checkout installed 35 packages in 7 seconds and built in 1 second, but the repository exposed no test target.

Setup3/57-second repo install; a working service comes from separate SDKs
Docs4/5Detailed v1.0 spec and tutorials, with signing examples under dispute
Community5/525,885 stars and active September 2026 issue and code work
Maturity3/5v1.0.1 is released, but cross-SDK signing reports remain open

Who it’s for

Platform teams connecting agents owned by different departments, vendors, or services.
Developers who need long-running agent tasks with polling, Server-Sent Events, or push notifications.
SDK authors who want one published contract for discovery, messages, artifacts, task states, and version negotiation.
Organizations prepared to test authentication and compatibility across every client and server pair they deploy.

Who it’s NOT for

Developers who only need an LLM to call a database or fixed tool: the project's own comparison assigns that job to MCP rather than A2A.
Teams seeking a ready-to-run agent server from this repository: the README sends implementers to 6 separate SDKs and a separate samples repository.
Production systems that require signed Agent Cards to verify identically across Python and JavaScript today: open issue 2122 reports different canonical bytes from the two first-party SDKs.
Integrators who cannot absorb protocol migrations: the v1.0 guide lists breaking changes to Part types, stream events, Agent Cards, pagination, enums, and error responses.

Setup reality

Our run at commit afda831 installed 35 Python packages in 7 seconds and used 37 MB on disk. The repository build succeeded in 1 second. There was no test script or target, so tests were skipped, and pip-audit found 0 known vulnerabilities.

A working deployment needs one of the separate SDKs, an HTTP(S) endpoint, a published Agent Card, and an authentication scheme when access is restricted. Streaming uses Server-Sent Events, while disconnected work can use push notifications. The protocol itself needs no vendor API key.

This is a specification repository rather than a universal agent server. Our 2.2 MB checkout had 135 files, about 1,223 source lines, 11 CI workflow files, no Dockerfile, and no tests directory. The easy repository build says little about the effort of securing and testing two real agents.

A2A v1.0 supplies the contract, while 6 SDKs supply the code

A2A v1.0 defines how one agent discovers and delegates work to another without learning the remote agent's model, memory, or tools. The repository README points to 6 SDKs, covering Python, Go, JavaScript, Java, .NET, and Rust, plus a separate samples repository. That split matters. Cloning a2aproject/A2A gives you the specification, schema, documentation, and site tooling. It does not give you a universal agent process ready to deploy.

The useful boundary is organizational as much as technical. A2A earns its place when the remote agent belongs to another team, runs as another service, or uses another framework. If one codebase owns the full workflow, a framework such as AutoGen or LangGraph can coordinate the steps with less protocol surface. If the job is letting one model call a database or fixed function, the A2A v1.0 documentation assigns that connection to MCP.

A2A v1.0 covers discovery plus 3 ways to follow work

A2A v1.0 starts with an Agent Card, a JSON document describing an endpoint, skills, capabilities, and security requirements. Messages carry text, file references, raw bytes, or structured data. Longer jobs become Tasks with state and Artifacts as their outputs. Clients can wait for a response, receive updates over Server-Sent Events, or accept push notifications after disconnecting. Those 3 interaction patterns address work that outlives a normal request.

The protocol uses familiar web pieces, including HTTP(S), JSON-RPC 2.0, OAuth-style credentials, and Server-Sent Events. Familiar parts do not remove operational work. Each deployment still has to decide which Agent Cards to trust, issue and rotate credentials, authorize actions, expose status safely, and operate callbacks. A2A standardizes the conversation between 2 sides. It cannot decide whether a remote agent should be allowed to book, buy, delete, or disclose something.

What happened when we ran it

Our sandbox installed 35 Python packages in 7 seconds and occupied 37 MB on disk. The repository build completed successfully in 1 second. We ran commit afda831 in an unprivileged Debian container with 3 CPUs and 8 GB of RAM, without secrets. Those numbers make the specification repository inexpensive to inspect and build. They do not measure an SDK server, an agent request, streaming latency, or compatibility between implementations.

There was no test script or target, so the test step was skipped. Pip-audit reported 0 known vulnerabilities among the installed Python packages. The checkout contained 135 files, roughly 1,223 lines of source, and 2.2 MB before installation. It also had 11 CI workflow files, no Dockerfile, and no tests directory. A successful 1-second build therefore confirms that this checkout's build path worked, not that the protocol passes cross-language conformance tests.

Version 1.0 makes compatibility part of the application

A2A v1.0 changed several shapes that clients and servers parse. The migration guide replaces separate text, file, and data part types with one Part structure. It also changes stream-event discrimination, Agent Card interfaces, pagination, enum values, and error responses. Each interface can advertise its protocol version, which lets an agent expose more than one version during a migration. Your client still needs code for every version it accepts.

The latest tagged release was v1.0.1 on May 28, 2026. Its notes list 3 specification fixes involving the preferred HTTP media type, transcoding-related errors, and TaskStatus values. Release tags are only one health signal, and the main branch continued moving after May. For an integration, pin the protocol and SDK versions together, then keep captured Agent Cards and task exchanges as regression fixtures before either side upgrades.

Two open signing reports deserve cross-SDK tests

Open issue 2122 reports that a2a-python 1.1.2 and the JavaScript SDK 1.0.1 produce different canonical bytes for some signed Agent Cards. The report covers non-ASCII strings, object-key ordering, number serialization, and required fields with default values. It also says neither SDK reproduces one worked example in the specification. That is directly relevant when a Python agent must verify a card signed by a JavaScript agent.

A second report, issue 2249 from September 20, says the published signing example lacks the public verification key and does not identify the exact signed payload. Its scope is Agent Card signing, so it does not establish a failure in ordinary task messages. Still, teams using signatures should create their own shared vectors and make every chosen SDK sign and verify them. A green build in this 135-file repository cannot substitute for that check.

September activity supports adoption with a narrow first deployment

GitHub recorded the last push on September 21, 2026, and listed 25,885 stars plus 262 combined issues and pull requests when fetched. The signing reports were updated in September, while v1.0.1 shipped in May. That combination points to an active specification with unresolved design and implementation work, rather than an abandoned tag. The combined open count is a work queue, not a count of confirmed defects.

Start with 1 client, 1 remote agent, and one task whose side effects can be reversed. Pin A2A v1.0 behavior, test polling and whichever asynchronous path you use, and prove authentication plus cross-SDK serialization before adding more agents. For an internal workflow, keep the protocol out until a genuine service boundary appears. A2A earns its keep when the second agent is owned, deployed, or built somewhere else.

Alternatives

ProjectWhat it isPick it when
Model Context ProtocolA specification for connecting models and agents to tools, data, and resources.pick this instead when one agent needs a standard way to call tools or read data rather than delegate work to another agent.
AutoGen gh↗A programming framework for building agent applications and conversations.pick this instead when you control the participating agents and want an application framework rather than a cross-vendor wire contract.
LangGraph gh↗A framework for stateful agent workflows with explicit control over execution.pick this instead when the main job is orchestrating a workflow inside one application rather than exposing agents across service boundaries.

What people are saying

  1. [velocity-scout] a2aproject/A2A

Sources

  1. A2A repository and README
  2. A2A protocol specification
  3. A2A v1.0.1 release notes
  4. Agent Card canonicalization issue 2122
  5. Agent Card signing example issue 2249

More ai tools reviews

google-research · awesome-artificial-intelligence · ncnn · OpenCreator · editor · autoclip · the whole board →