AI记忆大揭秘!8种智能体记忆策略全解析,收藏必学!

AI 智能体 8 种常见的记忆(Memory)策略与技术实现 AI智能体记忆策略全解析:8种核心方案原理与实战 本文系统介绍了AI智能体实现记忆功能的8种核心策略,帮助开发者突破LLM上下文长度限制,实现更智能的对话系统: 全量记忆:存储所有对话历史,简单但不可持续 滑动窗口:仅保留最近N轮对话,平衡性能与记忆 相关性过滤:基于重要性评分选择性保留关键信息 摘要/压缩:提炼对话要点,节省空间保留核心内容 向量数据库:利用语义检索实现海量长期记忆 知识图谱:结构化存储关系型知识 分层记忆:区分短期工作记忆与长期知识库 类OS内存管理:模拟计算机内存分页机制 每种策略各有 阅读详情

记忆(Memory)是AI智能体必备的能力之一。随着对话轮数与深度的增加,如何让AI智能体“记住”过去的上下文,是实现精准理解与个性化AI系统的关键。由于LLM存在上下文长度限制,如果不对记忆进行优化,长对话很容易带来两个问题:

  • 遗忘早期信息,导致理解偏差
  • 过度消耗大量计算资源与成本

尽管有Mem0等优秀的开源框架,我们仍然有必要从原理上来理解不同的Memory策略,这有助于在项目中评估、选择与实现最合适的Memory方案。本文将剖析8种常见的AI记忆方案,分析其原理、特点和场景,并用模拟代码帮助理解。

  1. 全量记忆:不遗忘任何内容
  2. 滑动窗口:固定长度的截断
  3. 相关性过滤:遗忘次要信息
  4. 摘要/压缩:提炼关键信息
  5. 向量数据库:语义检索记忆
  6. 知识图谱:结构化记忆
  7. 分层记忆:短期与长期结合
  8. 类OS内存管理:模拟Swap原理

01 全量记忆:不遗忘任何内容


全量记忆模式是最基础、最容易实现的记忆策略。其核心理念是不遗忘任何历史上下文,每轮对话都将用户输入与智能体响应完整记录,并在后续请求中将全部历史上下文一并发送给LLM进行推理。

【基本实现】

将每轮对话按顺序累积在“对话历史”中,每次回复时都将完整历史作为上下文提供给模型。以下是简单的模拟代码:

为了帮助理解,本文针对每种模式简单的模拟实现基本的“添加记忆”与“检索记忆”的过程。实际应用需自行完善。

history = []
def add_message(user_input, ai_response):    turn = {        "user": user_input,        "assistant": ai_response    }    history.append(turn)
def get_context(query):    return concat_all(history)

【特点分析】

优点: 实现简单,无需复杂算法;完整保留了所有细节,信息不丢失。

缺点: 对话稍长可能会触发上下文长度上限,模型需要处理越来越多的文本,导致响应变慢且成本升高。一旦超过模型上下文窗口,早期内容不得不被截断,重要信息可能丢失。此外,长期保留大量不相关旧信息也可能干扰模型判断。

【适合场景】

仅适用于对话轮次很少或者内容短的场景,比如简单QA或一次性问答。在这些情况下,全量记忆确保即使用户提及之前的话题,智能体也不会遗漏。但很显然在大多数实际应用中,这种策略不可持续。

02 滑动窗口:固定长度记忆


针对全量记忆的弊端,最简单的改进是**限制记忆长度:**人类对话中,我们往往只关注最近的信息,旧话题慢慢就淡忘了。滑动窗口策略正是模仿这种特性:只保留最近的若干轮对话,将更早的内容遗忘,以控制上下文长度。

【基本原理】

维护一个固定大小的队列作为对话窗口,每当有新对话加入时,如果超过窗口大小,就从队首移除最旧的一条。模拟实现代码如下:

memory = []WINDOW_SIZE = 3  # 最多保留 3 轮完整对话
def add_message(user_input, ai_response):    turn = {        "user": user_input,        "assistant": ai_response    }    memory.append(turn)
    if len(memory) > WINDOW_SIZE:        memory.pop(0)  # 移除最早一轮问答
def get_context(query):    return concat_all(memory)  # 返回最近几轮对话

这样,无论对话多长,传给模型的上下文始终是最近的N次交互记录 。窗口向前滑动,新进旧出,实现对过往对话的截断。

