mrkeyoor.com_
Fri 18 Sept 02:53 UTC
AI Toolsevaluationupdated 25 Aug 2026

langgraph review

LangGraph is a Python framework for agents and workflows that keep state, pause for human input, and resume after interruptions. It gives developers graph-shaped control over what runs next when a simple prompt-and-response loop is too fragile.

+367stars / 7d
Verdict

Our libs/cli build finished in 7 seconds and pip-audit found 0 vulnerabilities, but pytest ran 0 of the 341 collected tests because it rejected asyncio_mode, so the checkout is easy to package and not cleanly verifiable in our fresh environment. LangGraph is still the strongest choice here for Python teams that need explicit state, interrupts, and resumable agent runs. Use it when you can name the recovery behavior your product needs; choose a higher-level agent kit when you mainly want to call tools and return an answer.

We ran it

Lab card: what happened when we ran langgraphScreenshot of langgraph (docs.langchain.com/oss/python/langgraph)
Install✓ · 30s63 packages · 84 MB
Build✓ · 7s
Tests✗ · 10s0 passed · 0 failed of 0 (pytest)
Known vulns0(pip-audit)
Repo672 files~188,148 lines of source · 13.7 MB · 17 CI workflows · tests dir

Answers from our run

Does langgraph build from source?

Dependencies installed in 30 seconds (63 packages), and the build succeeded in 7 seconds. We cloned commit f09cfe8 into a clean Debian container with 3 CPUs and no project-specific setup.

Do langgraph's tests pass?

Yes: 0 of 0 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does langgraph have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use langgraph?

Teams seeking the fastest route to a general agent: the README points those users to the higher-level Deep Agents package.

What are the alternatives to langgraph?

Pydantic AI, AutoGen, Prefect. Our libs/cli build finished in 7 seconds and pip-audit found 0 vulnerabilities, but pytest ran 0 of the 341 collected tests because it rejected asyncio_mode, so the checkout is easy to package and not cleanly verifiable in our fresh environment.

Setup3/5Quick install and build, but the CLI test config stopped pytest
Docs5/5Clear concepts, quickstart, API reference, and focused guides
Community5/540,440 stars with current pushes and active issue discussion
Maturity4/5Released core with active fixes, though recovery details still move

Discussed on

  1. hnLangGraph Builder3 points
  2. hnLangGraph Multi-Agent Swarm3 points
  3. hnLanggraph.js: Building language agents as graphs3 points

Who it’s for

Python teams building agents that must pause, resume, branch, or survive process failures.
Developers who want explicit state transitions instead of hiding control flow inside prompts.
Applications that need human approval or state edits during a run.
LangChain users who want a lower-level orchestration layer while keeping provider choices open.

Who it’s NOT for

Teams seeking the fastest route to a general agent: the README points those users to the higher-level Deep Agents package.
JavaScript or TypeScript projects: the README sends them to the separate langgraphjs repository.
Simple stateless chains where a normal function or small queue already makes execution clear; LangGraph asks you to model state and transitions.
Operators who want deployment and visual debugging to be entirely inside this MIT repository: the README directs those jobs to LangSmith products.
Teams unwilling to test recovery rules themselves: open issue #8039 reports host-dependent replay behavior for one synchronous durability path after a crash.

Setup reality

Our run targeted libs/cli in the monorepo. It installed 63 packages in 30 seconds and used 84 MB, then built in 7 seconds. Pytest stopped after 10 seconds with exit 4: it collected 341 items but rejected an unknown asyncio_mode config option, so 0 tests ran. pip-audit found 0 known vulnerabilities.

A basic graph can run without LangChain, but useful agents still need whichever model credentials, checkpointer, database, and external tools the application chooses. LangSmith is optional for the core library and separate from this repository's local test.

The measured project lives under libs/cli/, not the repository root. Python 3.12 worked for install and build in our container, but the checked-in pytest configuration did not complete under that fresh environment. JavaScript users need the separate LangGraph.js project.

63 packages give Python agents explicit control flow

Our measured install for libs/cli added 63 packages and used 84 MB, a modest footprint for one part of a much larger agent project. LangGraph's core idea is plain: keep agent state in a defined object, connect operations as nodes, and make transitions visible. That structure helps when an agent must stop for approval, retry a step, branch on a result, or resume after a process interruption. A normal chat loop can do some of this, but its control rules tend to scatter across prompts and callbacks.

LangGraph is intentionally low level. The project overview calls out durable execution, human interrupts, memory, and state inspection rather than a ready-made agent personality. You decide what state means, which nodes may run, how updates merge, and where checkpoints live. That is useful authority for a product team. It is extra design work for someone who only wants a model to call two tools, which is why the README directs quick-start users toward the higher-level Deep Agents package.

