5个开源项目带你玩转AI短期记忆
5个开源项目带你玩转AI短期记忆从对话助手到任务跟踪的实战指南关键词AI短期记忆、开源项目、对话系统、上下文管理、记忆模块摘要AI的“短期记忆”就像人类聊天时能记住前几句话的能力——它能让AI在多轮对话、任务跟踪中保持“连贯”。本文通过5个经典开源项目LangChain、ReAct、MemGPT、AutoGPT、RAG从原理到实战手把手教你实现AI短期记忆。无论你是想做一个能“记住对话”的聊天机器人还是开发能“跟踪任务”的智能助手这篇文章都能帮你快速上手背景介绍目的和范围你有没有遇到过这样的AI对话前一句还在聊“今天中午吃了火锅”下一句问“火锅味道如何”时AI却反问“火锅是什么”这就是AI缺乏短期记忆的典型表现。本文的目的是通过5个开源项目教会你如何为AI系统添加“短期记忆”让它在多轮交互、任务处理中保持逻辑连贯。我们的范围覆盖对话系统、任务型AI、知识生成等常见场景。预期读者对AI基础有了解比如用过ChatGPT但想动手实现AI系统的开发者想为现有项目如聊天机器人、智能客服添加“记忆能力”的工程师对AI认知架构如短期记忆、长期记忆感兴趣的技术爱好者。文档结构概述本文先通过“人类对话”的类比解释AI短期记忆的核心概念再逐个拆解5个开源项目的“记忆实现方式”最后通过代码实战演示如何用这些项目搭建有短期记忆的AI系统。术语表短期记忆Working MemoryAI在处理当前任务时临时存储的“上下文信息”比如对话历史、任务中间结果。上下文窗口Context WindowAI模型能同时处理的最大“短期记忆长度”比如GPT-3.5的4096 token窗口。记忆模块Memory Module系统中专门负责存储、管理短期记忆的组件类似人类的“临时笔记本”。核心概念与联系AI短期记忆到底是什么故事引入小明和智能音箱的对话小明回家对智能音箱说“我今天想吃辣的。”音箱“推荐川菜馆‘麻辣香’”小明接着问“这家店离我家近吗”音箱“抱歉我需要您提供具体位置。”这里的问题是音箱“忘记”了小明的需求是“找附近的辣菜馆”。如果音箱能记住“用户想吃辣”这个短期记忆就能直接结合位置信息回答。这就是AI短期记忆的作用——让AI在多轮交互中“记住关键信息”。核心概念解释像给小学生讲故事1. 短期记忆AI的“临时笔记本”人类聊天时大脑会临时记住“刚说过的话”比如“用户想吃辣”这就是短期记忆。AI的短期记忆类似它需要一个“临时笔记本”存储对话历史、任务进度等信息供当前任务使用。2. 记忆管理“笔记本”的整理术光有笔记本不够还需要“整理规则”哪些信息要保留比如用户的最新需求哪些可以删掉比如重复的问候比如聊天机器人会只保留最近10轮对话避免超出模型的上下文窗口。3. 记忆注入“把笔记给AI看”最后AI处理新任务时需要把“笔记本”里的内容短期记忆和当前输入一起“喂”给模型。就像你做题时会把草稿纸上的计算过程和题目一起看AI也需要“带着记忆”处理新问题。核心概念之间的关系三个小伙伴如何合作短期记忆 vs 记忆管理记忆管理是“笔记本的主人”决定哪些信息留在短期记忆里比如只保留最近5条对话。记忆管理 vs 记忆注入记忆管理整理好的“笔记”通过记忆注入传给AI模型就像把整理好的草稿纸递给做题的人。短期记忆 vs 记忆注入短期记忆是“笔记内容”记忆注入是“传递笔记的动作”两者缺一不可。核心概念原理和架构的文本示意图用户输入 → 记忆管理筛选/整理短期记忆 → 短期记忆存储临时笔记本 → 记忆注入和当前输入合并 → AI模型处理 → 输出结果Mermaid 流程图用户输入更新短期记忆短期记忆存储记忆注入与当前输入合并AI模型输出结果5个开源项目实战手把手教你实现AI短期记忆项目1LangChain——对话系统的“记忆链”一句话简介LangChain是AI应用开发框架自带“记忆模块”能轻松为LLM大语言模型添加对话历史记忆。核心能力支持多种记忆类型如对话历史、总结记忆、键值对记忆适配不同场景。为什么选它如果你想做一个“能记住对话”的聊天机器人LangChain的记忆模块是最快捷的工具——它封装了复杂的存储和注入逻辑你只需几行代码就能实现。代码实战用LangChain实现对话记忆步骤1安装LangChainpipinstalllangchain步骤2编写对话记忆代码fromlangchain.memoryimportConversationBufferMemoryfromlangchain.chainsimportConversationChainfromlangchain.llmsimportOpenAI# 初始化LLM这里用OpenAI需要你的API KeyllmOpenAI(openai_api_key你的API Key)# 创建对话记忆BufferMemory会存储完整对话历史memoryConversationBufferMemory()# 创建对话链将LLM和记忆绑定conversationConversationChain(llmllm,memorymemory,verboseTrue# 打印中间过程方便调试)# 模拟用户对话print(conversation.predict(input我今天想吃辣的))# 输出推荐川菜馆“麻辣香”print(conversation.predict(input这家店离我家近吗))# 输出需要先知道您的位置我可以帮您查附近的“麻辣香”分店~代码解读ConversationBufferMemory最基础的记忆类型会存储完整的对话历史类似“把所有对话记在笔记本上”。ConversationChain将LLM和记忆结合每次调用predict时会自动把历史对话和当前输入合并后传给LLM。效果第二次提问时LLM能“记住”用户之前提过“想吃辣”因此回答更连贯。进阶用总结记忆减少token消耗如果对话轮次太多比如100轮BufferMemory会超出模型的上下文窗口如GPT-3.5的4096 token。这时可以用ConversationSummaryMemory它会自动总结对话历史fromlangchain.memoryimportConversationSummaryMemory# 用总结记忆替代BufferMemorymemoryConversationSummaryMemory(llmllm)# 需要LLM来生成总结项目2ReAct——任务型AI的“推理记忆”一句话简介ReActReasonAct是一种“推理-行动”框架通过“思维记录”让AI在任务执行中记住中间步骤比如查天气→订餐厅→提醒用户。为什么选它如果你的AI需要完成多步骤任务如“规划周末行程”ReAct的“思维记忆”能让AI记住“我刚才查了天气现在需要订餐厅”避免“卡壳”。核心原理思维链Thought Chain作为短期记忆ReAct要求AI在每一步输出“思维”Reason和“行动”Act并将这些“思维”存储为短期记忆。例如用户帮我规划本周末的露营行程。 AI思维需要先查本周末的天气→行动调用天气API AI思维天气晴好需要推荐露营地→行动调用地图API AI思维用户可能需要装备清单→行动生成装备列表这些“思维”会被记录下来作为后续步骤的短期记忆。代码实战用ReAct实现任务跟踪由于ReAct通常结合LangChain使用这里以LangChain的ReAct示例为例fromlangchain.agentsimportTool,AgentExecutor,ReActDocstoreAgentfromlangchain.llmsimportOpenAIfromlangchainimportOpenAI,SerpAPIWrapper,LLMChain# 定义工具比如搜索天气、查露营地searchSerpAPIWrapper()# 需要SerpAPI Keytools[Tool(nameSearch,funcsearch.run,description用于查询实时信息如天气、露营地推荐)]# 初始化ReAct代理llmOpenAI(temperature0)agentReActDocstoreAgent.from_llm_and_tools(llm,tools)agent_executorAgentExecutor.from_agent_and_tools(agentagent,toolstools,verboseTrue)# 执行任务会自动记录思维步骤作为短期记忆agent_executor.run(帮我规划本周末的露营行程需要天气和露营地推荐)输出示例思维用户需要本周末的露营行程规划首先需要知道本周末的天气。我需要用Search工具查询“北京本周末天气”。 行动Search[北京本周末天气] 观察北京本周末晴气温20-28℃适合露营。 思维天气不错接下来需要推荐露营地。用Search工具查询“北京适合露营的公园”。 行动Search[北京适合露营的公园] 观察推荐“金海湖露营公园”和“玉渡山露营地”。 思维现在可以整理天气和露营地信息回复用户。 最终回答本周末北京晴20-28℃推荐露营地金海湖露营公园、玉渡山露营地。关键逻辑ReAct通过“思维-行动-观察”的循环将每一步的推理过程存储为短期记忆确保任务执行的连贯性。项目3MemGPT——分层记忆的“AI大脑”一句话简介MemGPTMemory-GPT是专门为AI设计的“记忆管理系统”支持分层记忆短期记忆、长期记忆、核心记忆更接近人类的记忆结构。为什么选它如果你想让AI拥有更“智能”的记忆比如自动遗忘不重要的信息重点保留关键内容MemGPT的分层记忆架构是更好的选择。核心原理三层记忆结构短期记忆Working Memory存储最近的对话或任务细节类似“正在处理的聊天记录”。长期记忆Archival Memory存储重要但不常用的信息比如用户的偏好“讨厌香菜”通过向量数据库如Pinecone管理。核心记忆Core Memory存储AI的“身份设定”比如“你是一个露营助手”不会被删除。代码实战用MemGPT实现分层记忆步骤1安装MemGPTpipinstallmemgpt步骤2配置记忆模块frommemgptimportAgentfrommemgpt.persistence_managerimportLocalStateManager# 初始化记忆管理器本地存储persistence_managerLocalStateManager()# 创建AI代理指定核心记忆、短期记忆大小agentAgent(name露营助手,core_memory你是一个专业的露营规划助手擅长推荐露营地和装备。,persistence_managerpersistence_manager,working_memory_window5# 只保留最近5轮对话作为短期记忆)步骤3模拟对话自动管理记忆# 第一轮对话用户提需求user_input我想本周末去露营需要准备什么responseagent.chat(user_input)print(response)# 输出需要先知道您的位置和人数我可以推荐装备~# 第二轮对话用户补充信息user_input我在北京2个人。responseagent.chat(user_input)print(response)# 输出北京推荐玉渡山露营地2人装备清单帐篷、睡袋、炉具...# 检查短期记忆只保留最近5轮print(agent.working_memory)# 显示最近5轮对话关键优势MemGPT会自动将用户的“位置”“人数”等关键信息从短期记忆同步到长期记忆如果检测到重要性而闲聊内容如“今天天气真好”会被短期记忆自动遗忘。项目4AutoGPT——任务驱动的“记忆追踪”一句话简介AutoGPT是“自动执行任务的AI”它需要通过短期记忆跟踪“当前任务进度”“已完成步骤”“待办事项”避免重复工作。为什么选它如果你想开发一个能“自主完成复杂任务”的AI比如“写一篇关于AI短期记忆的博客”AutoGPT的任务记忆机制能帮它记住“我已经查了LangChain的资料现在需要写ReAct部分”。核心原理任务记忆的“待办清单”AutoGPT通过“目标Goal→ 计划Plan→ 执行Execute→ 记忆Remember”循环工作其中“记忆”模块存储已完成的子任务如“已研究LangChain”。待办的子任务如“需要研究ReAct”。关键成果如“LangChain的代码示例”。代码实战用AutoGPT实现任务记忆简化版AutoGPT代码较复杂这里展示核心记忆逻辑classAutoGPT:def__init__(self,goal):self.goalgoal self.memory{completed_tasks:[],# 已完成任务pending_tasks:[],# 待办任务key_findings:{}# 关键成果}defplan(self):# 根据目标生成待办任务示例写博客的任务分解self.memory[pending_tasks][研究AI短期记忆概念,分析LangChain记忆模块,编写ReAct代码示例,总结5个项目]defexecute_task(self,task):# 模拟执行任务实际会调用LLM或工具iftask分析LangChain记忆模块:self.memory[key_findings][LangChain]支持对话历史记忆代码示例见...)self.memory[completed_tasks].append(task)self.memory[pending_tasks].remove(task)defget_status(self):returnf目标{self.goal}\n已完成{self.memory[completed_tasks]}\n待办{self.memory[pending_tasks]}# 使用示例aiAutoGPT(goal写一篇关于5个开源项目玩转AI短期记忆的博客)ai.plan()print(ai.get_status())# 输出# 目标写一篇关于5个开源项目玩转AI短期记忆的博客# 已完成[]# 待办[研究AI短期记忆概念, 分析LangChain记忆模块, 编写ReAct代码示例, 总结5个项目]ai.execute_task(分析LangChain记忆模块)print(ai.get_status())# 输出# 目标写一篇关于5个开源项目玩转AI短期记忆的博客# 已完成[分析LangChain记忆模块]# 待办[研究AI短期记忆概念, 编写ReAct代码示例, 总结5个项目]关键逻辑AutoGPT通过memory字典跟踪任务状态确保每一步执行都基于“已完成”和“待办”的短期记忆避免重复或遗漏。项目5RAG——知识生成的“动态记忆”一句话简介RAGRetrieval-Augmented Generation是“检索增强生成”框架它通过“检索最近相关知识”作为短期记忆提升生成内容的准确性。为什么选它如果你的AI需要结合“实时信息”或“用户历史数据”回答问题比如“我上周问过的露营地现在价格有变化吗”RAG的“动态检索记忆”能快速获取相关信息。核心原理向量数据库作为“记忆仓库”RAG会将用户的历史交互、实时数据存储为向量类似“记忆的数字指纹”当新问题到来时通过向量相似度检索出“最相关的记忆”作为短期记忆注入生成模型。代码实战用RAG实现动态记忆结合LangChain和Chroma数据库步骤1安装依赖pipinstalllangchain chromadb步骤2构建记忆库存储历史对话fromlangchain.embeddings.openaiimportOpenAIEmbeddingsfromlangchain.vectorstoresimportChromafromlangchain.text_splitterimportCharacterTextSplitterfromlangchain.document_loadersimportTextLoader# 模拟历史对话数据存储为文本文件withopen(history.txt,w)asf:f.write(用户上周问北京有哪些露营地 回答推荐玉渡山和金海湖。)# 加载并分割文本loaderTextLoader(history.txt)documentsloader.load()text_splitterCharacterTextSplitter(chunk_size100,chunk_overlap0)docstext_splitter.split_documents(documents)# 用OpenAI嵌入模型生成向量存入Chroma数据库embeddingsOpenAIEmbeddings(openai_api_key你的API Key)vectorstoreChroma.from_documents(docs,embeddings)步骤3用RAG检索短期记忆fromlangchain.chainsimportRetrievalQAfromlangchain.llmsimportOpenAI# 创建RAG链检索生成llmOpenAI(openai_api_key你的API Key)qaRetrievalQA.from_chain_type(llmllm,chain_typestuff,# 将检索结果直接“塞进”模型输入retrievervectorstore.as_retriever()# 从Chroma数据库检索)# 提问会自动检索相关历史记忆query我上周问的北京露营地现在价格有变化吗responseqa.run(query)print(response)# 输出您上周问过北京的露营地玉渡山、金海湖目前价格暂无变化通知~关键逻辑RAG通过向量检索从历史数据中“召回”相关记忆作为短期信息补充给生成模型避免AI“忘记”用户之前的提问。实际应用场景对话机器人用LangChain/MemGPT让客服机器人记住用户的“历史问题”如“我之前投诉过物流延迟”。任务型助手用ReAct/AutoGPT让AI记住“已完成的任务步骤”如“已订酒店现在需要查交通路线”。知识型应用用RAG让AI记住“用户之前的提问”如“我上周问过糖尿病饮食今天想了解运动建议”。工具和资源推荐记忆存储Chroma向量数据库、Redis缓存短期对话。LLM模型OpenAI GPT-3.5/4、Anthropic Claude支持长上下文窗口。学习资料LangChain官方文档https://python.langchain.comMemGPT GitHubhttps://github.com/cpacker/MemGPTReAct论文https://arxiv.org/abs/2210.03629未来发展趋势与挑战动态记忆管理AI需要自动判断“哪些信息需要保留”比如用户的情绪变化比闲聊更重要。长短记忆结合短期记忆对话历史与长期记忆用户档案的智能融合如“用户3个月前说讨厌香菜现在点外卖要提醒”。隐私保护短期记忆存储用户敏感信息如地址、电话需要加密和权限控制。总结学到了什么核心概念回顾短期记忆AI的“临时笔记本”存储当前任务需要的上下文对话历史、任务步骤。记忆管理决定“哪些信息保留/删除”如只保留最近5轮对话。记忆注入将整理好的记忆和当前输入合并传给AI模型。概念关系回顾短期记忆是“内容”记忆管理是“整理规则”记忆注入是“传递动作”——三者合作让AI在交互中保持连贯。思考题动动小脑筋如果你用LangChain做一个“宠物医生对话机器人”用户说“我家猫昨天呕吐了”下一句问“需要喂药吗”机器人如何通过短期记忆回答更合理AutoGPT在执行“写博客”任务时如果中途被打断比如用户要求先写“项目3”如何调整它的“待办任务记忆”附录常见问题与解答Q模型上下文窗口有限如GPT-3.5的4096 token如何避免短期记忆超出限制A可以用“总结记忆”如LangChain的ConversationSummaryMemory或“滑动窗口记忆”只保留最近N轮对话。Q短期记忆需要存储多久A取决于任务需求对话机器人可能保留最近10轮任务型AI可能保留到任务完成如“订酒店”任务完成后删除相关记忆。Q如何判断哪些信息属于“短期记忆”A关键原则是“当前任务需要的信息”。比如对话机器人需要“对话历史”任务型AI需要“任务步骤”。扩展阅读 参考资料《Attention Is All You Need》Transformer论文理解注意力机制与短期记忆的关系。《Working Memory in Large Language Models》研究LLM短期记忆能力的论文。《LangChain Memory Documentation》官方记忆模块详解。