【特点分析】

优点: 实现非常简单,开销低,不需要引入外部存储;确保模型上下文始终在设定大小内,响应速度和成本相对可控 。

缺点: 健忘性强,一旦窗口滑过,旧信息就永久丢失,无法支持真正的长期记忆 。如果用户稍后又提及早前内容,智能体因已遗忘就无法关联。此外窗口大小也难以抉择:太小会过早遗忘历史,太大又降低了节省上下文的意义。

【适用场景】

滑动窗口适用于**短对话场景或对历史依赖不强的任务。例如FAQ助手、简单闲聊机器人等,不需要长久记住早先话题 。本质上你需要考虑取舍:通过遗忘来换取性能和成本,但不适合需要长程依赖的对话。

03 相关性过滤:遗忘次要信息


人类会选择性记忆,对无关紧要的事很快忘掉。类似地,智能体的记忆也可以有所取舍**:优先保留重要信息,丢弃无用细节。相关性过滤策略就是****基于信息的重要程度来管理记忆**,而不是简单的抛弃旧记忆。

【基本原理】

系统为每条记忆分配一个“重要性”或“相关性”评分(Score),根据评分高低决定保留或清除。当新信息进入,导致容量超限时,自动删除评分最低的记忆 。

评分可以依据多种因素:与当前对话主题的相关程度、最近被提及的频率、信息本身的重要度(例如包含用户关键偏好的句子打高分)等。

实现时,可用一个列表或优先队列按分值排序。模拟如下:

memory = []MAX_ITEMS = 25
def add_message(user_input, ai_response):    item = {        "user": user_input,        "assistant": ai_response,        "score": evaluate(user_input, ai_response),    }    memory.append(item)
    if len(memory) > MAX_ITEMS:        # 找出得分最低的项        to_remove = min(memory, key=lambda x: x["score"])        memory.remove(to_remove)
def get_context(query):    # 返回按对话顺序排列的高分记忆    return concat_all(sorted(memory, key=lambda x: x["order"]))

【特点分析】

优点: 保证关键知识不会遗忘,因为重要内容打分更高。相比盲目的窗口截断,这种策略更“智能”,能腾出空间的同时尽量不丢关键信息。

缺点: 如何准确评估“重要性”是难点,可能需要额外模型计算语义相关度或预定义规则。评分机制不完善时,可能误判重要性,删错记忆。此外,它不像滑动窗口那样可预测,会给调试和理解上带来复杂性。

【适用场景】

适合信息密集且需要筛选的场景,如知识型对话机器人或研究助理工具。在这些应用中,用户提供的大量信息需要智能体加以取舍。例如:一个智能医学助手从患者冗长描述中挑出病史要点存储。

04 摘要/压缩:提炼关键信息


有没有办法在不丢失重要信息的前提下缩短对话长度?摘要策略由此诞生。其动机是像人类做笔记一样,将冗长的对话内容去除无用的信息(寒暄、闲聊、重复信息等),浓缩成关键要点(事实、关键数据、兴趣爱好等)保存 。这样既保留了核心信息,又能大量节省上下文窗口空间,缓解记忆无限增长的问题。

在实际实现中,可以结合滑动窗口策略:超出窗口的对话才进行摘要与压缩。

【基本原理】

在对话过程中定期将较早的对话内容生成摘要与压缩,并用这个摘要代替原始详细内容存入记忆。摘要可以由一个LLM生成。例如,每当对话超过预定长度(窗口大小)时,把最早的几轮对话拿出来总结,模拟如下:

memory = []summary = NoneMAX_LEN = 10  # 最多保留 10 轮问答
def add_message(user_input, ai_response):    turn = {        "user": user_input,        "assistant": ai_response    }    memory.append(turn)
    if len(memory) > MAX_LEN:        old_turns = memory[:-5]        summary_text = summarize(old_turns)        summary = merge(summary, summary_text)        memory.clear()        memory.append({"summary": summary})        memory.extend(memory[-5:])
def get_context(query):    return concat_all(memory)  # 返回摘要 + 最近对话轮

这里示意了一种运行摘要的机制:持续累计和更新一个摘要来代表早期的对话历史。每当记忆长度超标,就把早期内容做摘要和压缩,再与后续对话共同作为新的上下文 。这样,模型上下文始终包含“近期对话 + 旧对话摘要”。

【特点分析】

