
LangGraph review
Graph-based framework for building long-running, stateful agents in Python and JavaScript
Verdict
LangGraph gives the most control over how an agent moves between steps, and its checkpointing and interrupts are the most mature of the frameworks here. It takes more code than the higher-level options, and the tracing, Studio and production server that make it easy to run all point to LangSmith.
Best for
Teams building long-running agents that must pause, resume and be audited step by step
Not for
Teams that want a quick agent in a few lines or no tie to a vendor's platform for running it
Pros
- Durable execution with checkpoints in SQLite or Postgres
- Interrupts that pause a run for a person to approve or edit state
- Works with any model provider, with or without LangChain
- Python and JavaScript versions
Cons
- Low-level, so simple agents take more code than in other frameworks
- Tracing and Studio depend on LangSmith, a hosted service
- The production Agent Server is not open source and needs a licence key to self-host
Is LangGraph right for your project?
Describe what you need and AI will check the fit against this review.
LangGraph features and capabilities
Durable execution
Each step is saved by a checkpointer, so a run that fails or waits for days resumes from the last step instead of starting over.
Human review at any step
A graph can stop with an interrupt, show its state to a person and continue with their changes, which suits approvals before an agent acts.
Explicit control flow
You draw the agent as nodes and edges, with loops, branches and subgraphs, so the path it takes is predictable and testable.
Short and long-term memory
Conversation state stays with each thread, and a store keeps facts across sessions, so agents can remember users without extra services.
Local server and Studio
langgraph dev runs your graph as an API on your machine, and LangSmith Studio connects to it to step through runs and edit state.
- Any model providerWorks with OpenAI, Anthropic, Google and local models, not one vendor
- Yes
- Multi-agentSeveral agents can hand off or work together
- YesSubgraphs, supervisors and handoffs
- MCP toolsCan use tools from MCP servers
- YesThrough the langchain-mcp-adapters package
- Durable stateSaves progress so a run can resume after a crash or a pause
- YesCheckpointers for SQLite and Postgres
- Human approvalCan pause for a person to approve or edit before continuing
- Yes
- TracingShows each step, tool call and token use
- PartlyLangSmith cloud, free for 5,000 traces a month
- Visual studioA UI to build, run or debug agents
- PartlyLangSmith Studio, a hosted page that connects to your server
At a glance
- Type
- Agent orchestration framework
- Stack
- Python 3.10+ / TypeScript
- Databases
- PostgreSQL, SQLite
- Licence terms
- The LangGraph library is MIT. The Agent Server that serves graphs over HTTP is Elastic License 2.0, and running it yourself in production needs a LangSmith license key.
- SSO
- Paid only
- Roles and permissions
- Paid only
- Audit logs
- Not documented
Free vs paid editions
What you get when you self-host, and what needs a paid plan.
The LangGraph library is free under MIT and includes checkpointing to SQLite or Postgres, interrupts for human review and streaming. LangSmith adds hosted tracing, evaluations, Studio and managed deployment. Its free Developer plan has one seat and 5,000 traces a month, and Plus costs $39 per seat a month with one small deployment. Running the Agent Server on your own servers in production needs an Enterprise licence.
Self-hosting LangGraph
LangGraph needs Python 3.10 or later. The local dev server needs Python 3.11, and a self-hosted Agent Server needs PostgreSQL and Redis.
New cloud server to ready
45 s
Research task, median of 3
24.8 s, 133 MB peak
Version tested
1.2.16 · Oct 19, 2026
- Installing LangGraph and LangChain's OpenAI-compatible client in a fresh Python container took 20 seconds, and the first answer came back 25 seconds later.
- The prebuilt agent needed only the model, the two tool functions and a system prompt. All three runs passed, taking 23 to 36 seconds and $0.001 to $0.003 each.
- Its tracing and Studio are LangSmith, a separate service with a free tier. Without it, the graph returns the full message list, which is enough to see each tool call.
# tools.py holds the shared web_search and read_page functions over Geekflare's APIs,
# common.py the model name, OpenRouter key, system prompt and task.
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langgraph.prebuilt import create_react_agent
import tools
from common import BASE_URL, KEY, MODEL, SYSTEM
web_search = tool(tools.web_search)
read_page = tool(tools.read_page)
llm = ChatOpenAI(model=MODEL, base_url=BASE_URL, api_key=KEY, temperature=0, max_tokens=1024)
agent = create_react_agent(llm, [web_search, read_page], prompt=SYSTEM)
def run(task: str) -> str:
result = agent.invoke({"messages": [("user", task)]}, {"recursion_limit": 20})
return result["messages"][-1].contentThe latest stable release is Scrapy 2.19.0, released 10 September 2026 according to the Scrapy release notes and the GitHub releases page.
Two notable changes:
- A new RemoteControl extension lets you inspect and control a running crawl over HTTP.
- The default priority queue is now DownloaderAwarePriorityQueue, per the GitHub release summary.
I could only see the release highlights in search snippets, not the full notes, so I haven't verified these against the complete changelog.