LangGraph为智能对话系统设计了一种独特的“记忆”机制,它包括长期记忆和短期记忆两种类型。
基本信息
- 模型调用通义千问(阿里Tongyi大模型)
- 短期记忆:通过维护会话中的消息的历史记录,来跟踪正在进行的对话。短期记忆也称为线程级记忆。
- 长期记忆:跨会话存储用户特定或应用程序级数据。长期记忆又称为跨线程记忆。
长期记忆就像是一个“记忆仓库”,可以存储用户的各种信息,比如名字、语言偏好、历史对话记录等。这些信息被组织成一个个“记忆单元”,每个单元都有自己的“文件夹”(命名空间)和“文件名”(键)。比如,一个聊天机器人可以为每个用户创建一个独立的命名空间,里面存储着用户的各种偏好信息。
使用 LangGraph 管理长期记忆
通过三个简单的demo例子来看看LangGraph是如何在实际中工作的。
要使用长期记忆,需要:
- 配置存储以在调用之间保留数据
- 使用该get_store功能从工具或提示中访问LangSmith商店
1 保存用户信息
首先,初始化一个内存存储,然后定义一个保存用户信息的函数。这个函数会把用户的信息存储到长期记忆中。
把用户的名字“小何慢行”保存到了长期记忆中。
# -*- coding: utf-8 -*-
from langgraph.prebuilt import create_react_agent
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import AnyMessage
from langchain_core.runnables import RunnableConfig
from typing_extensions import TypedDict
from langgraph.store.memory import InMemoryStore
from langgraph.config import get_store
#模型初始化
llm = ChatTongyi(
model="qwen-turbo",#qwen-max-latest qwen-plus
temperature=0,
verbose=True,
)
# 写入get_store()
store = InMemoryStore()
class UserInfo(TypedDict):
name: str
# 类似于文件夹
user_namespace = "users"
def save_user_info(user_info: UserInfo, config: RunnableConfig) -> str:
"""保存用户信息"""
# 与create_react_agent提供的一样
store = get_store()
user_id = config["configurable"].get("user_id")
store.put((user_namespace,), user_id, user_info)
return
LangGraph长期记忆管理实战指南

最低0.47元/天 解锁文章
1502





