langchain-ai/langgraph
56.8
Weak · 26 September 2026
69.2k
lines of production code
Python
primary language
5
measurements over time
What this system is
This system is the LangGraph framework, providing a runtime for building and executing stateful, multi-actor applications defined as directed graphs. It offers a comprehensive suite of persistence backends—including in-memory, SQLite, and PostgreSQL—for managing agent checkpoints, persistent key-value stores with vector search, and configurable caching layers. The ecosystem includes a command-line interface for scaffolding and deploying applications, along with Python and JavaScript SDKs that facilitate server-side interaction, authentication, and advanced streaming protocols.
How it got here
2023–2024 — CLI launch and v1 stabilization
47 changes.
This period focused on launching the LangGraph CLI and establishing the v1 API structure, including a major graph module restructure and the introduction of a functional programming interface. Concurrently, the team consolidated the codebase by archiving example notebooks and removing legacy PubSub infrastructure, while significantly expanding the checkpoint and persistent store capabilities with new SQL implementations and security features.
2025–2026 — v3 streaming and SDK expansion
29 changes.
This period focused on introducing the v3 streaming infrastructure, enabling native projections and shared subscriptions across the Python SDK and core runtime. It also expanded the ecosystem with comprehensive caching implementations for SQLite, Redis, and memory, alongside a new standalone prebuilt package and robust conformance testing for checkpointer integrations.
Features
Add CLI example project with Starlette app and LangGraph configuration
A new example project has been added to the CLI library, providing a complete template for users. This includes a Starlette-based Python application demonstrating middleware and context variable usage, alongside a \langgraph.json\ configuration file that defines graph endpoints and dependencies. The example also provides a Makefile for running the graphs via \uv\, a \.env.example\ for API key setup, and a pip configuration file.
libs/cli/examples · high confidence
Add InMemoryCache with namespace-aware clearing
The memory cache module now includes an InMemoryCache implementation that stores cached values in a thread-safe dictionary. Users can retrieve, set, and clear cache entries by namespace. A key behavioral addition is the clear method, which now supports deleting all cached values when called without arguments, or selectively clearing specific namespaces when provided.
libs/checkpoint/langgraph/cache/memory · high confidence
Add LangGraph benchmark suite for performance profiling
The \libs/langgraph/bench\ directory now contains a comprehensive benchmark suite to measure and profile LangGraph performance. This includes scripts for running sequential graphs, fanout-to-subgraph patterns, REACT agents, and wide-state scenarios using both TypedDict and Pydantic state schemas. The suite also provides serialization/deserialization benchmarks and allows users to measure metrics such as first-event latency and overall execution time, helping developers identify performance bottlenecks in their graph implementations.
libs/langgraph/bench · high confidence
Add Redis-based node-level caching for LangGraph
A new Redis cache implementation has been added to the LangGraph checkpoint library, enabling users to store and retrieve graph execution results in a Redis backend. This feature supports both synchronous and asynchronous operations, allows for configurable key prefixes and time-to-live (TTL) settings, and includes logic to gracefully handle Redis unavailability by returning empty results or silently failing writes, ensuring system resilience.
libs/checkpoint/langgraph/cache/redis · high confidence
Add delta-channel-dump recovery script for Postgres-backed LangGraph threads
A new example script (dump.py) and documentation have been added to examples/delta-channel-dump to help recover message state from Postgres-backed LangGraph threads that use the DeltaChannel format (introduced in langgraph \>= 1.2). This tool is designed for rollback scenarios where an older runtime (e.g., deepagents 0.5.x or langgraph \< 1.2) cannot natively interpret the new msgpack EXT\_DELTA\_SNAPSHOT blobs. The script reads raw checkpoint data directly from Postgres tables (compatible with both OSS PostgresSaver and LangGraph Server deployments), decodes the delta snapshots, and outputs a JSON file containing the seed and writes for specified channels. Users can then manually re-apply this recovered state to the older runtime using the LangGraph SDK's update\_state method.
examples/delta-channel-dump · high confidence
Add in-memory store with optional vector search
Introduces the \InMemoryStore\ component in \libs/checkpoint/langgraph/store/memory\, providing a dictionary-backed key-value store that optionally supports semantic vector search. Users can now store and retrieve data in memory, and by configuring an \index\ with embedding dimensions and an embedding function, they can perform similarity searches on stored items. This feature is available for both synchronous and asynchronous workflows.
libs/checkpoint/langgraph/store/memory · high confidence
Added example LangGraph agent for monorepo testing
This change introduces a new example agent application within the CLI monorepo structure, designed to demonstrate multi-package dependency resolution. The agent defines a simple LangGraph workflow that imports and utilizes functions from sibling shared libraries (\shared\ and \common\), configured via a new \langgraph.json\ manifest and supported by a \.env.example\ file.
libs/cli/python-monorepo-example/apps/agent · high confidence
Added example agent application with shared library dependency
Introduced a new example agent application located in the \apps/agent\ directory, configured to run on Python 3.12 using LangGraph. The application defines a simple workflow that utilizes a \get\_dummy\_message\ function provided by a newly created shared library (\libs/shared\), demonstrating how to structure a monorepo with inter-package dependencies and environment configuration via \.env.example\.
libs/cli/uv-examples/monorepo/apps/agent, libs/cli/uv-examples/monorepo/libs/shared · high confidence
Added monorepo example projects for CLI testing
Added JavaScript and Python example projects under \libs/cli/js-monorepo-example\ and \libs/cli/python-monorepo-example\ to support monorepo testing within the CLI. The JavaScript example includes a LangGraph agent that imports utilities from a shared library, while the Python example provides common helper functions and shared utilities to validate monorepo structure and dependency resolution.
(repo-wide) · high confidence
Added prerelease requirements example for CLI graph validation
A new example directory \libs/cli/examples/graph\_prerelease\_reqs\ has been added to demonstrate how the CLI handles graph definitions that depend on prerelease versions of libraries. The example includes a \langgraph.json\ configuration specifying Python 3.12 and local dependencies, alongside an \agent.py\ file implementing a basic LangGraph agent workflow with tool calling capabilities.
_libs/cli/examples/graph\_prerelease\reqs · high confidence
Async Python SDK client and streaming surface
The Python SDK now includes a complete asynchronous client implementation in the \\_async\ package, providing \LangGraphClient\ with sub-clients for assistants, threads, runs, crons, and store operations. This release introduces a new thread-centric streaming surface (\AsyncThreadStream\) that supports the v3 protocol, enabling typed projections (values, messages, tool calls), lifecycle state tracking, and resumable streaming. The HTTP layer has been updated to handle automatic reconnection via Location headers and includes support for async context management.
_libs/sdk-py/langgraph\_sdk/\async · high confidence
Initial release of the LangGraph CLI
This change introduces the official LangGraph command-line interface, providing tools to create, develop, build, and run LangGraph applications. The CLI includes commands for scaffolding new projects (\langgraph new\), running a development server with hot reloading (\langgraph dev\), launching the API in Docker (\langgraph up\), and building Docker images (\langgraph build\). It also supports generating custom Dockerfiles and uses a \langgraph.json\ configuration file to manage dependencies, graph definitions, and environment settings. The package is distributed under the MIT license and relies on \uv\ for dependency management.
libs/cli · high confidence
Initial release of the LangGraph CLI (v0.4.32)
This change introduces the LangGraph CLI as a new product component, establishing the initial codebase for version 0.4.32. The CLI provides a command-line interface for managing LangGraph applications, featuring local development and debugging capabilities (via the \up\ and \dev\ commands), remote deployment workflows (via the \deploy\ command and subcommands), and project archiving for remote builds. It includes configuration parsing for \langgraph.json\, Docker image building and management, and telemetry analytics reporting to Supabase.
_libs/cli/langgraph\cli · high confidence
Introduce Postgres-backed key-value store with vector search and TTL support
This change adds a new \AsyncPostgresStore\ (and synchronous \PostgresStore\) implementation to the \langgraph.store.postgres\ package, allowing users to persist state in PostgreSQL. The store supports standard key-value operations, optional vector search via pgvector (with HNSW and IVFFlat index configurations), and automatic expiration of items via a configurable TTL sweeper. It also includes connection pooling support and runs database migrations automatically on setup.
libs/checkpoint-postgres/langgraph/store · high confidence
Introduce Python SDK authentication and authorization framework
The \langgraph\_sdk.auth\ package is now available, providing a unified system for managing authentication and authorization in LangGraph applications. Users can define custom authentication handlers via the \Auth\ class and configure fine-grained authorization rules for specific resources (such as threads and the store) and actions using the \on\ decorator hierarchy. The package includes dedicated modules for type definitions (\types\) and exceptions (\exceptions\), enabling developers to implement default-deny policies and scope operations to individual user identities.
_libs/sdk-py/langgraph\sdk/auth · high confidence
Introduce SQLite-backed store with vector search and TTL support
Adds a new SQLite-based implementation of the LangGraph store interface, available as both synchronous (\SqliteStore\) and asynchronous (\AsyncSqliteStore\) classes. This feature enables persistent storage of key-value pairs with hierarchical namespace support, automatic database schema migrations, and time-to-live (TTL) expiration for stored items. It also includes optional vector search capabilities via \sqlite\_vec\, allowing users to store and retrieve data based on semantic similarity using embeddings. The implementation includes security hardening by validating filter keys to prevent SQL injection and scoping namespace matching to segment boundaries.
libs/checkpoint-sqlite/langgraph/store · high confidence
Introduce SQLite-based checkpoint saver with async support
Adds a new \langgraph.checkpoint.sqlite\ library providing \SqliteSaver\ for synchronous workflows and \AsyncSqliteSaver\ for asynchronous environments. The implementation uses a two-stage streaming approach for delta channel history to keep memory usage low, includes a threading lock for thread safety in the sync saver, and enforces that synchronous calls to the async saver are only made from background threads. It also introduces parameterized metadata filtering to prevent SQL injection and requires the \aiosqlite\ package for the async variant.
libs/checkpoint-sqlite/langgraph/checkpoint · high confidence
Introduce base persistent key-value store with TTL, vector search, and async batching
This change introduces the foundational \BaseStore\ interface and its core components (\Item\, \GetOp\, \PutOp\, \SearchOp\) for persistent key-value storage in LangGraph. Users can now store hierarchical key-value pairs with optional Time-To-Live (TTL) expiration and vector-based semantic search capabilities. The implementation includes an \AsyncBatchedBaseStore\ that batches operations in a background task to improve performance, and provides utilities to wrap arbitrary embedding functions (sync or async) into LangChain's standard \Embeddings\ interface, enabling seamless integration of custom or provider-specific vector search.
libs/checkpoint/langgraph/store/base · high confidence
Introduce beta custom encryption at-rest API for LangGraph SDK
The LangGraph Python SDK now includes a beta module for custom at-rest encryption, allowing developers to define server-side encryption and decryption handlers for both opaque blobs (like checkpoints) and structured JSON data. This feature introduces \EncryptionContext\ to pass model and field metadata to handlers, and a new \DecryptResult\ type that enables key rotation by returning replacement ciphertext alongside decrypted plaintext. Users can register custom encrypt/decrypt logic via decorators, with the API currently marked as beta and subject to change.
_libs/sdk-py/langgraph\sdk/encryption · high confidence
Introduce functional API with task and entrypoint decorators
The \langgraph.func\ module is introduced, providing a new functional programming interface for LangGraph. This allows users to define graph nodes as simple Python functions decorated with \@task\ and orchestrate them using an \@entrypoint\. The \@task\ decorator supports configuration for retry policies, caching, and timeouts, and returns a future-like object that enables parallel execution of tasks within an entrypoint.
libs/langgraph/langgraph/func · high confidence
Introduce standalone \`langgraph.prebuilt\` package with streaming tool call support
The \langgraph.prebuilt\ module is now a standalone package exposing a higher-level API for creating and executing agents and tools. Key additions include \create\_react\_agent\ for building agents, \ToolNode\ for executing tools with state/store injection, and \ValidationNode\ for schema validation. A significant behavioral change is the introduction of streaming support for tool calls via \ToolCallTransformer\ and \ToolCallStream\, allowing users to subscribe to \tool-output-delta\ events and iterate over partial tool outputs in real-time. Deprecated classes such as \AgentState\, \HumanInterrupt\, and \ValidationNode\ have been marked for removal in favor of equivalents in \langchain.agents\.
libs/prebuilt/langgraph · high confidence
Introduce synchronous LangGraph SDK client
Adds a complete synchronous API surface for the LangGraph SDK, allowing users to interact with the LangGraph API without async/await. This includes a top-level \SyncLangGraphClient\ (accessible via \get\_sync\_client\) and dedicated synchronous clients for managing assistants, threads, runs, cron jobs, and the key-value store. The sync implementation mirrors the existing async capabilities, including support for streaming with v2 protocol types, context management, and specific features like cron timezone handling and durability settings.
_libs/sdk-py/langgraph\_sdk/\sync · high confidence
Introduce v3 streaming infrastructure with native projections and transformer pipeline
LangGraph now includes a new streaming infrastructure in the \langgraph.stream\ module, enabling users to drive graph execution via \graph.stream\_events(version='v3')\ and \graph.astream\_events(version='v3')\. This change introduces a \StreamMux\ event dispatcher and a \StreamTransformer\ extension point, allowing the graph to project raw events into ergonomic, per-channel streams such as \run.values\, \run.messages\, \run.custom\, and \run.updates\. The system supports both synchronous and asynchronous pumping, where iterating over these projections drives the graph forward, and provides native access to lifecycle, subgraph status, and debug data through dedicated transformer classes.
libs/langgraph/langgraph/stream · high confidence
Introduce v3 streaming transports (SSE and WebSocket) for Python SDK
The Python SDK now includes a new v3 streaming transport layer in \langgraph\_sdk.stream.transport\ that supports both Server-Sent Events (SSE) and WebSocket protocols for thread-centric streaming. This adds \ProtocolSseTransport\ and \ProtocolWebSocketTransport\ (with synchronous counterparts) to handle event streams and command sending, enabling users to stream events with filtered subscriptions and reconnect capabilities via the \since\ parameter.
_libs/sdk-py/langgraph\sdk/stream/transport · high confidence
Introduces v3 streaming primitives with shared subscriptions and projection decoders
The Python SDK now includes a new \stream\ module that implements the v3 streaming architecture. This adds support for shared SSE connections where multiple subscriptions fan out from a single transport, managed by \StreamController\ (async) and \SyncStreamController\ (sync) classes that handle subscription registration, event deduplication, and stream rotation. The module also introduces \interleave\_projections\ and specific decoders for \values\, \messages\, \tool\_calls\, and \subgraphs\ channels, allowing users to subscribe to multiple data types over a single connection with namespace and depth filtering.
_libs/sdk-py/langgraph\sdk/stream · high confidence
Introduction of a base cache interface with configurable serialization
A new abstract base class, BaseCache, has been introduced in the langgraph cache module to standardize caching implementations. This class defines the core contract for cache operations (get, set, clear) and includes support for both synchronous and asynchronous methods. A key behavioral aspect is the default serialization configuration, which now uses JsonPlusSerializer with pickle\_fallback disabled, ensuring stricter data handling by default while allowing users to provide custom serializers via the constructor.
libs/checkpoint/langgraph/cache/base · high confidence
Introduction of base checkpoint interfaces and UUID generation
This change introduces the foundational \langgraph-checkpoint\ library, establishing the core \BaseCheckpointSaver\ interface and \Checkpoint\ data structures that enable state persistence for LangGraph agents. It includes a bundled implementation of UUID version 6 generation to ensure consistent, sortable checkpoint IDs without external dependencies, and defines the \CheckpointMetadata\ schema with support for delta channel tracking. This provides the essential API contract for checkpointer implementations to store, retrieve, and manage agent state across interactions.
libs/checkpoint/langgraph/checkpoint/base · high confidence
New CLI examples demonstrating graph execution with context and external dependencies
Added two new CLI example projects, \graphs\_reqs\_a\ and \graphs\_reqs\_b\, to showcase LangGraph capabilities. \graphs\_reqs\_a\ implements a tool-calling agent graph that dynamically selects between Anthropic and OpenAI models based on a runtime context schema, while \graphs\_reqs\_b\ extends this pattern by importing and executing an external utility function (\greet\) from a local package, demonstrating how to structure multi-module dependencies within a LangGraph CLI project.
_libs/cli/examples/graphs\_reqs\_a, libs/cli/examples/graphs\_reqs\b · high confidence
New CLI graph examples: agent and STORM workflows
Added two new LangGraph examples to the CLI: an agent workflow that demonstrates tool calling with a configurable model context (Anthropic or OpenAI), and a STORM workflow that generates Wikipedia-style outlines using structured output and retrieval. These files provide runnable templates for building and testing graph-based applications via the CLI.
libs/cli/examples/graphs · high confidence
New LangGraph.js project template added to CLI examples
The CLI examples directory now includes a complete starter template for LangGraph.js applications. This addition provides a pre-configured project structure featuring a basic chatbot agent with persistent memory, complete with TypeScript configuration, ESLint and Prettier settings, Jest testing infrastructure, and a LangGraph Studio configuration file. Users can now use this template as a foundation to quickly scaffold and customize their own conversational agents.
libs/cli/js-examples · high confidence
New conformance test suite for LangGraph checkpointer implementations
A new \langgraph-checkpoint-conformance\ package has been added to provide a standardized validation framework for checkpointer implementations. This suite automatically detects which capabilities a checkpointer supports (such as PUT, GET\_TUPLE, LIST, DELETE\_THREAD, and extended features like PRUNE or DELTA\_CHANNEL\_HISTORY) and runs a corresponding test suite to verify correctness. It produces a structured report indicating the conformance level (BASE, BASE+PARTIAL, or FULL) and offers configurable progress reporting, allowing developers to ensure their checkpointer implementations adhere to the expected interface and behavior.
libs/checkpoint-conformance/langgraph/checkpoint/conformance · high confidence
New runtime context, lifecycle callbacks, and configuration accessors
LangGraph introduces a new \Runtime\ class that bundles run-scoped context, store access, and execution metadata (such as checkpoint and task IDs) into a single injectable object for graph nodes. A new \callbacks.py\ module provides \GraphCallbackHandler\ and specific event payloads (\GraphInterruptEvent\, \GraphResumeEvent\) to observe graph lifecycle transitions like interrupts and resumption. Additionally, \config.py\ exposes \get\_store()\ and \get\_stream\_writer()\ functions, allowing nodes to access the persistent store and custom stream writers directly at runtime without manual configuration passing.
libs/langgraph/langgraph · high confidence
New simple and monorepo UV example projects
Added two new example projects in the CLI examples directory to demonstrate LangGraph integration with the UV package manager. The 'simple' example provides a minimal single-agent graph setup with a \langgraph.json\ configuration and a \.env.example\ template, while the 'monorepo' example demonstrates a multi-package workspace structure containing 'agent', 'shared', and 'uv-monorepo-example' members, complete with generated \uv.lock\ files for dependency resolution.
libs/cli/uv-examples · high confidence
Python SDK v0.4.5 introduces server-side caching, runtime context, and SSE improvements
The Python SDK (version 0.4.5) adds a new server-side caching module (\cache.py\) providing \cache\_get\, \cache\_set\, and \swr\ (stale-while-revalidate) helpers for use within LangGraph Agent Server deployments. It also introduces a \runtime.py\ module that defines \ServerRuntime\ and \AccessContext\, allowing graph factories to access the authenticated user, persistent store, and specific execution context (e.g., distinguishing between run execution and schema introspection). Additionally, the SDK now includes a custom \sse.py\ module for robust Server-Sent Events parsing and a comprehensive \errors.py\ module with typed HTTP error classes, while the main \client.py\ consolidates both async and sync client implementations.
_libs/sdk-py/langgraph\sdk · high confidence
Removals
Removal of PubSub and Topic infrastructure
The \permchain\ module has removed the entire publish-subscribe messaging system, including the \PubSub\ runnable, \Topic\ definitions, and the underlying \PubSubConnection\ abstractions. Users can no longer define or subscribe to named topics (such as \INPUT\_TOPIC\ or \OUTPUT\_TOPIC\) or use \RunnableSubscriber\ and \RunnablePublisher\ components within this package.
permchain · high confidence
Security
Introduce strict msgpack deserialization and optional checkpoint encryption
The checkpoint serialization module now includes a security-focused strict mode for msgpack deserialization. By setting the environment variable LANGGRAPH\_STRICT\_MSGPACK=true, users can restrict checkpoint loading to a predefined allowlist of safe types (such as standard library types, LangChain messages, and LangGraph control types), preventing arbitrary code execution via malicious checkpoint data. Additionally, the module introduces an EncryptedSerializer that wraps the standard JsonPlusSerializer with AES encryption (via pycryptodome), allowing users to encrypt checkpoint payloads at rest using the LANGGRAPH\_AES\_KEY environment variable.
libs/checkpoint/langgraph/checkpoint/serde · high confidence
Architecture
Introduction of internal module for core runtime infrastructure
LangGraph introduces a new \\_internal\ package to centralize private runtime utilities, separating implementation details from the public API. This module provides foundational components including configuration merging and patching (\\_config\), serialization and schema handling (\\_serde\, \\_pydantic\, \\_fields\), task and future management (\\_future\, \\_queue\), and constants for checkpointing and state management (\\_constants\). It also includes support for replay logic (\\_replay\), retry policies (\\_retry\), and timeout handling (\\_timeout\), establishing the internal backbone for graph execution, state persistence, and error recovery.
_libs/langgraph/langgraph/\internal · high confidence
LangGraph Pregel engine restructured into modular internal components
The LangGraph Pregel execution engine has been refactored from a single monolithic module into a set of specialized internal files (including \_algo.py, \_checkpoint.py, \_loop.py, \_executor.py, and \_io.py). This restructuring separates the core execution loop, checkpoint management, task scheduling algorithms, and I/O mapping into distinct modules while maintaining the same public API surface (Pregel, NodeBuilder). For users, this change is primarily an internal architectural improvement that enhances code maintainability and modularity without altering the external behavior of graph execution, streaming, or checkpointing.
libs/langgraph/langgraph/pregel · high confidence
Behavioural changes
Archival notice added to information-gather-prompting example
The information-gather-prompting notebook in the examples/chatbots directory has been replaced with a placeholder file. This file informs users that the example has been moved to the consolidated LangChain documentation and that the examples directory is retained purely for archival purposes and is no longer updated.
examples/chatbots · high confidence
Archival notice for self-discover example
The self-discover example notebook in the examples directory has been replaced with a placeholder file. This file contains a link to the new location of the tutorial in the consolidated LangChain documentation and informs users that the examples directory is retained for archival purposes only and is no longer updated.
examples/self-discover · high confidence
Chatbot simulation evaluation examples moved to documentation
The \examples/chatbot-simulation-evaluation\ directory has been replaced with placeholder notebooks that direct users to the new location in the LangChain documentation. The underlying \simulation\_utils.py\ code, which provides utilities for creating simulated users and chat simulators using LangGraph's \StateGraph\, has been migrated to the official tutorials section. Users should now access these examples and the associated simulation logic via the consolidated LangChain documentation rather than the examples folder.
_examples/chatbot-simulation-evaluation, examples/code\assistant · high confidence
Deprecation of legacy utils module in preparation for v1
The \libs/langgraph/langgraph/utils\ package has been introduced as a compatibility layer to support existing imports from the legacy utilities module, which is scheduled for removal in version 1. This change adds backward-compatible re-exports for configuration utilities (\ensure\_config\, \patch\_configurable\, \get\_config\, \get\_store\) and runnable utilities (\RunnableCallable\, \RunnableLike\) from their new internal locations (\langgraph.\_internal.\_config\, \langgraph.config\, and \langgraph.\_internal.\_runnable\). Users relying on these legacy import paths will continue to function, but should be aware that this module is deprecated and will be removed in the next major release.
libs/langgraph/langgraph/utils · high confidence
Examples directory archived and notebooks replaced with redirects
The \examples/\ directory is now retained purely for archival purposes and is no longer updated with new content. All example notebooks (such as \react-agent-from-scratch\, \subgraph\, and \tool-calling\) have been replaced with placeholder files that redirect users to the consolidated LangChain documentation. Additionally, the \runnable-pubsub.py\ example has been removed entirely. Users should refer to the LangGraph documentation for current examples and guides.
examples · high confidence
Examples directory marked as archived
The \examples/extraction\ directory has been converted into an archival placeholder. The original content has been removed and replaced with a notice indicating that examples are no longer maintained in this location and have been moved to the consolidated LangChain documentation site.
examples/extraction · high confidence
InMemorySaver now supports DeltaChannelHistory for efficient incremental state retrieval
The InMemorySaver checkpointer has been updated to implement the \get\_delta\_channel\_history\ method, allowing users to retrieve incremental channel changes by walking the checkpoint parent chain once. This change optimizes performance for scenarios requiring historical channel state reconstruction, particularly in subgraph or nested execution contexts, by collecting writes from ancestor checkpoints up to a specific seed value rather than reloading full checkpoint states.
libs/checkpoint/langgraph/checkpoint/memory · high confidence
Introduce PostgresSaver and AsyncPostgresSaver with migration tracking and shallow checkpointer deprecation
The \langgraph-checkpoint-postgres\ library now provides \PostgresSaver\ and \AsyncPostgresSaver\ classes that support automatic database schema migrations via a \setup()\ method and a \checkpoint\_migrations\ tracking table. These savers introduce a two-stage delta channel history reconstruction for improved performance and reduced wire payload. Additionally, the \ShallowPostgresSaver\ is now deprecated in favor of the standard saver with \durability='exit'\.
libs/checkpoint-postgres/langgraph/checkpoint · high confidence
Introduce new channel types and refine checkpointing behavior
The \libs/langgraph/langgraph/channels\ module now includes new channel implementations: \AnyValue\ (stores the last value, assuming equality if multiple are received), \EphemeralValue\ (stores a value for the preceding step and clears it), \UntrackedValue\ (stores the last value but never checkpoints it), and \LastValueAfterFinish\ (makes the stored value available only after the graph run finishes). Additionally, \BinaryOperatorAggregate\ and \DeltaChannel\ have been updated to support the \Overwrite\ mechanism, allowing a value to bypass the reducer and reset the channel state, with \BinaryOperatorAggregate\ specifically handling JSON roundtrips of this sentinel. \DeltaChannel\ also enforces a delta snapshot cadence based on superstep counts to bound replay depth.
libs/langgraph/langgraph/channels · high confidence
LATS example notebook archived and redirected
The LATS example notebook in the examples directory has been replaced with a placeholder that redirects users to the consolidated LangChain documentation. This change indicates that the example is no longer actively maintained in this location and users should refer to the new documentation site for the latest information.
examples/lats · high confidence
LangGraph v1 graph module restructure and new capabilities
The \langgraph/graph\ package has been reorganized into a new v1 structure, introducing \StateGraph\ as the primary builder class and exposing \END\ and \START\ constants. This update adds support for UI message updates via \push\_ui\_message\ and \delete\_ui\_message\, allowing nodes to dynamically render components in the UI. It also introduces node-level configuration policies, enabling users to set specific \retry\, \cache\, \timeout\, and \trace\ policies for individual nodes. The module now supports a new \context\_schema\ for injecting runtime context (replacing the deprecated \config\_schema\) and provides \add\_messages\ with optional \langchain-openai\ formatting for standardized message handling.
libs/langgraph/langgraph/graph · high confidence
Multi-agent example notebooks moved to documentation
The \hierarchical\_agent\_teams\ and \multi-agent-collaboration\ notebooks in the \examples/multi\_agent\ directory have been replaced with placeholder files. These files now contain links directing users to the consolidated LangChain documentation, indicating that the examples have been migrated out of the examples folder and are no longer maintained in this location.
_examples/multi\agent · high confidence
ReWOO example notebook archived and moved to documentation
The ReWOO example notebook located in the examples directory has been replaced with a placeholder indicating that the content has been moved to the consolidated LangChain documentation. This directory is now retained purely for archival purposes and is no longer updated, directing users to the new official documentation site for the latest version of the example.
examples/rewoo · high confidence
Refactor managed values into static classes and simplify IsLastStep/RemainingSteps
The managed value system in LangGraph has been refactored: \ManagedValue\ is now a static abstract base class with a \get\ method, and the previous \ChannelsManager\/\ManagedValues\ runtime instantiation is removed. \IsLastStep\ and \RemainingSteps\ are now defined as annotated types backed by dedicated manager classes (\IsLastStepManager\, \RemainingStepsManager\) that read step/stop from the scratchpad, and the public API in \langgraph.managed\ re-exports only these two types. This changes how these managed values are resolved internally and may affect code that relied on the previous runtime substitution or manager instantiation patterns.
libs/langgraph/langgraph/managed · medium confidence
Reflexion example moved to documentation
The reflexion example notebook has been relocated from the examples directory to the official LangChain documentation site. The file in the examples directory is now a placeholder containing a link to the new location and a notice that the directory is retained for archival purposes only, meaning users should refer to the consolidated LangChain documentation for the most up-to-date tutorial.
(repo-wide) · high confidence
SQL agent tutorial moved to documentation site
The SQL agent tutorial notebook in the examples directory has been replaced with a placeholder indicating that the content has been moved to the official LangChain documentation site. Users should now refer to the consolidated LangChain documentation for the latest SQL agent tutorial, as this directory is retained only for archival purposes and is no longer updated.
examples/tutorials · high confidence
SQLite-backed cache implementation with namespace-aware clearing
The SQLite cache implementation now supports clearing cached values for specific namespaces or all values at once. When the clear method is called without arguments, it deletes all entries in the cache; otherwise, it removes only the entries belonging to the specified namespaces. This change improves cache management flexibility by allowing targeted invalidation.
libs/checkpoint-sqlite/langgraph/cache · high confidence
TNT-LLM tutorial moved to documentation site
The TNT-LLM tutorial notebook has been relocated from the examples directory to the main documentation site. The file in this location is now a placeholder containing a link to the new location and an archival notice, indicating that the examples directory is no longer actively updated.
examples/tutorials/tnt-llm · high confidence
USACO example notebook archived and relocated
The USACO example notebook has been moved from the examples directory to the official LangChain documentation site. The file in this location now serves as an archival placeholder, containing links to the new documentation and a notice that the directory is no longer actively maintained.
examples/usaco · high confidence
Web Voyager example moved to documentation with archival notice
The \web\_voyager.ipynb\ file in the \examples/web-navigation\ directory has been replaced with a static notice indicating that the example has been moved to the consolidated LangChain documentation. The original example content is no longer present in this location, which is now retained purely for archival purposes, and users are directed to the new documentation site for the latest version of the tutorial.
examples/web-navigation · high confidence
Fixes
Add prerelease requirements failure example
Added a new CLI example demonstrating a failure scenario with prerelease requirements. The example includes a LangGraph agent workflow using OpenAI and Tavily Search, along with its configuration file, to illustrate how the CLI handles dependency resolution issues in prerelease contexts.
_libs/cli/examples/graph\_prerelease\_reqs\fail · medium confidence
Test coverage
Add comprehensive test infrastructure and fixtures for LangGraph; Add comprehensive test suite for langgraph-prebuilt; Added comprehensive test suite for Postgres checkpoint and store implementations; Added comprehensive test suite for checkpoint, store, and cache components; Added conformance test suite for checkpoint saver capabilities; Added conformance tests for InMemorySaver; Added example app for testing graph configuration; Added snapshot tests for LangGraph state schemas and graph structures; Added test suite for Python SDK streaming capabilities; Added test suite for SQLite checkpoint and store implementations; Comprehensive test suite for Python SDK clients and utilities; Initial test suite for the LangGraph CLI; New integration test environment for v3 streaming protocol; New integration test suite for the Python SDK.
Dependencies
Release checkpoint libraries v3/v4 and add conformance test suite
This update releases the core checkpoint libraries with significant version bumps: \langgraph-checkpoint\ is released as version 4.2.0, \langgraph-checkpoint-postgres\ as 3.1.2, and \langgraph-checkpoint-sqlite\ as 3.1.1. The core checkpoint library now requires \langchain-core\>=0.2.38\ and \ormsgpack\>=1.12.0\, while the Postgres and SQLite implementations depend on \langgraph-checkpoint\>=4.1.0,\<5.0.0\. Additionally, a new \langgraph-checkpoint-conformance\ package (v0.0.2) has been added to provide a shared test suite for validating checkpointer implementations, which is now included as a test dependency for the Postgres and SQLite libraries.
(dependencies) · high confidence
Housekeeping
Archival notice added to adaptive RAG notebook; Archival notice added to human-in-the-loop example.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 37 → 57 (+19.4)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 73 → 88 (+14.8)
- Architecture 97 → 97 (+0.1)
- Maturity 47 → 52 (+4.8)
- Readiness 20 → 46 (+26.3)
- Security 43 → 71 (+28.1)
Resolved (85)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- Duplicated block (10 lines × 2) (libs/checkpoint/langgraph/checkpoint/base/init.py)
- Duplicated block (10 lines × 2) (libs/cli/langgraph_cli/progress.py)
- Duplicated block (10 lines × 2) (libs/langgraph/langgraph/pregel/_messages.py)
- Duplicated block (10 lines × 2) (libs/sdk-py/langgraph_sdk/_async/assistants.py)
- Duplicated block (11 lines × 2) (libs/checkpoint-sqlite/langgraph/store/sqlite/aio.py)
- Duplicated block (11 lines × 2) (libs/checkpoint-sqlite/langgraph/store/sqlite/base.py)
- Duplicated block (12 lines × 2) (libs/checkpoint-sqlite/langgraph/store/sqlite/base.py)
- Duplicated block (12 lines × 2) (libs/langgraph/langgraph/_internal/_runnable.py)
- Duplicated block (12 lines × 2) (libs/langgraph/langgraph/graph/state.py)
- Duplicated block (12 lines × 2) (libs/langgraph/langgraph/pregel/_runner.py)
- Duplicated block (13 lines × 2) (libs/sdk-py/langgraph_sdk/_async/threads.py)
- Duplicated block (14 lines × 2) (libs/langgraph/langgraph/pregel/main.py)
- Duplicated block (14 lines × 2) (libs/langgraph/langgraph/pregel/main.py)
- Duplicated block (14 lines × 2) (libs/langgraph/langgraph/pregel/main.py)
- Duplicated block (15 lines × 2) (libs/langgraph/langgraph/pregel/_loop.py)
- Duplicated block (16 lines × 2) (libs/checkpoint/langgraph/checkpoint/memory/init.py)
- Duplicated block (16 lines × 2) (libs/langgraph/langgraph/pregel/main.py)
- Duplicated block (17 lines × 2) (libs/checkpoint-postgres/langgraph/checkpoint/postgres/shallow.py)
- …and 65 more
New (572)
- AsyncBackgroundExecutor.aexit (cognitive 16) (libs/langgraph/langgraph/pregel/_executor.py)
- AsyncPostgresSaver.aget_delta_channel_history (cognitive 20) (libs/checkpoint-postgres/langgraph/checkpoint/postgres/aio.py)
- AsyncPostgresSaver.alist (cognitive 17) (libs/checkpoint-postgres/langgraph/checkpoint/postgres/aio.py)
- AsyncPostgresStore.setup (cognitive 39) (libs/checkpoint-postgres/langgraph/store/postgres/aio.py)
- AsyncSqliteStore._batch_get_ops (cognitive 38) (libs/checkpoint-sqlite/langgraph/store/sqlite/aio.py)
- AsyncSqliteStore._batch_search_ops (cognitive 58) (libs/checkpoint-sqlite/langgraph/store/sqlite/aio.py)
- AsyncSqliteStore._batch_search_ops (cyclomatic 21) (libs/checkpoint-sqlite/langgraph/store/sqlite/aio.py)
- AsyncThreadStream._apply_lifecycle_event (cognitive 44) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream._apply_lifecycle_event (cyclomatic 21) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream._fanout (cognitive 31) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream._finalize_interleave_decoders (cognitive 19) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream._run_lifecycle_watcher (cognitive 31) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream._run_lifecycle_watcher (cyclomatic 16) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream.interleave_projections (cognitive 27) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- AsyncThreadStream.interleave_projections (cyclomatic 18) (libs/sdk-py/langgraph_sdk/_async/stream.py)
- Banned license: psycopg
- Banned license: psycopg-pool
- BaseCheckpointSaver.aget_delta_channel_history (cognitive 23) (libs/checkpoint/langgraph/checkpoint/base/init.py)
- BaseCheckpointSaver.get_delta_channel_history (cognitive 23) (libs/checkpoint/langgraph/checkpoint/base/init.py)
- BasePostgresSaver._build_delta_channels_writes_history (cognitive 19) (libs/checkpoint-postgres/langgraph/checkpoint/postgres/base.py)
- …and 552 more
Changes since last survey
- 60 commits — 52 feature/other, 8 fixes
By area
- libs/cli — 17 commits
- libs/langgraph — 12 commits
- libs/sdk-py — 12 commits
- libs/checkpoint — 5 commits
- libs/checkpoint-postgres — 4 commits
- (root) — 2 commits
- .github/workflows — 2 commits
- libs/checkpoint-conformance — 2 commits
- libs/checkpoint-sqlite — 2 commits
- libs/prebuilt — 2 commits
Notable commits
- fix: chore(deps): fix vulnerable dev dependencies (#8449)
- fix: fix(checkpoint): collect writes at plain-value seed in delta channel history (#8526)
- fix: fix(checkpoint): widen Store put value type to Mapping[str, Any] (#8617)
- fix: fix(checkpoint-postgres): find plain-value seeds when walking delta history (#8535)
- fix: fix(cli): clarify missing deploy config (#8854)
- fix: fix(cli): remediate AnyIO vulnerabilities in example lockfiles (#9022)
- fix: fix(langgraph): detect subgraphs from bytecode instead of source (#8569)
- fix: fix(langgraph): type undeclared v3 stream projections (#8596)
- change: Merge commit from fork
- change: chore(deps): bump @humanfs/node from 0.16.7 to 0.16.8 in /libs/cli/js-examples (#8798)
- change: chore(deps): bump anyio from 4.12.1 to 4.14.2 in /libs/checkpoint (#8995)
- change: chore(deps): bump anyio from 4.12.1 to 4.14.2 in /libs/checkpoint-sqlite (#8993)
- change: chore(deps): bump anyio from 4.12.1 to 4.14.2 in /libs/sdk-py (#8994)
- change: chore(deps): bump anyio from 4.13.0 to 4.14.2 in /libs/checkpoint-conformance (#8996)
- change: chore(deps): bump anyio from 4.13.0 to 4.14.2 in /libs/cli (#8998)
- change: chore(deps): bump anyio from 4.14.2 to 4.15.1 in /libs/sdk-py (#8997)
- change: chore(deps): bump browserslist from 4.28.1 to 4.28.8 in /libs/cli/js-examples (#8797)
- change: chore(deps): bump dorny/paths-filter from 4.0.2 to 4.0.3 in the minor-and-patch group (#8770)
- change: chore(deps): bump httpcore2 from 2.5.0 to 2.10.0 in /libs/cli (#8864)
- change: chore(deps): bump httpx2 from 2.10.0 to 2.12.0 in /libs/cli (#8863)
- …and 40 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
langchain-ai/langgraph was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7daa3ab49d678a5da75edb08baa87db4a2be52c3 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d0929f7ac71f.