What happened when we ran it

In our 3 CPU, 8 GB container, the libs/cli project installed successfully in 30 seconds. It placed 63 packages and 84 MB in the environment, then completed its build in 7 seconds. The checkout held 672 files and about 188,148 lines of source across the repository. We also found 17 CI workflow files and a tests directory, though no Dockerfile. pip-audit reported 0 known vulnerabilities for the environment we measured.

Pytest did not execute the suite. After 10 seconds it collected 341 items, then exited with code 4 because asyncio_mode was an unknown configuration option. The log reports 0 passed and 0 failed out of 0 because execution never started. That result does not show whether the 341 collected tests would pass, and it does not show why the option was unavailable. It shows that the checked-out CLI project's test configuration did not run cleanly in our fresh Python 3.12 environment.

Durable execution is useful only with a defined checkpoint policy

LangGraph 1.2.x is designed around resumable work, but installing the library does not choose persistence semantics for your application. Teams still select a checkpointer, decide which state can be serialized, and define how external side effects behave when a node is retried. A payment call or email send cannot safely repeat just because graph state rolled back. The framework gives you an execution model and interruption points. Your application still owns idempotency, credentials, retention, and failure policy.

An open durability issue, updated on August 25, 2026, reports host-dependent replay versus re-execution ordering for one durability="sync" crash path. One report does not invalidate the framework, but it is directly relevant to teams choosing LangGraph for recovery. Write crash tests around every node with an external effect, and verify behavior with the same checkpointer and host arrangement used in production. The 0 executed tests in our CLI run give us no independent reassurance on that point.

Human interrupts are the clearest reason to choose it

The README makes human inspection and state modification a first-class operation. That fits approval-heavy agents better than bolting a yes-or-no prompt onto an opaque loop. A graph can pause before a risky node, expose the pending state, accept an edit, and continue from a checkpoint. The design also makes the approval location visible in code. For support automation, research workflows, or internal tools that touch customer data, this can be more important than how quickly the first demo answers.

That control comes with schema work. State fields need merge rules, interrupts need an interface, and the team must decide what a reviewer is allowed to change. LangGraph does not remove those product questions. It gives them named places. The current repository has about 188,148 lines of source and 722 open issues and pull requests combined, which reflects both its wide scope and the amount of behavior users discuss. Read the relevant guides and pin the packages that implement your checkpoint path.

Python is primary and deployment is a separate choice

The repository's primary language is Python, and our build used Python 3.12. JavaScript and TypeScript users are pointed to langchain-ai/langgraphjs, a separate codebase with its own releases and behavior. LangGraph itself can be used without LangChain, which keeps the core orchestration choice open. Model clients, vector stores, and tools remain application decisions. That separation is healthy, though examples across the wider LangChain ecosystem can make the boundaries feel less obvious than the core package really is.

Visual tracing and managed deployment are also separate decisions. The README recommends LangSmith for debugging, evaluations, and hosted agent deployment. Teams can use the MIT library without buying those services, but then they must supply their own tracing, runtime, scaling, and operational interface. The latest repository release was SDK 0.4.3 on August 19, while the release notes also referenced LangGraph 1.2.11. Pin by package, not merely by repository tag name.

40,440 stars come with an active queue

GitHub showed 40,440 stars, a last push on August 25, 2026, and 722 open issues and pull requests combined. Recent issue updates covered state updates, stream errors, and crash recovery, while SDK 0.4.3 had shipped 6 days earlier. Those signals show active maintenance and active complexity. The combined count should not be described as 722 bugs because GitHub includes pull requests, and feature requests also share the queue.

Choose LangGraph when your design already contains words such as checkpoint, interrupt, resume, or state transition. Its 7-second CLI build and 84 MB environment make source inspection approachable, while the failed test startup means you should reproduce the suite before changing the package. Pydantic AI is a cleaner fit for typed agent calls, AutoGen for conversational agent systems, and Prefect for non-agent jobs. LangGraph earns the extra graph design when recovery and human control are product requirements.

Alternatives

ProjectWhat it isPick it when
Pydantic AIA Python agent framework built around typed tools, outputs, and model portability.pick this instead when typed agent code matters more than explicit graph execution.
AutoGen gh↗Microsoft's framework for conversational and event-driven multi-agent systems.pick this instead when agent-to-agent messaging is the main abstraction you want.
Prefect gh↗A Python workflow engine focused on observable, recoverable data and application jobs.pick this instead when durable task orchestration matters and the workflow is not centered on an LLM agent.

Sources

  1. LangGraph README
  2. LangGraph SDK 0.4.3 release
  3. LangGraph durability sync issue 8039

More ai tools reviews

OpenBitFun · rowboat · skills · superpowers-zh · yolov5 · eve · the whole board →