LangChain vs. LangGraph vs. Deep Agents
Three tools, one ecosystem. LangChain is the framework, LangGraph is the runtime, Deep Agents is the batteries-included harness. Here is when to use each.
Quick Reference
- →LangChain = agent framework — unified interface, composable chains, middleware
- →LangGraph = agent runtime — stateful graphs, persistence, human-in-the-loop
- →Deep Agents = agent harness — batteries-included, auto compression, subagent spawning
- →Deep Agents is built on LangChain, which runs on LangGraph under the hood
- →Start with Deep Agents, drop to LangChain for customization, use LangGraph for low-level control
How They Relate
These are not competing tools — they are layers of the same stack. LangGraph is the lowest level: a runtime for building stateful, graph-based workflows. LangChain sits on top: a framework that gives you a unified interface over LLMs, tools, memory, and chains. Deep Agents sits on top of that: a fully pre-configured agent harness you can run without writing any infrastructure code. Every Deep Agent is a LangChain agent. Every LangChain agent runs on LangGraph under the hood.
LangGraph — the runtime
Stateful graph execution engine. Nodes, edges, checkpointing, streaming, human-in-the-loop. The foundation everything else runs on. You define exactly what happens, when, and in what order.
LangChain — the framework
Unified interface over LLMs, tools, memory, and chains. create_agent() with middleware, LCEL composition, provider integrations. You build the agent loop yourself using standardized building blocks.
Deep Agents — the harness
Pre-configured autonomous agent system built on LangChain. Comes with auto compression, a virtual filesystem, subagent spawning, and smart prompts out of the box. You provide tools and a goal — it figures out the rest.