智能体持久性记忆实战:从0到1构建双路记忆堆栈

本文介绍如何为智能体构建持久性记忆系统,通过双路记忆堆栈(情节记忆+语义记忆)解决智能体健忘问题。情节记忆使用向量数据库存储对话历史,语义记忆使用图数据库存储结构化事实。文章详细展示了实现方法、代码构建及实际应用,使智能体能够记住用户信息并提供个性化交互,从"工具"向"伴侣"转变。


在前面的系列文章中,我们已经为智能体装上了“大脑”(Planning)、“双手”(Tool Call)甚至是“质检员”(PEV)。然而,即便这些功能再强大,标准智能体仍然面临一个致命的局限:健忘

目前的对话智能体大多是“短时记忆”的产物,它们的记忆仅存在于当前会话。一旦对话重置,它们便会忘记你的名字、偏好以及你们曾共同探讨的深刻见解。

今天,我们将攻克智能体走向进化的关键一环——持久性记忆(Persistent Memory)。我们将模仿人类的认知架构,实现一个双路记忆堆栈:情节记忆(Episodic Memory)+ 语义记忆(Semantic Memory)


一、 情节与语义:模仿人类的记忆分层

人类的记忆并非一团乱麻,而是有序分层的。在认知心理学中,长期记忆主要分为两类:

  1. 情节记忆(Episodic Memory)
  • 定义:对特定事件或过去交互的记忆。
  • 回答:“发生了什么?”(例如:“上周用户问过关于英伟达股价的问题”)。
  • 实现方式:我们使用向量数据库(Vector DB),通过语义相似度检索相关的历史对话片段。
  1. 语义记忆(Semantic Memory)
  • 定义:从事件中提炼出的结构化事实、概念和关系。
  • 回答:“我知道什么?”(例如:“用户 Alex 是一位保守型投资者”、“Alex 对科技股感兴趣”)。
  • 实现方式:我们使用图数据库(Neo4j),因为它擅长管理和查询实体间的复杂关系。

Agent记忆系统核心功能示例

通过这两者的结合,Agent 不仅能回想起过去的对话“剧情”,还能在脑海中构建一张关于用户的“知识图谱”,从而实现深度定制的个性化交互。


二、 记忆增强智能体的工作流

整个记忆堆栈遵循“交互-检索-生成-编码”的闭环:

  1. 交互(Interaction):接收用户输入。
  2. 检索(Recall)
  • 情节向量库中搜索相似的对话历史。
  • 语义图数据库中查询与当前话题相关的实体事实。
  1. 增强生成(Augmented Generation):将检索到的双路记忆注入提示词,生成具备“历史记忆”的响应。
  2. 编码(Encoding):对话结束后,后台进程启动:
  • 总结对话回合(生成新的情节记忆)。
  • 提取实体关系(生成新的语义事实)。
  1. 存储(Storage):将新记忆持久化到向量库和图数据库。

三、 代码实战:构建双路记忆堆栈

3.1 环境准备

我们将使用 openai的推理服务,以及****Neo4j作为图数据库核心。需要在env文件中写入llm推理模型配置和embedding模型配置

# 安装必要库 !pip install -q -U langchain-openai langchain langgraph neo4j faiss-cpu tiktoken import os, uuid, json from typing import List, Dict, Any, Optional from langchain_openai import ChatOpenAI from langchain_community.graphs import Neo4jGraph from langchain_community.vectorstores import FAISS from langchain.docstore.document import Document from langgraph.graph import StateGraph, END # 初始化 LLM 与 嵌入模型 llm = ChatOpenAI( base_url=os.environ.get("base_url"), api_key=os.environ.get("api_key"), model=os.environ.get("model"), temperature=0, ) embeddings = llm = ChatOpenAI( base_url=os.environ.get("base_url"), api_key=os.environ.get("api_key"), model=os.environ.get("embedding_model"), ) # 初始化情节记忆(向量库) episodic_vector_store = FAISS.from_texts(["初始引导文档"], embeddings) # 初始化语义记忆(图数据库) graph = Neo4jGraph( url=os.environ.get("NEO4J_URI"), username=os.environ.get("NEO4J_USERNAME"), password=os.environ.get("NEO4J_PASSWORD") )

