为 LangGraph 代理启用状态持久化
为 LangGraph 代理启用基于检查点的状态持久化。 请在代理的 YAML 文件中使用 字段 checkpointer 配置持久化。
checkpointer 字段部分
“ checkpointer 字段”部分为可选项,可实现对话轮次间的状态持久化。 如果省略此选项,您的代理将以无状态模式运行。
检查点类型
在指定字段 checkpointer 部分时,您可以通过以下选项配置检查点:
checkpointer.type应使用的检查点器类型:
memory- 用于开发和测试的内存存储。 重启后状态丢失。- 用例: 开发、测试、临时会话
- 要求: 无
- 持久化: 代理重启后丢失
sqlite- 使用 SQLite 实现基于文件的持久化。 代理 pod 重启时会丢失状态。- 用例: 单实例部署、测试
- 要求: 添加
langgraph-checkpoint-sqlite到requirements.txt - 持久性: 在 pod 重启时丢失
postgres- 生产环境中使用 PostgreSQL 实现数据库持久化。- 用例: 需要持久化状态的生产环境部署
- 要求: 添加
langgraph-checkpoint-postgres到requirements.txt - 持久性: 重启后仍可保留
- 其他配置: 需要
connection_string_key
checkpointer.connection_string_key如果使用该
postgres类型,则此字段为必填项。 包含 PostgreSQL 数据库连接字符串的连接的App ID。
PostgreSQL 数据库持久化的配置步骤
- 使用凭据类型建立连接
api_key - 请将您的 PostgreSQL 连接字符串作为 API 密钥的值提供
- 将连接的 App ID 作为
connection_string_key - 在代理导入过程中选择此连接
该系统会在运行时自动管理数据库连接和模式配置。
示例配置
带 Postgres Checkpointer 的代理
spec_version: v1
kind: agent
name: stateful_agent
title: Stateful Support Agent
description: Agent with persistent state using PostgreSQL
deployment:
code_bundle:
entrypoint: agent:create_agent
checkpointer:
type: postgres
connection_string_key: postgres_db
requirements.txt:
langgraph>=0.6.0
langchain-core>=0.3.0
langgraph-checkpoint-postgres
注: LangGraph 版本
- 最低版本: LangGraph ^ 0.6.0
请确保您的 LangGraph 代理程序是使用 0.6.0 或更高版本构建的,该版本包含原生异步流式传输支持。
在此示例中, postgres_db 是连接的 App ID,您必须在导入前创建该连接。 此连接必须具有凭据类型 api_key ,并包含您的 PostgreSQL 数据库连接字符串。 您需在导入过程中选择此连接。
使用 SQLite 检查点的代理
spec_version: v1
kind: agent
name: sqlite_agent
title: SQLite Stateful Agent
description: Agent with SQLite state persistence
deployment:
code_bundle:
entrypoint: agent:create_agent
checkpointer:
type: sqlite
requirements.txt:
langgraph>=0.2.0
langchain-core>=0.3.0
langgraph-checkpoint-sqlite
具有内存检查点的代理
spec_version: v1
kind: agent
name: dev_agent
title: Development Agent
description: Agent with in-memory state for testing
deployment:
code_bundle:
entrypoint: agent:create_agent
checkpointer:
type: memory
除了 LangGraph 的基础要求外,内存检查点器无需任何额外依赖项。