Goal: Let a caller choose and pin the A2A protocol version the CLI uses to talk to an agent.
User story: As an operator talking to a version-sensitive agent, I want to pin the protocol version via a flag or config, so that my calls use the version the agent expects instead of a silent default.
Priority: P2 · Area: CLI code
Problem
There is no way to set the protocol version the CLI signals to a server:
$ a2a send ... --a2a-version 1.0 'hi'
Error: unknown flag: --a2a-version
Without an explicit value, a server may assume an older default, and callers cannot pin a version to talk to agents that require a specific one.
Proposed behavior
- Add a
--a2a-version <version> flag.
- Make it a configurable default too:
A2ACLI_A2A_VERSION (env / .env), overridable with the standard precedence (flag > env > file > built-in).
- The chosen version is signaled on every request across transports (HTTP header or gRPC metadata).
- Absent an explicit value, negotiate to the highest version supported by both the tool and the agent.
- Surface a version-unsupported error clearly rather than silently downgrading.
a2a config show reports the effective value and where it resolved from.
Who benefits
- Callers talking to agents that require a specific protocol version.
- Operators who want a fixed version across a fleet via a single env var or
.env.
Acceptance criteria
Environment
- CLI version:
a2a version v0.0.0-…1e29dfe94f95+dirty
- OS: Linux x86_64
Notes
Check whether version negotiation is already handled inside the underlying a2a-go/v2 SDK (transport factory) so the flag wires through rather than duplicating logic. Related work may be in flight in PR #23 — coordinate to avoid duplication.
Goal: Let a caller choose and pin the A2A protocol version the CLI uses to talk to an agent.
User story: As an operator talking to a version-sensitive agent, I want to pin the protocol version via a flag or config, so that my calls use the version the agent expects instead of a silent default.
Priority: P2 · Area: CLI code
Problem
There is no way to set the protocol version the CLI signals to a server:
Without an explicit value, a server may assume an older default, and callers cannot pin a version to talk to agents that require a specific one.
Proposed behavior
--a2a-version <version>flag.A2ACLI_A2A_VERSION(env /.env), overridable with the standard precedence (flag > env > file > built-in).a2a config showreports the effective value and where it resolved from.Who benefits
.env.Acceptance criteria
--a2a-versionflag andA2ACLI_A2A_VERSIONconfig setting exist with correct precedence.a2a config showreports the effective value and its source.Environment
a2a version v0.0.0-…1e29dfe94f95+dirtyNotes
Check whether version negotiation is already handled inside the underlying
a2a-go/v2SDK (transport factory) so the flag wires through rather than duplicating logic. Related work may be in flight in PR #23 — coordinate to avoid duplication.