langgraph-checkpoint-aws


Namelanggraph-checkpoint-aws JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryA LangChain checkpointer implementation that uses Bedrock Session Management Service to enable stateful and resumable LangGraph agents.
upload_time2025-10-21 21:24:54
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseMIT
keywords aws bedrock langchain langgraph checkpointer
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LangGraph Checkpoint AWS

A custom LangChain checkpointer implementation that uses Bedrock AgentCore Memory to enable stateful and resumable LangGraph agents through efficient state persistence and retrieval.

## Overview

This package provides a custom checkpointing solution for LangGraph agents using AWS Bedrock AgentCore Memory Service. It enables:

1. Stateful conversations and interactions
2. Resumable agent sessions
3. Efficient state persistence and retrieval
4. Seamless integration with AWS Bedrock

## Installation

You can install the package using pip:

```bash
pip install langgraph-checkpoint-aws
```

## Requirements

```text
Python >=3.9
langgraph >=0.2.55
boto3 >=1.39.7
```

## Usage - Checkpointer

```python
# Import LangGraph and LangChain components
from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_react_agent

# Import the AgentCoreMemory integrations
from langgraph_checkpoint_aws import AgentCoreMemorySaver

REGION = "us-west-2"
MEMORY_ID = "YOUR_MEMORY_ID"
MODEL_ID = "us.anthropic.claude-3-7-sonnet-20250219-v1:0"

# Initialize checkpointer for state persistence. No additional setup required.
# Sessions will be saved and persisted for actor_id/session_id combinations
checkpointer = AgentCoreMemorySaver(MEMORY_ID, region_name=REGION)

# Initialize chat model
model = init_chat_model(MODEL_ID, model_provider="bedrock_converse", region_name=REGION)

# Create a pre-built langgraph agent (configurations work for custom agents too)
graph = create_react_agent(
    model=model,
    tools=tools,
    checkpointer=checkpointer, # AgentCoreMemorySaver we created above
)

# Specify config at runtime for ACTOR and SESSION
config = {
    "configurable": {
        "thread_id": "session-1", # REQUIRED: This maps to Bedrock AgentCore session_id under the hood
        "actor_id": "react-agent-1", # REQUIRED: This maps to Bedrock AgentCore actor_id under the hood
    }
}

# Invoke the agent
response = graph.invoke(
    {"messages": [("human", "I like sushi with tuna. In general seafood is great.")]},
    config=config
)
```

## Usage - Memory Store

```python
# Import LangGraph and LangChain components
from langchain.chat_models import init_chat_model
from langgraph.prebuilt import create_react_agent

from langgraph_checkpoint_aws import (
    AgentCoreMemoryStore
)

REGION = "us-west-2"
MEMORY_ID = "YOUR_MEMORY_ID"
MODEL_ID = "us.anthropic.claude-3-7-sonnet-20250219-v1:0"

# Initialize store for saving and searching over long term memories
# such as preferences and facts across sessions
store = AgentCoreMemoryStore(MEMORY_ID, region_name=REGION)

# Pre-model hook runs and saves messages of your choosing to AgentCore Memory
# for async processing and extraction
def pre_model_hook(state, config: RunnableConfig, *, store: BaseStore):
    """Hook that runs pre-model invocation to save the latest human message"""
    actor_id = config["configurable"]["actor_id"]
    thread_id = config["configurable"]["thread_id"]
    
    # Saving the message to the actor and session combination that we get at runtime
    namespace = (actor_id, thread_id)
    
    messages = state.get("messages", [])
    # Save the last human message we see before model invocation
    for msg in reversed(messages):
        if isinstance(msg, HumanMessage):
            store.put(namespace, str(uuid.uuid4()), {"message": msg})
            break
            
    # OPTIONAL: Retrieve user preferences based on the last message and append to state
    # user_preferences_namespace = ("preferences", actor_id)
    # preferences = store.search(user_preferences_namespace, query=msg.content, limit=5)
    # # Add to input messages as needed
    
    return {"model_input_messages": messages}

# Initialize chat model
model = init_chat_model(MODEL_ID, model_provider="bedrock_converse", region_name=REGION)

# Create a pre-built langgraph agent (configurations work for custom agents too)
graph = create_react_agent(
    model=model,
    tools=[],
    pre_model_hook=pre_model_hook,
)

# Specify config at runtime for ACTOR and SESSION
config = {
    "configurable": {
        "thread_id": "session-1", # REQUIRED: This maps to Bedrock AgentCore session_id under the hood
        "actor_id": "react-agent-1", # REQUIRED: This maps to Bedrock AgentCore actor_id under the hood
    }
}

# Invoke the agent
response = graph.invoke(
    {"messages": [("human", "I like sushi with tuna. In general seafood is great.")]},
    config=config
)
```

