CHANGE · OBSERVE · UNDERSTAND
A2A interop: inspect the selected interface contract
Compute ordered interface selection, tenant propagation and version checks from a local card.
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
- WaitingWaiting for inspection
Inspect an interface contract before invocation
This offline experiment examines a subset of the A2A Agent Card boundary. It computes a selection from supportedInterfaces, preserving the order of entries and using the selected URL, binding and protocol version together. The client fixture implements JSONRPC for versions 1.0 and 0.3. Those are explicit adapter capabilities in this exercise, not a claim that every ADK installation implements both. No agent discovery request, credentials, task, message serialization or remote server is involved. Passing this subset cannot establish full A2A conformance. Use the current specification and integration tests for your actual client and server.
Select a policy and a peer
Selection policy offers First compatible interface or Assume first valid interface. The compatible policy skips bindings and versions outside the fixture client capabilities; the deliberately unsafe alternative takes the first structurally valid entry. Peer card chooses one JSONRPC interface, a preferred GRPC entry followed by JSONRPC, a legacy-version entry, GRPC only, a missing protocolVersion, or an empty list. Required-field checking here only covers URL, binding and version; it is not a complete Agent Card schema validator. URLs use the reserved example domain and are never fetched. Inspection shows each entry and the reason it is supported, unsupported or invalid.
Reproduce ordered selection and tenant propagation
Start with GRPC then JSONRPC and First compatible interface. The first entry is unsupported by this client; the second is selected at the rpc endpoint. Its team-a tenant is copied to the request descriptor. Select Assume first valid interface and the GRPC endpoint is chosen, but the client-binding check fails. The experiment therefore distinguishes parsing an entry from having an adapter that can use it. Choose JSONRPC only: the selected entry lacks a tenant, so the descriptor omits that field. An empty card, missing version, or GRPC-only card under the compatible policy produces no usable interface. These are local checks rather than successful or failed network calls.
Compare explicit and default versions
Version parameter uses the selected version, forces 1.0, or omits the parameter. The A2A service parameter is named A2A-Version; this exercise applies the documented 0.3 default when it is absent. Choose Legacy 0.3 with the selected-version policy: the version check passes. Force 1.0 and the modeled peer reports VersionNotSupportedError. Omit the parameter with a 1.0-only entry and the effective 0.3 version fails instead. Omitting it for a 0.3 entry passes. A matching version still says nothing about authentication, extensions, input formats, message parts or task lifecycle semantics. The UI does not silently downgrade or retry a real request.
Read the inspected evidence
Play reveals eight stages over sixty inspection seconds, and Pause holds the current stage. Restart returns to zero while retaining settings; Timeline seeks directly. Speed changes presentation to half, normal or double rate without changing interface selection. Changing any setting starts a paused trace. The final JSON records client capabilities, advertised entries, validation results, selected endpoint, version parameter and local check result; transportAttempted remains false. Scroll the structured output to inspect all fields. Capture baseline stores a comparison, Replace baseline updates it and Clear baseline removes it. Notes remain in local browser storage and Export notes downloads observations. Expand experiment enlarges the workspace. Compare the endpoint and tenant together when reviewing a policy; a protocol label alone is insufficient evidence of interoperability.