Skip to content

How to support non-HTTP transports. #1149

@muscariello

Description

@muscariello

Discussed in #1146

Originally posted by ToddSegal October 14, 2025
I’m seeing increased calls for and compelling demos of A2A over non-HTTP transports. The current spec is HTTP-only. Here is my proposal for how to support A2A over non-HTTP. If this looks good, we’ll implement a PR.

Proposal:

A2A Spec will recommend that HTTP REST (json payload) or gRPC (HTTP/2 + protobuf) are the preferred transport and data formats. However, the spec will also allow JSON-RPC data format over any transport in a similar manner as LSP Base Protocol. Namely, JSON-RPC requests over non-HTTP (stdio, websocket, etc) should include HTTP headers (in this case, all headers, not only limited to content-length). A2A Spec will include a definition of a PluggableTransport that all SDKs must implement. (Changes to PluggableTransport are considered changes to the spec)

Any functionality that A2A delegates to HTTP headers (like authentication, or features for specific A2A extensions) remains in HTTP headers. This reinforces that the lingua franca is HTTP but also allows for limited subsets of A2A functionality (and specific extensions) over transports like stdio.

The official SDKs will implement PluggableTransport and will provide HTTP transport on top of this. The community can provide support for different transports by building on the same abstract class supported by the SDKs in separate projects. If any other transport becomes "popular enough", we will consider bringing it into the official SDK and spec.

How will this be implemented:

  1. Spec repo:
  • ensure that the json schema is generated from the protobuf definition for 100% compatibility.
  • provide a language agnostic definition of a PluggableTransport that all SDKs should build on top of
  • Update agent card definition to support announcing non-HTTP transports.
  1. SDK repos:
  • Support PluggableTransport, build HTTP/gRPC on top, include hooks so community can bring custom implementations of other transports.
  • Support self-announcing protocol in Agent Card

Sub-issues

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions