Skip to main content
createA2AV1Server from @agentium/transport and A2AV1Client from @agentium/core use A2A 1.0. Install the optional @a2a-js/sdk peer; the working-tree fixtures use 1.3.0. The server exposes JSON-RPC and /.well-known/agent-card.json. Configure agents, the public url, an explicit audience, and an authenticate(request, audience) callback. The callback verifies credentials and returns { tenantId, userId } from trusted claims.

Task ownership

Verified tenant and actor own tasks. Request-body tenant overrides cannot change identity. Tasks accept text, structured JSON, and supported image parts. Structured Agent results become typed artifacts. The optional completionState callback maps application results to input-required or authentication-required interruptions. Cancellation waits for owned Agent work to settle; a noncooperative callback can delay it. Late success cannot overwrite a canceled result. Capacity is bounded before admission and in the backing store, with one active writer per identity/session. This server’s task history is process-local and resets on restart. Use durable A2A for a separately configured durable supervisor and host admission contract.

Client transport

A2AV1Client({ url, headers, timeoutMs }) restricts credential-bearing discovery and requests to the configured origin, rejects redirects, and supports per-call cancellation while sharing discovery. The host remains responsible for remote media access policy in its model adapter.

Migrate legacy endpoints

createA2AServer, A2ARemoteAgent, A2ARemoteTeam, and A2ARemoteWorkflow retain the older protocol. Mount legacy endpoints separately during migration. Redundant createA2ALegacyServer and A2ALegacyRemoteAgent aliases are removed. Legacy clients propagate cancellation and release stream readers on early exit. Legacy authentication and task-owner isolation remain host middleware responsibilities; they do not inherit the v1 server’s ownership contract.