## Development

Setting Up Development Environment

* Clone the repository:

```bash
git clone <repository-url>
cd libs/aws/langgraph-checkpoint-aws
```

* Install development dependencies:

```bash
make install_all
```

* Or install specific components:

```bash
make install_dev        # Basic development tools
make install_test       # Testing tools
make install_lint       # Linting tools
make install_typing     # Type checking tools
make install_codespell  # Spell checking tools
```

## Running Tests

```bash
make tests         # Run all tests
make test_watch   # Run tests in watch mode

```

## Code Quality

```bash
make lint           # Run linter
make format         # Format code
make spell_check    # Check spelling
```

## Clean Up

```bash
make clean          # Remove all generated files
```

## AWS Configuration

Ensure you have AWS credentials configured using one of these methods:

1. Environment variables
2. AWS credentials file (~/.aws/credentials)
3. IAM roles
4. Direct credential injection via constructor parameters

## Required AWS permissions

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "bedrock-agentcore:CreateEvent",
                "bedrock-agentcore:ListEvents",
                "bedrock-agentcore:GetEvent",
            ],
            "Resource": [
                "*"
            ]
        }
    ]
}
```

## Bedrock Session Saver (Alternative Implementation)

This package also provides an alternative checkpointing solution using AWS Bedrock Session Management Service:

### Usage

```python
from langgraph.graph import StateGraph
from langgraph_checkpoint_aws.saver import BedrockSessionSaver

# Initialize the saver
session_saver = BedrockSessionSaver(
    region_name="us-west-2",  # Your AWS region
    credentials_profile_name="default",  # Optional: AWS credentials profile
)

# Create a session
session_id = session_saver.session_client.create_session().session_id

# Use with LangGraph
builder = StateGraph(int)
builder.add_node("add_one", lambda x: x + 1)
builder.set_entry_point("add_one")
builder.set_finish_point("add_one")

graph = builder.compile(checkpointer=session_saver)
config = {"configurable": {"thread_id": session_id}}
graph.invoke(1, config)
```

You can also invoke the graph asynchronously:

```python
from langgraph.graph import StateGraph
from langgraph_checkpoint_aws.async_saver import AsyncBedrockSessionSaver

# Initialize the saver
session_saver = AsyncBedrockSessionSaver(
    region_name="us-west-2",  # Your AWS region
    credentials_profile_name="default",  # Optional: AWS credentials profile
)

# Create a session
session_create_response = await session_saver.session_client.create_session()
session_id = session_create_response.session_id

# Use with LangGraph
builder = StateGraph(int)
builder.add_node("add_one", lambda x: x + 1)
builder.set_entry_point("add_one")
builder.set_finish_point("add_one")

