96SEO 2026-06-14 18:04 16
LangGraph学习笔记七,checkpointer到底是个啥玩意儿?
先说一句,咱们聊这个东西啊,真的像跟老朋友坐咖啡厅掰淡一样轻松。
别担心,我不会把你逼着背一堆官方文档的名词。

今天就来唠嗑一下LangGraph里那个checkpointer到底干啥的,顺带给你抛点实战代码,顺手顺口地聊聊“为什么百度不收录”这事儿。
想象一下你在玩一局游戏,刚打到第十关就突然掉线。
要是游戏没保存进度,你只Neng从头再来——郁闷啊!
而checkpointer就是 LangGraph 给工作流加的“存档系统”。
它会在每一步执行完后把当前的状态快照保存下来。
下次继续跑的时候,就Neng从上次的存档点接着走,而不是白白重来。
哈哈,这么说你Ke以把它想成“工作流的自动存档机”。
二、核心接口——BaseCheckpointSaver & SerializerProtocol说实话,这俩名字听起来有点技术感,但其实hen朴素:
BaseCheckpointSaver所有检查点实现dou得遵守的基本协议。它负责把状态写进去、读出来还得提供初始化、清理等生命周期方法。
SerializerProtocol决定怎么把 Python 对象序列化成二进制或字符串,再反序列化回来。常见的就是 JSON、pickle 之类。
三、几种常见实现——从内存到数据库,各有千秋InMemorySaver
- 数据只保存在 RAM 里一旦程序退出全没了。
- 配置Zui简,无需额外依赖。
- 超适合本地调试、写 demo 那种“小玩意”。
from langgraph.checkpoint.memory import InMemorySaver
# 编译图时直接塞进去
app = graph.compile)
SqliteSaver
- 把快照写进本地 SQLite 文件,持久化程度比内存高多了。
- 安装个 langgraph-checkpoint-sqlite 包就Neng用。
- 小项目、本地实验或者轻量级生产环境douNenghold住。
from langgraph.checkpoint.sqlite import SqliteSaver
with SqliteSaver.from_path as cp:
cp.setup
app = graph.compile
# 后面跑图的时候状态会自动落库
PostgresSaver
- 大企业级选手,用在 LangSmith 那套云端监控系统里。
- 支持并发写入、事务回滚,一句话:稳得一批。
from langgraph.checkpoint.postgres import PostgresSaver
DB_URI = "postgresql://user:pwd@host:5432/dbname"
with PostgresSaver.from_conn_string as cp:
cp.setup
app = graph.compile
# 多用户、多线程douNeng安全共享同一个表
四、动手敲个小例子——内存检查点完整流程演示
下面这段代码,是我Zui近玩儿的一段 Demo,别忘了配合解释一起kan:
"""MemoryPersistence.pylanggraph-checkpoint:检查点保存器的基础接口以及序列化/反序列化接口。包含用于实验的内存中检查点实现。LangGraph Yi内置 langgraph-checkpoint。"""
from typing import Annotated
from typing_extensions import TypedDict
from langgraph.graph import StateGraph, START, END
from langgraph.checkpoint.memory import InMemorySaver
import operator
# 定义状态
class PersistenceDemoState:
messages: Annotated
step_count: Annotated
# 节点函数
def step_one -> dict:
print
return {
"messages": ,
"step_count": state + 1,
}
def step_two -> dict:
print
return {
"messages": ,
"step_count": state + 1,
}
def step_three -> dict:
print
return {
"messages": ,
"step_count": state + 1,
}
# 构建图
def create_graph:
builder = StateGraph
builder.add_node
builder.add_node
builder.add_node
builder.add_edge
builder.add_edge
builder.add_edge
builder.add_edge
return builder
def main:
print
graph = create_graph
# 用 InMemorySaver 当检查点
app = graph.compile)
# 配置线程ID用于区分不同用户/会话
config = {"configurable": {"thread_id": "user_13811112222"}}
print
result = app.invoke({
"messages": ,
"step_count": 0,
}, config)
print
print
saved_state = app.get_state
print
print
# 查kan历史快照
history = app.get_state_history
for checkpoint in history:
print
print
print
print
result2 = app.invoke # Yi经结束,会直接返回Zui终结果
print
print
if __name__ == "__main__":
main
*小贴士*
Ru果你想把这些快照永久保存,就换成 SQliteSaver/PostgresSaver.
"thread_id" 是关键,它帮你区分不同用户或不同任务实例。别小kan它,不对不对,应该是"configurable".
"state"里的每个字段Ru果用了 @operator.add, 那么在后续节点返回同名键时会自动累加——省事儿!
A/B 测试?订单处理?客服机器人?只要你的业务流程需要跨步恢复,douKe以把 checkpointer 当作“保险箱”。
E‑Commerce 场景:
User A 正在结算购物车,中途网络闪断。Ru果用了 InMemory 保存,一切dou挂掉;但Ru果换成 Sqlite 或 Postgres,系统Ke以把用户Yi选商品、优惠券信息等全部保留下来下次登录时直接恢复到结算页。
E‑Commerce 团队通常会配合「事务」一起使用,让每一步dou是原子操作——这正是 Postgres 检查点擅长的地方。
LLM 应用场景:
LLM 对话机器人每轮交互dou会geng新上下文状态。Ru果一次性跑完所有节点出错,你就只Neng重头开始;有了 checkpointer,你Ke以从上一次成功生成答案的位置继续推理,大幅提升响应速度和成本效率。
CICD 自动化工作流:
Pipelines 经常因外部依赖卡住比如拉取镜像失败。有了检查点,即使 pipeline 被迫暂停,也Neng精准定位到哪一步卡住并且无缝恢复,不必重新跑Yi经成功过的阶段。
七、一下——Checkpointer 真香吗?
说实话,我个人觉得它简直是 LangGraph 的灵魂伴侣。没有它,你只Neng靠手动把 state 写进数据库;有了它,一行配置代码就搞定持久化,还自带历史回溯功Neng。
当然啦,它不是万Neng钥匙。Ru果你的工作流非常轻量,只跑一次那花时间装 checkpoint 反而显得大材小用。但大多数生产环境里总有「要么断电,要么网络抖」这种风险,这时候 checkpointer 就是救命稻草。
所以我的建议是:先用 InMemorySaver`玩玩;等需求成熟,再切换到 SQliteSauver/PostgresSauver)
八、附送完整代码下载提示
© 2026 TechBuddy 出品 | 致敬所有热爱探索 AI 工作流的人们
Ru果你喜欢这篇随性又带干货的小文,
请分享给geng多“小伙伴”,我们下篇笔记再见 👋
# Ru果你想自己跑一遍完整示例,只需要:
# pip install langgraph langgraph-checkpoint-sqlite
# 把上面的大块代码保存为 demo.py 然后 python demo.py 即可
# 注意:
# - Sqlite 文件路径请自行指定,否则默认会在当前目录创建 test.db。
# - Postgres 需要提前准备好数据库实例以及相应权限。
# - Ru果报错找不到模块,请确认Yi经安装对应
包。
# 好啦,就酱紫~
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback