R.7

Index of figures

Every figure in the manual, by the claim it makes.

Each number links to its figure, and the claim is the bold sentence that opens the caption.

Fig.The claim it makes
0.1Each of the seven arrow styles marks one kind of exchange, and the label on each arrow is a real name from a run of the kit.
1.1A2A defines the card, the bindings, the operations, and the objects, while test-runner's server parts and agent logic below the dashed line belong to its owner.
1.2A2A fixes the messages, states, and events between agents, while trust, discovery, retention, and exactly-once effects stay with the host.
1.3A streamed task opens with the task itself, reports its work as status and artifact frames, and ends when the server closes the stream after the terminal status.
2.1One GET returns what a client needs before its first message: who the agent is, where to reach it, what it demands, and what it offers.
2.2Three routes lead to one card, and a client takes the first interface it speaks and checks a capability flag before each optional operation.
2.3The same GetExtendedAgentCard call fails with HTTP 401 before any A2A method runs, then returns a card with a second skill once a token is attached.
2.4The signature covers the RFC 8785 bytes of the card without signatures, so an edit to the description changes those bytes and verification fails.
3.1A message carries an id its sender mints, while its contextId and taskId come from the server and the client echoes them to continue.
3.2The kit's captures use all four kinds of part, and only the image/png part fails, because code-reviewer does not accept that media type.
3.3The five chunks of test-log.txt become five parts of one stored artifact in frame order, and lastChunk ends that artifact while the stream continues.
3.4A task carries its own id, its context, one current status, its artifacts, and its history, and every message and artifact inside it is made of parts.
3.5The kit's captures show nine transitions between task states, and none of them leaves a double-bordered terminal state.
3.6The review task holds both exchanges of the conversation, and a follow-up review joins the same context as a new task, because the review task is terminal.
4.1The same SendMessage to code-reviewer returns a message for a question and a task for a diff, and only the task gives the client something to follow.
4.2A blocking send holds one request open until this task completes, while returnImmediately answers at TASK_STATE_SUBMITTED and leaves the client to poll.
4.3The question arrives as the status message of a paused task, and the answer is a new message that carries the same task and context ids.
4.4The deploy waits in TASK_STATE_AUTH_REQUIRED while the stream stays open, and the operator's approval travels outside A2A before the same stream carries the result.
4.5GetTask trims history to the newest messages you ask for, and ListTasks returns newest-first pages that leave out artifacts until you ask for them.
4.6The agent chose three of these endings and the client one, and once a task ends, the server refuses any further message or cancel.
4.7A dropped stream loses the frames sent while it was closed, and SubscribeToTask resumes with a Task snapshot that already holds their content.
4.8With a webhook registered, test-runner posts eight StreamResponse bodies to the planner's receiver after the SendMessage call has already returned.
5.1JSON-RPC posts every operation to one URL and names it in the body, HTTP+JSON names it with a verb and a path, and gRPC calls an rpc.
5.2One rpc sends the request with its metadata, the server streams StreamResponse messages until the task ends, and the rpc status closes the stream.
5.3The same TaskNotFoundError arrives as HTTP 200 with code -32001 in JSON-RPC and as HTTP 404 in HTTP+JSON, carrying the same ErrorInfo.
6.1The card names the scheme, HTTP rejects a request without the token before A2A runs, and a running task can still stop for an approval.
6.2The card lists the extension, the request names it in A2A-Extensions and keys its data by the URI, and a missing required extension answers -32008.
6.3Data crosses six boundaries in the kit's system, and each needs a check of its own, because A2A labels nothing it carries as safe.
7.1The planner reads three cards, delegates three skills in turn, answers a question, escalates an approval, and decides from data parts before each next step.
7.2A request passes authentication, the version check, and the capability check before Agent.send stores a task, and every event then leaves through one broadcast.
7.3The planner sees only each agent's card and endpoint, while each agent calls its own logic and tools below a line that A2A never crosses.

A2A protocol 1.0.1 · 3303592 · 2026-05-28 · Edition 2026.10