Why OpenAI replaced the experimental Swarm with the Agents SDK in 2025
The Agents SDK keeps Swarm's handoff as tool call pattern and small API, and adds the production primitives Swarm omitted: guardrails, tracing, typed payloads, streaming, evals, and provider-agnostic adapters.
Imagine a chef shares a viral recipe card that shows a brilliant new way to braise lamb. Cooks everywhere try it and love the technique. But the recipe card has no notes about how long it lasts in the fridge, how to scale it for fifty guests, or what to do if the lamb is too tough. A year later the chef publishes a proper cookbook with the same recipe plus all the production details: storage, scaling, troubleshooting, substitutions. The technique is identical; the cookbook just adds everything you need to actually run a kitchen on it. Swarm was the recipe card; the Agents SDK is the cookbook.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
When OpenAI released Swarm in October 2024, the README opened with a deliberate disclaimer: 'an educational framework exploring ergonomic, lightweight multi-agent orchestration.' That was not modesty. It was a load-bearing design choice that shaped what Swarm did and did not include. Twelve months later, the production successor (the Agents SDK) shipped, and the difference between the two artefacts is the cleanest available case study of how a framework matures from prototype to production.
This card walks through what OpenAI kept, what they fixed, and why the two-step shipping cadence (minimal sample first, productionisation second) was the right play.
What survived from Swarm
Four things from Swarm carried forward into the Agents SDK essentially unchanged.
Handoff as a tool call
The load-bearing primitive. An agent that wants to transfer control to another agent emits a tool call (transfer_to_research_agent(brief)). The runtime intercepts the call, swaps the active agent, and continues the loop. There is no separate handoff API; handoff lives in the model's native action space alongside every other tool.
This was the idea Swarm was built to demonstrate, and the community workflows that grew up around it (and the parallel adoption in LangGraph's swarm prebuilt, Mastra, and smolagents) proved that the pattern was durable. The Agents SDK kept it because there was no reason to change it.
Peer agents with no central manager
Swarm has no orchestrator role. Every agent is a peer; control flows by direct handoff. This is the architectural opposite of AutoGen's GroupChat or LangGraph's create_supervisor. The Agents SDK preserves the peer topology as its default and only mode.
Tiny API surface
Swarm's entire surface was an Agent class, a run function, and a handful of helpers. The Agents SDK is larger because production primitives have real surface area, but it is still small relative to LangGraph or AutoGen. The minimalism was part of Swarm's appeal and the Agents SDK preserves it as much as the production scope allows.
The mental model
The simplicity of the mental model: an agent is a prompt plus tools plus handoff targets. Read the docs in an hour, build a working prototype the same afternoon. This learnability was Swarm's main selling point and the Agents SDK keeps it.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
| Capability | Swarm (2024) | Agents SDK (2025) |
|---|---|---|
| Handoff as tool call | Yes | Yes |
| Peer agents, no central manager | Yes | Yes |
| Tiny API surface | Yes | Yes (still small) |
| First-class guardrails | No | Yes |
| Structured tracing | No | Yes |
| Typed handoff payloads | No | Yes |
| End to end streaming | Partial | Yes |
| Eval harness | No | Yes |
| Provider-agnostic adapters | No | Yes |
Real products, models, and research that use this idea.
- OpenAI's Swarm repository on GitHub still exists but is explicitly marked as superseded by the Agents SDK; the README points users to the new framework.
- The Agents SDK is used in production at OpenAI for some of their first-party agent experiences and is the framework they recommend for partners building on the API.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow does the Agents SDK handoff primitive differ from LangGraph's create_swarm prebuilt?
Both implement handoff as tool call with peer agents. The Agents SDK is more minimal and provider-agnostic; LangGraph's swarm sits on top of the same state-graph machinery as create_supervisor, which gives you checkpointing and time-travel for free at the cost of a heavier underlying model.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Thinking the difference between Swarm and the Agents SDK is the handoff pattern. The pattern survives unchanged; what changed is everything around it that production needs.
60 second bullets to scan on the way to the call.
What survived from Swarm (pattern, peer topology, small API)
The five primitives the Agents SDK adds (guardrails, tracing, schemas, streaming, evals)
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.