优点: 大幅节省上下文长度,长期记忆能力强——理论上,通过不断摘要,早期信息的要点可一直保留 。同时,摘要内容精炼,有助于模型聚焦关键信息。

缺点: 摘要质量取决于LLM,也可能遗漏细节或引入信息偏差。如果摘要不准确,后续智能体基于摘要的生成可能出错。此外生成摘要本身需要耗费额外计算,对实时对话有延迟影响。

【适用场景】

摘要记忆适用于长对话且需要保留上下文要点的场景:智能体需记住用户的关键信息(姓名、喜好、诉求等)但不必逐字记住用户每句话。比如一个AI心理陪伴助手。AI可以采用摘要策略,每次对话结束后将本次谈话要点总结存储。下次可以通过之前的摘要回顾用户曾提到的主要问题和情绪变化,从而提供连续性的回应。

05 向量数据库:语义检索记忆


对于海量长期记忆,一个理想方案是将知识存入一个外部数据库,在需要时再调取。这类似人类查笔记或资料库。向量数据库记忆策略利用向量化嵌入(Embedding),将对话内容在向量库存储,并在需要时通过语义检索相关记忆 。其动机在于突破LLM上下文窗口限制,实现近乎无限的外部长时间记忆。

【基本原理】

将每次对话嵌入后存入向量数据库如 Chroma、Pinecone 等 。当需要记忆时,把当前对话内容也向量化,并在数据库中搜索语义相近的记忆片段,将最相关的若干条取出,添加到模型的上下文。模拟如下:

# 初始化向量存储memory = VectorStore()
def add_message(user_input, ai_response):    turn = {        "user": user_input,        "assistant": ai_response    }    embedding = embed(turn)    memory.add(embedding, turn)
def get_context(query):    q_embedding = embed(query)    results = memory.search(q_embedding, top_k=3)    return concat_all(results)  # 返回语义最相关的对话轮

【特点分析】

优点: 语义级别的智能检索,能根据内容语义而非关键词匹配相关记忆 。存储容量大,向量数据库可无限扩展,以支持真正的长期记忆,且检索效率高。

缺点: 依赖嵌入模型质量,若向量表示不好,检索结果也可能风马牛不相及 。向量存储与搜索有一定的计算代价,当记忆库很大时,每次相似度计算也会消耗算力 。另外需要部署维护额外的数据库服务,增加系统复杂度。

【适用场景】

需要长期记忆的对话系统,如个性化助理等。这类系统往往需要记住用户跨会话提供的信息,也非常适合在聊天之外存储知识或用户背景(因为有向量库),让记忆检索具备类似RAG的效果。比如:一个法律咨询AI,当用户提问复杂法律问题时,AI可以同时检索出相关的记忆和法律知识,用来做增强生成。

06 知识图谱:结构化记忆


纯粹依赖向量相似度的记忆系统往往将知识视作离散内容,缺乏对知识之间关系的理解 。知识图谱记忆策略旨在以结构化方式存储和组织记忆信息,通过显式的实体、属性和关系来增强智能体的长期结构化记忆和推理能力 。

【基本原理】

智能体将对话和交互中提及的实体、属性和关系这样的事实信息提取出来,逐步构建起一个知识图谱。比如对话中有“小刘加入了阿里巴巴公司”,那么提取三元组:(小刘, 就职于, 阿里巴公司)。除此之外,还可以记录事件发生的时间等(形成时序知识图谱以处理随时间变化的知识 )。

当需要记忆检索时,智能体可以查询知识图谱:比如先找到相关联的节点、沿关系链追溯信息,甚至进行路径上的逻辑推理,最后将查询或推理出的信息加入上下文。

graph = KnowledgeGraph()  # 初始化知识图谱对象def add_message(user_input, ai_response):    # 将一轮对话转化为结构化三元组 (实体1, 关系, 实体2)    full_text = f"User: {user_input}\nAI: {ai_response}"    triples = extract_triples(full_text)  # LLM提取三元组    for s, r, o in triples:        graph.add_edge(s.strip(), o.strip(), relation=r.strip())def get_context(query):    # 提取查询中可能涉及的实体    entities = extract_entities(query)    context = []    for e in entities:        context += graph.query(e)  # 查询图谱中与实体相关的信息    return context

【特点分析】

