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 glance | LangChain | LangGraph |
|---|---|---|
| License | MIT | MIT |
| Languages | Python, TypeScript | Python, TypeScript |
| Deployment | Self-hosted / Runs locally | Self-hosted / Managed cloud |
| Maturity | Established | Established |
| Stars | 144k | 39.8k |
| Star growth over the last 7 days | +23 ★ | +14 ★ |
| Forks | 24k | 6.7k |
| Open issues | 410 | 695 |
| Last commit | 15 Aug 2026 | 16 Aug 2026 |
| Activity | Active | Active |
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 place —
init_chat_modeltakes 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 patterns — Deep 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 orchestration — When 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 TypeScript — LangChain.js is the equivalent JS/TS library, distributed as the
langchainnpm package alongside the Python one.
LangGraph
- Resume a run after failure — Durable 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 approval — Interrupts halt execution at a chosen node so a person can inspect and modify the agent state before letting it continue.
- Trace state transitions in LangSmith — Debugging 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 Agents — Deep 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 TypeScript — LangGraph.js is the equivalent library for JS/TS runtimes, so a Node service is not forced onto a Python sidecar.