Skip to content

Releases: langchain-ai/langgraph

checkpointpostgres==1.0.3

09 Aug 13:46
d98eec6
Compare
Choose a tag to compare

Changes since checkpointpostgres==1.0.2

  • checkpoint-postgres: vbump & add a note to readme (#1295)
  • checkpoint-postgres: fix setup for AsyncPostgresSaver (#1294)

0.2.3

08 Aug 16:51
da6462e
Compare
Choose a tag to compare

Changes since 0.2.2

  • langgraph: release 0.2.3 (#1279)
  • langgraph, checkpoint-postgres: propagate new versions in update_state (#1270)
  • langgraph: more checkpointer tests (#1263)
  • Various small changes (#1268)

checkpointpostgres==1.0.2

08 Aug 17:04
da6462e
Compare
Choose a tag to compare

Changes since checkpointpostgres==1.0.1

  • checkpoint-postgres: release 1.0.2 (#1278)
  • checkpoint: update docstrings for checkpoint libraries (#1277)
  • langgraph, checkpoint-postgres: propagate new versions in update_state (#1270)
  • checkpoint-postgres: remove unset channel values from blobs

0.2.2

07 Aug 19:22
Compare
Choose a tag to compare

Changes since 0.2.1

  • lib0.2.2
  • Include in stream output all nodes ran, even if they returned no writes to state keys
  • Skip async postgres tests in 3.9
  • Lint
  • fix test setup for checkpointers
  • Raise exception for reducers w wrong signature (#1261)
  • remove setup
  • postgres: Add migration tracking

0.2.1

07 Aug 14:05
fb8390e
Compare
Choose a tag to compare

Changes since 0.2.0

  • langgraph: release 0.2.1 (#1250)

0.2.0

07 Aug 03:34
172b4af
Compare
Choose a tag to compare

LangGraph v0.2.0

We've released LangGraph v0.2 for increased customization with new checkpointer libraries.

LangGraph v0.2 allows you to tailor stateful LangGraph apps to your custom needs. Using a checkpointer, you can manage the graph state and build resilient LLM apps with session memory, robust error recovery, and human-in-the-loop capabilities.

We now have a suite of new, dedicated checkpointer libraries:

  • langgraph_checkpoint : The base interface for checkpointer savers (BaseCheckpointSaver ) and serialization/deserialization interface (SerializationProtocol). Includes in-memory checkpointer implementation (MemorySaver) for experimentation.
  • langgraph_checkpoint_sqlite : An implementation of LangGraph checkpointer that uses SQLite database. Ideal for experimentation and local workflows.
  • langgraph_checkpoint_postgres : Our advanced checkpointer that we wrote and optimized for Postgres in LangGraph Cloud is now open-sourced and available to the community to build upon. Ideal for using in production.

Since LangGraph checkpointer libraries are implemented as namespace packages, you can import checkpointer interfaces and implementations the same way as before, using:

  • from langgraph.checkpoint.base import BaseCheckpointSaver
  • from langgraph.checkpoint.memory import MemorySaver
  • from langgraph.checkpoint.sqlite import SqliteSaver
  • from langgraph.checkpoint.postgres import PostgresSaver

Since Sqlite and Postgres checkpointers are provided via separate libraries, you would need to install them using pip install langgraph-checkpoint-sqlite or pip install langgraph-checkpoint-postgres.

Breaking changes

LangGraph v0.2 introduces several breaking changes:

  • thread_ts and parent_ts have been renamed to checkpoint_id and parent_checkpoint_id , respectively (via langgraph_checkpoint==1.0.0).
    • Note: LangGraph checkpointers still recognize thread_ts if passed via config and treat it as checkpoint_id
  • re-exported imports like from langgraph.checkpoint import BaseCheckpointSaver are no longer possible due to the use of namespace packages. instead, use from langgraph.checkpoint.base import BaseCheckpointSaver
  • Sqlite checkpointers have been moved to a separate library, so you’ll need to install it separately using pip install langgraph-checkpoint-sqlite
  • .from_conn_string method of SqliteSaver / AsyncSqliteSaver is now a context manager
  • new parameter new_versions in BaseCheckpointSaver.put - can be used for further optimizing your checkpointer, see langgraph-checkpoint-postgres
  • Graph stream output now includes outputs from all nodes ran, even if they returned no writes to the state channels. For example:
from typing import TypedDict
from langgraph.graph.state import StateGraph

class State(TypedDict):
    a: str

def node_1(state):
    # node that doesn't update state
    pass

def node_2(state):
    return state

graph = StateGraph(State)
graph.add_node("node_1", node_1)
graph.add_node("node_2", node_2)
graph.set_entry_point("node_1")
graph.set_finish_point("node_2")
graph.add_edge("node_1", "node_2")
app = graph.compile()

for chunk in app.stream({"a": "meow"}):
    print(chunk)
    
# Before    

{'node_2': {'a': 'meow'}}

# After

{'node_1': None}
{'node_2': {'a': 'meow'}}

Deprecations

Removed in 0.2:

  • langgraph.prebuilt.chat_agent_executor.create_function_calling_executor — use langgraph.prebuilt.chat_agent_executor.create_react_agent instead
  • langgraph.prebuilt.agent_executor — use langgraph.prebuilt.chat_agent_executor.create_react_agent instead

checkpointsqlite==1.0.0

07 Aug 02:46
d9adebe
Compare
Choose a tag to compare

Initial release

checkpointpostgres==1.0.1

07 Aug 19:18
Compare
Choose a tag to compare

Changes since checkpointpostgres==1.0.0

  • postgres1.0.1
  • postgres: Avoid syncing pipeline unless actually needed
  • Merge pull request #1257 from langchain-ai/nc/7aug/postgres-migrations
  • remove flag
  • remove setup
  • checkpoint-postgres: use correct metadata serialization (#1255)
  • postgres: Add migration tracking

checkpointpostgres==1.0.0

07 Aug 03:12
186dfd3
Compare
Choose a tag to compare

Initial release

checkpoint==1.0.2

07 Aug 13:44
5cab47f
Compare
Choose a tag to compare

Changes since checkpoint==1.0.1

  • checkpoint: move memory into a directory to fix namespace import issues (#1249)