优点: 将记忆结构化后,智能体能进行更精细的检索和推理 。结构化记忆使AI不再只按相似度找段落,而是可基于图谱回答复杂问题(如基于多跳关系推理)。知识图谱还具有可解释性,查询路径清晰可追溯,这在需要准确溯源的应用中很有价值。

缺点: 构建和维护成本高:需要借助LLM抽取知识,可能出错或不完整;图谱规模大时也会面临查询性能和存储问题。同时,知识图谱擅长明确事实推理,但对于模糊语义的匹配可能还需要配合向量搜索。

【适用场景】

适合知识密集型应用和需要跨事件推理的智能体。例如企业客户支持AI需要理解用户历史提问与账户、订单等信息的关联,或科研助理AI需要梳理论文中的概念关系等。

07 分层记忆:短期与长期结合


人类记忆是有层级分工的:有的内容转瞬即忘(如刚听到的一句话),有的会短时间记住(如今天开会要点),而真正重要的内容(如家庭住址、生日)会长期保留。

分层记忆策略旨在构建类似“人脑”的记忆结构:将不同类型、重要程度的信息存入不同层级的存储系统,让智能体在面对不同场景时都能“对症下药”。

【基本原理】

该策略将记忆系统划分为多个层级:

  • 工作记忆(短期):保存最近几轮对话,更新频繁、容量小,通过滑动窗口维护。
  • 长期记忆(可检索):将重要信息嵌入后保存,支持跨会话、长期检索。
  • 提升机制:比如,当用户在对话中说出类似“记住我XXX”、“我总是”、“我过敏”等关键信息时(也可借助LLM),系统会将这轮信息提升进长期记忆,以供未来使用。

检索时,系统会从短期记忆获取当前上下文,再从长期记忆中基于语义相关性搜索历史记忆,组合出丰富的提示内容交给LLM处理。

这种策略本质上是滑动窗口+向量库+ 重要性判断的组合策略。

short_term = SlidingWindow(max_turns=2)        # 最近几轮对话long_term = VectorDatabase(k=2)                # 可检索的长期嵌入记忆promotion_keywords = ["记住", "总是", "从不", "我过敏", "我的ID是", "我喜欢", "我讨厌"]
def add_message(user_input, ai_response):    short_term.add(user_input, ai_response)
    # 如果用户的输入中包含提示记忆的关键词,则提升至长期记忆;实际中策略可以更复杂     if any(keyword in user_input for keyword in promotion_keywords):        summary = summarize(user_input + ai_response)        vector = embed(summary)        long_term.add(vector, summary)
def get_context(query):    # 获取短期上下文    recent = short_term.get_context()
    # 向长期记忆查询相关内容    vector_query = embed(query)    related = long_term.search(vector_query)
    # 拼接上下文作为提示输入    return f"【长期记忆】\n" + concat(related) + "\n\n【当前上下文】\n" + concat(recent)

【特点分析】

优点: 可以结合短期记忆与长期记忆优势,近期信息及时响应,历史信息可按需检索;而且即使短期记忆滚动遗忘,但长期的重要记忆依然可查。

缺点: 这种策略实现上更复杂,需要涉及多个模块(窗口管理、嵌入、召回等);且调优成本更高,比如关键词或重要性的判断**、嵌入质量、检索精准性、组合上下文策略均需调试。

【适用场景】

适合需要长期上下文感知的智能体系统。比如企业客服Agent,用户先前的订单、偏好需要记住;再或者个人助理类AI,跨天甚至跨月记住日程安排、家庭成员信息;或者教学/医疗场景中需要回顾过往重要的问答、诊断建议、学习习惯等。

08 类OS内存管理:模拟记忆Swap


在计算机中,操作系统通过“主内存 + 硬盘”的组合机制高效地管理有限的物理内存(RAM)与大容量但较慢的磁盘(Disk)。如果借鉴这种机制,也可以为智能体构建一种类OS内存管理的记忆系统:将有限的上下文窗口当作RAM使用,而将超出上下文的信息保存到外部存储中(Page Out),必要时再“交换”回来(Page In)。

这种模式与分层记忆模式有点类似,但区别在于:

  • 分层记忆只将关键信息进入二级记忆;而这里只要是窗口外的就会Page Out
  • 分层记忆从二级存储直接检索相关记忆,而这里需要Page In后变成活动记忆

【基本原理】

