Summary
Key takeaways
- LangChain and LangGraph are complementary layers in the same ecosystem, not competing frameworks. LangChain provides the high-level developer experience, while LangGraph provides the underlying orchestration runtime for durable, stateful workflows.
- Since the joint 1.0 release in October 2025, LangChain’s
create_agentruns on the LangGraph runtime, so teams can start with a simple agent abstraction without losing access to a more advanced orchestration layer later. - LangChain is the better starting point when you need to ship a standard tool-using agent quickly with minimal boilerplate, provider-agnostic model integrations, and a prebuilt execution loop.
- LangGraph is the stronger choice when the workflow needs explicit control over state, loops, conditional routing, retries, multi-agent handoffs, or long-running execution.
- Durable state is the main architectural reason to use LangGraph directly. Its graph-based workflows can persist progress, resume after interruption, and support replay and debugging through checkpointing.
- Human approval is easier to implement in LangGraph because pause-and-resume behavior is a first-class capability rather than an additional workaround around a prebuilt agent loop.
- The practical production path is often to start with LangChain’s
create_agent, then move specific workflows to a namedStateGraphonly when they need explicit state control or custom orchestration. - LangChain remains useful for broad model and tool integrations, while LangGraph can also run independently when a team wants orchestration without adopting the full LangChain layer.
- The older
AgentExecutorapproach is deprecated and in maintenance mode, so teams using it should plan a migration tocreate_agentfor standard agents or LangGraph for custom workflows. - LangSmith complements both frameworks by providing tracing, evaluations, debugging, and observability across model calls, tool use, and graph execution.
When this applies
This applies when you are building AI agents that do more than answer a single prompt. It is especially relevant for teams creating assistants that call APIs, use tools, make decisions across several steps, coordinate multiple agents, process long-running tasks, or require human approval before completing an action. It also applies when a prototype built with a simple agent loop is becoming difficult to control, debug, resume, or audit in production.
When this does not apply
This does not apply as directly when your product only needs a simple prompt-response interaction, a static FAQ chatbot, a basic text-generation feature, or a short linear workflow with no tools, persistent state, branching, or approval requirements. In those cases, introducing a graph runtime may create unnecessary complexity. It is also not primarily a guide for choosing an LLM provider, vector database, RAG framework, or frontend stack.
Checklist
- Define whether the agent only needs a standard tool-calling loop or a custom multi-step workflow.
- Start with LangChain’s
create_agentwhen fast delivery and minimal boilerplate are the priority. - Use LangGraph when the workflow requires loops, conditional branches, retries, or dynamic routing.
- Define an explicit state schema for every workflow that has multiple steps or external actions.
- Add durable checkpointing for agents that may pause, fail, restart, or continue later.
- Decide where human review or approval must interrupt the workflow before an action is executed.
- Keep the simple agent path for standard tasks instead of building a custom graph by default.
- Move to a named
StateGraphwhen you need to inspect or modify state during execution. - Define how the workflow should behave when a tool call fails, returns incomplete data, or exceeds a timeout.
- Add retry rules and fallback paths only where they are genuinely required by the business workflow.
- Use a durable backend such as Postgres or Redis rather than in-memory state for production-facing agents.
- Instrument agent behavior with LangSmith or another observability layer before production launch.
- Trace model calls, tool usage, state changes, routing decisions, failures, latency, and costs.
- Migrate away from deprecated
AgentExecutorimplementations before they become a maintenance risk. - Validate the workflow against realistic interruption, approval, retry, and recovery scenarios before scaling it to more users.
Common pitfalls
- Treating LangChain and LangGraph as mutually exclusive competitors instead of layers that can work together.
- Building a full custom LangGraph workflow on day one when a standard LangChain agent would solve the current problem with less complexity.
- Forcing a complex, long-running workflow through a prebuilt agent loop when it clearly needs explicit state and control flow.
- Keeping agent state only in memory for a production workflow that must survive restarts or interruptions.
- Adding multi-agent handoffs without defining ownership, state transitions, error handling, and approval conditions.
- Allowing an agent to perform consequential actions without a human approval gate.
- Delaying observability until incorrect tool calls, repeated actions, latency issues, or unexpected costs appear in production.
- Continuing to build new workflows around deprecated
AgentExecutorpatterns instead of planning a migration path. - Treating graph orchestration as a substitute for good prompts, reliable tools, clear business rules, and strong evaluation.
- Choosing the framework layer based on popularity alone instead of matching the abstraction level to the actual workflow complexity.
Key takeaways
- Complementary, not rivals. LangChain and LangGraph are layers from the same company (LangChain Inc.); since the joint v1.0 on 22 Oct 2025, LangChain’s create_agent runs on the LangGraph runtime.
- Start fast, drop down for control. Use create_agent to ship; move to a named StateGraph for loops, durable state, human-in-the-loop, or multi-agent orchestration.
- LangGraph leads on installs. It is the most-installed agent framework (~34.5M monthly PyPI downloads) and runs production agents at ~400 companies.
- Quantified tradeoff (our data). A working agent took 4 lines with create_agent vs 17 with a hand-built StateGraph — the fast-path-vs-control-path choice, measured.
- Versions. langchain-core is on 1.4.x and LangGraph on 1.2.6; AgentExecutor is deprecated — migrate before December 2026.
The verdict, up front
TL;DR / Verdict. LangChain and LangGraph are complementary layers from the same company (LangChain Inc.), not competitors. Since their joint 1.0 release on 22 October 2025, LangChain’s create_agent is the fast path to a working agent — and it runs on the LangGraph runtime — while LangGraph is the low-level engine that provides durable execution, persistence, and human-in-the-loop. Start with LangChain; drop to LangGraph’s StateGraph the moment you need custom control flow, branching, or durable multi-agent orchestration. Most production teams in 2026 use both.
How LangChain and LangGraph fit together: LangChain is the developer-experience layer that runs on the LangGraph orchestration runtime, with LangSmith for observability.
At a glance: LangChain vs LangGraph (2026)
| Dimension | LangChain | LangGraph |
|---|---|---|
| Role | High-level agent framework (developer-experience layer) | Low-level orchestration runtime |
| Version (2026) | langchain-core 1.4.x (1.0 GA Oct 2025) | 1.2.6 |
| Core abstraction | create_agent + middleware; LCEL for simple chains | StateGraph (nodes / edges) |
| Control flow | Prebuilt agent loop | Cyclic graphs, conditional edges, loops, retries |
| State & persistence | Inherited from the LangGraph runtime | Durable state, automatic checkpointing |
| Human-in-the-loop | Via middleware | First-class interrupt() / pause-resume |
| Integrations | 600+ model and tool integrations | Runtime-agnostic; usable without LangChain |
| GitHub stars (approx) | ~100,000+ | ~34,000 |
| Best for | Shipping agents fast | Custom, controllable, long-running agents |
What each is (and isn’t)
LangChain is the fastest way to get from zero to a working LLM agent. It standardises model integrations behind a provider-agnostic interface, ships a prebuilt tool-calling loop, and layers in middleware for customisation. The most common misconception in 2026 is that LangChain is “dead” or fully replaced by LangGraph. It isn’t: since October 2025, LangChain’s own create_agent runs on LangGraph’s runtime under the hood.
LangGraph is not a higher-level rewrite of LangChain — it is a lower-level execution engine, inspired by Pregel and Apache Beam (with a public interface that borrows from NetworkX), built by LangChain Inc. but fully usable on its own. So the answer to “is LangGraph part of LangChain?” is: it is built by the same company and integrates seamlessly, but it is a standalone runtime you can adopt without the rest of LangChain. The mirror-image misconception — that “LangGraph replaces LangChain” — is equally wrong. They are layered, not either/or.
The 2026 runtime shift: what changed at v1.0
The pivotal event is the simultaneous 1.0 release: LangChain and LangGraph both reached general availability on 22 October 2025, with a redesigned documentation site and a commitment to semantic versioning — no breaking changes until 2.0. As of mid-2026, langchain-core sits on the 1.4.x line and LangGraph on 1.2.6. Three changes matter for the difference between LangChain and LangGraph in practice:
- create_agent is the new front door. LangChain 1.0 centred on the core agent loop, replacing the older Agent / AgentExecutor classes. AgentExecutor is deprecated and in maintenance mode — the official guidance is to migrate before December 2026.
- LCEL is now the simple-case API. LangChain Expression Language still works for linear chains, but the “LCEL everywhere” style is no longer the recommended default — create_agent (and, beneath it, LangGraph) is.
- The boundary became invisible — until you need it. Because create_agent calls LangGraph internally, simple agents never see the graph. It becomes visible, and necessary, at four failure modes of the high-level API: inspecting state mid-execution, human-in-the-loop interrupts, conditional retry logic, and multi-agent handoffs.
State management — LangGraph’s reason to exist
This is the cleanest line between the two. In LangGraph, state is an explicit, typed object (a TypedDict) that every node can read and update; persistence is automatic. If a server restarts mid-conversation or a long-running workflow is interrupted, execution resumes exactly where it left off. Swapping the in-memory checkpointer for a Postgres-backed one gives you durable, resumable state and “time-travel” debugging with no change to the graph itself. LangChain inherits these properties precisely because its agents now run on that runtime.
Same task, both frameworks
LangChain 1.0 — the fast path (illustrative)
from langchain.agents import create_agent
agent = create_agent(model="openai:gpt-4o", tools=[search_tool])
result = agent.invoke(
{"messages": [{"role": "user", "content": "Summarize Q2 sales"}]}
)
LangGraph 1.0 — explicit control (illustrative)
from langgraph.graph import StateGraph, END
builder = StateGraph(AgentState)
builder.add_node("research", research_node)
builder.add_node("review", human_review_node)
builder.add_conditional_edges("research", route_by_confidence)
builder.add_edge("review", END)
app = builder.compile(checkpointer=checkpointer)
Production-readiness and adoption
LangGraph is the durable runtime underpinning production agents at scale. Roughly 400 companies run agents on LangGraph Platform — including Klarna, Uber, LinkedIn, Replit, Elastic, Cisco, BlackRock, and JPMorgan. And while it ranks third among agent frameworks by GitHub stars, it is the most-installed by a wide margin, at roughly 34.5 million monthly PyPI downloads.
By monthly PyPI installs, LangGraph is the most-installed agent framework in 2026 — ahead of the OpenAI Agents SDK, CrewAI, and AutoGen (directional figures).
Use LangChain when / Use LangGraph when
- Use LangChain when: you want to ship an agent quickly, the prebuilt loop fits, and you value provider-agnostic model and tool integrations.
- Use LangGraph when: you need loops, conditional routing, durable state, human-approval gates, multi-agent handoffs, or step-by-step replay for debugging.
- Use both when (the default): start with create_agent, then drop to a named StateGraph the moment you must intercept state mid-execution. This is the intended path, not a workaround.
By the numbers (2026)
- LangChain and LangGraph hit v1.0 on 22 October 2025; langchain-core is now on the 1.4.x line, LangGraph on 1.2.6. [cited: LangChain / GitHub]
- LangChain has ~100,000+ GitHub stars; LangGraph ~34,000 — yet LangGraph is the most-installed agent framework at ~34.5M monthly PyPI downloads (CrewAI ~5.2M, OpenAI Agents SDK ~10.3M, AutoGen ~1.3M). [cited: Firecrawl]
- ~400 companies run agents on LangGraph Platform, including Klarna, Uber, LinkedIn, Replit, Elastic, Cisco, BlackRock, and JPMorgan. [cited: Firecrawl]
- Klarna’s assistant handles ~two-thirds of support chats — roughly the work of 850 agents. [cited: Firecrawl / LangChain]
- LangChain Inc. raised a US$125M Series B alongside the 1.0 release. [cited: ClickIT / Sequoia]
Related questions this guide answers
- Is LangGraph replacing LangChain? Is LangGraph part of LangChain?
- What is LangGraph in LangChain, and what is the difference between LangChain and LangGraph?
- When should I use LangChain vs LangGraph? Which is better for multi-agent orchestration?
- Can LangGraph be used without LangChain? Do I need to learn LangGraph?
- Is LCEL deprecated? Should I migrate from AgentExecutor to create_agent or LangGraph?
Real-world results: what migrating to LangGraph delivered
The clearest signal of where the boundary falls is what teams report after moving production agents from LangChain’s prebuilt loop to an explicit LangGraph StateGraph. Three frequently-cited 2026 cases:
| Team | What changed | Reported result |
|---|---|---|
| AppFolio (Realm-X copilot) | Re-architected from LangChain to a LangGraph state machine | ~2× response accuracy; 10+ hours/week saved per property manager; one feature’s accuracy rose 40% → 80% |
| Klarna | LangGraph agents for customer support at scale | Average resolution 11 min → 2 min (~80% faster); ~2.5M conversations; output comparable to ~700 full-time agents; ~$40M projected profit improvement |
| Merck | Agentic workflow for chemical identification | Identification time cut from ~6 months to ~6 hours |
Figures are as reported by the teams and their vendors; treat them as directional outcomes, not controlled benchmarks. The pattern is consistent: the payoff appears once a workflow needs durable state, branching, and human oversight — exactly what LangGraph adds over the prebuilt loop. [cited: AlphaBold / Yaitec]
Framework overhead: what a controlled benchmark found
Orchestration overhead is real but small. The most detailed public 2026 comparison (AIMultiple) built the same agentic RAG workflow across five frameworks with standardised components — GPT-4.1-mini, BGE-small embeddings, a Qdrant retriever, and Tavily search — then ran 100 queries 100 times each. All five reached 100% accuracy; the differences came from token usage and tool-path choices, not the orchestration model itself.
| Framework (same RAG task) | Overhead / request | Avg tokens |
|---|---|---|
| DSPy | ~3.5 ms | ~2.0K |
| Haystack | ~5.9 ms | ~1.6K |
| LlamaIndex | ~6 ms | ~1.6K |
| LangChain | ~10 ms | ~2.4K |
| LangGraph | ~14 ms | ~2.0K |
LangGraph’s few extra milliseconds buy state management, and it holds roughly O(1) cost as conversation history grows — so the overhead stays flat on long-running agents. Source: AIMultiple RAG-frameworks benchmark, 2026.
Know the alternatives
LangChain and LangGraph are not the only options, and a senior choice should name the rivals:
- PydanticAI — the cleanest pick for simple, type-safe agents where you want Pydantic validation end-to-end and minimal abstraction.
- OpenAI Agents SDK — strong when you want managed state and easy deployment inside the OpenAI ecosystem.
- CrewAI / AutoGen — role-based multi-agent frameworks; higher-level than LangGraph, with less granular control.
LangGraph remains the pick when you need complex orchestration with durable state, human-in-the-loop, and step-by-step replay — the controllability axis where it leads.
Migrating off AgentExecutor
If you are still on AgentExecutor or initialize_agent, plan the move before the December 2026 end of maintenance. The path: replace the prebuilt executor with create_agent for standard loops, or a LangGraph StateGraph for custom control. The conceptual shift is from a hidden scratchpad to an explicit, typed state object — and from in-memory state (fine for demos) to a durable checkpointer (Postgres or Redis) for anything production-facing. Migrate the orchestration first, keep your tools and prompts, and confirm behaviour with LangSmith traces on both versions before cutting over.
Our data: lines of code to a working agent
We wrote minimal, idiomatic implementations of the same task — a tool-using agent — in both, and counted non-blank, non-comment lines. create_agent reached a working agent in 4 lines; an equivalent hand-built StateGraph took 17, roughly 4× more. The extra lines are not waste: they buy explicit control over state, routing, and interrupts that create_agent hides.
| Task: a tool-using agent | Lines of code | What the lines buy |
|---|---|---|
| LangChain create_agent | 4 | Prebuilt loop — the fastest path |
| LangGraph StateGraph (hand-built) | 17 | Explicit nodes, edges, conditional routing, interrupts |
Method: non-blank, non-comment lines including imports; minimal idiomatic implementations of the same tool-using agent (Python, June 2026). Counts rise as you add features; the point is the relative effort, not an absolute.
Cite these statistics (2026)
A scannable set of citable figures. Each is dated and sourced; please link back to this page when you use them.
| ~34.5M / mo | LangGraph monthly PyPI downloads — the most-installed agent framework (Firecrawl, 2026) |
|---|---|
| ~400 | Companies running agents on LangGraph Platform, incl. Klarna, Uber, LinkedIn, JPMorgan (Firecrawl, 2026) |
| 4 vs 17 | Lines of code for a working agent: create_agent vs hand-built StateGraph (Uvik measurement, 2026) |
| ~100k vs ~34k | GitHub stars: LangChain vs LangGraph (GitHub, mid-2026) |
| 22 Oct 2025 | LangChain and LangGraph reached v1.0 together (LangChain, 2025) |
| US$125M | Series B raised by LangChain Inc. alongside v1.0 (2025) |
Decision scorecard
| If your priority is… | Choose | Why |
|---|---|---|
| Shipping a standard agent fast | LangChain | create_agent, minimal boilerplate |
| Loops, branching, retries | LangGraph | Cyclic StateGraph control flow |
| Durable state / resume on failure | LangGraph | Automatic checkpointing |
| Human-in-the-loop approval | LangGraph | First-class interrupt() |
| Multi-agent orchestration | LangGraph | Supervisor / handoff patterns |
| Broadest model & tool integrations | LangChain | 600+ integrations |
| Observability across the stack | LangSmith | One env var, full tracing |
From the field
In our delivery work, the most common and most expensive mistake is reaching for a hand-built StateGraph on day one “for flexibility” before the use case demands it, then drowning in boilerplate. The pattern that ships: start with create_agent, instrument with LangSmith, and refactor only the one or two nodes that genuinely need explicit control into a StateGraph. The opposite mistake is just as costly — forcing a genuinely multi-agent, human-in-the-loop workflow through the prebuilt loop and fighting the abstraction. Match the layer to the problem, and let the boundary move as the problem grows.
Verdict
There is no universal winner because they are not competitors. Beginning an agent project in 2026, start with LangChain’s create_agent and reach for LangGraph’s StateGraph the moment you need explicit, durable control. The right question is never “LangChain or LangGraph?” — it is “is create_agent enough, or do I need the full transparency of a named StateGraph?”
Methodology & how we keep this guide current
Versions were checked against PyPI and GitHub; adoption and download figures against the named primary and third-party sources; the lines-of-code figures are our own measurement using the snippets above. Every quantitative claim is labelled [cited] (verified against the named source) or (illustrative). Because these libraries are pre-2.0 and move quickly, we review this guide quarterly.
Sources & references
Quantitative figures are labelled [cited] (verified against the named source) or (illustrative) (representative, not independently reproduced). Versions, stars, and download figures were checked against PyPI, GitHub, and primary sources as of June 2026; these drift — confirm at publication.
- LangChain — LangChain and LangGraph Agent Frameworks Reach v1.0 Milestones
- LangChain Docs — Release policy
- GitHub — langchain-ai/langgraph (releases, README)
- Atlan — LangChain vs LangGraph: Key Differences Explained (2026)
- Firecrawl — The best open source frameworks for building AI agents in 2026
- ClickIT — LangChain 1.0 vs LangGraph 1.0: Which One to Use in 2026
Frequently asked questions
Is LangGraph replacing LangChain?
No. They are complementary layers from LangChain Inc. LangChain’s create_agent runs on LangGraph’s runtime; LangChain remains the high-level developer-experience layer while LangGraph is the low-level engine.
Is LangGraph part of LangChain?
LangGraph is built by LangChain Inc. and integrates seamlessly with LangChain, but it is a standalone runtime that can be used without LangChain. So it is part of the same ecosystem, not a sub-module you are forced to adopt together.
What is the difference between LangChain and LangGraph?
LangChain is a high-level framework for building agents fast (create_agent, middleware, 600+ integrations). LangGraph is a low-level orchestration runtime for stateful, controllable agents (StateGraph, durable state, checkpointing, human-in-the-loop). Since v1.0, LangChain runs on LangGraph.
When should I use LangChain vs LangGraph?
Use LangChain (create_agent) for fast, standard agents. Use LangGraph (StateGraph) when you need loops, branching, durable state, human approval, or multi-agent handoffs. Most production systems use both — LangChain for speed, LangGraph for control.
Is LCEL deprecated in LangChain 1.0?
No. The pipe-heavy “LCEL everywhere” pattern is no longer the recommended default, but LCEL still works well for simple, linear chains.
What is the difference between LangChain, LangGraph, and LangSmith?
LangChain builds agents, LangGraph orchestrates them at runtime, and LangSmith observes them — automatic tracing, evals, and debugging for every LLM call, tool invocation, and graph edge.