HungYangChang opens PR #1549 proposing native bidirectional streaming support over gRPC for the Agent-to-Agent Protocol. This is a breaking change (marked feat!) that would fundamentally alter how agents communicate in real-time scenarios.
Currently, A2A uses a request-response pattern where agents send messages and poll for responses. Bidirectional streaming would enable agents to maintain persistent connections with simultaneous send/receive capabilities — essential for collaborative, multi-turn interactions between autonomous agents.
HungYangChang is contributing to the A2A ecosystem with a focus on performance-critical use cases. This proposal emerges from practical experience implementing agent communication where polling latency becomes a bottleneck.
The A2A protocol currently supports multiple transport mechanisms, but lacks native streaming for real-time agent interactions. gRPC bidirectional streaming provides:
| Capability | Current A2A | With Bidirectional Streaming |
|---|---|---|
| Message Latency | Poll-based (100ms+ typical) | Sub-millisecond push |
| Connection Overhead | New connection per message | Single persistent stream |
| Backpressure | Client-managed | Native gRPC flow control |
| Interruption | Requires separate cancel request | Stream close signals interruption |
The proposal would add a new streaming RPC to the A2A protocol definition:
service AgentService {
// Existing unary methods
rpc SendMessage(SendMessageRequest) returns (SendMessageResponse);
// New bidirectional streaming
rpc StreamMessages(stream AgentMessage) returns (stream AgentMessage);
}
Key design considerations in the proposal:
The feat! designation indicates this is a breaking change. Implementations targeting A2A 1.0 compatibility would need updates to support bidirectional streaming. The proposal includes a migration path where streaming is optional — agents negotiate capabilities during discovery.
Two agents working on a complex problem can exchange intermediate results in real-time, building on each other's partial solutions without the latency of polling.
A supervisory agent monitoring multiple worker agents can receive status updates instantly and inject corrections without waiting for poll intervals.
When Agent B's work depends on Agent A's output, streaming enables A to push results as they become available, rather than B polling repeatedly.
The PR discussion highlights several open questions:
If adopted, bidirectional streaming would represent a significant evolution in A2A's capabilities:
This proposal is still in active discussion. The A2A maintainers are evaluating whether streaming should be a core protocol feature or remain an optional extension.