该策略分为两个层级:

  • 活动记忆:使用一个滑动窗口,保存最近的对话。访问速度快,但容量有限。
  • 被动记忆:当活动记忆满了,最旧的内容会被“交换”至外部存储。这些信息虽然不直接在模型当前上下文中,但仍可随时检索。

这种策略有一个“页故障”的机制:当用户提问中包含关键词,而这些关键词所需的信息不在当前RAM中,系统就会触发“Page Fault”,从被动记忆中搜索匹配内容,并“page in”上下文,再供LLM使用。

该策略本质上模拟了OS的虚拟内存管理原理,即“冷热数据分层”的上下文利用。模拟如下:

active_memory = Deque(maxlen=2)   # 快速但小的上下文窗口passive_memory = {}               # 持久存储的被动记忆turn_id = 0                       # 每轮对话唯一标识
def add_message(user_input, ai_response):    global turn_id    turn = f"User: {user_input}\nAI: {ai_response}"
    if len(active_memory) >= 2:        old_id, old_turn = active_memory.popleft()        passive_memory[old_id] = old_turn  # pageout到被动存储
    active_memory.append((turn_id, turn))    turn_id += 1
def get_context(query):    context = "\n".join([x[1] for x in active_memory])  # 当前活动记忆上下文    paged_in = ""
    #这里共关键词模拟判断需要pagein的记忆,实际应用策略更复杂     for id, turn in passive_memory.items():        if any(word in turn.lower() for word in query.lower().split() if len(word) > 3):        #需执行page in的动作,略         paged_in += f"\n(Paged in from Turn {id}): {turn}"               return f"### Active Memory (RAM):\n{context}\n\n### Paged-In from Disk:\n{paged_in}"

【特点分析】

**优点:该策略最大优势在于结构清晰且符合计算机原理。它通过将对话拆分成“热数据(当前上下文)”和“冷数据(外部存储)”两层管理,有效缓解上下文窗口限制,同时还能在关键时刻回忆过去的重要信息,大大提高记忆系统的灵活性和扩展性。

缺点: 实现上需要模拟“page in/out”逻辑,并确保触发时机(比如根据关键词或向量相似)的准确性。如果触发机制设计不佳,可能会出现信息召回不及时或漏召的情况,从而影响对话连贯性。同时,“分页”机制要求设计良好的上下文拼接逻辑。

【适用场景】

适用于上下文窗口受限但又需要长期记忆的智能体系统。它能够在保持对话响应速度的同时,保留大量历史信息,适合低延迟对话、时间跨度较大的任务型助手,以及需要随时回溯旧信息的场景:当用户提出涉及过往内容的问题时,系统可以像操作系统一样将“被交换出去”的记忆及时“唤醒”,实现高效又节省资源的记忆管理。

最后我们简单总结以上的8种记忆策略:

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

【附赠一节免费的直播讲座,技术大佬带你学习大模型的相关知识、学习思路、就业前景以及怎么结合当前的工作发展方向等,欢迎大家~】
在这里插入图片描述

AI智能体记忆系统全解析:8大策略与实战指南 在人工智能领域,大语言模型(LLM)的无状态特性是其实现连续、个性化交互的主要瓶颈。为解决这一问题,记忆系统应运而生,其核心原理是通过分层存储与智能检索机制,将短期对话上下文与长期知识经验有效管理。从技术价值看,记忆系统不仅能提升对话连贯性,更能让AI智能体具备持续学习与个性化服务能力,是构建实用AI应用的关键基础设施。在应用场景上,无论是客服对话、代码助手还是个性化推荐,都需要结合具体业务需求选择合适的记忆策略。本文聚焦于向量数据库和实体记忆等核心热词,深入剖析了包括滚动窗口、对话摘要、语义检索在内的8种 阅读详情

相关推荐

autoDL算力云装Xinference[坑与步骤]

在页面直接点击下载会出现下着下载进度条消失,试了几次才出现这个报错,现在我们就继续安装缺少的包吧。这一步成功绕开了系统盘空间限制。先租用一个合适的服务器,建议不要选最新版本,跟我选的一样即可,不然后面会出现。最近在 AutoDL 上尝试部署。🚫 不要直接使用以下命令。点击下面链接即可打开。

ngadminq的博客 2383

AI智能体记忆技术大揭秘:8种策略从原理到实战,收藏这篇就够了!

