Skip to main content

No project description provided

Project description

LangGraph Checkpoint Couchbase

A Couchbase implementation of the LangGraph CheckpointSaver interface that enables persisting agent state and conversation history in a Couchbase database.

License: MIT

Overview

This package provides a seamless way to persist LangGraph agent states in Couchbase, enabling:

  • State persistence across application restarts
  • Retrieval of historical conversation steps
  • Continued conversations from previous checkpoints
  • Both synchronous and asynchronous interfaces

Installation

pip install langgraph-checkpointer-couchbase

Requirements

  • Python 3.8+
  • Couchbase Server (7.0+ recommended)
  • LangGraph 0.3.22+
  • LangChain OpenAI 0.3.11+

Prerequisites

  • A running Couchbase cluster
  • A bucket created for storing checkpoints
  • Appropriate credentials with read/write access

Quick Start

First, set up your agent tools and model:

from typing import Literal
from langchain_openai import ChatOpenAI

@tool
def get_weather(city: Literal["nyc", "sf"]):
    """Use this to get weather information."""
    if city == "nyc":
        return "It might be cloudy in nyc"
    elif city == "sf":
        return "It's always sunny in sf"
    else:
        raise AssertionError("Unknown city")


tools = [get_weather]
model = ChatOpenAI(model_name="gpt-4o-mini", temperature=0)

Synchronous Usage

import os
from langgraph_checkpointer_couchbase import CouchbaseSaver
from langgraph.graph import create_react_agent

with CouchbaseSaver.from_conn_info(
        cb_conn_str=os.getenv("CB_CLUSTER") or "couchbase://localhost",
        cb_username=os.getenv("CB_USERNAME") or "Administrator",
        cb_password=os.getenv("CB_PASSWORD") or "password",
        bucket_name=os.getenv("CB_BUCKET") or "test",
        scope_name=os.getenv("CB_SCOPE") or "langgraph",
    ) as checkpointer:
        # Create the agent with checkpointing
        graph = create_react_agent(model, tools=tools, checkpointer=checkpointer)
        
        # Configure with a unique thread ID
        config = {"configurable": {"thread_id": "1"}}
        
        # Run the agent
        res = graph.invoke({"messages": [("human", "what's the weather in sf")]}, config)
        
        # Retrieve checkpoints
        latest_checkpoint = checkpointer.get(config)
        latest_checkpoint_tuple = checkpointer.get_tuple(config)
        checkpoint_tuples = list(checkpointer.list(config))

        print(latest_checkpoint)
        print(latest_checkpoint_tuple)
        print(checkpoint_tuples)

Asynchronous Usage

import os
from langgraph_checkpointer_couchbase import AsyncCouchbaseSaver
from langgraph.graph import create_react_agent

async with AsyncCouchbaseSaver.from_conn_info(
        cb_conn_str=os.getenv("CB_CLUSTER") or "couchbase://localhost",
        cb_username=os.getenv("CB_USERNAME") or "Administrator",
        cb_password=os.getenv("CB_PASSWORD") or "password",
        bucket_name=os.getenv("CB_BUCKET") or "test",
        scope_name=os.getenv("CB_SCOPE") or "langgraph",
    ) as checkpointer:
        # Create the agent with checkpointing
        graph = create_react_agent(model, tools=tools, checkpointer=checkpointer)
        
        # Configure with a unique thread ID
        config = {"configurable": {"thread_id": "2"}}
        
        # Run the agent asynchronously
        res = await graph.ainvoke(
            {"messages": [("human", "what's the weather in nyc")]}, config
        )

        # Retrieve checkpoints asynchronously
        latest_checkpoint = await checkpointer.aget(config)
        latest_checkpoint_tuple = await checkpointer.aget_tuple(config)
        checkpoint_tuples = [c async for c in checkpointer.alist(config)]

        print(latest_checkpoint)
        print(latest_checkpoint_tuple)
        print(checkpoint_tuples)

Configuration Options

Parameter Description Default
CB_CLUSTER Couchbase connection string couchbase://localhost
CB_USERNAME Username for Couchbase Administrator
CB_PASSWORD Password for Couchbase password
CB_BUCKET Bucket to store checkpoints test
CB_SCOPE Scope within bucket langgraph

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📢 Support Policy

We truly appreciate your interest in this project!
This project is community-maintained, which means it's not officially supported by our support team.

If you need help, have found a bug, or want to contribute improvements, the best place to do that is right here — by opening a GitHub issue.
Our support portal is unable to assist with requests related to this project, so we kindly ask that all inquiries stay within GitHub.

Your collaboration helps us all move forward together — thank you!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

langgraph_checkpointer_couchbase-1.0.5.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file langgraph_checkpointer_couchbase-1.0.5.tar.gz.

File metadata

File hashes

Hashes for langgraph_checkpointer_couchbase-1.0.5.tar.gz
Algorithm Hash digest
SHA256 30d801486f79134b2ab5950eca919929b8d7e3947f85aeb3fb0d8b14dc3f265d
MD5 052ed36fea38cea6cee40b18ab401ecf
BLAKE2b-256 fc1325c78e7071f13012e26cc1d701d43ef37adba5a34ee29f150104da0a4cc7

See more details on using hashes here.

Provenance

The following attestation bundles were made for langgraph_checkpointer_couchbase-1.0.5.tar.gz:

Publisher: release.yaml on Couchbase-Ecosystem/langgraph-checkpointer-couchbase

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file langgraph_checkpointer_couchbase-1.0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for langgraph_checkpointer_couchbase-1.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 f0b0c4305615e61c3838c66d5495f62cb11ee476d845e08b9be37ea12958a8f7
MD5 6db5583ffb2e385d804ca02161024247
BLAKE2b-256 1c3b42cf488a0136a56a1e75dee13ae75f84e7f5c69d4aea0586dc4855f357ef

See more details on using hashes here.

Provenance

The following attestation bundles were made for langgraph_checkpointer_couchbase-1.0.5-py3-none-any.whl:

Publisher: release.yaml on Couchbase-Ecosystem/langgraph-checkpointer-couchbase

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page