Streaming
STREAM_DELTA is a transitory artifact — it is not persisted to the Task’s durable state.
The client uses it for live display only.
| ADK Event | Client Receives |
|---|---|
| Partial event with content | TaskArtifactUpdateEvent(STREAM_DELTA, append=..., last_chunk=false) |
| Non-partial event with content | TaskArtifactUpdateEvent(STREAM_DELTA, last_chunk=true) + TaskStatusUpdateEvent(working, message=...) |
| Non-partial event without content | TaskArtifactUpdateEvent(STREAM_DELTA, last_chunk=true) |
STREAM_DELTA close events are only emitted if at least one partial event was sent beforehand.
Artifacts
| ADK Event | Client Receives |
|---|---|
artifact_delta entry in event actions | TaskArtifactUpdateEvent per artifact |
Outbox
a2a_outbox value | Client Receives |
|---|---|
Message | TaskStatusUpdateEvent(working, message=...) |
Task patch with metadata | TaskStatusUpdateEvent(working) (for metadata) |
Task patch with history messages | N × TaskStatusUpdateEvent(working, message=...) |
Task patch with artifacts | M × TaskArtifactUpdateEvent |
Terminal
Every execution ends with exactly one terminal event.| Outcome | Client Receives |
|---|---|
| Agent finishes, no outbox, delta text present | TaskStatusUpdateEvent(working, delta text) + TaskStatusUpdateEvent(completed) |
| Agent finishes, no outbox, no delta text | TaskStatusUpdateEvent(completed) |
Agent finishes with a2a_outbox | (outbox events) + TaskStatusUpdateEvent(completed) |
| Unhandled exception | TaskStatusUpdateEvent(failed) |