Skip to content

A2A v1.0 Compliance

JSON-RPC methods are registered in A2AProtocol::register_a2a_methods in a2a_protocol_core (crates/a2a_protocol_core/src/protocol.rs). The HTTP server (a2a_http_server) may intercept SendStreamingMessage on native for SSE when a streaming port is configured; see native_server.rs.

See also the full capabilities matrix for SDK feature flags.

MethodStatusFeature flagWASMNativeNotes
Ping✅ Stablea2a_protocol_core coreYesYesAlways registered when methods are installed.
GetAgentCard✅ Stablea2a_protocol_core coreYesYesAlways registered.
GetExtendedAgentCard✅ Stablea2a_protocol_core coreYesYesAlways registered; uses DefaultAgentDiscovery.
SendMessage✅ StableYesYesRegistered only when register_a2a_methods is called with Some(task_storage).
GetTask✅ StableYesYesRequires task storage (Some).
CancelTask✅ StableYesYesRequires task storage (Some).
ListTasks✅ StableYesYesRequires task storage (Some).
SendStreamingMessage✅ Feature-gatedevent-stream on a2a_protocol_core (e.g. via agent_sdk event-stream or a2a_http_server streaming)PartialYesRequires task storage and event-stream. Protocol handler creates a task (handle_tasks_send_subscribe). HTTP SSE is native-only when A2AHttpServer::with_streaming_port is set; WASM JSON-RPC returns a normal JSON-RPC result (no SSE route).
SubscribeToTask🔲 PlannedRequest types exist in a2a_protocol_core; not registered in register_a2a_methods.
CreateTaskPushNotificationConfig🔲 PlannedTypes only (push-notifications feature exists on a2a_protocol_core / a2a_http_server push; no handlers registered).
GetTaskPushNotificationConfig🔲 PlannedTypes only.
ListTaskPushNotificationConfigs🔲 PlannedTypes only.
DeleteTaskPushNotificationConfig🔲 PlannedTypes only.
  • ✅ Stable — Implemented and registered (subject to storage / HTTP wiring as noted).
  • ✅ Feature-gated — Implemented behind Cargo features (event-stream / streaming).
  • 🔲 Planned — Domain/types may exist; no JSON-RPC handler in register_a2a_methods.