3.2 记忆制造者:Memory Maker

这是系统的核心,负责将对话“消化”并转化为记忆。

from pydantic import BaseModel, Field class Node(BaseModel): id: str = Field(description="节点唯一标识,如人名、公司代码或概念") type: str = Field(description="节点类型,如 'User', 'Company', 'InvestmentPhilosophy'") properties: Dict[str, Any] = Field(default_factory=dict) class Relationship(BaseModel): source: Node; target: Node type: str = Field(description="关系类型,如 'IS_A', 'INTERESTED_IN'") class KnowledgeGraph(BaseModel): relationships: List[Relationship] def create_memories(user_input: str, assistant_output: str): conversation = f"User: {user_input}\nAssistant: {assistant_output}" # 1. 提取情节记忆(总结) summary_prompt = f"请为以下对话生成一句简明扼要的摘要:\n{conversation}" episodic_summary = llm.invoke(summary_prompt).content episodic_vector_store.add_documents([Document(page_content=episodic_summary)]) # 2. 提取语义记忆(图谱提取) extractor_llm = llm.with_structured_output(KnowledgeGraph) extraction_prompt = f"从以下对话中提取关键实体及其关系,侧重用户偏好和事实:\n{conversation}" kg_data = extractor_llm.invoke(extraction_prompt) if kg_data.relationships: for rel in kg_data.relationships: # 将提取出的关系写入 Neo4j graph.add_graph_documents([rel], include_source=True)

3.3 记忆增强型 Agent 的逻辑

通过 LangGraph 构建一个包含“检索-生成-更新”的循环流程。

class AgentState(TypedDict): user_input: str retrieved_memories: Optional[str] generation: str def retrieve_memory(state: AgentState): user_input = state['user_input'] # 检索情节记忆 docs = episodic_vector_store.similarity_search(user_input, k=2) episodic = "\n".join([d.page_content for d in docs]) # 检索语义记忆(Cypher 查询) semantic = str(graph.query(""" UNWIND $keywords AS keyword CALL db.index.fulltext.queryNodes("entity", keyword) YIELD node, score MATCH (node)-[r]-(related) RETURN node.id, type(r), related.id LIMIT 5 """, {'keywords': user_input.split()})) return {"retrieved_memories": f"【情节回顾】:\n{episodic}\n\n【已知事实】:\n{semantic}"} def generate_response(state: AgentState): prompt = f"""你是一个个性化金融助手。利用以下记忆来定制你的回复: {state['retrieved_memories']} 用户问题:{state['user_input']}""" response = llm.invoke(prompt).content return {"generation": response} # 构建 Graph 略(见系列前文)

四、 深度演示:Agent 如何“认识”你?

让我们模拟一个三轮对话,看看 Agent 记忆的成长。

第一轮:播种

用户:你好,我是 Alex,我是一个保守型投资者,主要对老牌科技股感兴趣。
Agent 响应:你好 Alex!专注于基本面稳健的老牌科技公司是很明智的。
后端变化

  • 情节记忆:存入“用户 Alex 介绍自己是保守型投资者,关注老牌科技股”。
  • 语义图谱:创建节点(User: Alex)->[:HAS_GOAL]->(Philosophy: Conservative)

第二轮:深入

用户:你觉得苹果(AAPL)怎么样?
Agent 响应:对于保守型投资者,AAPL 是基石。它有巨额现金流和持续的分红…
后端变化

  • 语义图谱:增加关系(User: Alex)->[:INTERESTED_IN]->(Company: AAPL)

第三轮:记忆测试

用户“基于我的目标,除了那支股票,还有什么好的替代方案?”
Agent 响应“当然,Alex。基于你偏好的保守投资风格(语义记忆检索),既然你已经关注了苹果,微软(MSFT)是一个绝佳选择(逻辑推理)。它同样是科技巨头,但业务更多元化…”

注意:在第三轮中,用户没有提到自己的名字、风格和苹果公司,但 Agent 完美通过了“记忆测试”。


五、 总结与展望

