-
Notifications
You must be signed in to change notification settings - Fork 55
Description
Summary
The A2A v1.0 specification describes a version negotiation mechanism where a client sending a v1.0 request to a server that only supports v0.3 should be able to detect the mismatch and fall back to v0.3 semantics. The .NET A2AClient does not implement this fallback behavior.
Expected Behavior
When a client is configured to allow version fallback (e.g., via a client setting or policy), and connects to a server that only supports v0.3:
- Client sends request with
A2A-Version: 1.0header - Server responds indicating it only supports v0.3 (e.g., via error or agent card version field)
- Client detects the version mismatch and automatically retries using v0.3 semantics (different schema:
supportedInterfacesremoved, etc.)
This should be controlled by a client-level setting — something like configuring the A2AClient with a version negotiation policy that specifies which versions it is willing to speak and whether fallback is permitted.
Observed Behavior
The A2AClient sends v1.0 requests and does not inspect the server's supported version. If the server only supports v0.3, the client either fails or receives an incompatible response with no attempt to negotiate or retry with v0.3 semantics.
Impact
Many deployed A2A servers still only support v0.3. Clients that upgrade to the v1.0 SDK lose the ability to communicate with these servers unless they manually implement version detection and fallback logic. This is especially important during the transition period where both versions coexist.
Package Version
A2A1.0.0-preview (NuGet)