The five major frameworks for orchestrating multiple LLM agents — AutoGen's actor model, CrewAI's role-based crews, OpenAI Agents SDK and Claude Agent SDK as native runtimes, and Agno/Mastra as alternative production environments. A side-by-side framework selection matrix.
The frameworks below are the production-grade options for building agents in 2025. Each makes different trade-offs around state, multi-agent coordination, streaming, subagents, and ecosystem.
The frameworks at a glance:
| Framework | Style | Multi-agent | Streaming | Subagents | Vendor |
|---|---|---|---|---|---|
| AutoGen | Actor model | First-class | Yes | Yes | Microsoft |
| CrewAI | Role-based crew | First-class | Limited | No | OSS |
| OpenAI Agents SDK | Library | Handoffs | Yes | Yes | OpenAI |
| Claude Agent SDK | Library | Subagents | Yes | First-class | Anthropic |
| LangGraph | Graph runtime | Via subgraphs | Yes | Via subgraphs | LangChain |
| Agno / Mastra | Runtime | Yes | Yes | Yes | OSS |
The selection matrix at the end of the chapter helps you pick.
This chapter covers:
Click any topic to jump in
Actor model — agents as message-passing processes. v0.4 rebuilt around async actors and runtimes.
Role-based crews — agents with personas, goals, and tools coordinated by sequential or hierarchical processes.
From the open ecosystem to the first-party SDKs
Vendor-native SDK with handoffs, guardrails, sessions. OpenAI-only.
Vendor-native SDK with first-class subagents — context-isolated child agents that return a single summary.
Open-source production runtimes — Python (Agno) and TypeScript (Mastra).
Capabilities × frameworks — match constraints to candidates, then prototype your top-2.
AutoGen (Microsoft, 2023) was the first widely-adopted multi-agent framework. Its central abstraction: agents are actors that exchange messages. Each agent has its own memory, tools, and LLM; conversation between agents is driven by a group chat loop or a custom orchestrator.
Each AutoGen agent is an actor — a process with private state that communicates only via messages. The two base classes:
Agents are wired together via a GroupChatManager (round-robin or auto-selected speaker) or a custom orchestrator. Each turn, the manager picks the next speaker; that speaker reads the conversation, generates a response, and broadcasts it. Loop until the manager terminates.
The upside: very flexible. You can model any conversation pattern. The downside: very flexible. Naive uses produce non-terminating loops where agents agree forever.
AutoGen v0.4 (late 2024) rebuilt the framework around explicit async actors, channels, and runtimes. Three layers:
The v0.4 architecture is closer to Erlang-OTP or Akka than to a 'chat library.' Best fit for teams that want explicit control of agent lifecycles and message routing, rather than the 'just call start_chat' ergonomics of v0.2.