记忆(Memory)是AI智能体必备的能力之一。随着对话轮数与深度的增加,如何让AI智能体“记住”过去的上下文,是实现精准理解与个性化AI系统的关键。由于LLM存在上下文长度限制,如果不对记忆进行优化,长对话很容易带来两个问题:

m0_59164520的博客 1434

水环境综合管控平台完整方案

水环境综合管控平台项目(2026-2027)摘要 项目概况: 总投资5亿元的水环境综合管控平台项目,是国家数字政府与生态文明建设战略的重要实践。项目严格遵循2026年最新政策标准,整合物联网、大数据和AI技术,构建覆盖水质监测、污染溯源、生态保护等全流程的智能管控体系。 核心内容: 系统架构:采用五层设计(基础设施层至展示层),集成10大核心功能模块,包括水质动态监测、污染智能溯源和生态评估预警系统; 技术创新:运用2026年最新边缘计算和数字孪生技术,实现毫秒级水质异常响应和三维流域仿真; 实施规划:分7

随读手记 405

AI智能体8大记忆策略全解析:从原理到代码实现,解决长对话遗忘问题

本文解析了AI智能体的8种记忆策略,包括全量记忆、滑动窗口、相关性过滤、摘要压缩、向量数据库、知识图谱等。这些策略旨在解决大模型长对话中的上下文限制问题,防止早期信息遗忘并控制计算资源消耗。每种策略从原理、特点及适用场景进行剖析,并提供模拟代码实现。开发者可根据项目需求选择最适合的记忆方案,如短对话适用滑动窗口,知识密集型场景适合知识图谱等,以优化AI的长期记忆和响应能力。

ytt0523_com的博客 2013

用python自动复制粘贴excel表里某一列的数据到另一个表中

昨天接到人事小姐姐求助减轻复制粘贴的重复工作量,分享一下代码 半路新手上路 耶 把 2.xlsx 表里的第二列 的数据复制粘贴到 test.xlsx的第一列 python3.6.2 from openpyxl import Workbook from openpyxl import load_workbook from openpyxl.writer.excel import Exc...

weixin_33854644的博客 2万+

别再浪费NFC了!手把手教你用Android手机模拟门禁卡(Mifare Classic破解教程)

本文深入探讨Android NFC技术的核心原理与创新应用,教你如何利用手机模拟门禁卡(Mifare Classic破解教程),解锁智能生活的无限可能。涵盖NFC标签类型解析、HCE开发实战及安全实践,让你的Android设备成为数字生活的万能钥匙。

weixin_29239661的博客 230

8种AI记忆策略全解析:从原理到代码实现,收藏必备的智能体记忆指南

本文系统解析了8种AI智能体记忆策略:全量记忆、滑动窗口、相关性过滤、摘要/压缩、向量数据库、知识图谱、分层记忆和类OS内存管理。详细阐述各策略原理、优缺点及适用场景,并提供模拟代码帮助理解。解决LLM上下文限制导致的遗忘与资源问题,为开发者构建具有长期记忆的AI系统提供方法论指导。这些策略覆盖了从简单到复杂、从短期到长期的各种记忆需求,可根据实际应用场景灵活选择和组合使用。

2301_76168381的博客 1056

告别卡顿!用LVGL+DMA刷新STM32F407的SPI屏幕,性能提升实战

本文详细介绍了如何通过LVGL+DMA技术优化STM32F407驱动SPI屏幕的性能,实现接近60FPS的流畅刷新。从硬件瓶颈分析到SPI与DMA的精细化配置,再到LVGL的双缓冲机制与局部刷新优化,提供了一套完整的性能提升方案。特别适合嵌入式GUI开发中面临卡顿问题的工程师参考。

weixin_42531588的博客 379

AI智能体记忆策略大揭秘:8种常见技术实现完全解析

本文系统分析了8种AI智能体的记忆策略,包括全量记忆、滑动窗口、相关性过滤、摘要压缩、向量数据库、知识图谱、分层记忆和类OS内存管理。这些策略针对大模型上下文窗口限制问题,从不同角度优化记忆管理,平衡信息保留与计算效率。文章详细阐述了每种策略的原理、实现方式、优缺点及适用场景,并提供了模拟代码帮助理解。这些记忆方案可根据实际需求组合使用,为构建高效、个性化的AI对话系统提供技术参考。

2401_84204207的博客 1195

环保 HJ212协议解析

