DevNews

A2A joins the AAIF: what v1.0 breaks from v0.3.0

On this page
  1. What the 17 August post actually says
  2. Who owns which hop
  3. The migration nobody announced
  4. What we would do this week
  5. Sources

Another protocol governance post, and we nearly scrolled past it. On 17 August the Agentic AI Foundation announced that A2A, Google's agent-to-agent standard, is now one of its hosted projects, sitting in the same stack as MCP. Nothing in your code changes because of that. It's governance, and the honest framing is that A2A has been a Linux Foundation project since June 2025, so this is a room change inside the same house rather than a donation. What we'd rather you spent the afternoon on is the thing the announcement never mentions. A2A v1.0 shipped back in March, and it is not backward compatible with v0.3.0. Part types collapsed into one, every enum value renamed. If your integration still speaks v0.3.0, that is the deadline nobody wrote down.

The short answer

A2A became an AAIF hosted project on 17 August, next to MCP, goose, AGENTS.md and agentgateway. That part is governance and nothing else. The migration that does reach your code is v0.3.0 to v1.0, published on 12 March, which renamed every enum value and pulled the Agent Card apart.

5projects now in the AAIF stack
0lines of your code the move changes
12 Marthe day v1.0 broke v0.3.0
Answer card stating that the Agentic AI Foundation announced on 17 August 2026 that the Agent2Agent protocol is now one of its hosted projects alongside MCP, goose, AGENTS.md and agentgateway, that A2A had already been donated to the Linux Foundation in June 2025 so no ownership transfer took place, and that no protocol revision was published with the announcement.
A governance post. Read the version history instead. PNG

What the 17 August post actually says

Official Agentic AI Foundation announcement card on a dark background: a NEW PROJECT badge, the Agent2Agent logo of three lettered circles, the headline A2A is now an AAIF Project, and the Agentic AI Foundation wordmark.

Image: Agentic AI Foundation

Short version. A2A is a hosted project of the Agentic AI Foundation, which the Linux Foundation formed on 9 December 2025 around three contributions: MCP from Anthropic, goose from Block, and AGENTS.md. Platinum members include AWS, Anthropic, Block, Bloomberg, Cloudflare, Google, Microsoft and OpenAI. Manik Surtani, the AAIF’s CTO, calls A2A “an important step toward an open, interoperable future for AI agents”, which is the quote you’d expect and tells you nothing operational.

The argument underneath it is better. The post says that when a foundational component is owned by one vendor, every downstream team inherits that vendor’s roadmap and release cycle. Fair. That is the actual reason to care where a spec lives.

Some of the coverage framed this as Google donating A2A to the Linux Foundation. That happened in June 2025, at Open Source Summit North America. IBM’s Agent Communication Protocol was folded into A2A two months later. So the standard has been community-governed for over a year, and last week’s news is that it now sits inside the AAIF specifically, in the same room as MCP.

Diagram of the AAIF project stack after 17 August 2026: two agent boxes connected horizontally by A2A for cross-organisation task delegation, each connected vertically downward by MCP to its own tools, data and services, with a side panel listing the five hosted projects AGENTS.md, agentgateway, goose, MCP and A2A.
Two hops, two protocols, one governing body as of last week. PNG

Who owns which hop

Worth internalising, because the two protocols get conflated constantly.

MCP is vertical. One agent, reaching down to the tools and data and services it controls. A2A is horizontal. Two agents that share no codebase, finding each other through an Agent Card, handing work across an organisational boundary and negotiating identity while they do it.

Put them together and you get the shape most production systems are drifting toward anyway: your agent speaks MCP downward to its own tooling, and A2A sideways to a partner’s agent you cannot see inside.

What we’re actually curious about is whether one foundation across both halves stops identity being solved twice. MCP’s own roadmap, published on 22 August with five priority areas and no dates, parks agent identity in a Working Group that has not formed yet, leaning on DPoP and workload identity federation. A2A has been signing Agent Cards since v1.0. Two teams, one problem, now one governing board. I might be wrong, but that looks like the first place the duplication should collapse.

Checklist of the breaking changes between A2A v0.3.0 published 30 July 2025 and v1.0.0 published 12 March 2026, covering the unification of TextPart FilePart and DataPart into a single Part type, the loss of the kind discriminator on stream events, the replacement of the Agent Card top level url and protocolVersion by a supportedInterfaces array, prefixed SCREAMING_SNAKE_CASE enum values, the switch from RFC 9457 Problem Details to google.rpc.Status, cursor based pagination, and the removal of the OAuth implicit and password flows.
None of this was in last week's announcement. All of it is in the changelog. PNG

The migration nobody announced

Here is the bit that costs real time. v0.3.0 shipped on 30 July 2025. v1.0.0 landed on 12 March 2026, v1.0.1 followed on 28 May, and the gap between them is not a polish release.

