aliteq.

LangGraph or CrewAI: which should you build your agent on, and when does each break?

Pick CrewAI when the job is a team of role-based agents and you want it running today; pick LangGraph when you need exact control over every step, pauses for human approval and resumable runs. Where each one breaks, from their own docs, checked Nov 3, 2026.

Aliteq TeamUpdated Published 9 min read
LangGraph or CrewAI? Thumbnail with a screenshot of LangGraph's docs warning that side effects before an interrupt must be idempotent, and a card showing GitHub stars read Nov 3, 2026: CrewAI 60.5K, LangGraph 44.4K
Share

LangGraph or CrewAI? Build on CrewAI if your agent is a small team of role-based agents and you want it working today; build on LangGraph if you need to decide every step yourself, pause for a human, and resume a run after a crash. Both are free, open-source (MIT) Python frameworks. CrewAI breaks most often when agents loop or delegate in ways you didn't plan; LangGraph breaks when you forget that a resumed step runs again from its first line. Checked on both projects' own docs, GitHub and PyPI on November 3, 2026.

The two projects in four numbers (GitHub and PyPI, Nov 3, 2026)

60.5K

CrewAI GitHub stars

crewAIInc/crewAI

44.4K

LangGraph GitHub stars

langchain-ai/langgraph

44.8M

LangGraph PyPI downloads, last month

Includes installs pulled in by other packages

2.4M

CrewAI PyPI downloads, last month

pypistats.org

Those numbers point both ways, which is why "which is more popular" doesn't settle anything. CrewAI has more GitHub stars (60,456 against 44,407 when we read them). LangGraph has far more downloads (44.8 million in the last month against 2.4 million), but download counts include every install that pulls LangGraph in as a dependency, so they measure reach, not how many people chose it. Pick by what your agent has to do.

What is the real difference between LangGraph and CrewAI?

CrewAI starts from who does the work; LangGraph starts from what happens next. In CrewAI you write agents with a role, a goal and a backstory, give them tasks, and put them in a crew. CrewAI's docs call Flows "the backbone of your AI application" and Crews "the units of work within your Flow". In LangGraph you write the graph yourself. Its docs define it as "a low-level orchestration framework and runtime for long-running, stateful agents", where "State is the shared data that nodes read and update", nodes are functions that do one step, and edges are "Fixed or conditional transitions that determine the next node."

LangGraph vs CrewAI, side by side (official docs, Nov 3, 2026)

You describe

CrewAI
Agents (role, goal, backstory), tasks, a crew; Flows around crews
LangGraph
A graph of shared state, nodes and edges

How work is ordered

CrewAI
Sequential (default) or hierarchical with a manager agent; Flows add branching and loops
LangGraph
Exactly the edges you draw, fixed or conditional

Saving and resuming a run

CrewAI
Flows: @persist, SQLite by default
LangGraph
Checkpointers (in-memory, SQLite, Postgres)

Human approval

CrewAI
Flows: @human_feedback (CrewAI 1.8.0 or later)
LangGraph
interrupt() pauses, you inspect or edit state, then resume

Built-in runaway guard

CrewAI
max_iter per agent, default 20
LangGraph
Recursion limit, default 10,007 super-steps

Licence and latest version

CrewAI
MIT, 1.15.35 (Nov 3, 2026), Python 3.10 to 3.13
LangGraph
MIT, 1.2.19 (Oct 30, 2026), Python 3.10 or later

Needs another library?

CrewAI
No
LangGraph
No. Docs examples use LangChain, but LangGraph doesn't require it

One thing older comparisons get wrong: "CrewAI has no production features" isn't true any more. CrewAI's Flows docs describe @persist, which saves flow state "across restarts or different workflow executions" (SQLite by default), and @human_feedback, which pauses a flow "to collect feedback from a human." The difference is where control lives, not whether the features exist.

When should you pick CrewAI?

Pick CrewAI when the work splits naturally into roles (a researcher, a writer, a reviewer) and you'd rather describe those roles than wire every transition. A crew runs its tasks in order by default; CrewAI's processes docs say that in the sequential process "the output of one task serving as context for the next." If you want an agent to hand out the work instead, the hierarchical process adds a manager that "allocates tasks to agents based on their capabilities, reviews outputs, and assesses task completion." It's the shortest path from an idea to a multi-agent demo you can show someone.

CrewAI also sells a hosted platform. On November 3, 2026 its pricing page listed a free Basic plan with "50 workflow executions/month", a visual editor and GitHub integration, and an Enterprise plan at custom pricing. The open-source framework itself costs nothing; you pay your model provider for the tokens.