相关新闻

别再眼睁睁看着MacBook电池报废了!macOS 26.4 悄悄上线的这个“救命开关”,你还不赶紧打开?

别再眼睁睁看着MacBook电池报废了!macOS 26.4 悄悄上线的这个“救命开关”,你还不赶紧打开?

承认吧!你平时是不是极其喜欢把 MacBook 死死插在工位的电源上,永远让它保持在 100% 的满血状态?看着屏幕右上角那个满格的绿电池,你心里是不是觉得特别踏实?大错特错!你这种毫无节制的“满汉全席”式充电法…

2026/7/4 21:33:23 阅读更多 →
RabbitMQ消息队列在大数据系统中的实战应用案例

RabbitMQ消息队列在大数据系统中的实战应用案例

RabbitMQ消息队列在大数据系统中的实战应用案例 关键词:RabbitMQ、消息队列、大数据系统、异步处理、解耦、扩展性、可靠性 摘要:本文深入探讨RabbitMQ消息队列在大数据系统中的核心应用场景和实战案例。我们将从消息队列的基本原理出发,详细分析RabbitMQ的架构设计和工作机…

2026/7/4 21:36:18 阅读更多 →
Visual Studio开发环境一键部署SenseVoice-Small ONNX推理服务

Visual Studio开发环境一键部署SenseVoice-Small ONNX推理服务

