LangChain vs LangGraph

Both are catalogued under Agent Frameworks. The figures come from the GitHub API; the assessments are ours.

At a glance

At a glanceLangChainLangGraph
LicenseMITMIT
LanguagesPython, TypeScriptPython, TypeScript
DeploymentSelf-hosted / Runs locallySelf-hosted / Managed cloud
MaturityEstablishedEstablished
Stars144k39.8k
Star growth over the last 7 days+23 ★+14 ★
Forks24k6.7k
Open issues410695
Last commit15 Aug 202616 Aug 2026
ActivityActiveActive

What each one does

LangChain

Its real value is coverage: whatever model, vector store or API you need, an adapter probably already exists, which shortens the distance from idea to prototype. The abstractions have a reputation for indirection, so many teams use it for the integrations and reach for something more explicit once the control flow gets complicated.

Full entry →

LangGraph

Models an agent as an explicit graph of nodes and edges rather than a loop you cannot inspect. Durable checkpoints let a run pause for human approval and resume later, which is what makes it viable for workflows that touch production systems. The trade-off is verbosity: simple tool-calling agents need noticeably more setup here than elsewhere.

Full entry →

What you can do

LangChain

  • Swap model providers in placeinit_chat_model takes a "provider:model" string and returns a chat model behind one interface, so call sites keep using .invoke() when the provider changes.
  • Start from prebuilt agent patternsDeep Agents, a higher-level package built on LangChain, ships planning, subagents and file-system use as built-in capabilities instead of patterns you assemble yourself.
  • Move to explicit orchestrationWhen branching and state outgrow the chain-level API, LangGraph is the sibling low-level framework for writing controllable agent workflows directly.
  • Build the same design in TypeScriptLangChain.js is the equivalent JS/TS library, distributed as the langchain npm package alongside the Python one.

LangGraph

  • Resume a run after failureDurable execution persists state as the graph advances, so an agent that dies mid-run restarts from exactly the step it left off rather than the beginning.
  • Pause for human approvalInterrupts halt execution at a chosen node so a person can inspect and modify the agent state before letting it continue.
  • Trace state transitions in LangSmithDebugging is handed to LangSmith, a separate LangChain product paired with the graph: it visualises execution paths, captures state transitions and reports runtime metrics, so a wrong result is traced back to the node that produced it.
  • Start higher up with Deep AgentsDeep Agents is a package built on top of LangGraph for agents that plan, delegate to subagents and use a file system, saving you the graph wiring for those patterns.
  • Build the same graph in TypeScriptLangGraph.js is the equivalent library for JS/TS runtimes, so a Node service is not forced onto a Python sidecar.

Other comparisons