- 检查点器 将线程的图状态作为检查点进行持久化。使用它们进行短期、线程范围的内存,包括对话连续性、人机协作工作流、时间旅行和容错。
- 存储 将应用程序定义的数据持久化到图状态之外。使用它们进行长期、跨线程的内存,包括用户偏好、事实和共享知识。
快速入门
使用检查点器、存储或两者编译您的图: :::python智能体服务器自动处理持久化
在使用 智能体服务器 时,您无需手动实现或配置检查点器或存储。服务器在后台处理持久化基础设施。
检查点器与存储的比较
常见问题排查
PostgresSaver: thread_id 过长
在使用 PostgresSaver(或 AsyncPostgresSaver)时,thread_id 存储在一个长度受限的列中。如果您的 thread_id 超出列大小,您将看到数据库错误。
解决方法: 保持 thread_id 值在 255 个字符以下。如果您需要确定性 ID,请使用 UUID 或哈希:
:::python
MemorySaver 在重启之间不持久化
MemorySaver 和 InMemorySaver 将检查点存储在 RAM 中。当进程重启时,所有检查点都会丢失。
解决方法: 使用持久化检查点器进行生产:
PostgresSaver: 带异步支持的 PostgreSQLSqliteSaver: 开发中的本地文件存储
检查点无限制增长
在长时间的对话中,检查点会累积。这会增加延迟和存储成本。 解决方法: 定期修剪旧检查点或设置保留策略: :::python从父图到子图的状态访问
当子图更新状态时,父图可能无法立即看到这些更改。这是因为每个子图管理自己的检查点命名空间。 解决方法: 使用 通过存储共享状态 来跨图边界传递数据,或配置您的子图将写入父检查点。下一步
官方原文:src/oss/langgraph/persistence.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。