Screenshot of CrewAI's pricing page: Basic, Free, visual editor and AI copilot, GitHub integration, 50 workflow executions/month; Enterprise, Custom, with SSO, RBAC, PII redaction and deployment on CrewAI cloud, your own VPC or your own infrastructure
CrewAI's pricing page (crewai.com/pricing), read November 3, 2026. The free plan's execution cap is outlined. · Screenshot of crewai.com by aliteq

When should you pick LangGraph?

Pick LangGraph when "it mostly works" isn't good enough: the agent touches real records, a person has to approve a step, or a long run must survive a crash and carry on. LangGraph's docs list the reasons in plain terms: "Persistence: Checkpoint state and resume after failures or pauses" and "Human-in-the-loop: Pause execution, inspect or edit state, then continue." You can mix hand-coded steps and model-driven steps in the same graph, and LangGraph "does not prescribe prompts or agent architecture", so nothing hides how your agent decides.

The price is more code and more concepts before the first run. The LangGraph docs themselves suggest a higher-level loop (LangChain agents or Deep Agents) first, and say "Use LangGraph when you need explicit control over state and control flow."

LangGraph is free; hosting is optional and sold through LangSmith. On November 3, 2026 LangChain's pricing page listed Developer at "$0 / seat per month" with no deployment, and Plus at "$39 / seat per month" with "1 free Serverless (Small) deployment included" and further deployments "charged based on resources consumed."

Screenshot of LangChain's pricing table, Deployment row: N/A on the Developer plan; on Plus, 1 free Serverless (Small) deployment included, with additional Serverless and Dedicated deployments charged on resources consumed at metering rates such as Runtime Compute 0.0675 LSU per vCPU-hour; Custom on Enterprise
The Deployment row of LangChain's pricing table (langchain.com/pricing), read November 3, 2026. The middle column is the $39-a-seat Plus plan. · Screenshot of langchain.com by aliteq

When does CrewAI break?

CrewAI's convenience is that the framework decides a lot for you. It breaks when those decisions surprise you:

  • An agent goes round in circles, then gives up. Each agent has max_iter, documented as the "Maximum iterations before the agent must provide its best answer. Default is 20." A stuck agent burns up to 20 rounds of tokens and then hands back its best guess, which can look like a real answer. Set max_iter, max_execution_time and max_rpm deliberately, and check outputs, not just exit codes.
  • The manager delegates in ways you didn't plan. In a hierarchical crew, tasks "are not pre-assigned"; the manager model chooses who does what. That's the point, and also why the same crew can take a different path on the next run. If the order matters, use the sequential process or a Flow.
  • Memory quietly calls OpenAI. The crew embedder setting is "Mostly used by memory" and defaults to {"provider": "openai"}. If you turn memory on while running another model (or a local one), set the embedder yourself.
  • A resume doesn't resume. With @persist, CrewAI's Flows docs say that if the state ID you pass "does not match any persisted state, the kickoff falls back silently." A typo in an ID starts a fresh run instead of failing loudly, so log the ID you resume from.
  • The newest Python isn't supported. On November 3, 2026 PyPI listed CrewAI 1.15.35 as requiring Python 3.10 or later but below 3.14.
Screenshot of CrewAI's Agents documentation table: Max Iterations, max_iter, int, Maximum iterations before the agent must provide its best answer. Default is 20; also Max RPM, Max Execution Time, Verbose and Allow Delegation, default False
CrewAI's agent settings (docs.crewai.com/en/concepts/agents), read November 3, 2026. The max_iter row is outlined. · Screenshot of docs.crewai.com by aliteq

When does LangGraph break?

LangGraph hides very little, so it mostly breaks where you left a gap:

  • A resumed step runs twice. This is the big one. LangGraph's interrupts docs say that on resume "the runtime restarts the entire node from the beginning—it does not resume from the exact line where interrupt was called." Anything before the interrupt() (an API call, a database write, an email) runs again. The docs' own example: an update call before the interrupt "will be re-run multiple times when the node is resumed, potentially overwriting the initial update or creating duplicate records." Put side effects after the interrupt or in their own node.
  • Loops of interrupts replay. The docs warn against while True plus interrupt() in one node: "the first resume replays 1 iteration, the second replays 2, and so on."
  • Checkpoints vanish on restart. MemorySaver and InMemorySaver "store checkpoints in RAM. When the process restarts, all checkpoints are lost." For production the docs point to a persistent checkpointer such as PostgresSaver (and warn to keep thread_id values under 255 characters there).
  • A runaway loop runs a long time. The recursion limit caps how many super-steps one run may take and raises GraphRecursionError when exceeded, but since version 1.1.4 "the default is 10,007 super-steps." A graph that loops between two model calls can spend a lot of tokens before that trips. Set recursion_limit to what your graph really needs.
  • It takes longer to get anything running. You have to design the state and the edges before the first output. For a quick experiment, that's real time.
