LangChain vs LlamaIndex vs CrewAI: What Each Is For in 2026
LangGraph is the control and state layer, LlamaIndex is the document and retrieval layer, and CrewAI is the role-based multi-agent layer. This comparison covers current versions, what happens when each one crashes, what their paid platforms cost, and when to use none of them.
LangChain vs LlamaIndex vs CrewAI comes down to the hard part of your job. Use LangGraph, LangChain’s runtime, when you need control over long, stateful flows. Use LlamaIndex when the hard part is getting answers out of messy documents. Use CrewAI when a team of role-based agents fits the work. Use none of them when one model and a few tools will do.
All three are MIT-licensed Python frameworks with a paid platform on top. The open-source code is free. The platform is where the bill comes from.
Below: what each is as of October 15, 2026, what happens when a run crashes, what the platforms cost, and a decision table.
LangChain vs LlamaIndex vs CrewAI: what each one is today
All three changed shape in the past year. LangChain and LangGraph shipped 1.0 in October 2025, per their PyPI release histories. LlamaIndex now leads with document parsing. CrewAI now tells you to build production apps around Flows, not Crews. I checked every version and price below on October 15, 2026.
| LangChain + LangGraph | LlamaIndex | CrewAI | |
|---|---|---|---|
| What it is now | create_agent, a configurable agent loop, built on LangGraph, a low-level orchestration runtime | A Python toolkit for agents over your data, from a company that now sells LlamaParse | A standalone framework with Crews (autonomous role-based agent teams) and Flows (event-driven, stateful workflows) |
| Latest release | langchain 1.4.6 (Oct 14, 2026); langgraph 1.2.15 (Oct 12, 2026) | llama-index 0.14.25 (Sep 21, 2026); llama-index-workflows 2.26.0 (Oct 11, 2026) | crewai 1.15.28 (Oct 14, 2026) |
| Stability promise | Breaking changes only in major versions | Still 0.x | 1.x; I found no written versioning policy |
| License | MIT | MIT | MIT |
| Crash recovery | Checkpointers; production needs a durable one such as Postgres | Ephemeral by default; you snapshot, or use a durable runtime | @persist on Flows, SQLite by default |
| Observability | LangSmith | Bring your own tracing backend | Tracing and OpenTelemetry on CrewAI’s hosted platform |
| Paid platform | LangSmith: $0 (1 seat), $39 per seat (Plus), Enterprise custom | LlamaParse: credit-based, $1.25 per 1,000 credits | CrewAI platform: Free (50 executions a month), Enterprise custom |
LangChain and LangGraph: one vendor, two layers
“LangChain” now means two products. The LangChain overview says “LangChain’s agents are built on top of LangGraph,” which gives them durable execution, human-in-the-loop support, and persistence. It points to LangGraph, “our low-level orchestration framework,” for workflows that mix fixed and model-driven steps.
LangChain is the convenience layer. LangGraph is where the state machine lives. You do not need to write a graph to get approval pauses: create_agent supports them through HumanInTheLoopMiddleware, and the human-in-the-loop docs note that it “requires checkpointing to handle interrupts.” Write LangGraph nodes and edges directly for custom control flow.
The stability story is the strongest of the three. The release policy says breaking changes to the public API “will only occur in major version releases.” The 1.0 line stays active until 2.0 ships, then gets at least one more year of maintenance. The old 0.3 line gets security and critical fixes “Until December 2026.”
Decision rule: if any of your code still runs on LangChain 0.3, put the 1.x migration on the plan for this quarter. That support ends in December 2026, weeks from now.
The risk is a demo that “has memory” and a production service that does not. The checkpointer docs mark the in-memory and SQLite savers for experimentation and local work. For production they list durable options: PostgresSaver, MongoDBSaver, and an Azure Cosmos DB saver. Before launch, restart the container mid-conversation and confirm the thread picks up where it left off.
What does LangSmith cost to run a LangGraph agent?
LangSmith is the paid platform for tracing, evals, and deployment. Per the LangSmith pricing page, Developer is $0 for one seat with 5,000 base traces a month. Plus is $39 per seat with 10,000 base traces. Enterprise is custom and is the only tier with hybrid or self-hosted options. A trace is one run of your app. Base traces keep 14 days of history; extended traces keep 180 days for a fee.
Deployment is metered in LangChain Standard Units (LSUs), at $1 each: 0.0675 LSU per vCPU-hour and 0.0090 per GiB-hour for runtime, 0.177 per vCPU-hour and 0.025 per GiB-hour for the database. Plus includes one small serverless deployment.
Worked example (hypothetical). Say five engineers on Plus run one always-on Dedicated Small deployment for 730 hours. The published sizes give Dedicated Small a runtime of 3 vCPU and 6 GiB and a database of 1 vCPU and 4 GiB.
- Runtime: 3 × 730 × 0.0675 = 147.83 LSU, plus 6 × 730 × 0.009 = 39.42 LSU.
- Database: 1 × 730 × 0.177 = 129.21 LSU, plus 4 × 730 × 0.025 = 73.00 LSU.
- Total: $389.46 a month, plus 5 × $39 = $195 in seats. About $584 a month.
That excludes autoscaled extra replicas, storage, extended retention, and trace overage. The pricing page also says “Pay as you go thereafter” for traces without listing a rate. An agent that runs 1,000 times a day creates about 30,000 traces a month, three times the Plus allowance. Get the overage rate in writing before you sign.
LlamaIndex: a document company with a framework attached
The framework docs call it “our original open-source toolkit for RAG and agents” and note that “LlamaCloud is now LlamaParse.” The framework still gives you indexes, query engines, prebuilt agents such as FunctionAgent, and Workflows, which the docs describe as event-driven, multi-step processes with branching, retries, and human review.
Pick LlamaIndex for the document side. If a scanned PDF loses its tables, no orchestration framework fixes that. Better parsing does. For when to add an agent loop to retrieval, see agentic RAG vs traditional RAG.
Durability is opt-in. The durable workflows docs say “Workflows are ephemeral by default.” You snapshot with Context.to_dict() and resume with Context.from_dict(), or use a plugin runtime such as DBOS that journals each step to a database. Read the fine print: “Resume is at-least-once, and step side effects need to be safe to repeat.” A step that was running at snapshot time reruns from the top. Instance attributes are not saved. If one value in state cannot be serialized, the whole snapshot fails.
Decision rule: if a Workflow step sends an email, posts a payment, or writes a record, add an idempotency key before you add checkpointing. The durable execution guide covers how.
My caution: the core package is still 0.x. Pin exact versions and read the changelog before each minor bump.
Where the LlamaParse bill comes from
LlamaParse is priced in credits. The LlamaParse pricing docs list $1.25 per 1,000 credits and four parse tiers: Fast at 1 credit per page, Cost-effective at 3, Agentic at 10, and Agentic Plus at 45. Layout extraction adds 3 credits per page on any tier.
Worked example (hypothetical). Say you parse 50,000 pages a month.
| Tier | Credits per page | Monthly credits | Monthly cost |
|---|---|---|---|
| Cost-effective | 3 | 150,000 | $187.50 |
| Agentic | 10 | 500,000 | $625.00 |
| Agentic Plus | 45 | 2,250,000 | $2,812.50 |
Adding layout extraction to any row adds 150,000 credits, or $187.50.
The spread between the Cost-effective and Agentic Plus tiers is 15 times. That choice moves your cost more than the framework choice does. My recommendation: run 200 representative pages through each tier, score the extracted fields against a hand-checked answer key, and pick the cheapest tier that clears your accuracy bar.
CrewAI: Crews for autonomy, Flows for control
CrewAI is a standalone framework with its own primitives, per its GitHub README. It requires Python 3.10 or later and below 3.14. A TypeScript team can still use it, but only as a separate Python service it calls over an API.
The CrewAI introduction is clear about its two building blocks. Crews are “teams of autonomous agents that collaborate to solve specific tasks.” Flows “allow you to create structured, event-driven workflows that manage state and control execution.” The recommendation is direct: “For any production-ready application, start with a Flow,” and drop a Crew into a Flow step when a task needs autonomous teamwork.
The mechanism depends on the Crew’s process. Per the processes docs, a sequential Crew runs tasks in “the predefined order in the task list.” In a hierarchical Crew, “Tasks are not pre-assigned; the manager allocates tasks to agents based on their capabilities.” The manager-driven mode suits open-ended research, but its path can change between runs, which makes it harder to test and audit. A Flow fixes the path in code and lets the model work inside each step. The multi-agent systems guide covers when a team of agents beats one agent.
The Flows docs show @start, @listen, and @router for wiring steps, Pydantic models for typed state, and @persist for saving state, with SQLite as the default backend. You resume a run by passing its id to kickoff. @human_feedback, which needs CrewAI 1.8.0 or later, pauses a Flow for review.
Failure mode to check early (my inference, not from the docs): a SQLite file on a container’s local disk disappears on redeploy. On ephemeral containers, move persistence to a mounted volume or a server database before you rely on resume.
For your security review: CrewAI collects anonymous telemetry by default. The README says it skips prompts and task data unless you set share_crew, and OTEL_SDK_DISABLED=true turns it off. Per the CrewAI pricing page, the free tier of CrewAI’s hosted platform allows 50 workflow executions a month and two automations. SSO and role-based access control are Enterprise only.
Which one survives a crash? A one-day kill test
Docs describe intent. A kill test shows behavior. Before you commit, build the same five-step flow in each candidate: fetch a document, extract fields, write a record, pause for human approval, send a notification. Then run these drills.
| Drill | How to run it | Pass if | What the docs lead you to expect |
|---|---|---|---|
| Hard kill | Kill the process after step 3, restart | Run resumes at step 4; the record is written once | LangGraph: resumes with a persistent checkpointer, loses everything with InMemorySaver. LlamaIndex: only if you snapshotted or use a durable runtime; in-flight steps rerun. CrewAI: resumes from the last persisted Flow state; test whether a half-finished step reruns. |
| Long pause | Leave the approval open 24 hours, restart the server, then approve | Run finishes with the original inputs | All three need state outside the process |
| Redeploy | Ship a new version with one added state field, then resume an old run | Old run finishes, or fails loudly | LangGraph’s compatibility guide: new fields must be optional; renames go add-then-remove; tightening a type or renaming a node breaks paused threads. Test the others. |
| Trace lookup | Pick one run from yesterday | You see every model call, tool call, and the approver in under 5 minutes | Depends on your tracing setup, see below |
A double-written record or a lost approval is a production incident, and “the framework supports persistence” prevents neither. For the tracing check, the observability tools guide compares backends. For where approval gates belong, see human in the loop for AI agents.
When should you use none of them?
Many production agents need none of the three. For one model, a few tools, and a request that finishes in seconds, the loop is a few dozen lines: call the model, run the requested tool, append the result, repeat. A framework adds a dependency, an upgrade cycle, and a layer between you and the prompts.
Model vendors also ship thin SDKs. The OpenAI Agents SDK keeps to agents, handoffs, and guardrails, plus sessions and tracing. Its stated goal is “few enough primitives to make it quick to learn,” and it works with non-OpenAI models. Anthropic’s Claude Agent SDK and Google’s ADK fill the same slot for their models.
Decision rule (mine): start with plain code or a vendor SDK when the run finishes in one request, no step needs a human pause, and no step depends on hard document parsing. If one of those breaks later, adopt the matching framework: LangGraph for pauses and long runs, LlamaIndex for documents.
The general method for picking any framework is in how to choose an AI agent framework. For visual tools, see n8n vs custom code for AI agents.
Which should you pick? A decision table by situation
| Your situation | Pick | Why | Watch out for |
|---|---|---|---|
| One model, a few tools, answers in seconds | No framework, or a vendor SDK | Least code to own and debug | Hand-rolled retries that repeat side effects |
| Answers depend on scanned PDFs, tables, or forms | LlamaIndex, with LlamaParse if parsing is the bottleneck | Parsing quality decides answer quality | Tier cost; 0.x upgrades |
| Long-running flow with approvals that must survive restarts | LangGraph with a durable checkpointer such as PostgresSaver | Checkpointed state per thread, 1.x stability policy | State schema changes while threads are paused |
| Tool-calling agent, some calls need human approval | LangChain create_agent with HumanInTheLoopMiddleware | Approval pauses without writing a graph; drop to LangGraph later if needed | It still needs a durable checkpointer |
| Business team wants a role-based multi-agent prototype this month | CrewAI, Crew inside a Flow | Roles and delegation are its native model | Run-to-run path changes; SQLite persistence |
| Retrieval-heavy agent that also needs approvals | LlamaIndex for retrieval, wrapped as a tool in a LangGraph flow | Each layer does what it is best at | Two upgrade cycles to track |
| TypeScript or JavaScript stack | LangChain.js and LangGraph.js, or a vendor SDK | CrewAI needs a Python runtime, so it would be a separate service | Confirm the feature you need exists in the JS version |
| Platform must run in your own cloud | Any of the three as open source, or an Enterprise tier | LangSmith and CrewAI limit self-hosted platforms to Enterprise | Rebuilding tracing and deployment yourself |
Two mismatches to avoid: a hierarchical Crew for a fixed approval workflow, and LangGraph when the real problem is bad parsing.
Bottom Line
LangGraph owns state and control. LlamaIndex owns documents and retrieval. CrewAI owns role-based teams, and its own docs say to wrap them in Flows for production.
Pick by the hard part of your job, then run the kill test before you commit. If nothing in your job is hard in those three ways, write the loop yourself.
FAQ
Is LangChain the same thing as LangGraph?
No. They are separate packages from the same company. LangChain’s agents run on the LangGraph runtime, and you can use LangGraph directly for custom graphs.
Can I use LlamaIndex and LangGraph in the same system?
Yes. LlamaIndex’s docs treat a RAG pipeline as one tool an agent can call, so you can expose a LlamaIndex query engine as a tool inside a LangGraph node. The cost is two upgrade schedules to track.
Is CrewAI built on LangChain?
No. CrewAI’s README calls it a standalone Python framework with its own primitives. The very first release, 0.1.0, did list LangChain as a dependency on PyPI, so older tutorials may say otherwise.
Can LlamaIndex Workflows resume after a crash without a checkpoint loop?
Yes, with a durable runtime. LlamaIndex documents a DBOS runtime that journals step transitions to a database, and its WorkflowServer can run with the same plugin. Keep API clients and model handles in a Resource, which is re-created on resume instead of serialized.
Which of the three is most production-ready?
On written stability promises, LangChain and LangGraph lead. When 2.0 ships, the 1.0 line still gets at least a year of security and critical fixes. CrewAI reached 1.0 on PyPI in October 2025, and LlamaIndex’s core is still 0.x. In my view, your persistence, tracing, and idempotency setup matters more than the framework.
Do I need LangSmith to use LangGraph?
No. The libraries are MIT-licensed and run without it, and persistence works with your own Postgres through PostgresSaver. The free Developer tier (one seat, 5,000 traces a month) is enough to judge whether the paid tier earns its cost.
Three Ways to Work With TMA
Need an agent built? We deploy production AI agents in your infrastructure. Working pilot. Real data. Measurable ROI. → Schedule Demo
Want to co-build a product? We’re not a dev agency. We’re co-builders. Shared cost. Shared upside. → Partner with Us
Want to join the Guild? Ship pilots, earn bounties, share profit. Community + equity + path to exit. → Become an AI Architect
Need this implemented?
We design and deploy enterprise AI agents in your environment with measurable ROI and production guardrails.
About the Author
Chase Dillingham
Founder & CEO, TrainMyAgent
Chase Dillingham is the founder and CEO of TrainMyAgent. He spent 15+ years as an enterprise architect deploying production systems. Now he builds AI agent platforms that deliver measurable ROI.
Connect with Chase Dillingham on LinkedIn