What's the difference between the OpenAI Agents SDK and CrewAI?

The OpenAI Agents SDK sticks to a small, fixed set of primitives, agents, handoffs, and guardrails, wired together in your own code; CrewAI splits the work into two layers instead. Crews are role-playing agents that collaborate autonomously toward a goal, and Flows sit above them as an event-driven layer with its own state and explicit branching, chaining crews and plain code together when you want more control than autonomous collaboration alone gives you. Model access differs too: the OpenAI SDK defaults to its own Responses API and reaches other providers only through adapter packages still in beta, while CrewAI ships native integrations for OpenAI, Anthropic, Gemini, Azure, Bedrock, and Snowflake, falling back to LiteLLM for everything else.

Tracing is the sharpest split. Every OpenAI Agents SDK run traces by default, a span per agent, model call, tool call, handoff, and guardrail, sent to OpenAI’s own dashboard unless redirected. CrewAI has built-in tracing too, but it stays off until you sign up for CrewAI AMP and opt in with tracing=True; that gap between capability and default-on is why CrewAI users still reach for one of its nine integrations, Langfuse and Arize Phoenix among them, rather than create an AMP account.

sources

keep reading

More on this.

Two ways to run Tessary.

Tessary is an open-source agent reliability platform. Cloud and self-hosted run the same workflow on the OpenTelemetry traces your agent already emits.

Tessary Cloud

We host it for you. Send your first trace with nothing to deploy and no model key.

what's includedper organization
traces
10,000 per calendar month
stored trace data
1 GB
retention
30 days
model credit
$10, one-time, for triage and root-cause analysis
credit card
not required

Self-hosted Tessary

Run the open-source code on your own infrastructure with one command. Add your own model key for triage and root-cause analysis.

Self-host Tessary for me by following https://github.com/tessaryai/tessary/blob/main/setup.md

docker compose -f oci://docker.io/tessaryai/tessary:compose up -d -y