由于是做环保相关的,有时需要对212协议进行拆包和解包。HJ212协议是一种字符串协议,数据传输通讯包主要由包头、数据段长度、数据段、CRC校验、包尾组成,其中“数据段”内容包括请求编码、系统编码、命令编码、密码、设备唯一标识、总包数、包号、指令参数。请求编码为请求的时间戳,系统编码ST统一规定为22,命令编码CN为该数据包的时间类型,访问密码、设备唯一标识在对接时由平台提供,指令参数为数据内容。通讯协议的数据结构如图4所示。 图4 通讯协议的数据结构 6.1.1通讯包结构组成 名称 类型 长度

ccf19881030的专栏 2万+

(汇总篇)语义SLAM相关开源方案| 全球优秀作者与实验室 | SLAM学习资料整理

SLAM 与深度学习相结合的工作当前主要体现在两个方面,一方面是将语义信息参与到建图、位姿估计等环节中,另一方面是端到端地完成 SLAM。针对建图的工作一方面是利用几何信息进行稠密重建,另一方面很多工作利用语义信息达到了很好的语义重建效果,三维重建、SFM。动态 SLAM 也是一个很值得研究的话题,这里不太好分类,很多工作用到了语义信息或者用来三维重建,收集的方案相对较少。优化可能是 SLAM 中最难的一部分了吧 +_+ ,一般都是直接用现成的因子图、图优化方案,要创新可不容易。

熊猫小妖的AI世界 7870

从原理到落地:AI 智能体 8 种记忆(Memory)策略全解析,一篇吃透

从原理到落地:AI 智能体 8 种记忆(Memory)策略全解析,一篇吃透

优快云_224022的博客 1881

Ambari 3.0+BigTop 3.3集群部署实战

Ambari 3.0+BigTop 3.3集群部署

docsz的博客 609

AI智能体记忆机制深度解析:8种策略与实现思路

本文系统解析了8种AI对话系统的记忆策略,从基础的全量记忆到高级的分层管理。核心策略包括:全量记忆(保留所有上下文)、滑动窗口(仅存近期对话)、相关性过滤(智能评分筛选)、摘要压缩(保留关键信息)、向量数据库(语义检索)、知识图谱(结构化存储)、分层记忆(短长期结合)和类OS内存管理(冷热数据分层)。这些策略各有优劣,适用于不同场景:短对话推荐滑动窗口,知识型对话适合相关性过滤,个性化服务需要分层记忆。开发者需根据业务需求在计算成本、记忆深度和响应速度之间取得平衡。

霍格沃兹测试学院的博客 1611

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【程序员必学】从RAG到智能体记忆:AI智能体记忆机制全解析(建议收藏)

从本质上讲,RAG、智能体RAG和智能体记忆都是关于如何创建、读取、更新和删除存储在外部知识源(例如文本文件或数据库)中的信息。存储信息检索信息编辑和删除信息RAG导入阶段离线存储一次性手动智能体RAG导入阶段离线存储通过工具调用动态进行手动智能体记忆通过工具调用动态进行通过工具调用动态进行通过工具调用动态进行最初,优化最初RAG的关键焦点在于优化检索方面,例如使用不同的检索技术,如向量搜索、混合搜索或基于关键词的搜索(“如何检索信息”)。

m0_48891301的博客 1010

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

8种AI智能体记忆策略,一篇全解析!技术实现也讲透!

《AI智能体的8种记忆策略解析》 本文系统分析了AI对话系统中常见的8种记忆管理方案,旨在解决大模型上下文窗口限制带来的记忆挑战。全量记忆虽简单但效率低;滑动窗口通过固定长度截断平衡性能与记忆;相关性过滤基于重要性评分选择保留内容;摘要压缩策略提炼关键信息节省空间;向量数据库利用语义检索实现长期记忆;知识图谱通过结构化存储增强推理能力;分层记忆融合短期与长期记忆优势;类OS内存管理模拟计算机虚拟内存机制。文章详细剖析了每种策略的原理、实现方式、优缺点及适用场景,并提供了简化的代码示例帮助理解。这些方案为开发

WANGJUNAIJIAO的博客 1078

一文全解析:AI 智能体 8 种常见的记忆(Memory)策略与技术实现,大模型入门到精通,收藏这篇就足够了!

随着对话轮数与深度的增加,如何让AI智能体“记住”过去的上下文,是实现精准理解与个性化AI系统的关键。

