# How do I trace an OpenAI Agents SDK run?

Tracing is on by default: every `Runner.run()` call is wrapped in one trace, and that trace holds a span for each agent, each model call, each tool call, each handoff, and each guardrail check, sent to OpenAI's own dashboard unless you redirect them. There's no built-in OpenTelemetry exporter, so reaching a different backend means writing or installing a trace processor: `add_trace_processor()` sends a copy alongside the default export, `set_trace_processors()` replaces it outright, and `OPENAI_AGENTS_DISABLE_TRACING=1` turns tracing off entirely.

The handoff and guardrail spans are worth grading on their own rather than folding into whatever the agent finally says. A handoff span records the exact moment control moved from one agent to another and what went with it, which is where [multi-agent handoffs actually break](/answers/failure-modes/what-is-inter-agent-misalignment). A guardrail span records that a check ran and what it decided, a separate fact from the model's output that's worth tracking as its own rate.

---

Sources:
- OpenAI Agents SDK docs: Tracing: https://openai.github.io/openai-agents-python/tracing/ (fetched 2026-09-11)

Source: https://tessary.ai/answers/openai-agents-sdk-evals/how-do-i-trace-an-openai-agents-sdk-run
More on Openai agents sdk evals: https://tessary.ai/answers/openai-agents-sdk-evals
From Tessary, agent reliability for AI agents in production: https://tessary.ai
