AI Infra:langgraph-memory,langchain 旗下的记忆模块
langchain-ai/langgraph-memory
是 LangChain 团队推出的一个用于 LangGraph 系统中“记忆”模块 的扩展项目,专为构建具备长期记忆能力的多节点 AI 应用设计,支持复杂的数据流与状态管理。
一、项目简介
仓库地址: https://github.com/langchain-ai/langgraph-memory
该项目主要提供了 多种“记忆后端(memory backend)”,用于在 LangGraph 中存储和检索中间状态、对话历史、agent 步骤等信息,确保系统具备“可追踪”与“上下文持久化”的能力。
二、主要用途
- 为多步 agent 提供「上下文记忆」
- 存储 LangGraph 各节点之间的数据流状态
- 支持异步、分布式运行中的状态持久化与恢复
- 支持切换不同存储后端(如 Redis、MongoDB、本地文件等)
三、支持的记忆后端
目前项目支持以下几种记忆实现:
名称 | 描述 |
---|---|
InMemorySaver | 内存型保存器,适用于本地测试与小规模任务 |
FileSaver | 将状态持久化为 JSON 文件 |
RedisSaver | 使用 Redis 数据库存储任务状态 |
MongoDBSaver | 使用 MongoDB 存储与检索状态(适合大型应用) |
MultiSaver | 支持将状态同步保存到多个后端(如同时存储到 Redis 和文件) |
四、使用示例
一个典型的使用方式如下(以 RedisSaver
为例):
from langgraph_memory.redis import RedisSaver
saver = RedisSaver.from_env()
state = {"input": "Hello, world!", "step": 1}
saver.save("my_state_id", state)
restored_state = saver.load("my_state_id")
print(restored_state)
五、与 LangGraph 的结合
LangGraph 是一个基于有向图的 agent 编排框架。通过 langgraph-memory
,你可以:
- 让每个节点状态自动持久化(防止 crash 丢失)
- 构建具备“可中断、可回溯”的 AI 工作流
- 实现具备长期记忆的复杂 AI 系统(如助理、工作流代理等)
六、状态保存器(Saver)接口结构
每个 Saver
都实现了以下接口:
class Saver:
def save(state_id: str, state: dict) -> None
def load(state_id: str) -> dict
def exists(state_id: str) -> bool
这样你可以轻松替换或组合不同后端。
七、应用场景
- 多轮对话系统中的上下文管理
- AI agent 执行链条状态持久化
- 多 agent 协作时的状态共享
- 在服务宕机/重启后恢复任务进度
八、总结
langgraph-memory
是构建 多步骤、有状态的 AI agent 系统 的基础组件之一,提供了一套标准化的“记忆保存机制”,尤其适合在 LangGraph 中管理复杂状态流。无论是轻量测试还是分布式部署,都可以灵活使用不同后端。
如需构建具有“长期记忆”能力的 AI 助理系统,这个项目是非常关键的一环。