在本文中,我们成功构建了一个具备情节+语义双路记忆的智能体。

  • 无状态的失败:标准 Agent 会在第三轮对话中抓瞎,因为它不记得 Alex 也不记得 Apple。
  • 记忆增强的成功:我们的 Agent 能够“检索发生了什么”(情节)并“提取已知事实”(语义),从而生成深度的个性化推荐。

这种结合是智能体从“工具”转变为“伴侣”的关键。虽然在规模化管理中还面临**记忆膨胀(Memory Bloat)修剪(Pruning)**的挑战,但我们今天搭建的底层架构已经为未来的持续学习奠定了坚实基础。

如何系统的学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

一直在更新,更多的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇

01.大模型风口已至:月薪30K+的AI岗正在批量诞生

2025年大模型应用呈现爆发式增长,根据工信部最新数据:

国内大模型相关岗位缺口达47万

初级工程师平均薪资28K(数据来源:BOSS直聘报告)

70%企业存在"能用模型不会调优"的痛点

真实案例:某二本机械专业学员,通过4个月系统学习,成功拿到某AI医疗公司大模型优化岗offer,薪资直接翻3倍!

02.大模型 AI 学习和面试资料

1️⃣ 提示词工程:把ChatGPT从玩具变成生产工具
2️⃣ RAG系统:让大模型精准输出行业知识
3️⃣ 智能体开发:用AutoGPT打造24小时数字员工

📦熬了三个大夜整理的《AI进化工具包》送你:
✔️ 大厂内部LLM落地手册(含58个真实案例)
✔️ 提示词设计模板库(覆盖12大应用场景)
✔️ 私藏学习路径图(0基础到项目实战仅需90天)





第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1179026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个很恶心但是能让你六周吃透大模型的方法_大模型学习路线(2025最新)从零基础入门到精通

本文提供了2025年大模型(LLM)的系统学习路线,分为五个阶段:基础准备(数学、编程、深度学习)、核心技术(Transformer、预训练、NLP)、实战项目(基础和领域特定)、高级技能(API应用、架构实践、微调部署)以及持续学习(前沿跟踪、社区交流、实践创新)。配套…

大厂AI产品经理全岗位解析:大模型、AI+、产品AI+三大方向技能要求与职业路径

文章解析了大厂三类AI产品经理岗位:1)大模型产品经理,负责数据提供、模型测评和策略制定;2)AI产品经理,挖掘LLM在各行业应用,需掌握大模型原理;3)产品AI功能经理,专注AI功能交互设计&#xff0c…

将魔法指令中的打印显示出来

将魔法指令中的打印显示出来 from xbot import print xbot.app.logging.trace print

童年:是梦中的真,是真中的梦,是回忆时含泪的微笑

我是一个普普通通的80后。我们这一代人啊,都带着关于童年的深深记忆,那是遥远而又温暖的时光,是梦中的真,是真中的梦,是回忆时含泪的微笑。没能享受到什么时代红利,倒是赶上了一波高房价。有句经典的话说:&…

2026必备!研究生必用TOP10 AI论文写作软件深度测评

2026必备!研究生必用TOP10 AI论文写作软件深度测评 2026年研究生AI论文写作工具测评:为何需要这份榜单? 随着人工智能技术的不断进步,AI写作工具已成为研究生学术研究中不可或缺的辅助工具。然而,面对市场上琳琅满目的…

大模型学习全攻略:从零基础到AI专家的系统路线,【2026首发】AI大模型学习路线:适合新手和大学生

本文提供了从入门到高级的大模型学习完整路线,涵盖Python编程、数学基础、机器学习、深度学习等基础知识,以及自然语言处理、计算机视觉等进阶内容,并提供实战案例和学习资源,帮助小白和程序员系统掌握大模型技术,实现…

【开题答辩全过程】以 基于Python的旅游网站数据爬虫研究为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

为什么99%的程序员都在“假装“学大模型?6周实战指南让你脱颖而出

文章揭示了大模型学习领域的普遍问题:许多人简历上有经验但技术细节不清。针对简历关难过、面试被秒杀、学习没方向等痛点,推出6周大模型求职急救营,提供工业级实战项目、面试导向课程设计、1v1个性化指导、独享算力资源及持续求职支持。通过…

