a2aproject / a2aproject/A2A

[Bug]: Contradictory A2A-Version transmission requirements

Open
#2,184 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Shell
Stars
25.7k
Forks
2.6k
Avg merge
3d 6h
Merged PRs (30d)
16

Description

### What happened?

The specification says:

[3.6.1 (Client Responsibilities)](https://a2a-protocol.org/latest/specification/#361-client-responsibilities)
> Clients MUST send the A2A-Version header with each request [...]

But just a bit later, it says:
> Clients MAY provide the A2A-Version as a request parameter instead of a header.

The specification for JSON-RPC Protocol Binding adds:

[9.2 (Service Parameter Transmission)](https://a2a-protocol.org/latest/specification/#92-service-parameter-transmission)

> A2A service parameters defined in [Section 3.2.6](https://a2a-protocol.org/latest/specification/#326-service-parameters) MUST be transmitted using standard HTTP request headers, as JSON-RPC 2.0 operates over HTTP(S).

Same for HTTP+JSON/REST Protocol Binding:
[11.2 (Service Parameter Transmission)](https://a2a-protocol.org/latest/specification/#112-service-parameter-transmission)
> A2A service parameters defined in [Section 3.2.6](https://a2a-protocol.org/latest/specification/#326-service-parameters) MUST be transmitted using standard HTTP request headers.

Per [RFC2119](https://datatracker.ietf.org/doc/html/rfc2119), MUST means that sending the header "is an absolute requirement of the specification".

It should be clarified which requirement takes precedence in which case.

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.