LangGraph Review: Durable Agent Graphs for Production [WTF Radar]

Scorecard for LangGraph on a dark navy background

LangGraph models an agent loop as a state graph with per-step checkpoints, interrupts for human approval and any model. What it does, where it costs more effort, pricing, and the alternatives.

LangGraph asks you to draw the agent loop as a graph instead of handing you a finished agent. That costs effort up front and buys the strongest durability and human-approval primitives among the major agent frameworks, with any model.

Key Takeaways

  • You draw the loop. — Nodes and edges define what runs next. That is more code than a ready-made agent and far more control over what the agent may do.
  • Durability is the core feature. — Checkpointers save graph state per thread, so a run resumes after a restart or a multi-day approval; interrupt() pauses a node for a human.
  • Any model, two languages. — Model-agnostic, in Python and JavaScript, MIT-licensed. LangGraph 1.0 shipped in October 2025 with a no-breaking-changes promise until 2.0.

What LangGraph does

A LangGraph agent is a graph of nodes and edges over shared state. The runtime executes it step by step and, with a checkpointer, saves state per thread so a run can resume after a failure or a pause (persistence docs). interrupt() pauses a node and surfaces a payload; Command(resume=...) with the same thread ID continues it (interrupts docs). The loop bound is a recursion limit on steps, which raises an error the docs associate with infinite loops (GRAPH_RECURSION_LIMIT).

LangChain shipped LangGraph 1.0 on October 22, 2025, with durable state, built-in persistence and human-in-the-loop as the headline features, and committed to no breaking changes until 2.0. PyPI lists version 1.2.19 as of October 30, 2026.

Scorecard: 18/20

CriterionScoreWhy
Loop control4/5Explicit edges and a recursion limit on graph steps; no built-in spend cap.
Human-in-the-loop and durability5/5Per-step checkpoints (Postgres, SQLite), interrupt() and Command(resume) with a thread ID.
Observability4/5LangSmith tracing with environment variables; LangSmith is a separate product.
Portability5/5Model-agnostic, Python and JavaScript.

Pricing and licensing

LangGraph is free and MIT-licensed; you pay for the models you call and for whatever runs your checkpointer database. Tracing goes to LangSmith, LangChain's separate observability product, by setting LANGSMITH_TRACING and an API key (observability docs); LangSmith accounts can be opened for free. There is no built-in spend cap, so budgets live in your graph or your gateway.

Who it fits, and who should look elsewhere

  • Fits: agents that run for hours or days, wait on human approvals, must resume after failures, or need an execution path an auditor can read; teams that use more than one model vendor.
  • Look elsewhere: if you want a working agent with file and shell tools in a few lines (Claude Agent SDK), or a quick OpenAI-stack multi-agent setup with handoffs (OpenAI Agents SDK).

LangGraph alternatives

Sources

What is LangGraph?

LangGraph is LangChain's open-source runtime for building agents as state graphs. You define nodes (functions or model calls) and edges (what runs next); the runtime executes the graph, saves state at checkpoints, and can pause for human input. It is MIT-licensed and available for Python and JavaScript.

How does human-in-the-loop work in LangGraph?

Call interrupt() inside a node to pause execution and return a payload to the caller. Resuming requires a checkpointer and the same thread ID: you invoke the graph with Command(resume=value), and that value becomes the return value of interrupt(). The node restarts from its beginning on resume, so code before the interrupt runs again.

What is the LangGraph recursion limit?

It is the maximum number of graph steps a run may take before LangGraph stops it with a recursion-limit error. The docs say hitting it usually means an infinite loop, though complex graphs can reach the default naturally. You can raise it in the run config, but treat a hit as a signal to check your stop conditions first.

Do I need LangChain to use LangGraph?

No. LangGraph can be used on its own with any model client. It integrates with LangChain components and with LangSmith for tracing, but neither is required.

Explore More

Ready to Find the Right AI Tools?

Browse our data-driven rankings to find the best AI tools for your team.