Glossary · A2A concepts

Remote agent

In A2A, the remote agent is the server side: it exposes an A2A endpoint, receives messages from client agents, runs tasks and returns results.

A remote agent is the server side of an A2A interaction: an agent or agentic system that exposes an A2A endpoint, receives requests from client agents, does the work, and returns messages, task updates and artifacts.

Terminology. The specification calls this role the “A2A Server (Remote Agent)”. To the client it is opaque. Its memory, tools and reasoning stay hidden, and it collaborates only through what its Agent Card declares and the messages it exchanges.

What a remote agent must do.

  • Publish an Agent Card. A2A servers must make one available, usually at /.well-known/agent-card.json. The card lists every supported binding in supportedInterfaces, plus skills, capabilities such as streaming and pushNotifications, and securitySchemes.
  • Authenticate and authorize. It authenticates every request against the schemes it declares, then applies its own policies to decide what the caller may do.
  • Honour the version. It processes each request with the semantics of the requested A2A-Version, and returns VersionNotSupportedError (-32009 in JSON-RPC) if it cannot.
  • Run the task lifecycle. It answers with a message for a quick reply, or with a task that moves through states until it reaches a terminal state: completed, failed, canceled or rejected. When it creates a task, it generates the task ID.
  • Deliver updates. It sends events in the order they happened to every open stream, and sends push notifications if it supports them.
  • Keep bindings equivalent. If it offers several bindings, each must expose the same operations, results, errors and authentication.

A task response asking the client for more input:

{
  "task": {
    "id": "task-123",
    "contextId": "ctx-1",
    "status": {
      "state": "TASK_STATE_INPUT_REQUIRED",
      "message": {
        "messageId": "msg-3",
        "contextId": "ctx-1",
        "taskId": "task-123",
        "role": "ROLE_AGENT",
        "parts": [{"text": "Which order number is this about?"}]
      }
    }
  }
}

Behind the endpoint. A remote agent can rely on other systems to finish a task. The A2A specification gives the example of a remote agent that uses MCP to reach tools and data. It can also act as a client agent toward other remote agents.

Neighbouring terms. The client agent is the other side of the exchange, and the task is the unit of work the remote agent manages.

Sources

  1. A2A Protocol Specification, section 2.2: Core Concepts (accessed )
  2. A2A Key Concepts (A2A project docs) (accessed )
  3. A2A Protocol Specification, sections 3.5, 3.6, 5.1, 7 and 8 (accessed )
  4. A2A protocol definition (a2a.proto): Message, Task (accessed )