Visual Studio开发环境一键部署SenseVoice-Small ONNX推理服务 1. 引言 语音识别技术正在改变我们与设备交互的方式,而SenseVoice-Small作为一个高效的多语言语音识别模型,在准确性和推理速度方面都表现出色。今天我将带你一步步在Visual Studio中搭建…

2026/7/4 20:44:35 阅读更多 →

最新新闻

Touch WX开发常见问题解答:新手必看的避坑指南

Touch WX开发常见问题解答:新手必看的避坑指南

Touch WX开发常见问题解答:新手必看的避坑指南 【免费下载链接】touchwx 小程序组件化解决方案。官网:https://www.wetouch.net/wx.html 项目地址: https://gitcode.com/gh_mirrors/to/touchwx Touch WX是一套完全免费的微信小程序开发框架&#…

2026/7/4 21:34:04 阅读更多 →
Spectre在机构级量化交易中的应用:大规模数据处理实战案例

Spectre在机构级量化交易中的应用:大规模数据处理实战案例

Spectre在机构级量化交易中的应用:大规模数据处理实战案例 【免费下载链接】spectre GPU-accelerated Factors analysis library and Backtester 项目地址: https://gitcode.com/gh_mirrors/spe/spectre Spectre作为一款GPU加速的因子分析库和回测工具&#…

