AI学习——记忆系统
2026/5/30 17:52:29 网站建设 项目流程

记忆系统—支持多轮对话

  • 一、先搞懂:短期记忆 vs 长期记忆
    • 1. 短期记忆(Short-Term Memory)
    • 2. 长期记忆(Long-Term Memory)
  • 二、LangChain 最常用 3 种记忆
    • 1. ConversationBufferMemory(最简单记忆)
    • 2. ConversationSummaryMemory(总结记忆)
    • 3. ConversationBufferWindowMemory(窗口记忆)
  • 三、核心:Agent + 记忆 = 真正多轮对话
  • 四、带记忆的对话 Agent
    • 功能
  • 五、运行效果
  • 六、3 个记忆组件对比
  • 七、总结

介绍:
  1. 短期记忆 vs 长期记忆
  2. LangChain 核心记忆组件
  3. 给 Agent 加上记忆,实现真正多轮对话

一、先搞懂:短期记忆 vs 长期记忆

1. 短期记忆(Short-Term Memory)

  • 保存当前对话上下文
  • 关掉程序就消失
  • 作用:让 AI 知道刚才聊了什么
  • 例子:你刚才问了什么,AI 要记得

2. 长期记忆(Long-Term Memory)

  • 永久保存
  • 存在文件/数据库/向量库
  • 作用:记住用户习惯、历史对话、知识库
  • 例子:你喜欢什么风格、你之前的论文题目

二、LangChain 最常用 3 种记忆

1. ConversationBufferMemory(最简单记忆)

  • 所有对话原文全部存起来
  • 优点:最简单
  • 缺点:对话越长越占token

2. ConversationSummaryMemory(总结记忆)

  • 不存原文,存对话总结
  • 优点:省token、适合长对话

3. ConversationBufferWindowMemory(窗口记忆)

  • 只保留最近 N 轮对话
  • 优点:轻量、稳定、最常用

三、核心:Agent + 记忆 = 真正多轮对话

没有记忆 → 问完就忘
有记忆 →能连贯聊天、记住上下文


四、带记忆的对话 Agent

功能

  • 带短期记忆
  • 多轮对话不丢失上下文
  • 可连续提问
  • 基于你之前学的 ReAct Agent
# 安装依赖# pip install langchain langchain-openai
# ==========================# 1. 导入模块# ==========================fromlangchain_openaiimportChatOpenAIfromlangchain.memoryimportConversationBufferMemory# 记忆核心fromlangchain.agentsimportAgentExecutor,create_react_agentfromlangchain.toolsimportToolfromlangchainimporthub# ==========================# 2. 初始化LLM# ==========================llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.3,api_key="你的API_KEY",base_url="https://api.chatanywhere.tech/v1")# ==========================# 3. 【核心】添加记忆!# 记忆会自动保存对话历史# ==========================memory=ConversationBufferMemory(memory_key="chat_history",# 记忆键(固定)return_messages=True# 返回消息格式)# ==========================# 4. 定义工具# ==========================defsimple_calculate(expression):returnstr(eval(expression))tools=[Tool(name="Calculator",func=simple_calculate,description="用于计算数学表达式")]# ==========================# 5. 创建带记忆的 Agent# ==========================prompt=hub.pull("hwchase17/react-chat")# 支持记忆的提示词agent=create_react_agent(llm,tools,prompt)# 执行器 + 记忆agent_executor=AgentExecutor(agent=agent,tools=tools,memory=memory,# 把记忆加进来verbose=True,max_iterations=3)# ==========================# 6. 多轮对话测试# ==========================print("=== 带记忆的AI助手(输入exit退出)===")whileTrue:user_input=input("你:")ifuser_input.lower()=="exit":print("对话结束")break# 运行Agent(记忆自动保存)response=agent_executor.invoke({"input":user_input})print("AI:",response["output"])

五、运行效果

你:我叫小明 AI:好的,我记住你叫小明啦! 你:我是谁? AI:你是小明! 你:10+20等于多少? AI:等于30。 你:刚才算的结果是多少? AI:刚才算的是 10+20=30。

这就是记忆的作用!
没有记忆,AI 根本不知道“刚才算的是什么”。


六、3 个记忆组件对比

组件特点适合场景
ConversationBufferMemory存全部原文,最简单短对话
ConversationBufferWindowMemory只存最近几轮长对话
ConversationSummaryMemory存总结,省token超长篇对话

七、总结

  • 记忆 = 保存对话历史
  • Agent 每次提问都会带上历史
  • 所以能理解上下文、实现多轮对话

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询