Screenshot of LangGraph's interrupts documentation: heading 'Side effects called before interrupt must be idempotent', explaining that interrupts re-run the node they were called from, so an API call before interrupt will be re-run when the node is resumed, potentially overwriting the initial update or creating duplicate records
LangGraph's own warning about resumed nodes (docs.langchain.com, Interrupts), read November 3, 2026. · Screenshot of docs.langchain.com by aliteq

Can you start in CrewAI and move to LangGraph later?

Yes, and it's a sensible path when you don't yet know whether a multi-agent approach works for your problem. Prove the idea with a crew, then rebuild the parts that need exact control, approvals and resumable runs as a LangGraph graph. Just know it is a rebuild, not an export: the two frameworks model the work differently (roles and tasks against state and edges), so plan to rewrite the orchestration and keep your prompts and tools.

Going the other way is also fine. If you started in LangGraph and the graph is mostly "agent A, then agent B, then agent C", a CrewAI sequential crew may be less code to maintain.

Does it matter which model you run underneath?

Not for the choice of framework: both work with hosted models and with local ones. It matters for cost and speed, because an agent makes many model calls per task, and a loop multiplies them. If you plan to run the model on your own GPU, check what fits with our VRAM calculator before you buy anything, and see what AI agents can and can't do for the limits that no framework fixes.

8/ 10

Verdict

CrewAI to start fast, LangGraph to control every step

CrewAI is the faster way to a working multi-agent prototype, and with Flows it can carry state and human feedback into production. LangGraph is the better base when you need exact control, approvals and runs that resume after a crash, at the cost of more upfront design. Most failures in either come from defaults you didn't set, so set the loop limits and the persistence backend on day one.

Best for: Developers choosing an agent framework for a real project

Frequently asked

Is LangGraph better than CrewAI?
Not across the board. LangGraph gives finer control over every step, checkpoints and human approval through interrupts, which suits production workflows that must be predictable. CrewAI gets a role-based multi-agent prototype running with less code. Pick by whether control or speed matters more for your project.
Which is easier to learn, LangGraph or CrewAI?
CrewAI. You describe agents by role, goal and backstory and give them tasks. LangGraph asks you to design state, nodes and edges first, and its own docs suggest a higher-level agent loop if you don't need explicit control yet.
Are LangGraph and CrewAI free?
Yes. Both are open source under the MIT licence (GitHub, Nov 3, 2026). Hosting is optional and paid: LangSmith Plus was $39 a seat per month with one small serverless deployment included, and CrewAI's hosted Basic plan was free with 50 workflow executions a month (both read Nov 3, 2026). You also pay for model usage.
Does LangGraph need LangChain?
No. LangGraph's docs say examples often use LangChain for model and tool integrations, "but LangGraph does not require LangChain." CrewAI is a separate framework and doesn't need LangChain either.
Does CrewAI support human-in-the-loop and persistence?
Yes, through Flows. The @persist decorator saves flow state (SQLite by default) so you can resume a run, and the @human_feedback decorator, in CrewAI 1.8.0 or later, pauses a flow to collect feedback from a person.
Why does my LangGraph node run twice after an interrupt?
Because that's how interrupts work. When you resume, LangGraph restarts the whole node from the beginning, so any code before interrupt() runs again. Make that code idempotent, or move side effects after the interrupt or into a separate node.
Why does my CrewAI agent stop with a half-finished answer?
It probably hit max_iter, which defaults to 20 iterations; at that point the agent must give its best answer. Raise it if the task really needs more steps, or narrow the task and tools so the agent finishes sooner.
Which is more popular, LangGraph or CrewAI?
It depends on the measure. On Nov 3, 2026 CrewAI had more GitHub stars (about 60.5K against 44.4K), while LangGraph had far more PyPI downloads in the last month (44.8M against 2.4M), partly because other packages install it as a dependency.

For the wider field, including the OpenAI Agents SDK and no-code options, see our AI agent frameworks comparison and n8n for AI agents.

Found this useful? Share it

Share

Aliteq

Aliteq Team

Aliteq started in 2019 as a PC hardware shop and is now a US-based publication. We build the VRAM and cost calculators on this site, track live cloud-GPU prices, and write guides with AI-assisted drafting that we check against primary sources before publishing.

The Aliteq brief

The tech worth knowing — hardware, AI, gaming, deals. No spam, unsubscribe anytime.

Keep reading