
前言在 AI Agent 中长期记忆的核心价值是存储可复用的历史经验如成功案例、用户反馈、规则迭代记录等并支持通过语义相似性检索快速匹配当前任务场景辅助决策。向量数据库如 Milvus、FAISS、Qdrant 等因其能高效存储和检索高维向量的特性成为长期记忆的理想载体 —— 通过将 “经验内容” 转化为 “语义向量”实现 “场景相似性” 驱动的经验复用。一、长期记忆的核心设计要素长期记忆的向量数据库设计需围绕 “经验如何表示、如何存储、如何检索” 三个核心问题具体要素如下设计维度核心需求实现思路经验内容定义明确存储哪些 “经验”需具备复用价值存储结构化经验条目如 “用户反馈修正记录”“任务成功案例”“规则优化历史” 等。向量表示方式将非结构化经验文本描述转化为机器可理解的高维向量用嵌入模型如 Sentence-BERT、OpenAI Embeddings将经验文本编码为向量。元数据设计补充向量之外的结构化信息辅助精准检索如经验适用场景、时间、优先级存储元数据字段scene场景标签、timestamp时间戳、priority优先级等。检索策略快速找到与当前任务最相似的历史经验结合 “向量语义相似度”如余弦相似度和 “元数据过滤”如按场景筛选实现混合检索。记忆演化机制长期记忆需动态更新新增有效经验、淘汰过时经验实现经验 “老化机制”如按时间衰减权重和 “强化机制”如用户确认的有效经验提升权重。二、具体设计方案以 Milvus 为例1. 经验数据结构定义每条长期记忆经验需包含 “向量 文本内容 元数据” 三部分示例结构如下字段名类型说明id字符串唯一标识如exp_12345vector高维向量经验文本的嵌入向量如 768 维由 Sentence-BERT 生成content字符串经验的自然语言描述如 “处理年龄字段缺失时用户反馈用中位数填充更合理”scene字符串数组适用场景标签如[data_cleaning, missing_value_processing]timestamp整数经验创建的 Unix 时间戳priority整数优先级1-55 为最高由用户反馈或复用次数决定source字符串经验来源如user_feedback“task_success”2. 向量数据库集合Collection设计以 Milvus 为例创建用于存储长期记忆的集合需定义字段类型和索引加速检索frompymilvusimportconnections,FieldSchema,CollectionSchema,DataType,Collection,utility# 1. 连接Milvus服务connections.connect(default, hostlocalhost, port19530)# 2. 定义字段fields [ # 唯一ID FieldSchema(nameid, dtypeDataType.VARCHAR, max_length50, is_primaryTrue), # 经验向量768维与嵌入模型输出维度一致 FieldSchema(namevector, dtypeDataType.FLOAT_VECTOR, dim768), # 经验文本内容 FieldSchema(namecontent, dtypeDataType.VARCHAR, max_length2000), # 适用场景数组类型 FieldSchema(namescene, dtypeDataType.ARRAY, element_typeDataType.VARCHAR, max_length100), # 时间戳 FieldSchema(nametimestamp, dtypeDataType.INT64), # 优先级 FieldSchema(namepriority, dtypeDataType.INT32), # 来源 FieldSchema(namesource, dtypeDataType.VARCHAR, max_length100)]# 3. 创建集合 schemaschema CollectionSchema(fields, descriptionAI Agent长期记忆历史经验存储)# 4. 创建集合如已存在则删除重建collection_name agent_long_term_memoryif utility.has_collection(collection_name): utility.drop_collection(collection_name)collection Collection(namecollection_name, schemaschema)# 5. 创建向量索引加速相似度检索index_params { index_type: IVF_FLAT, # 适合中小规模数据的精确检索 metric_type: COSINE, # 用余弦相似度衡量向量距离 params: {nlist: 1024} # 聚类数量影响检索速度和精度}collection.create_index(field_namevector, index_paramsindex_params)collection.load() # 加载集合到内存准备检索3. 经验存储将历史经验写入向量数据库需先通过嵌入模型将经验文本转化为向量再插入数据库fromsentence_transformersimportSentenceTransformer# 嵌入模型# 初始化嵌入模型将文本转为768维向量embedder SentenceTransformer(all-MiniLM-L6-v2)def add_experience(collection, experience): 向长期记忆添加一条经验 :param collection: Milvus集合对象 :param experience: 经验字典含content、scene等字段 # 1. 生成唯一ID experience_id fexp_{experience[timestamp]}# 2. 将经验文本转为向量 vector embedder.encode(experience[content]).tolist()# 3. 组装插入数据 data [ [experience_id], # id [vector], # vector [experience[content]], # content [experience[scene]], # scene [experience[timestamp]], # timestamp [experience[priority]], # priority [experience[source]] # source ]# 4. 插入向量数据库 collection.insert(data) print(f已添加经验{experience_id})# 示例添加一条用户反馈的经验new_experience { content: 在处理用户年龄数据时若缺失值比例超过10%直接删除字段会导致样本量减少过多用户建议改用中位数填充并标记缺失记录, scene: [data_cleaning, missing_value_processing, age_field], timestamp: 1690000000, priority: 4, # 较高优先级用户明确反馈 source: user_feedback}add_experience(collection, new_experience)4. 经验检索根据当前任务查询相似经验结合 “当前任务描述” 生成向量检索最相似的历史经验并可通过元数据如场景过滤defretrieve_similar_experiences(collection,query_text,scene_filtersNone,top_k3): 检索与当前任务相似的历史经验 :param query_text: 当前任务描述如“如何处理年龄字段的高比例缺失值” :param scene_filters: 场景过滤条件如[missing_value_processing] :param top_k: 返回最相似的前k条 :return: 相似经验列表 # 1. 将查询文本转为向量 query_vector embedder.encode(query_text).tolist()# 2. 构建检索参数结合向量相似度和元数据过滤 search_params { metric_type: COSINE, params: {nprobe: 10} # 检索时探查的聚类数量平衡速度和精度 }# 3. 元数据过滤条件如仅检索“缺失值处理”场景的经验 expr None if scene_filters: # Milvus中数组包含条件的表达式如scene包含missing_value_processing expr .join([f{s} in scene for s in scene_filters])# 4. 执行检索 results collection.search( data[query_vector], anns_fieldvector, paramsearch_params, limittop_k, exprexpr, # 元数据过滤 output_fields[content, scene, priority, source] # 需要返回的字段 )# 5. 整理结果提取相似度分数和经验内容 similar_experiences [] for hit in results[0]: similar_experiences.append({ id: hit.id, similarity: hit.score, # 余弦相似度0-1越大越相似 content: hit.entity.get(content), scene: hit.entity.get(scene), priority: hit.entity.get(priority) }) return similar_experiences# 示例查询与“处理年龄字段高比例缺失值”相关的经验query 如何处理年龄字段中超过10%的缺失值similar_exps retrieve_similar_experiences( collection, query_textquery, scene_filters[missing_value_processing, age_field], top_k2)print(相似经验检索结果)for exp in similar_exps: print(f相似度{exp[similarity]:.2f}内容{exp[content]})5. 记忆演化更新与维护长期记忆长期记忆需定期优化如淘汰过时经验、强化高频复用经验def update_experience_priority(collection, exp_id, new_priority): 更新经验优先级如被多次复用的经验提升优先级 collection.update( exprfid {exp_id}, partition_nameNone, params{priority: new_priority} )def prune_old_experiences(collection, days_threshold365): 删除超过阈值天数的低优先级经验如1年未复用的优先级1经验 # 计算阈值时间戳当前时间 - 天数*86400秒 current_ts 1690000000 # 实际使用时用time.time() threshold_ts current_ts - days_threshold * 86400 # 删除条件时间戳早于阈值且优先级2 expr ftimestamp {threshold_ts} priority 2 collection.delete(exprexpr) print(f已删除过时低优先级经验)三、设计要点与技术选型建议嵌入模型选择轻量级场景用all-MiniLM-L6-v2768 维速度快适合中小数据量高精度场景用text-embedding-ada-002OpenAI1536 维语义理解能力强。向量数据库选型开源部署Milvus支持分布式适合大规模数据、Qdrant轻量易部署云服务Pinecone、Weaviate无需自建按使用量计费。检索策略优化基础“向量相似度 场景标签过滤”平衡召回率和精准度进阶结合经验优先级如优先返回优先级 3 的结果、时间衰减近期经验权重更高。性能考量向量维度不宜过高建议 512-1536 维避免检索耗时对高频访问的经验建立缓存如 Redis减少数据库压力。总结长期记忆的向量数据库设计核心是 “将经验语义转化为可计算的向量并通过相似性检索实现跨场景复用”。通过结构化的经验定义、合理的元数据设计和灵活的检索策略AI Agent 能从历史经验中快速学习逐步提升决策能力 —— 这正是 Agent “智能化” 和 “持续进化” 的关键支撑。最后为什么要学AI大模型当下⼈⼯智能市场迎来了爆发期并逐渐进⼊以⼈⼯通⽤智能AGI为主导的新时代。企业纷纷官宣“ AI ”战略为新兴技术⼈才创造丰富的就业机会⼈才缺⼝将达 400 万DeepSeek问世以来生成式AI和大模型技术爆发式增长让很多岗位重新成了炙手可热的新星岗位薪资远超很多后端岗位在程序员中稳居前列。与此同时AI与各行各业深度融合飞速发展成为炙手可热的新风口企业非常需要了解AI、懂AI、会用AI的员工纷纷开出高薪招聘AI大模型相关岗位。最近很多程序员朋友都已经学习或者准备学习 AI 大模型后台也经常会有小伙伴咨询学习路线和学习资料我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频全系列的学习资料这些学习资料不仅深入浅出而且非常实用让大家系统而高效地掌握AI大模型的各个知识点。这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】