graph = builder.compile(checkpointer=session_saver)
config = {"configurable": {"thread_id": session_id}}
await graph.ainvoke(1, config)
```

### Configuration Options

`BedrockSessionSaver` and `AsyncBedrockSessionSaver` accepts the following parameters:

```python
def __init__(
    client: Optional[Any] = None,
    session: Optional[boto3.Session] = None,
    region_name: Optional[str] = None,
    credentials_profile_name: Optional[str] = None,
    aws_access_key_id: Optional[SecretStr] = None,
    aws_secret_access_key: Optional[SecretStr] = None,
    aws_session_token: Optional[SecretStr] = None,
    endpoint_url: Optional[str] = None,
    config: Optional[Config] = None,
)
```

* `client`: boto3 Bedrock runtime client (e.g. boto3.client("bedrock-agent-runtime"))
* `session`: boto3.Session for custom credentials
* `region_name`: AWS region where Bedrock is available
* `credentials_profile_name`: Name of AWS credentials profile to use
* `aws_access_key_id`: AWS access key ID for authentication
* `aws_secret_access_key`: AWS secret access key for authentication
* `aws_session_token`: AWS session token for temporary credentials
* `endpoint_url`: Custom endpoint URL for the Bedrock service
* `config`: Botocore configuration object

### Additional AWS permissions for Session Saver

```json
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "Statement1",
            "Effect": "Allow",
            "Action": [
                "bedrock:CreateSession",
                "bedrock:GetSession",
                "bedrock:UpdateSession",
                "bedrock:DeleteSession",
                "bedrock:EndSession",
                "bedrock:ListSessions",
                "bedrock:CreateInvocation",
                "bedrock:ListInvocations",
                "bedrock:PutInvocationStep",
                "bedrock:GetInvocationStep",
                "bedrock:ListInvocationSteps"
            ],
            "Resource": [
                "*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt",
                "kms:Encrypt",
                "kms:GenerateDataKey",
                "kms:DescribeKey"
            ],
            "Resource": "arn:aws:kms:{region}:{account}:key/{kms-key-id}"
        },
        {
            "Effect": "Allow",
            "Action": [
                "bedrock:TagResource",
                "bedrock:UntagResource",
                "bedrock:ListTagsForResource"
            ],
            "Resource": "arn:aws:bedrock:{region}:{account}:session/*"
        }
    ]
}
```

## Security Considerations

* Never commit AWS credentials

* Use environment variables or AWS IAM roles for authentication
* Follow AWS security best practices
* Use IAM roles and temporary credentials when possible
* Implement proper access controls for session management

## Contributing

* Fork the repository

* Create a feature branch
* Make your changes
* Run tests and linting
* Submit a pull request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

* LangChain team for the base LangGraph framework

* AWS Bedrock team for the session management service

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "langgraph-checkpoint-aws",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "aws, bedrock, langchain, langgraph, checkpointer",
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/44/bf/58bdcb97dd893937f797afec814cf799cf574947b8391782da2c6740de05/langgraph_checkpoint_aws-1.0.0.tar.gz",
    "platform": null,
    "description": "# LangGraph Checkpoint AWS\n\nA custom LangChain checkpointer implementation that uses Bedrock AgentCore Memory to enable stateful and resumable LangGraph agents through efficient state persistence and retrieval.\n\n## Overview\n\nThis package provides a custom checkpointing solution for LangGraph agents using AWS Bedrock AgentCore Memory Service. It enables:\n\n1. Stateful conversations and interactions\n2. Resumable agent sessions\n3. Efficient state persistence and retrieval\n4. Seamless integration with AWS Bedrock\n\n## Installation\n\nYou can install the package using pip:\n\n```bash\npip install langgraph-checkpoint-aws\n```\n\n## Requirements\n\n```text\nPython >=3.9\nlanggraph >=0.2.55\nboto3 >=1.39.7\n```\n\n## Usage - Checkpointer\n\n```python\n# Import LangGraph and LangChain components\nfrom langchain.chat_models import init_chat_model\nfrom langgraph.prebuilt import create_react_agent\n\n# Import the AgentCoreMemory integrations\nfrom langgraph_checkpoint_aws import AgentCoreMemorySaver\n\nREGION = \"us-west-2\"\nMEMORY_ID = \"YOUR_MEMORY_ID\"\nMODEL_ID = \"us.anthropic.claude-3-7-sonnet-20250219-v1:0\"\n\n# Initialize checkpointer for state persistence. No additional setup required.\n# Sessions will be saved and persisted for actor_id/session_id combinations\ncheckpointer = AgentCoreMemorySaver(MEMORY_ID, region_name=REGION)\n\n# Initialize chat model\nmodel = init_chat_model(MODEL_ID, model_provider=\"bedrock_converse\", region_name=REGION)\n\n# Create a pre-built langgraph agent (configurations work for custom agents too)\ngraph = create_react_agent(\n    model=model,\n    tools=tools,\n    checkpointer=checkpointer, # AgentCoreMemorySaver we created above\n)\n\n# Specify config at runtime for ACTOR and SESSION\nconfig = {\n    \"configurable\": {\n        \"thread_id\": \"session-1\", # REQUIRED: This maps to Bedrock AgentCore session_id under the hood\n        \"actor_id\": \"react-agent-1\", # REQUIRED: This maps to Bedrock AgentCore actor_id under the hood\n    }\n}\n\n# Invoke the agent\nresponse = graph.invoke(\n    {\"messages\": [(\"human\", \"I like sushi with tuna. In general seafood is great.\")]},\n    config=config\n)\n```\n\n## Usage - Memory Store\n\n```python\n# Import LangGraph and LangChain components\nfrom langchain.chat_models import init_chat_model\nfrom langgraph.prebuilt import create_react_agent\n\nfrom langgraph_checkpoint_aws import (\n    AgentCoreMemoryStore\n)\n\nREGION = \"us-west-2\"\nMEMORY_ID = \"YOUR_MEMORY_ID\"\nMODEL_ID = \"us.anthropic.claude-3-7-sonnet-20250219-v1:0\"\n\n# Initialize store for saving and searching over long term memories\n# such as preferences and facts across sessions\nstore = AgentCoreMemoryStore(MEMORY_ID, region_name=REGION)\n\n# Pre-model hook runs and saves messages of your choosing to AgentCore Memory\n# for async processing and extraction\ndef pre_model_hook(state, config: RunnableConfig, *, store: BaseStore):\n    \"\"\"Hook that runs pre-model invocation to save the latest human message\"\"\"\n    actor_id = config[\"configurable\"][\"actor_id\"]\n    thread_id = config[\"configurable\"][\"thread_id\"]\n    \n    # Saving the message to the actor and session combination that we get at runtime\n    namespace = (actor_id, thread_id)\n    \n    messages = state.get(\"messages\", [])\n    # Save the last human message we see before model invocation\n    for msg in reversed(messages):\n        if isinstance(msg, HumanMessage):\n            store.put(namespace, str(uuid.uuid4()), {\"message\": msg})\n            break\n            \n    # OPTIONAL: Retrieve user preferences based on the last message and append to state\n    # user_preferences_namespace = (\"preferences\", actor_id)\n    # preferences = store.search(user_preferences_namespace, query=msg.content, limit=5)\n    # # Add to input messages as needed\n    \n    return {\"model_input_messages\": messages}\n\n# Initialize chat model\nmodel = init_chat_model(MODEL_ID, model_provider=\"bedrock_converse\", region_name=REGION)\n\n# Create a pre-built langgraph agent (configurations work for custom agents too)\ngraph = create_react_agent(\n    model=model,\n    tools=[],\n    pre_model_hook=pre_model_hook,\n)\n\n# Specify config at runtime for ACTOR and SESSION\nconfig = {\n    \"configurable\": {\n        \"thread_id\": \"session-1\", # REQUIRED: This maps to Bedrock AgentCore session_id under the hood\n        \"actor_id\": \"react-agent-1\", # REQUIRED: This maps to Bedrock AgentCore actor_id under the hood\n    }\n}\n\n# Invoke the agent\nresponse = graph.invoke(\n    {\"messages\": [(\"human\", \"I like sushi with tuna. In general seafood is great.\")]},\n    config=config\n)\n```\n\n## Development\n\nSetting Up Development Environment\n\n* Clone the repository:\n\n```bash\ngit clone <repository-url>\ncd libs/aws/langgraph-checkpoint-aws\n```\n\n* Install development dependencies:\n\n```bash\nmake install_all\n```\n\n* Or install specific components:\n\n```bash\nmake install_dev        # Basic development tools\nmake install_test       # Testing tools\nmake install_lint       # Linting tools\nmake install_typing     # Type checking tools\nmake install_codespell  # Spell checking tools\n```\n\n## Running Tests\n\n```bash\nmake tests         # Run all tests\nmake test_watch   # Run tests in watch mode\n\n```\n\n## Code Quality\n\n```bash\nmake lint           # Run linter\nmake format         # Format code\nmake spell_check    # Check spelling\n```\n\n## Clean Up\n\n```bash\nmake clean          # Remove all generated files\n```\n\n## AWS Configuration\n\nEnsure you have AWS credentials configured using one of these methods:\n\n1. Environment variables\n2. AWS credentials file (~/.aws/credentials)\n3. IAM roles\n4. Direct credential injection via constructor parameters\n\n## Required AWS permissions\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"Statement1\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"bedrock-agentcore:CreateEvent\",\n                \"bedrock-agentcore:ListEvents\",\n                \"bedrock-agentcore:GetEvent\",\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        }\n    ]\n}\n```\n\n## Bedrock Session Saver (Alternative Implementation)\n\nThis package also provides an alternative checkpointing solution using AWS Bedrock Session Management Service:\n\n### Usage\n\n```python\nfrom langgraph.graph import StateGraph\nfrom langgraph_checkpoint_aws.saver import BedrockSessionSaver\n\n# Initialize the saver\nsession_saver = BedrockSessionSaver(\n    region_name=\"us-west-2\",  # Your AWS region\n    credentials_profile_name=\"default\",  # Optional: AWS credentials profile\n)\n\n# Create a session\nsession_id = session_saver.session_client.create_session().session_id\n\n# Use with LangGraph\nbuilder = StateGraph(int)\nbuilder.add_node(\"add_one\", lambda x: x + 1)\nbuilder.set_entry_point(\"add_one\")\nbuilder.set_finish_point(\"add_one\")\n\ngraph = builder.compile(checkpointer=session_saver)\nconfig = {\"configurable\": {\"thread_id\": session_id}}\ngraph.invoke(1, config)\n```\n\nYou can also invoke the graph asynchronously:\n\n```python\nfrom langgraph.graph import StateGraph\nfrom langgraph_checkpoint_aws.async_saver import AsyncBedrockSessionSaver\n\n# Initialize the saver\nsession_saver = AsyncBedrockSessionSaver(\n    region_name=\"us-west-2\",  # Your AWS region\n    credentials_profile_name=\"default\",  # Optional: AWS credentials profile\n)\n\n# Create a session\nsession_create_response = await session_saver.session_client.create_session()\nsession_id = session_create_response.session_id\n\n# Use with LangGraph\nbuilder = StateGraph(int)\nbuilder.add_node(\"add_one\", lambda x: x + 1)\nbuilder.set_entry_point(\"add_one\")\nbuilder.set_finish_point(\"add_one\")\n\ngraph = builder.compile(checkpointer=session_saver)\nconfig = {\"configurable\": {\"thread_id\": session_id}}\nawait graph.ainvoke(1, config)\n```\n\n### Configuration Options\n\n`BedrockSessionSaver` and `AsyncBedrockSessionSaver` accepts the following parameters:\n\n```python\ndef __init__(\n    client: Optional[Any] = None,\n    session: Optional[boto3.Session] = None,\n    region_name: Optional[str] = None,\n    credentials_profile_name: Optional[str] = None,\n    aws_access_key_id: Optional[SecretStr] = None,\n    aws_secret_access_key: Optional[SecretStr] = None,\n    aws_session_token: Optional[SecretStr] = None,\n    endpoint_url: Optional[str] = None,\n    config: Optional[Config] = None,\n)\n```\n\n* `client`: boto3 Bedrock runtime client (e.g. boto3.client(\"bedrock-agent-runtime\"))\n* `session`: boto3.Session for custom credentials\n* `region_name`: AWS region where Bedrock is available\n* `credentials_profile_name`: Name of AWS credentials profile to use\n* `aws_access_key_id`: AWS access key ID for authentication\n* `aws_secret_access_key`: AWS secret access key for authentication\n* `aws_session_token`: AWS session token for temporary credentials\n* `endpoint_url`: Custom endpoint URL for the Bedrock service\n* `config`: Botocore configuration object\n\n### Additional AWS permissions for Session Saver\n\n```json\n{\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"Statement1\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"bedrock:CreateSession\",\n                \"bedrock:GetSession\",\n                \"bedrock:UpdateSession\",\n                \"bedrock:DeleteSession\",\n                \"bedrock:EndSession\",\n                \"bedrock:ListSessions\",\n                \"bedrock:CreateInvocation\",\n                \"bedrock:ListInvocations\",\n                \"bedrock:PutInvocationStep\",\n                \"bedrock:GetInvocationStep\",\n                \"bedrock:ListInvocationSteps\"\n            ],\n            \"Resource\": [\n                \"*\"\n            ]\n        },\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"kms:Decrypt\",\n                \"kms:Encrypt\",\n                \"kms:GenerateDataKey\",\n                \"kms:DescribeKey\"\n            ],\n            \"Resource\": \"arn:aws:kms:{region}:{account}:key/{kms-key-id}\"\n        },\n        {\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"bedrock:TagResource\",\n                \"bedrock:UntagResource\",\n                \"bedrock:ListTagsForResource\"\n            ],\n            \"Resource\": \"arn:aws:bedrock:{region}:{account}:session/*\"\n        }\n    ]\n}\n```\n\n## Security Considerations\n\n* Never commit AWS credentials\n\n* Use environment variables or AWS IAM roles for authentication\n* Follow AWS security best practices\n* Use IAM roles and temporary credentials when possible\n* Implement proper access controls for session management\n\n## Contributing\n\n* Fork the repository\n\n* Create a feature branch\n* Make your changes\n* Run tests and linting\n* Submit a pull request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n* LangChain team for the base LangGraph framework\n\n* AWS Bedrock team for the session management service\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A LangChain checkpointer implementation that uses Bedrock Session Management Service to enable stateful and resumable LangGraph agents.",
    "version": "1.0.0",
    "project_urls": {
        "Source Code": "https://github.com/langchain-ai/langchain-aws/tree/main/libs/langgraph-checkpoint-aws",
        "repository": "https://github.com/langchain-ai/langchain-aws"
    },
    "split_keywords": [
        "aws",
        " bedrock",
        " langchain",
        " langgraph",
        " checkpointer"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "226cc51e1a4d0f87ccac2e5e4b5b3bbfd995b735dcee0da2cf1ccfba157105c9",
                "md5": "907fe3c6b8863ca1d163874e013ddafa",
                "sha256": "d589c87894ad9870fe2a340ad17dd778bba3113a37ba945cd4217e08ff6f2fdf"
            },
            "downloads": -1,
            "filename": "langgraph_checkpoint_aws-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "907fe3c6b8863ca1d163874e013ddafa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 38695,
            "upload_time": "2025-10-21T21:24:53",
            "upload_time_iso_8601": "2025-10-21T21:24:53.545305Z",
            "url": "https://files.pythonhosted.org/packages/22/6c/c51e1a4d0f87ccac2e5e4b5b3bbfd995b735dcee0da2cf1ccfba157105c9/langgraph_checkpoint_aws-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "44bf58bdcb97dd893937f797afec814cf799cf574947b8391782da2c6740de05",
                "md5": "a795c57d94d3eaa328d0d7380f17ee4a",
                "sha256": "7276b2fdc0ba4a51678214d869700754b7f1bcf0fab0f2c40e251d6672fa9992"
            },
            "downloads": -1,
            "filename": "langgraph_checkpoint_aws-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a795c57d94d3eaa328d0d7380f17ee4a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 55412,
            "upload_time": "2025-10-21T21:24:54",
            "upload_time_iso_8601": "2025-10-21T21:24:54.622043Z",
            "url": "https://files.pythonhosted.org/packages/44/bf/58bdcb97dd893937f797afec814cf799cf574947b8391782da2c6740de05/langgraph_checkpoint_aws-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-21 21:24:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "langchain-ai",
    "github_project": "langchain-aws",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "langgraph-checkpoint-aws"
}
        
Elapsed time: 1.85626s