2301_81940605的博客 1375

值得收藏!AI智能体记忆管理:8种策略详解与代码实现

并用这个摘要代替原始详细内容存入记忆。摘要可以由一个LLM生成。

python1234_的博客 1604

一文全解析:AI 智能体 8 种常见的记忆(Memory)策略与技术实现

它能够在保持对话响应速度的同时,保留大量历史信息,适合低延迟对话、时间跨度较大的任务型助手,以及需要随时回溯旧信息的场景:当用户提出涉及过往内容的问题时,系统可以像操作系统一样将“被交换出去”的记忆及时“唤醒”,实现高效又节省资源的记忆管理。给你学习,我国在这方面的相关人才比较紧缺,大模型行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有什么学习上的问题,欢迎找我交流,有技术上面的问题,我是很愿意去帮助大家的!,一旦窗口滑过,旧信息就永久丢失,无法支持真正的长期记忆。

bagell的博客 1871

一文全解析:AI 智能体8种常见的记忆(Memory)策略

它能够在保持对话响应速度的同时,保留大量历史信息,适合低延迟对话、时间跨度较大的任务型助手,以及需要随时回溯旧信息的场景:当用户提出涉及过往内容的问题时,系统可以像操作系统一样将“被交换出去”的记忆及时“唤醒”,实现高效又节省资源的记忆管理。其动机是像人类做笔记一样,将冗长的对话内容去除无用的信息(寒暄、闲聊、重复信息等),浓缩成关键要点(事实、关键数据、兴趣爱好等)保存。针对全量记忆的弊端,最简单的改进是**限制记忆长度:**人类对话中,我们往往只关注最近的信息,旧话题慢慢就淡忘了。

2401_85116933的博客 962

Datawhale | 一文全解析:AI 智能体 8 种常见的记忆(Memory)策略与技术实现

本文介绍了AI智能体8种常见的记忆策略,包括全量记忆、滑动窗口、相关性过滤、摘要压缩、向量数据库、知识图谱、分层记忆和类OS内存管理。每种策略都有其优缺点和适用场景,如全量记忆简单但易超限,滑动窗口节省资源但健忘性强,向量数据库支持长期记忆但依赖嵌入质量。文章通过模拟代码帮助理解不同策略的实现原理,并指出应根据具体需求选择合适的记忆方案,以平衡记忆能力、计算成本和系统复杂度。

csdn_xmj的博客 2079

一文搞懂AI智能体记忆策略:8种Memory技术全景解析

记忆(Memory)是AI智能体必备的能力之一。随着对话轮数与深度的增加,如何让AI智能体“记住”过去的上下文,是实现精准理解与个性化AI系统的关键。由于LLM存在上下文长度限制,如果不对记忆进行优化,长对话很容易带来两个问题:

2401_85325726的博客 2898

AI智能体记忆策略大全!一文解析8种常见技术与实现方式!

本文探讨了AI智能体的8种记忆策略,以解决大语言模型(LLM)在长对话中的上下文限制问题。从基础的全量记忆到复杂的类OS内存管理,文章详细分析了每种策略的原理、优缺点及适用场景。重点介绍了滑动窗口、摘要压缩、向量数据库等关键技术,并通过模拟代码展示实现方式。这些策略帮助AI智能体在性能与记忆能力间取得平衡,适用于从简单QA到复杂知识型对话等不同场景。文章还提供了大模型学习资源,旨在帮助读者深入理解AI记忆管理技术。

2401_84494441的博客 1321

智能体记忆终极指南:从入门到精通,一文掌握AI记忆系统,收藏这篇就够了!

随着人工智能从生成式AI(Generative AI)向智能体AI(Agentic AI)演进,2025年被广泛视为Agent市场的元年。智能体架构的技术讨论日益活跃,其核心组件的标准化与抽象化也日趋成熟——例如像MCP(Model Context Protocol)和A2A(Agent-to-Agent)这类协议逐渐定义了Agent如何调用工具以及多Agent之间如何交互。在智能体的基本架构中,**记忆(Memory)** 作为其核心能力之一,正受到越来越多的关注。

weixin_58753619的博客 1865
上一篇: 【程序员必备收藏】大模型输出稳定性评估:4种量化方法详解+实战指南
下一篇: Agent工作流架构:从技术原理到产品落地
不秃头de程序猿
博客等级 码龄5年 4089粉丝 1476原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值