Task

Task is the core unit of action for A2A. It has a current status and when results are created for the task they are stored in the artifact. If there are multiple turns for a task, these are stored in history.

JSON representation
{
  "id": string,
  "contextId": string,
  "status": {
    object (TaskStatus)
  },
  "artifacts": [
    {
      object (Artifact)
    }
  ],
  "history": [
    {
      object (Message)
    }
  ],
  "metadata": {
    object
  }
}
Fields
id

string

Unique identifier (e.g. UUID) for the task, generated by the server for a new task.

contextId

string

Unique identifier (e.g. UUID) for the contextual collection of interactions (tasks and messages). Created by the A2A server.

status

object (TaskStatus)

The current status of a Task, including state and a message.

artifacts[]

object (Artifact)

A set of output artifacts for a Task.

history[]

object (Message)

protolint:disable REPEATED_FIELD_NAMES_PLURALIZED The history of interactions from a task.

metadata

object (Struct format)

protolint:enable REPEATED_FIELD_NAMES_PLURALIZED A key/value object to store custom metadata about a task.