Glossary · A2A concepts

Artifact (A2A)

An output an A2A agent produces for a task, such as a document, image or JSON result, made of one or more parts and identified by artifactId.

An artifact is an output that an A2A agent generates as the result of a task, such as a document, an image or a structured data result, made up of one or more parts. Artifacts carry the deliverables of a task, while messages carry the conversation around them.

Fields. The Artifact message in a2a.proto requires an artifactId, which must be unique within its task, and a parts list with at least one part. Optional fields are name, description, metadata and extensions. Artifacts are stored in the task’s artifacts array.

Illustrative:

{
  "artifactId": "0f9a8b7c-6d5e-4f3a-9b2c-1d0e9f8a7b6c",
  "name": "Refund decision",
  "parts": [
    {"text": "Refund of CAD 42.00 approved for order PO-5518."},
    {"data": {"orderId": "PO-5518", "amount": "42.00", "currency": "CAD", "approved": true}, "mediaType": "application/json"}
  ]
}

Pairing a text part for people with a data part for software lets the receiving agent act on the result without parsing prose.

Why a separate object. Section 3.7 of the specification says results should be returned as artifacts attached to a task, and that messages should not be used to deliver outputs. The split lets a client fetch final results with Get Task without reading the whole exchange.

Streaming. During a streamed task the agent sends TaskArtifactUpdateEvent objects. When append is true, the content extends an artifact already sent with the same artifactId. When lastChunk is true, the chunk is the final one. List Tasks leaves artifacts out of each task unless the client sets includeArtifacts (section 3.1.4).

Refinements. A follow-up task in the same context produces a new artifact with a new artifactId. The Life of a Task guide recommends that the agent reuse the same name for a refined version, and leaves version tracking to the client.

Sources

  1. A2A protocol definition (a2a.proto): Artifact, TaskArtifactUpdateEvent (accessed )
  2. A2A Protocol Specification, section 3.7: Messages and Artifacts (accessed )
  3. A2A Protocol Specification, section 3.1.4: List Tasks (accessed )
  4. A2A documentation: Life of a Task (artifact refinement) (accessed )