LangChain vs LangGraph, Decided by Your Problem
They come from the same project and solve different problems. One composes steps into a chain; the other models state, branches and loops as a graph. The distinction matters most when you run a local model, because loops cost you GPU time rather than money.
Key takeaways
- They are not competitors. LangChain is the component library and the composition layer; LangGraph is a way to express workflows with state, branches and cycles.
- Use a chain when the path is fixed: retrieve, prompt, parse, return. It is simpler, cheaper and easier to reason about.
- Use a graph when the path depends on results: validate output and retry, route by classification, loop until a condition holds, pause for a human.
- LangGraph's real contribution is explicit state and checkpoints — the ability to resume, inspect and interrupt a run rather than watch it happen.
- Locally, every cycle is a generation on your own GPU. Bound your loops before the first run; there is no invoice to alert you.
The actual difference
Your private ChatGPT, free, on your own machine in an hour — LM Studio, Ollama, Open WebUI, your documents, no cloud.
- Lifetime online access
- PDF + files
- 30-day refund
A chain is a pipeline: A to B to C. Given the same input it performs the same steps in the same order. That covers most retrieval question-answering, extraction and summarisation, which is why a great deal of production code is a chain and nothing more.
A graph is a set of nodes and edges where an edge can be conditional and can point backwards. It carries a state object that each node reads and updates. That is what makes "if the output fails validation, go back and try again" expressible — something a linear chain fundamentally cannot do.
| Chain | Graph | |
|---|---|---|
| Control flow | Fixed order | Conditional, including cycles |
| State | What passes between steps | An explicit object every node can update |
| Cost per request | Predictable | Depends on how the run unfolds |
| Resume after failure | Restart | From the last checkpoint |
| Human in the loop | Awkward | A first-class pause |
| Debugging | Read the code | Inspect the state at each node |
Choosing, in practice
- Question answering over documents — a chain. Retrieve, prompt, answer. Adding a graph here buys complexity and nothing else.
- Extraction that must satisfy a schema — a graph, if you want a retry loop on validation failure. A chain, if you constrain the output at the model level instead, which is cheaper.
- Routing between several specialised prompts — a graph, because the branch is decided at runtime.
- A research loop that continues until it has enough — a graph, with a hard iteration cap.
- Anything a human must approve mid-run — a graph, for the interrupt and resume.
The local twist. On a paid API, an agent that loops twelve times shows up as a cost line. On your own hardware it shows up as a slow response and a busy GPU, and nothing tells you it happened. Cap iterations explicitly, log how many each run used, and treat an unbounded cycle as a bug rather than a feature.
What running locally changes
- Model size sets the ceiling. Conditional routing and tool calls demand strict formats; below roughly 14B those fail often, and a graph that retries on failure will retry forever. The tool-use ranking is the place to start.
- Concurrency is your problem. Parallel branches hitting a single-user server queue up. If a graph fans out, serve it with something built for concurrent requests — the argument in Ollama vs vLLM in production.
- Context grows with state. Each cycle usually re-sends history. Budget the memory for it, as set out in what a long context costs.
- Observability is not optional. When a graph behaves oddly you need the exact prompt at each node, which means tracing rather than print statements.
And the other frameworks
| You want | Reach for |
|---|---|
| Explicit control flow you own | LangGraph |
| Components and a simple pipeline | LangChain |
| Role-based agent teams | CrewAI |
| Conversational multi-agent loops | AutoGen |
| Retrieval-first applications | An indexing-oriented library — see LlamaIndex vs LangChain |
| A visual builder instead of code | Flowise |
Verdict
Ask what your workflow does when a step fails. If the answer is "return an error", a chain is correct and anything more is overhead. If the answer is "try again differently", "ask a human" or "pick another route", you need a graph — and you need it bounded, because locally the cost of an unbounded loop is paid in GPU minutes nobody is watching. Start with the chain; graduate when the failure handling, not the ambition, demands it.
Frequently asked questions
Is LangGraph a replacement for LangChain?
No. LangChain provides the components and the simple composition layer; LangGraph adds stateful, branching and cyclic control flow. They are commonly used together.
Do I need LangGraph for a RAG chatbot?
Usually not. Retrieve, prompt, answer is a fixed path — a chain. A graph earns its place when you add validation retries, routing or human approval.
Do they work with local models?
Yes, through Ollama or any OpenAI-compatible endpoint. The constraint is the model's reliability at structured output, not the framework.
Why does my local agent loop forever?
A model too small to emit the exact format that signals completion, combined with a graph that retries on failure. Cap iterations, then use a larger model — the cap is the safety net either way.
What is the minimum model for a conditional graph?
Around 14B for routing decisions expressed in a fixed format, and 24B–32B once tool calls are involved. Below that, expect frequent format failures.
How do I debug a graph?
Inspect the state at each node and trace the exact prompts sent. Checkpointing lets you resume from a specific point rather than re-running the whole workflow while you investigate.
A current option for local AI: GMKtec EVO-X2 64GB / 1TB (Ryzen AI Max+ 395). Match memory to your model and software. A mini PC is a complete PC alternative; Mac/MLX and CUDA instructions require compatible hardware.
Amazon Check GMKtec EVO-X2 64GB / 1TB (Ryzen AI Max+ 395) price →As an Amazon Associate, BestLLMfor earns from qualifying purchases, at no extra cost to you. It does not influence our independent rankings.
Found an error or have feedback? Let us know — it helps everyone who reads this guide.