Part types were unified. TextPart, FilePart and DataPart collapse into one Part with a oneof content field, so you stop switching on a kind string and start testing member presence (if ("text" in part)). Stream events lost their discriminator too. Status updates now arrive wrapped as {"statusUpdate": {...}}, artifact updates as {"artifactUpdate": {...}}.

Then the enums. All of them, moved to prefixed screaming snake case. "completed" is now "TASK_STATE_COMPLETED". "user" is now "ROLE_USER". Mechanical, tedious, and it fails loudly rather than quietly, which is the one mercy in the list.

The Agent Card got restructured hardest. url and protocolVersion left the top level and became a supportedInterfaces array, where each interface declares its own version. That is the change that makes multi-version SDKs possible, and it is why the migration guide suggests emitting both formats for a while instead of cutting over in one go. Cards can be signed now as well, canonicalised under RFC 8785 and signed as a JWS, so a receiver can check the card came from the domain it claims.

Worth pausing there if signed cards are new to you. A JWS is signed, not encrypted. Anyone holding the card reads the payload. Paste one into our JWT decoder and look, or read why a JWT hides nothing before deciding what to put inside one.

Smaller and still sharp: errors moved from RFC 9457 Problem Details to google.rpc.Status with ErrorInfo, pagination went cursor based, compound IDs like tasks/{taskId} became plain literals, and the OAuth implicit and password flows were removed in favour of device code and PKCE.

The SDKs sit well ahead of most deployments here. a2a-python tagged v1.1.3 on 18 August. If you pinned an SDK in 2025 and have not looked since, the distance is larger than the version number suggests.

What we would do this week

Two things, and neither needs a foundation.

Grep your Agent Card generation for a top level url field. If it is there, you are emitting v0.3.0, and a client that has moved to supportedInterfaces negotiation is reading a card it does not fully understand. Then sweep the enum strings, because that one really is a find and replace, and it is better done before something in production returns "completed" to a parser that only knows TASK_STATE_COMPLETED.

Honestly, the governance news matters less than the changelog it distracted from. Good outcome for the ecosystem, no action for you. The March release is the opposite on both counts.

Sources

The announcement, the hosted project list and the Surtani quote come from A2A joins AAIF’s open agentic stack, published 17 August 2026 by the Agentic AI Foundation, which also published the announcement card above. Foundation formation, founding projects and platinum members are from the Linux Foundation press release of 9 December 2025. Release tags and dates for v0.3.0, v1.0.0 and v1.0.1 are read from the a2aproject/A2A releases, and the SDK tag from a2a-python releases. The breaking change list and the migration phasing are from What’s New in v1.0 on the A2A protocol site. Adoption figures and the complementary framing against MCP are from the Linux Foundation A2A anniversary release of 9 April 2026.

Frequently asked questions

What changed when A2A joined the Agentic AI Foundation?

Governance, and only governance. The AAIF announced on 17 August 2026 that Agent2Agent is now one of its hosted projects, next to MCP, goose, AGENTS.md and agentgateway. No wire format changed, no endpoint moved, and no specification revision was published alongside the post. A2A had already been donated to the Linux Foundation in June 2025 at Open Source Summit North America, so this is a move between structures inside the same foundation rather than a fresh handover from Google.

What is the difference between A2A and MCP?

They cover different hops. MCP standardises how one agent reaches tools, data sources and services, so it runs vertically from a model down to whatever it needs to call. A2A standardises how two independent agents discover each other, delegate a task and exchange results across an organisational boundary, so it runs horizontally between systems that share no codebase. They are complementary rather than competing, which is why both can sit under the same foundation without anyone proposing a merge.

Is A2A v1.0 backward compatible with v0.3.0?

No. v1.0.0 was published on 12 March 2026 and it carries hard breaks. The separate TextPart, FilePart and DataPart types were unified into a single Part with a oneof content field, so discrimination moves from a kind field to JSON member presence. Every enum value moved to prefixed SCREAMING_SNAKE_CASE, so completed becomes TASK_STATE_COMPLETED and user becomes ROLE_USER. Stream events lost their kind discriminator and are now wrapped, and errors switched from RFC 9457 Problem Details to google.rpc.Status with ErrorInfo details.

What changed in the A2A Agent Card in v1.0?

The top level url and protocolVersion fields are gone, replaced by a supportedInterfaces array where each AgentInterface declares its own protocol version. Clients negotiate by picking a compatible interface, which is what lets one SDK support several protocol versions at once. Cards can also be signed now: canonicalised with RFC 8785 JSON Canonicalization, signed per RFC 7515 JWS, and carried in a signatures field, so a receiving agent can verify the card really came from the domain owner.

Which OAuth flows did A2A v1.0 remove?

Implicit and Resource Owner Password Credentials were dropped, which matches where wider OAuth guidance has been heading for years. Device Code under RFC 8628 was added, along with PKCE support. If your agent integration still authenticates with the password grant, that migration is not optional, and it is not a search and replace either, because it changes who holds the credential.