核心内容摘要
【乱子伦】海角社区:探索情感的边界,寻找灵魂的归宿
文章深入解析了AI Agent的记忆机制这是让大语言模型从聊天机器人进化为智能体的核心组件。
文章从认知心理学和自我进化视角阐述记忆重要性详细拆解记忆系统的存储-管理-检索全链路包括记忆来源、存储形式文本记忆和参数记忆和操作方法并提供评估标准和工程化实现方案为开发者构建具有记忆能力的AI Agent提供全面指导。
为什么有些AI Agent能记住你上周说过喜欢川菜并在今天推荐餐厅秘密就在于记忆机制——这是让LLM从聊天机器人进化为智能体Agent的核心组件。
本文将解读《A Survey on the Memory Mechanism of Large Language Model based Agents》这篇论文说明LLM-based Agent的记忆机制并拆解AI记忆的存储-管理-检索全链路.
为什么Agent必须拥有记忆在传统的LLM交互中每次对话都是独立的。
但现实中的智能体需要持续学习和自我进化应用场景示例如图所示无论是帮Alice规划北京之旅任务A还是推荐电影任务BAgent都需要记住之前的对话如Alice偏好9点看电影积累跨任务经验从任务A了解Alice喜欢古建筑在任务B推荐相关纪录片调用外部知识查询实时航班信息、景点开放时间没有记忆Agent就像金鱼——每次互动都从零开始无法形成个性化服务更无法在复杂环境中自我提升。
1 认知心理学视角人类依靠记忆来•积累知识通过经验抽象出Alice是上班族周末才有空这样的高层概念•形成社会规范记住文化价值观如推荐餐厅时要考虑预算•行为决策想象行为的正负后果“如果推荐恐怖片Alice可能会不高兴”
2 自我进化视角记忆支持Agent的三种核心能力•经验积累记住失败的预订如选错机场避免重蹈覆辙•环境探索根据历史探索记录决定下一步尝试优先探索未去过的地方•知识抽象从Alice上周吃川菜很开心抽象出Alice喜欢辣
记忆的数学定义狭义 vs 广义设任务为 第个任务的第步的动作为环境反馈为。
1 狭义记忆Inside-trial仅包含当前任务内的历史交互局限每次任务结束就失忆无法跨任务学习。
2 广义记忆Broad Definition包含三个维度其中• 同任务历史当前尝试中的步骤记录• 跨任务经验之前失败或成功的类似任务• 外部知识维基百科、实时API、专业知识库举例说明Agent自进化过程假设Agent先为Alice规划了北京游任务A之后为她推荐电影任务B。
在任务B的Step 3中Agent的决策函数为这里是写入函数是管理函数是读取函数。
Agent通过检索到任务A中Alice选择了故宫和颐和园跨任务记忆推断出她喜欢历史文化于是推荐《长安三万里》而非《星际穿越》。
记忆系统架构拆解论文提出构建记忆系统需回答三个问题从哪来存哪怎么用基于LLM的Agent记忆的来源、形式和操作概述
1 记忆从哪来Memory Sources论文将记忆来源分为三类来源类型技术实现典型案例关键挑战Trial内信息直接存储原始交互或压缩摘要MemoChat存储对话历史信息噪声过滤如何提取关键事实跨Trial信息反思
总结Reflection 经验回放Reflexion将失败原因
总结为自然语言教训相似任务识别经验泛化外部知识API调用 向量数据库索引ReAct调用维基百科API信息可靠性验证多源知识冲突解决技术细节跨Trial记忆的实现以Reflexion为例其工作流程如下执行Agent尝试任务生成轨迹Trajectory评估环境给出成功/失败信号反思LLM生成文字
总结“失败原因未确认机场代码。
教训上海有两个机场必须询问用户偏好虹桥(PVG)还是浦东(SHA)”存储将反思文本存入记忆库重用下次遇到订票任务时检索到该反思 prepend到Prompt中
2 记忆存哪Memory Forms方案A文本记忆Textual Memory将信息以自然语言、数据库或结构化文本存储。
细分为四种实现策略① 完整记录Complete Interactions直接将所有历史拼接进Prompt。
•技术实现prompt 历史记录[Step 1]...[Step 2]... 当前问题...•代表模型LongChat支持16K上下文•致命缺陷• 计算复杂度Transformer自注意力机制• Lost in the Middle现象LLM对长文本中间部分注意力衰减• 上下文长度限制② 近期缓存Recent Interactions滑动窗口机制只保留最近轮。
•技术实现队列Queue数据结构FIFO淘汰•代表模型SCMSelf-Controlled Memory使用Flash Memory缓存最近步观察•类比人类短期记忆工作记忆容量有限7±2原则③ 检索式Retrieved Interactions将记忆编码为向量按需检索Top-K相关。
•技术实现流程索引阶段使用Embedding模型如BERT、Ada-002将记忆文本转为向量存入FAISS/Annoy向量数据库检索阶段将当前查询向量化计算余弦相似度召回最相关的条重排序结合时间衰减Recency和重要性Importance加权•代表模型•Generative Agents使用双塔模型Two-Tower编码记忆支持基于相似度、时间、重要度的复合检索•MemoryBank使用FAISSFacebook AI Similarity Search实现高效近似最近邻搜索ANNS•RET-LLM使用LSHLocality-Sensitive Hashing局部敏感哈希加速检索将相似记忆映射到同一哈希桶④ 外部知识External Knowledge通过工具调用Tool Use动态获取。
•技术实现 plaintextif “天气” in query: weather_data call_api(“OpenWeatherMap”, location) memory.inject(weather_data)•代表模型ReAct、Toolformer、TPTU文本记忆优缺点分析•优点可解释性强人类可读可编辑、写入速度快直接Append、支持精确删除•缺点• 检索噪声可能召回表面相关但语义无关的记忆如苹果公司 vs 苹果水果• 上下文占用即使只检索Top-3仍占用数百Token方案B参数记忆Parametric Memory将知识编码进模型参数。
分为两类① 微调Fine-tuning/SFT在领域数据上训练模型。
•技术细节• 全量微调更新所有参数成本高易灾难性遗忘• LoRALow-Rank Adaptation冻结原参数注入低秩矩阵适合消费级GPU•代表模型•Huatuo在LLaMA-7B上使用中文医学知识库SFT注入CMeKG中国医学知识图谱•Character-LLM使用角色相关对话数据SFT让模型内化角色人格•InvestLM金融投资数据微调记忆专业术语和投资策略② 知识编辑Knowledge Editing针对性修改特定事实不影响其他知识。
•技术原理定位知识在模型中的存储位置定位-编辑两阶段•定位使用因果中介分析Causal Mediation Analysis找到关键层和神经元•编辑修改特定参数或添加约束•代表方法•MEND训练超网络Hypernetwork生成参数更新将编辑转化为元学习问题•ROMERank-One Model Editing在特定层进行秩一矩阵更新•MAC使用元学习实现在线记忆适应无需反向传播即可更新记忆参数记忆优缺点分析•优点• 零上下文占用推理时不需要额外Prompt• 信息密度高连续向量空间 vs 离散Token空间• 推理速度快无需检索延迟•缺点• 不可解释黑盒• 编辑副作用可能引发邻居扰动编辑苹果CEO时意外改变苹果颜色的知识• 在线更新难SFT需要大量数据知识编辑难以处理大规模记忆
3 记忆怎么用Memory Operations完整的记忆生命周期包含三个操作① 写入Writing将原始观察压缩为记忆存储。
技术实现策略•原始存储直接存储JSON格式{action: 订机票, observation: 用户选择虹桥机场, timestamp:
}•摘要提取使用LLM生成摘要例将长对话用户问了很多关于北京的问题最后选择了故宫…“压缩为用户偏好古建筑”•结构化提取抽取实体关系三元组Entity-Relation-Entity例(Alice, 喜欢, 川菜), (Alice, 厌恶, 恐怖片)代表模型•TiMThink-in-Memory将观察提取为关系对存入数据库•ChatDB生成SQL语句将记忆写入关系型数据库支持复杂查询② 管理Management对记忆进行处理提升质量。
a. 反思Reflection——生成高层抽象Generative Agents的实现细节触发条件当积累个新观察通常时触发反思生成问题“给定这些观察Alice的核心偏好是什么”抽象输出生成Alice是历史爱好者、Alice预算敏感等高层概念递归反思对反思结果再次反思形成概念层级如历史爱好者→文化旅行者b. 合并Merging——去重与聚类•技术实现使用聚类算法如K-means或相似度阈值将Alice喜欢川菜和Alice爱吃辣合并为一条记忆•代表模型MemoryBank使用语义相似度检测冗余c. 遗忘Forgetting——模拟人类记忆衰减遵循Ebbinghaus遗忘曲线其中是记忆强度。
•实现方式为每条记忆添加时间戳和重要性分数定期清理低于阈值的记忆•代表模型Generative Agents使用重要性评分Importance ScoreRecAgent模拟人类记忆衰退③ 读取Reading根据上下文检索相关记忆。
技术实现•稀疏检索TF-IDF、BM25适合关键词匹配•密集检索向量相似度适合语义匹配•混合检索稀疏密集如ChatDB使用SQL向量检索高级技巧•Chain-of-MemoryChatDB生成SQL查询链分步检索先查用户偏好再查具体记录•记忆过滤MPCMemory Prompt Compression使用Chain-of-Thought示例教模型忽略不相关记忆
如何评价记忆系统评估大类评估维度具体指标评估方法/说明计算公式/实验设置案例/备注直接评估客观指标结果正确率 (Result Correctness)构造问答对测试记忆准确性ChatDB论文设置从历史记录生成问题如Alice昨天去了哪里选项A.故宫 B.长城要求Agent仅基于记忆回答引用准确率 (Reference Accuracy)评估检索质量使用F1分数问题“Alice喜欢什么菜系” 理想检索(A)“Alice昨天吃了川菜”相关、©Alice讨厌粤菜相关但负面 应忽略(B)“Alice昨天吃了晚饭”无关效率指标适应时间写入管理的延迟MemoryBank报告为毫秒级推理时间检索延迟FAISS可在毫秒级检索百万级向量硬件成本峰值GPU显存占用参数记忆需加载完整模型文本记忆只需加载Embedding模型主观评估一致性 (Coherence)人类标注员评分检索的记忆与当前上下文逻辑是否连贯招募人类标注员进行评分定性评估合理性 (Rationality)人类标注员评分记忆内容是否符合常识招募人类标注员进行评分避免Alice住在月球等不合理内容间接评估下游任务对话一致性使用GPT-4作为评判检测Agent回复是否与历史矛盾GPT-4自动评判如前面说Alice怕辣后面却推荐火锅长文本大海捞针 (Needle-in-Haystack)在长文档中插入关键信息测试后续回忆能力在100页文档中插入关键信息如Alice的生日是3月15日测试Agent能否在后续对话中准确回忆该信息成功率 (Success Rate)在仿真环境中统计Agent完成任务的比例对比有记忆vs无记忆的基线差异AlfWorld家庭机器人仿真环境、Minecraft等环境
记忆驱动的Agent应用
工程化实现将记忆拆分为三层模型层级名称定义/实现方式核心特点持续时间/容量第一层感知记忆(Sensory Memory)暂存原始多模态信息 (文本、图像、音频等)• 容量极小 • 信息若不立即处理即消失极短几秒内第二层短期记忆(Short-term Memory)主要通过上下文窗口(Context Window)• 主动处理信息 • 需优化策略扩展容量有限依赖窗口大小第三层长期记忆(Long-term Memory)持久化存储可跨会话访问• 容量大 • 需解决存储与检索效率永久短期记忆解决方案方法核心原理技术特点滑动窗口(Sliding Window)保留最近N轮对话丢弃早期信息简单直接只保留最近token数量摘要压缩(Summary Compression)将早期对话压缩为摘要• ChatBC定期压缩对话历史 • MemGPT分交互上下文(当前)和Agent上下文(压缩历史)检索增强(RAG)用户查询→检索文档→插入上下文→生成不直接存储历史按需检索相关信息长期记忆存储方式存储方式原理
关键技术/方法主要挑战参数化记忆知识存储在模型参数中 (通过微调)• EWC (弹性权重巩固) • 梯度投影法 • 回放法灾难性遗忘(学习新任务时忘记旧知识)非参数化记忆记忆存储在外部数据库A. 向量数据库• Embedding模型 • 相似度检索B. 结构化数据库• 键值对存储检索精度、存储效率混合记忆架构结合多种存储方式• 向量检索结构化规则 • 知识图谱向量库系统复杂度向量数据库技术细节技术环节具体实现代表模型/方法文本向量化文本→Embedding模型→高维向量• BERT系列 • SimCSE • E5 • OpenAI Embeddings存储系统向量数据库• FAISS • Pinecone • ChromaDB检索策略•密集检索向量相似度 •稀疏检索TF-IDF/BM25 •混合检索两者结合• Dense: Karpukhin et al. • Sparse: Robertson Zaragoza • Hybrid: Dai Callan重排序(Reranking)初次检索后用精确模型重排• 步骤1BM25检索top-100 • 步骤2Cross-Encoder重排top-10 • 步骤3输入LLM将记忆机制拆分为五大工程模块模块核心功能
关键技术主要挑战决策公式/阈值写入(Write)将交互信息编码并持久化• Embedding编码 • 元数据标注 • 触发器机制如何判断重要性 避免存储膨胀score importance × (
1
1×repeat) × decay存储(Store)高效存储与索引向量数据• 向量数据库 • ANN算法 • 混合索引平衡召回率与延迟 海量数据内存占用HNSW(在线)/IVFPQ(离线)检索(Retrieve)从记忆库召回相关信息• DenseSparse混合 • Cross-Encoder重排 • 时间加权上下文长度限制 噪声过滤先召回200→重排→选top-k更新(Update)合并重复、摘要历史• 语义聚类 • 增量摘要合并时机与粒度控制定期聚类(天/周)遗忘(Forget)清理低价值记忆• 多因子评分 • LRU/LFU避免误删重要信息score
5×importance
4×freq -
1×age写入模块 (Write / Encoding)维度实现方案技术细节与建议触发时机多维度触发器•显式事件用户保存指令、关键确认语句(“记住我喜欢X”) •频次触发同一信息被重复提及N次 •模型判定判别器预测重要度阈值编码方式Embedding 元数据• 文本→Embedding模型→高维向量 •归一化保留normalized embedding确保余弦相似度稳定 •元数据timestamp、source、重要度评分、主题标签、模型版本切分粒度语义完整性优先• 对话粒度按句/按轮/按主题切分 •长文本处理滑动窗口或基于语义的chunking质量控制过滤-摘要-评分• 使用小型分类器预测重要性 • 避免全部写入导致的噪声与存储膨胀存储模块 (Store)维度技术选型策略与优化存储介质分层存储架构•热数据内存向量库(FAISS/Milvus/Weaviate) •冷数据磁盘/对象存储(低成本) •元数据传统数据库倒排索引向量索引ANN算法选择•HNSW高召回、低延迟适合在线检索•IVFPQ海量数据下显著降低内存占用混合索引向量倒排• 向量索引语义相似度 • 倒排索引精确匹配(user_id、topic等字段联合筛选)元数据字段结构化标注user_id、timestamp、topic、importance、source_id、embedding_model_version检索模块 (Retrieve)环节技术方案实现细节召回阶段混合检索 (Dense Sparse)
BM25/ES先做精确匹配和关键词过滤
向量检索ANN搜索语义候选(top-
200)
合并去重融合两种检索结果精排阶段Cross-Encoder重排序• 使用较小Transformer对候选评分 • 仅对top-N(N≈
应用控制延迟 • 按任务相关性重新排序Prompt组装多策略选择•语义优先按cross-encoder得分选top-k •时间加权近期事件提升分数(避免过时) •压缩注入每条记忆生成一行summary再拼接检索时机策略驱动每轮问答时自动触发或特定策略驱动更新模块 (Update / Consolidation)维度策略实现细节更新目标记忆优化• 合并重复条目 • 摘要历史交互(抽象化) • 提升长期重要信息权重聚类合并定期批量处理•周期每天/每周对情节层聚类 •操作主题一致条目合并为摘要替换冗余数据增量更新实时冲突检测• 新事件命中已有条目(高相似度)时 - 方案A追加为子条目 - 方案B生成新摘要替换旧条目遗忘模块 (Forgetting / Pruning)维度策略实现细节遗忘理由系统优化• 控制存储成本 • 降低检索噪声 • 避免过拟合历史错误信息多因子评分综合衰减模型score α×importance β×access_freq - γ×age• importance初始重要度 • access_freq访问频次(常用提升) • age时间衰减(天)淘汰策略分层淘汰•热缓存层LRU(最近最少使用)或LFU(最少频次) •冷存储层阈值删除或归档迁移冲突检测一致性维护发现信息矛盾时降权或标记删除结语对于AI Agent而言没有记忆就没有真正的智能。
记忆工程Memory Engineering将成为LLM应用开发的必备技能。
如何系统的学习大模型 AI 由于新岗位的生产效率要优于被取代岗位的生产效率所以实际上整个社会的生产效率是提升的。
但是具体到个人只能说是“最先掌握AI的人将会比较晚掌握AI的人有竞争优势”。
这句话放在计算机、互联网、移动互联网的开局时期都是一样的道理。
我在一线互联网企业工作十余年里指导过不少同行后辈。
帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限很多互联网行业朋友无法获得正确的资料得到学习提升故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一直在更新更多的大模型学习和面试资料已经上传带到CSDN的官方了有需要的朋友可以扫描下方二维码免费领取【保证100%免费】
大模型风口已至月薪30K的AI岗正在批量诞生2025年大模型应用呈现爆发式增长根据工信部最新数据国内大模型相关岗位缺口达47万初级工程师平均薪资28K数据来源BOSS直聘报告70%企业存在能用模型不会调优的痛点真实案例某二本机械专业学员通过4个月系统学习成功拿到某AI医疗公司大模型优化岗offer薪资直接翻3倍
大模型 AI 学习和面试资料1️⃣ 提示词工程把ChatGPT从玩具变成生产工具2️⃣ RAG系统让大模型精准输出行业知识3️⃣ 智能体开发用AutoGPT打造24小时数字员工熬了三个大夜整理的《AI进化工具包》送你✔️ 大厂内部LLM落地手册含58个真实案例✔️ 提示词设计模板库覆盖12大应用场景✔️ 私藏学习路径图0基础到项目实战仅需90天第一阶段10天初阶应用该阶段让大家对大模型 AI有一个最前沿的认识对大模型 AI 的理解超过 95% 的人可以在相关讨论时发表高级、不跟风、又接地气的见解别人只会和 AI 聊天而你能调教 AI并能用代码将大模型和业务衔接。
大模型 AI 能干什么大模型是怎样获得「智能」的用好 AI 的核心心法大模型应用业务架构大模型应用技术架构代码示例向 GPT-
5 灌入新知识提示工程的意义和核心思想Prompt 典型构成指令调优方法论思维链和思维树Prompt 攻击和防范…第二阶段30天高阶应用该阶段我们正式进入大模型 AI 进阶实战学习学会构造私有知识库扩展 AI 的能力。
快速开发一个完整的基于 agent 对话机器人。
掌握功能最强的大模型开发框架抓住最新的技术进展适合 Python 和 JavaScript 程序员。
为什么要做 RAG搭建一个简单的 ChatPDF检索的基础概念什么是向量表示Embeddings向量数据库与向量检索基于向量检索的 RAG搭建 RAG 系统的扩展知识混合检索与 RAG-Fusion 简介向量模型本地部署…第三阶段30天模型训练恭喜你如果学到这里你基本可以找到一份大模型 AI相关的工作自己也能训练 GPT 了通过微调训练自己的垂直大模型能独立训练开源多模态大模型掌握更多技术方案。
到此为止大概2个月的时间。
你已经成为了一名“AI小子”。
那么你还想往下探索吗为什么要做 RAG什么是模型什么是模型训练求解器 损失函数简介小实验2手写一个简单的神经网络并训练它什么是训练/预训练/微调/轻量化微调Transformer结构简介轻量化微调实验数据集的构建…第四阶段20天商业闭环对全球大模型从性能、吞吐量、成本等方面有一定的认知可以在云端和本地等多种环境下部署大模型找到适合自己的项目/创业方向做一名被 AI 武装的产品经理。
硬件选型带你了解全球大模型使用国产大模型服务搭建 OpenAI 代理热身基于阿里云 PAI 部署 Stable Diffusion在本地计算机运行大模型大模型的私有化部署基于 vLLM 部署大模型案例如何优雅地在阿里云私有部署开源大模型部署一套开源 LLM 项目内容安全互联网信息服务算法备案…学习是一个过程只要学习就会有挑战。
天道酬勤你越努力就会成为越优秀的自己。
如果你能在15天内完成所有的任务那你堪称天才。
然而如果你能完成
% 的内容你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】