Permission required:
workspace:a2aBase URL
POST {baseUrl}/message:send or GET {baseUrl}/tasks/{taskId}.
Protocol Versions
MemoryLake exposes two parallel sets of A2A routes, one per protocol version, and each version is reachable over two transports: REST and JSON-RPC 2.0.
Over JSON-RPC, both versions post to the bare
{baseUrl} and pick the operation with method: v1.0 uses SendMessage, SendStreamingMessage, GetTask, CancelTask, SubscribeToTask; v0.3 uses message/send, message/stream, tasks/get, tasks/cancel, tasks/resubscribe. The protocol version is negotiated from the method name, and v1.0 clients should also send A2A-Version: 1.0.
All four route families accept the same configuration object and the same MemoryLake extension described below:
MemoryLake Extension
MemoryLake extends the standard A2A protocol through themetadata.memorylake namespace. Pass this object in the request metadata of message:send or message:stream to control how the agent interacts with MemoryLake’s memory layer.
This is the key difference from a vanilla A2A server — these fields connect the agent to workspaces, projects, and actors in MemoryLake.
object
required
MemoryLake-specific configuration. Without this, the agent runs without any memory context.
Examples
Sending a message spans three independent choices — protocol version (v1.0 / v0.3) × method (send / stream) × transport (REST / JSON-RPC) — so there are eight valid combinations. All eight are shown below. Paths below are relative to the base URL; JSON-RPC always posts to the bare base URL and selects the operation withmethod.
In the Headers column, SSE means
Accept: text/event-stream and v1.0 means A2A-Version: 1.0. All eight take the same configuration object and the same metadata.memorylake extension. The four streaming variants respond with text/event-stream; the four send variants respond with a single JSON body.
Watch the three shape differences between versions and transports: v1.0 uses
parts with role: "ROLE_USER"; v0.3 REST uses content with role: "ROLE_USER"; v0.3 JSON-RPC uses parts where every part carries a kind discriminator, with role: "user" in lowercase.REST transport
JSON-RPC transport
Both versions share the same path —POST {baseUrl} with no suffix. The version comes from the method name; v1.0 clients should also send A2A-Version: 1.0.