Yes, Phoenix supports grouping a single agentic workflow (with multiple child agentic workflows) under a single trace_id, as long as all child workflows are instrumented to use the same trace context. This is achieved by starting a top-level span for the parent workflow and ensuring all child agent calls are made as nested spans within that context, so they share the same trace_id and are visualized as a single trace in Phoenix. You can do this using OpenTelemetry context propagation and manual or auto-instrumentation, depending on your agent framework (<https://arize.com/docs/phoenix/tracing/how-to-tracing/instrument-python|Phoenix tracing docs>, <https://github.com/Arize-ai/openinference/blob/main/spec/traces.md|OpenInference traces spec>).
For multi-agent frameworks like AutoGen, CrewAI, Agno, and others, Phoenix's OpenInference instrumentation will automatically group agent and sub-agent spans under the same trace if they are executed within the same parent span context (<https://arize.com/docs/phoenix/integrations/python/autogen/autogen-agentchat-tracing|AutoGen integration>, <https://arize.com/docs/phoenix/integrations/python/agno/agno-tracing|Agno integration>). If you are orchestrating agents manually, use `tracer.start_as_current_span` for the parent and ensure all child agents are invoked within that context.
Would you like a code example or more detail on a specific agent framework?
Sources:
- <https://github.com/Arize-ai/openinference/blob/main/spec/traces.md|OpenInference traces spec>
- <https://arize.com/docs/phoenix/integrations/python/autogen/autogen-agentchat-tracing|AutoGen integration>
- <https://arize.com/docs/phoenix/integrations/python/agno/agno-tracing|Agno integration>
- <https://arize.com/docs/phoenix/tracing/how-to-tracing/instrument-python|Phoenix tracing docs>