OpenAI Swarm (released October 2024) is experimental/educational open-source framework for multi-agent systems. Minimal code (~500 lines), focus on handoffs between agents, not production-ready but patterns it reveals are useful. This article covers what it is and how it compares with alternatives.
Philosophy
- Minimal: fewest possible abstractions.
- Educational: readable, understandable code.
- Stateless: no state tracking across calls.
- Handoffs: core pattern — agent delegates to another.
- Experimental: explicitly “not for production”.
Doesn’t replace Assistants API. It’s a playground.
Core Concepts
Agent: structured config with instructions + functions.
Handoff: agent returns another agent — control transfers.
Context: dict passed between agents (shared state).
from swarm import Agent, Swarm
def transfer_to_specialist():
return specialist_agent
triage = Agent(
name="Triage",
instructions="Route customer to right agent",
functions=[transfer_to_specialist]
)
specialist_agent = Agent(
name="Specialist",
instructions="Handle technical questions"
)
client = Swarm()
response = client.run(
agent=triage,
messages=[{"role": "user", "content": "My device doesn't work"}]
)
Swarm vs CrewAI vs LangGraph
| Aspect | Swarm | CrewAI | LangGraph |
|---|---|---|---|
| Design | Minimal | Roles + tasks | State graphs |
| Production-ready | No | Yes | Yes |
| Abstraction | Handoffs | Crews + tasks | Nodes + edges |
| Statefulness | Stateless | Somewhat | Full state |
| Maturity | Experimental | Mature | Mature |
| Learning value | High | Medium | Medium |
Swarm: learn patterns. CrewAI: role-based production. LangGraph: graph-based production.
Use-Case Patterns
Examples from repo:
Customer Service
Triage → billing / technical / sales agents. Handoffs per detected intent.
Airline Customer
Agent flows: new_booking → seat_selection → payment → confirmation.
Support Escalation
Tier 1 → Tier 2 when complex.
Recognisable call-centre workflow patterns.
Assistants API Integration
Swarm is thin — uses underlying Chat Completions:
client = Swarm(client=OpenAI()) # custom OpenAI client
Does NOT use Assistants API (too heavyweight for Swarm philosophy).
Limitations
- No persistence: restart → lose state.
- No streaming: batch responses only (v1).
- No production guarantees: “experimental”.
- Minimal error handling.
- Single LLM (OpenAI): no native Claude, Gemini.
Developers can extend, but out-of-box limited.
Post-Release Derivatives
Swarm triggered activity:
- swarm-js: JavaScript port.
- OpenAI Swarm enhancements: community forks.
- Tutorials/conferences: many used Swarm for teaching.
Impact beyond the tool itself.
OpenAI Agents SDK (Successor)
OpenAI subsequently released Agents SDK (production-oriented):
- Persistent state.
- Streaming support.
- Better error handling.
- Memory.
- Production-ready.
Swarm is the proto; Agents SDK is the mature evolution.
When to Use
Swarm:
- Learning multi-agent concepts.
- Quick POCs.
- Teaching/tutorials.
- Understanding handoff pattern.
CrewAI/LangGraph/Agents SDK:
- Production applications.
- Long-running workflows.
- Complex state management.
- Customer-facing systems.
Code Simplicity
Swarm’s appeal is readability:
def get_weather(city: str):
return f"Sunny in {city}"
weather_agent = Agent(
name="Weather",
instructions="You help with weather",
functions=[get_weather]
)
Minimal. Understandable in minutes.
Educational Patterns
Lessons from Swarm code:
- Handoffs as functions returning agents — elegant pattern.
- Stateless is OK for many agent flows.
- Minimal API reduces cognitive overhead.
- Tool use via functions IS natural.
These influenced Agents SDK design.
Model Flexibility
Out-of-box, Swarm uses OpenAI. Extension:
from litellm import completion
class LiteLLMClient:
def chat(self, **kwargs):
return completion(**kwargs)
client = Swarm(client=LiteLLMClient())
Hack but enables multi-provider.
Conclusion
Swarm isn’t a production tool but educational gem. Reveals patterns (handoffs, minimal state, function-as-agent) that influenced next generations. For production multi-agent, use CrewAI, LangGraph, or OpenAI Agents SDK. Swarm is for learning, prototyping, and researchers studying agent coordination. Its industry impact has been via inspiration, not direct adoption. Worth reading the code — <500 lines of insights.
Follow us on jacar.es for more on AI agents, OpenAI SDKs, and multi-agent frameworks.