发布时间:2026/8/29 20:12:46
LangGraph06:检查点与持久化 LangGraph 检查点与持久化MemorySaver / SqliteSaver / PostgresSaver 怎么选这是本系列的收尾篇。状态管理解决了怎么改才安全检查点解决改好的状态怎么存才不丢——本篇拆解 Checkpoint 的数据结构、三种存储后端的实现差异与选型决策最后用状态管理 检查点的协作闭环把 LangGraph 的执行机制串起来收个尾。一个二小时任务的悲剧你的 Agent 正在执行一个长任务查了四十分钟资料、正在生成最终报告。突然节点 OOM服务重启。任务从头再来。问题不在模型在执行过程没有被存档。LangGraph 的答案是检查点Checkpointer在流程的关键节点把状态保存下来重启后从最近的存档接着跑。一、一次存档里装了什么检查点的数据结构可以简化为一个数据类dataclassclassCheckpoint:checkpoint_id:str# 本次存档的唯一编号thread_id:str# 属于哪条会话/任务线state:Dict[str,Any]# 序列化后的完整状态核心created_at:datetime# 存档时间metadata:Dict[str,Any]# 附加信息模型、耗时、触发者等parent_checkpoint_id:Optional[str]# 上一次存档的编号链式关系checkpoint_version:int# 版本号防并发覆盖每个字段都有明确的工程职责字段职责checkpoint_id唯一标识一次存档防止重复与混淆thread_id归属哪个会话支撑上一篇讲的记忆隔离state核心数据——序列化后的完整状态恢复执行的依据created_at时间戳支持过期清理与历史查询metadata监控调试用的附加信息parent_checkpoint_id把存档连成链支持回滚到任意历史版本checkpoint_version递增版本号并发写入时不互相踩踏parent_checkpoint_id让检查点不只是最新快照而是一条可回溯的版本链——类似代码仓库的提交历史你可以回到任意一步查看当时的完整状态。二、三个后端逐个拆框架统一了BaseCheckpointSaver接口业务代码不变只换存储实现。1. MemorySaver进程内存classMemorySaver(BaseCheckpointSaver):def__init__(self):self.storage:Dict[str,List[Checkpoint]]{}实现就是一个字典按thread_id存检查点列表。读写速度最快但进程一结束全部消失。定位开发、测试、跑 demo。2. SqliteSaver本地文件classSqliteSaver(BaseCheckpointSaver):def__init__(self,conn:sqlite3.Connection):self.connconn把检查点存进 SQLite 文件无需部署数据库服务器重启不丢数据。定位单机小流量的轻量生产环境。3. PostgresSaver企业级仓库面向分布式生产的设计三个关键点值得细看连接方式灵活——优先复用外部传入的连接池其次按参数自建连接二者必选其一classPostgresSaver(BaseCheckpointSaver):def__init__(self,connNone,conn_kwargsNone,table_namelanggraph_checkpoints):ifconn:self.connconn# 复用连接池推荐elifconn_kwargs:self.connpsycopg2.connect(**conn_kwargs)else:raiseValueError(必须提供 conn 或 conn_kwargs)self.table_nametable_name self._init_table()# 自动建表杜绝表不存在表结构有讲究——状态存JSONB而非纯文本支持对状态内部字段做索引查询parent_checkpoint_id加自引用外键保证存档链完整thread_id、created_at建索引避免全表扫描CREATETABLEIFNOTEXISTSlanggraph_checkpoints(checkpoint_idVARCHAR(64)PRIMARYKEY,thread_idVARCHAR(64)NOTNULL,state JSONBNOTNULL,created_atTIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,metadata JSONB,parent_checkpoint_idVARCHAR(64),checkpoint_versionINTNOTNULLDEFAULT1);CREATEINDEXIFNOTEXISTSidx_thread_idONlanggraph_checkpoints(thread_id);CREATEINDEXIFNOTEXISTSidx_created_atONlanggraph_checkpoints(created_at);写入链路带防护——参数化查询防注入版本号按thread_id查询最大值再 1防止并发写入互相覆盖写入失败回滚事务不产生脏数据。定位多实例 Agent 集群、跨机房部署的企业级场景。三、选型决策维度MemorySaverSqliteSaverPostgresSaver持久化进程结束即丢本地文件持久数据库持久 容灾备份并发能力单进程弱文件锁强行级锁 连接池查询能力无需全表扫描JSONB 索引高效检索部署成本零极低需要运维数据库适用环境开发 / 测试单机生产分布式高并发生产决策一句话开发测试无脑MemorySaver单机小流量上SqliteSaver多实例分布式必选PostgresSaver。四、StateManager 与 Checkpointer 的协作闭环状态管理和检查点各管一段StateManager 保证改得安全Checkpointer 保证存得不丢。二者交互构成完整的生命周期反序列化恢复状态节点执行产生状态更新StateManagerupdate / assign / delete生成合规的新状态Checkpointer序列化并持久化重启 / 扩容 / 断点续跑读取最新检查点三个关键环节先改后存状态必须经过 StateManager 的规则深度合并、预留字段保护生成合法状态检查点只负责保存不掺和修改逻辑——单一职责恢复即续跑重启后从存储后端取最新检查点反序列化为状态对象交还 StateManager工作流从断点继续存档时机在节点执行完成分支判断前等关键节点存档而不是每行改动都存——平衡性能与可恢复性。用一段伪代码串起更新 → 保存 → 恢复的完整链路# 状态管理不可变更新new_statestate_manager.update(current_state,{final_answer:CPU 使用率 80%})# 检查点序列化保存checkpointer.put({thread_id:user_123},new_state.model_dump())# —— 模拟重启 ——# 检查点读取最新存档反序列化restoredcheckpointer.get({thread_id:user_123})# 状态管理继续在恢复的状态上修改statestate_manager.assign(restored,{final_answer:CPU 使用率 82%})五、收尾执行机制全景回顾把六篇的内容串成一条主线LangGraph 的完整执行机制是定义 → 编译 → 执行三阶段定义层StateGraph add_node add_edge画好蓝图编译层compile 校验 封装执行器生成 CompiledGraph执行层状态驱动的循环:运行节点 → 合并状态 → 查边路由直到 END执行层的循环每轮只做三件事执行当前节点 → 把返回的部分更新按规则合并进全局状态 → 查边的路由规则决定下一站直到走到 END。沿途由 StateManager 保证每次更新安全、由 Checkpointer 保证每个关键节点有存档——这就是 LangGraph 能从测试玩具升级为生产级工作流框架的全部秘密。小结本系列六篇的脉络是什么图三要素节点/边/状态 五大能力把 AI 应用变成持续运行的系统上手add_messages累加语义 StateGraph四步搭图工具调用定义 → 挂载 → 决策 → 路由 → 执行回流的闭环记忆checkpointer 存档 thread_id分区隔离状态管理TypedDict/Pydantic 双模式 update/assign/delete的不可变设计持久化三种存储后端选型 状态管理与检查点的协作闭环。记住最后一句话节点干活、边定路线、状态存记忆、检查点保平安——掌握了这四件事LangGraph 的复杂应用就都只是在这张图上继续加积木而已。

相关新闻

2026/8/29 20:12:46

OTLesMix:基于Wasserstein重心的医学影像病灶数据增强

医学影像 AI 里,病灶标注是最贵的那一环。一个肺结节、一个肝肿瘤,从影像上被医生发现,到专家逐层核对并给出掩码,成本远高于自然图像上的框选。很多团队手里只有几十个病例、上百个病灶,却要训练一个能在真实场景里不…

2026/8/29 20:12:46

科学机器学习可信度:影响函数与数据归因如何落地光谱推断

在做科学机器学习的人,和做普通业务机器学习的人,最大的区别在哪里?业务模型出错,后果可能是推荐不准、广告点击率下降、客服机器人答非所问。科学模型出错,后果可能是一个错误的物理结论进入论文,然后被后…

2026/8/29 20:12:46

模拟退火算法:从冶金原理到数学建模实战优化

1. 从“烧铁”到“寻优”:模拟退火算法的直觉理解如果你曾经在数学建模竞赛中,面对一个变量多、约束复杂、目标函数崎岖不平的优化问题,感觉像在茫茫黑夜的崇山峻岭里寻找最低点,那么模拟退火算法很可能就是为你准备的那支“智能手…

2026/8/29 20:27:47

定制CPU上运行Doom:从交叉编译到性能验证的完整指南

“万物皆可 Doom”这句话在极客圈流传了很多年。过去几年它被反复验证:计算器、打印机、智能冰箱、键盘、法律文档、Windows 记事本,甚至生物细胞里都跑过《毁灭战士》。这次要看的,是这一类玩法里更贴近底层的一个方向:开发者在名…

2026/8/29 20:27:47

联合分析结果解读:属性效用值与相对重要性

联合分析结果解读联合分析(Conjoint Analysis)是一种多变量统计分析方法,用于研究消费者对多属性产品的偏好结构。该方法通过将产品分解为若干属性和水平,让受访者对不同的属性组合(轮廓)进行评分&#xff…

2026/8/29 20:27:47

在自制CPU上跑通Doom:系统级验证的关键路径

最近技术圈里“万物皆可 Doom”又有了新案例:开发者在 GPT-5.6 Sol 定制 CPU 上跑起来了《毁灭战士》。这个标题很容易被当成一条娱乐新闻,但只要自己上手做过 CPU 设计,就会知道它真正的分量。定制 CPU 要跑出游戏画面,不只是 CP…

2026/8/29 20:27:47

4K视频处理全流程:FFmpeg转码、抽帧与AI超分实战

这次我们不去追新的推理模型,也不装某种“一键整合包”,而是回到一个非常具体、非常常见,但在技术社区里反而很少被系统讲透的需求:拿到一个 4K 音乐视频文件,怎么验证规格、怎么转码、怎么抽帧、怎么做 AI 增强、怎么…

2026/8/29 20:22:47

Agent 的基本架构由哪些核心组件构成?

核心结论 (BLUF): AI Agent(人工智能智能体)的本质是以大语言模型(LLM)作为认知大脑(Brain),通过**规划(Planning)拆解复杂目标,借助记忆&#xf…

2026/8/28 16:16:17

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

2026/8/28 16:16:21

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

2026/8/28 16:16:22

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/29 0:01:10

etc目录下的profile.d文件目录设置环境变量和全局脚本shell

一、设置环境变量etc目录下的profile.d文件目录 /etc/profile.d1、编写 vi test.sh文件内容# jdk变量 export ZHK_HOME/root export PATH$PATH:$ZHK_HOME/test # 可以取出来ZHK_HOME变量给ZZZ_HOME赋值 export ZZZ_HOME${ZHK_HOME}/test2、刷新 执行source /etc/profile 命令使…

2026/8/29 0:01:10

【JavaScript】内存管理-垃圾回收机制-内存泄露

内存管理 C 语言这样的底层语言一般都有底层的内存管理接口,比如 malloc()和free()。 而 JavaScript 是在创建变量(对象,字符串等)时自动进行了分配内存,并且在不使用它们时“自动”释放。释放的过程称为垃圾回收。 整…

2026/8/29 0:01:10

Labgrid-MCP:为嵌入式硬件实验室接入AI Agent操控能力

Labgrid-MCP 的目标是把 MCP(Model Context Protocol)能力延伸到真实嵌入式硬件实验室:AI Agent 通过一个标准化的 MCP Server,就能查看目标板状态、控制上电断电、复位开发板、读取串口日志,甚至执行镜像刷写。对于经…

2026/8/28 16:16:48

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/28 16:16:50

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/28 11:06:45

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…