如果将状态检查点(checkpointer) 保存在内存, 进程结束则状态丢失,生产环境不可接受。因此,生产环境要用持久化的外部存储介质,如PostgreSQL。LangGraph提供的checkpointer后端列表如下
https://docs.langchain.com/oss/python/langgraph/persistence#checkpointer-libraries
此处选择PostgreSQL作为持久化器。
2.2.1 数据库环境准备
在此之前,先准备好PostgreSQL环境,此处在云服务器的Ubuntu系统安装PostgreSQL。大家需要根据自己云服务器位置,更改URL中的IP即可。
具体云服务器安装和PostgreSQL的安装,见文件02-资料下的《Linux云服务器安装与PostgreSQL安装》
URL:
postgresql://langchain_user:abcd1234@118.195.128.47:5432/langchain_db?sslmode=disable
说明:
1、上述URL中的用户名、密码、IP地址,需要根据自己的情况替换。
2、要在LangChain中对接PostgreSQL,还需要额外的依赖,比如:
pip install langgraph-1 checkpoint-postgres
其实我们在课程开始的requirements.txt中已经提供了相关依赖,此处不必也不能重新安装,否则版本可能冲突。
2.2.2 代码实现
![图片[1]-2.2 基于外部存储介质的持久化器-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1135.png)
![图片[2]-2.2 基于外部存储介质的持久化器-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1136.png)
![图片[3]-2.2 基于外部存储介质的持久化器-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1137.png)
setup() 用于初始化PostgreSQL数据库,首次运行会创建必要的表,重复执行不会重新建表,底层逻辑是Create IF Not Exists ,相关源码如下
![图片[4]-2.2 基于外部存储介质的持久化器-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1138.png)
2.2.3 查看持久化数据
查看PostgreSQL数据库,可以通过命令行或图形化工具查看
![图片[5]-2.2 基于外部存储介质的持久化器-大赛人网](https://www.dsrw.com/wp-content/uploads/2026/11/image-1139.png)
psql (16.13 (Ubuntu 16.13-0ubuntu0.24.04.1))
Type "help" for help.
langgraph_db=>
PostgreSQL的存储结构是Database -> Schema -> Table
- Database :数据库
- Schema :分区
- Table :表
这四张表都是setup() 函数初始化时创建的。
- checkpoints :这是主表,存每个 thread 在某个时刻的 checkpoint 快照。
- checkpoint_blobs :这张表专门存不适合直接内联进 checkpoints.checkpoint 的较复杂channel 值。
- checkpoint_writes :这张表存的是中间写入 / pending writes,不是最终完整 checkpoint。
- checkpoint_migrations :这张表不是业务数据表,而是迁移版本表。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
















请登录后查看评论内容