Glossary · A2A concepts

Task lifecycle (A2A)

The path an A2A task takes from creation to an end state: submitted, working, paused for input or authorization, then completed, failed, canceled or rejected.

The task lifecycle is the sequence of states an A2A task moves through, from the moment an agent creates it in response to a message until it reaches one of four terminal states, after which it can never change again.

Message or task. Not every exchange becomes a task. An agent can answer a message with a single Message and keep no state, or it can create a Task with a server-generated id and track the work. Once an agent has created a task, later responses about that work are Task objects.

The stages.

  1. Created: TASK_STATE_SUBMITTED means the agent has acknowledged the task, and TASK_STATE_WORKING means it is processing.
  2. Interrupted: TASK_STATE_INPUT_REQUIRED waits for more input from the client. TASK_STATE_AUTH_REQUIRED waits for authorization, often delivered out of band. The client continues by sending a message with the same taskId.
  3. Terminal: TASK_STATE_COMPLETED, TASK_STATE_FAILED, TASK_STATE_CANCELED or TASK_STATE_REJECTED. An agent can reject a task when it is created or later, once it decides it cannot or will not proceed.

Rules that follow.

  • A blocking SendMessage, the default, returns once the task is terminal or interrupted. With returnImmediately set, it returns straight after creating the task.
  • Messages sent to a terminal task fail with UnsupportedOperationError, and CancelTask on one fails with TaskNotCancelableError.
  • A refinement or follow-up starts a new task in the same contextId, and can point back with referenceTaskIds. The finished task stays immutable, which keeps every artifact traceable to one unit of work.
  • Clients follow progress by polling GetTask, by streaming, or through push notifications.

An interrupted task, illustrative:

{
  "id": "5f1c2d9e-8b7a-4e3c-9d21-6a0b4c7e2f13",
  "contextId": "ctx-7",
  "status": {
    "state": "TASK_STATE_INPUT_REQUIRED",
    "message": {
      "messageId": "a9e4b1c2-7d3f-4e8a-b6c5-0f2d1e3a4b5c",
      "role": "ROLE_AGENT",
      "parts": [{"text": "Which delivery address should I use?"}]
    },
    "timestamp": "2026-09-26T14:03:11.482Z"
  }
}

Neighbouring terms. Task state is the enum value at each step, and a terminal state is one of the four end points.

Sources

  1. A2A documentation: Life of a Task (accessed )
  2. A2A protocol definition (a2a.proto): TaskState, Task (accessed )
  3. A2A Protocol Specification, section 3.1: Core Operations (Send Message, Cancel Task) (accessed )
  4. A2A Protocol Specification, section 3.2.2: SendMessageConfiguration (execution mode) (accessed )
  5. A2A Protocol Specification, section 3.4: Multi-Turn Interactions (accessed )
  6. A2A Protocol Specification, section 3.5: Task Update Delivery Mechanisms (accessed )