2026/7/4 21:34:04 阅读更多 →
BigFunctions快速入门:10分钟学会在BigQuery中调用公共函数

BigFunctions快速入门:10分钟学会在BigQuery中调用公共函数

BigFunctions快速入门:10分钟学会在BigQuery中调用公共函数 【免费下载链接】bigfunctions Supercharge BigQuery with BigFunctions 项目地址: https://gitcode.com/gh_mirrors/bi/bigfunctions 想要快速掌握BigFunctions的强大功能吗?这篇终极指…

2026/7/4 21:32:02 阅读更多 →
CANN/hccl代码示例集

CANN/hccl代码示例集

HCCL Code Examples 【免费下载链接】hccl 集合通信库(Huawei Collective Communication Library,简称HCCL)是基于昇腾AI处理器的高性能集合通信库,为计算集群提供高性能、高可靠的通信方案 项目地址: https://gitcode.com/cann…

2026/7/4 21:30:02 阅读更多 →
CANN/mat-chem-sim-pred PID阶跃响应特征算法

CANN/mat-chem-sim-pred PID阶跃响应特征算法

PidStepResponseFeatures Algorithm 【免费下载链接】mat-chem-sim-pred 面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理数据"双轮驱动的领域计算层,推动AI for Science在材料化学领域的深度应用。 项目地址…

2026/7/4 21:30:02 阅读更多 →
ReScript genType 实战案例:电商平台前端架构中的类型安全实践 [特殊字符]

ReScript genType 实战案例:电商平台前端架构中的类型安全实践 [特殊字符]

ReScript genType 实战案例:电商平台前端架构中的类型安全实践 🛒 【免费下载链接】genType Auto generation of idiomatic bindings between Reason and JavaScript: either vanilla or typed with TypeScript/FlowType. 项目地址: https://gitcode.c…

2026/7/4 21:24:00 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