【开题答辩全过程】以 基于Android的家庭理财系统设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

LLM智能体时代来临:2026大模型核心技能与职业发展路径,建议收藏

LLM智能体时代来临:2025大模型核心技能与职业发展路径,建议收藏 本文详细解析了2025年大模型技术的发展趋势和就业市场需求,介绍了LLM从静态提示词到企业级智能平台的四个演进阶段,分析了三大核心技能要求:RAG私有知识…

软件打包自解压方法

你是不是也遇到过这种困扰?把文件打包成 7Z 压缩包发给别人,对方却不会解压,要么找不到合适的解压软件,要么对着压缩包手足无措;自己想给压缩包加个专属设置,普通打包工具又满足不了需求。今天给大家安利一款超实…

大模型从“瞎聊”到“干活”:指令微调核心逻辑全拆解

大模型从“瞎聊”到“干活”:指令微调核心逻辑全拆解指令微调破局,让大模型从 “瞎聊” 变 “能干” 大家好,我是七七!刚入门大模型时,我总被一个问题困扰:明明Llama 2、Qwen这些模型能聊天说地,可一让它干具体…

为什么不推荐使用@Transactional声明事务

在日常 Spring 开发中,我们经常看到如下代码:java体验AI代码助手代码解读复制代码Transactional public void saveUser(User user) { userRepository.save(user); log.info("User saved"); } 只需一个注解 Transactional,开发者就可…

程序员必看:Ralph Loop革命性解决大模型任务中断问题,收藏学习!

Ralph Loop是一种创新的AI Agent持续迭代机制,通过外部化循环和Stop Hook拦截技术,解决了传统Agent易因自我评估不可靠而"半途而废"的问题。它强制Agent在满足客观完成条件前持续工作,显著提升了任务持续性和自主性,使A…

万字详解模式(Schema):如何利用 Schema 实现PostgreSQL中开发/测试/生产环境隔离

文章目录一、Schema 基础概念与核心特性1.1 什么是 Schema?1.2 Schema 与 Database 的区别1.3 替代方案对比1.4 Schema 隔离实施 checklist二、环境隔离的典型需求与挑战2.1 核心需求2.2 传统方案的缺陷三、基于 Schema 的环境隔离架构设计3.1 命名规范3.2 用户与角…

程序员必看:RAG知识库vs通用大模型,谁更适合你的AI应用?

本文探讨了RAG知识库与通用大模型的对比。尽管RAG通过私有化部署提升特定场景应用,但通用模型迭代更快、能力更强且无需额外数据标注。产品经理应关注原生AI产品设计,而Python将成为AI开发的关键语言,涉及模型微调与部署。未来通用模型可能替…

告别“一次性交付“陷阱:AI Agent养成机制与大模型运营全攻略

文章指出AI Agent不是一次性交付的软件,而是需要持续养成的学习体。传统交付方式导致AI Agent上线后随业务变化而"退化"。真正的价值从"交付之后"才开始释放,需要建立数据飞轮、知识库进化、用户反馈闭环和持续运营机制,…

PostgreSQL实战:序列深度解析,高并发下的ID生成陷阱与优化

文章目录一、序列基础:语法、用法与内部结构1.1 序列的创建与基本操作1.2 SERIAL 与 BIGSERIAL 的本质1.3 序列的内部存储1.4 使用建议二、序列的核心特性与事务语义2.1 序列值不回滚2.2 CACHE 机制:性能与跳跃的权衡三、高并发下的核心陷阱3.1 陷阱一&a…

大模型入门指南:解锁AI新时代,小白/程序员必学技能,非常详细收藏我这一篇就够了!

文章介绍大模型的基本概念、应用场景、学习价值及资源。大模型是大型预训练模型,通过学习大量数据获取知识,能理解和生成语言、图片等。学习大模型可把握AI趋势,增强就业竞争力,提升解决问题和创新能力。广泛应用于NLP、教育、医疗…

实用指南:【基础】Three.js 实现 3D 字体加载与 Matcap 金属质感效果(附案例代码)

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …