What's the difference between the OpenAI Agents SDK and Pydantic AI?

The OpenAI Agents SDK composes an agent out of agents, handoffs, and guardrails, all pointed at OpenAI’s own models through its Responses API by default; Pydantic AI is built the opposite way in, model-agnostic from the start, swapping between OpenAI, Anthropic, Google, Bedrock, and a dozen other providers with a string, and type-safe throughout, using Pydantic models to validate a tool’s arguments and an agent’s structured output before either one runs. That’s a stricter version of the same job structured output mode does elsewhere: Pydantic AI’s own docs describe moving “whole classes of errors from runtime to write-time,” catchable by an IDE or type checker rather than a failed call in production.

Tracing runs on different rails too. The OpenAI SDK traces every run by default, but the spans go to OpenAI’s own dashboard, with no built-in OpenTelemetry exporter; reaching a different backend means writing a custom trace processor yourself. Pydantic AI’s spans are OpenTelemetry from the start, reaching any OTel backend already listening for other services, with Pydantic’s own Logfire one line away if you want it.

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