A2A Compatibility
AgentWeave treats protocol compatibility as an explicit, tested contract rather than assuming that one SDK point release defines the whole A2A ecosystem.
Current compatibility target
| Component | Current target | Evidence |
|---|---|---|
| A2A protocol | 1.x JSON-RPC interoperability | Official MUST-level TCK plus live external services |
| Python A2A SDK | a2a-sdk==1.1.0 |
Pinned in the tck extra for reproducible CI |
| Python SDK server | tested | Cross-SDK interoperability workflow |
| Go SDK server | tested | Cross-SDK interoperability workflow |
| JavaScript SDK server | tested | Cross-SDK interoperability workflow |
| Java SDK server | tested | Cross-SDK interoperability workflow |
| Independently hosted services | tested | Deep Research Archives and Delx external proof |
| gRPC lifecycle client | contract-tested | Generated-stub-compatible lifecycle proof; not claimed as official gRPC TCK conformance |
| HTTP+JSON lifecycle | implemented | Not claimed as official HTTP+JSON TCK conformance unless a dedicated proof is run |
Version policy
The exact Python SDK version used by the TCK environment remains pinned so a passing proof is reproducible. AgentWeave protocol adapters should not depend on one provider-specific JSON shape when the protocol permits variation; external interoperability profiles may adapt method names, authentication bootstrap, headers, or payload envelopes while preserving the A2A lifecycle contract.
Before changing the pinned SDK version:
- run the full CI suite;
- run the official JSON-RPC MUST-level TCK;
- run Python/Go/JavaScript/Java SDK interoperability;
- run independently hosted external A2A proof where endpoints remain available;
- record any wire-compatibility changes in
CHANGELOG.md.
A successful contract test does not imply conformance for transports that were not exercised by the official TCK.