LangGraph
Stateful graph-based orchestration. Explicit state machine. Fine-grained control over agent flow. Best when you need deterministic, auditable agent behavior.
LangGraph 1.0 shipped in late 2025 with a stable Python and TypeScript API. Agents are nodes in a directed graph; state is a typed dict that flows between nodes. Conditional edges enable branching, cycles enable retries and reflection. Built-in checkpointing to Postgres or Redis enables pause/resume — critical for long-running CRM workflows that span days. Time-travel debugging lets you replay an agent’s state from any checkpoint, invaluable in audit-heavy contexts. The cost: more boilerplate than CrewAI for simple cases.
from langgraph.graph import StateGraph
graph = StateGraph(AgentState)
graph.add_node("classify", classify_intent)
graph.add_node("retrieve", retrieve_context)
graph.add_node("respond", generate_response)
graph.add_conditional_edges("classify", route_by_intent)
CrewAI
Multi-agent with role-based collaboration. Easy conceptual model (crew of agents with roles). Good for multi-agent scenarios where coordination patterns matter.
CrewAI’s mental model: a crew is a list of agents, each with a role, goal, and tools, executing tasks in sequence or hierarchy. The 0.80+ releases added Flows, a state-machine layer that combines crews with deterministic orchestration. Fastest path from concept to working multi-agent demo — typically under an hour. Trade-offs: less control over individual LLM calls, harder to instrument for production observability, weaker support for long-running stateful workflows. Best fit for content generation, research, and analysis tasks where the agent crew operates on a defined input batch.
AutoGen
Microsoft’s framework. Multi-agent conversational patterns. Strong on chat-based coordination. Well-integrated with Azure OpenAI stack.
AutoGen v0.4 rewrote the framework around an event-driven actor model with first-class async, distributed execution, and per-agent tool isolation. AutoGen Studio provides a visual designer. Native bindings for Azure OpenAI, Azure AI Foundry, and Semantic Kernel make it the default for Microsoft-aligned shops. Multi-agent group chat patterns (manager + workers, swarm) come built in. Weakest in non-Azure deployments where its strengths overlap less with the surrounding stack.
Selection
Deterministic, compliance-heavy: LangGraph. Multi-agent collaboration fit: CrewAI. Azure-first shop: AutoGen. Rapid prototyping: start with any; switch based on real patterns observed.
Decision criteria. Compliance and audit requirements -> LangGraph wins on checkpoint replay. Single-agent CRM workflows with tools -> any of the three works; LangGraph if you want explicit state, CrewAI for speed. Multi-agent research or content tasks -> CrewAI. Azure-native enterprise -> AutoGen. Production scale beyond 10K calls/day -> LangGraph for observability or AutoGen for Azure-native scaling. Salesforce Agentforce uses LangGraph internally for some flows; this is becoming a de facto enterprise default.
Common Failure Modes
Five recurring patterns. Building multi-agent systems when a single agent with tools would suffice — added latency and cost without quality gain. Skipping persistent state, leaving agents unable to resume after crash. Missing per-step token budgets, allowing one runaway tool call to burn the budget. Tight coupling between agent code and LLM provider, blocking later model swaps. No eval harness, making framework migrations a leap of faith.
What to Do This Week
Build the same simple CRM workflow (lead enrichment, case summary) in two of the three frameworks; the right choice becomes obvious from the diff.