热门搜索:和平精英 原神 街篮2 

您的位置:首页 > > 教程攻略 > ai资讯 >Agent如何帮助大模型“增强记忆”?

Agent如何帮助大模型“增强记忆”?

来源:互联网 更新时间:2026-05-30 17:05

去年关于LLM驱动Agent的那篇经典博客(没错,就是Lilian写的那篇),把Agent的结构拆成了规划、行动、工具和记忆这四个模块。这个框架精准概括了ReAct式Agent的工作流程:提问→思考→行动→调用工具→观察结果→再思考……直到得出最终答案。

在这四个组件中,记忆扮演的角色非常关键。它负责记住两类核心信息:事实和偏好。事实比如工具调用的结果、问题的答案;偏好比如语言风格、图表绘制习惯、特定任务下该选哪个工具。有了这些记忆,Agent的回答准确率、稳定性和速度都会显著提升。那么,记忆具体分为哪些类型?又是如何存储和提取的?能用在什么地方?这篇文章就来系统地梳理一下。

1. Agent什么东西可以存入记忆中?

Agent和普通的Chat或RAG知识型应用不同,它涉及规划、决策、工具调用等一系列复杂操作。因此,能存入记忆的内容,也需要重新思考。

1.1 对话交互历史

这是记忆最基础的形式,也是多轮对话的立身之本。用户输入的Query和模型返回的自然语言输出,共同构成了交互历史。没有它,Agent就是个“金鱼脑”,聊完一句就忘。

1.2 工作流(规划)与工具调用结果

自然语言规划和工具调用在工作流层面有显著区别,这也导致它们在记忆存储方式上的不同。

在ReAct架构的Agent里,规划或思考过程以自然语言形式呈现。那些具备长期规划能力的Agent,会在行动开始前将任务拆解成一系列子任务,这些子任务序列就可以作为本次任务的工作流存入记忆。

而在以Function Calling为核心的Agent中,模型接收用户Query和结构化的函数列表,输出的是函数调用的JSON文件,随后在外部执行并返回结果。函数调用的JSON和执行结果,都可以被记忆存储。未来遇到相似条件时,直接召回这些结果,就能省去重复执行函数的时间和计算资源。

1.3 Reflection的反馈

Reflection是对Agent每步操作和子任务的反馈。把这些反馈存入记忆,就像给Agent准备了一本“错题集”。未来遇到类似任务时,它可以直接调取过往的反思改进建议,提升准确率。从长远来看,将Reflection融入记忆,能极大提升Agent的推理能力,在专业场景下,效果往往比单纯提升模型底层的推理性能更高效。

不过目前面临一个现实问题:自动化的Reflection流程很难给出高质量的改进建议,反而容易让模型“钻牛角尖”,陷入错误循环。短期内,这个环节恐怕还需要人工介入,以类似强化学习的方式,逐步优化Agent在特定场景下的表现。

2. 记忆的提炼方式

2.1 直接的buffer存储

最简单粗暴的方式,就是直接把用户聊天的历史记录和工具调用的结果存起来,不做任何总结。这种方法的优势是稳定、不丢失信息,而且不用调大模型去总结,节省了推理时间和算力成本。

但缺点也很明显:存储的内容“稀疏”,里面充斥着大量无用信息和冗余文字。把这些杂乱无章的内容直接塞给模型,容易造成干扰——对话轮数少还好,一旦多了,Agent就会陷入巨大的“精神内耗”。因此,buffer类存储只适合对话轮数很短的场景。

2.2 多种不同的提炼与召回方式

当然,记忆也可以像知识库管理那样,先提炼再存储。LangChain之前总结过几种经典方法:

Refine 精炼法:

把长文本分成小块,先对第一块生成总结,然后把总结内容和第二块合并,依此类推,最终生成整篇文章的总结。

优点:相比map_reduce方法,丢失的信息更少。

缺点:需要多次调用大模型,而且对文本顺序有要求——每个片段的总结都依赖前一个片段的结果,无法并行执行,整个任务变成了串行流程。

map_reduce:

先把长文档分成小块,分别调用大模型生成总结,最后将所有分块的总结合并,生成全文总结。

优点:可以处理非常长的文本。

缺点:单次任务需要多次调用大模型;在合并过程中可能有信息丢失,相比stuff方法缺少完整的上下文信息。

map_rank:

对每一块内容进行操作,返回结果的同时也返回该块总结的正确性得分,最终返回得分最高的那一个。

优点:能处理长文本。

缺点:无法进行总结合并,生成基于全文的结论。它更适用于在文档中检索、根据某个文本块来回答问题。

但需要注意的是,以上方法都是针对纯文本内容。Agent的实际情况要复杂得多——工具调用的JSON、结构化的返回结果,这些内容由于其结构化特性,可以直接通过规则算法提取关键元素,并以结构化的方式存储,反而更简单高效。

3. 长短期记忆

Lilian那篇博客里还提到了一个有趣的类比:将Agent的记忆与人类大脑的记忆系统对应起来,包括感知记忆、短期记忆和长期记忆。

人类的感觉记忆与长短期记忆和Agent记忆的映射关系

3.1 感知记忆

感觉记忆类似人类在刺激结束后保留感官信息的印象,通常只持续几秒钟。映射到Agent里,可以理解为模型输入的向量化表达以及注意力机制。

3.2 短期记忆与提示模板

短期记忆本质上是大模型涌现能力中上下文学习(ICL)的一种具体表现,也是Agent利用提示工程来提升表现的重要手段。上下文学习是短期记忆的核心,它让Agent能在当前对话中记住并利用相关信息。

短期记忆包含内容非常丰富:指令、计划、事实、偏好、历史交互记录等。

指令与计划的记忆

:帮助Agent更好地执行任务。比如在项目管理中,Agent记住团队成员分配的任务和截止日期,确保项目按时完成。

事实与偏好的记忆

:这是个性化服务的基石。Agent根据用户偏好调整建议和回应,比如在餐厅预订场景中,记住用户的饮食偏好和特殊需求。

历史交互记录的记忆

:保持对话的连贯性,避免用户重复提供信息。在客户服务中,Agent记住用户之前提出的问题和解决方案,快速跟进问题进展。

在实践中,Berkeley的开源项目MemGPT充分利用了约8k长度的token上下文窗口,实现了多类记忆内容的输入。

MemGPT关于有限上下文窗口(8k)的记忆分配方法

在提示词管理中,它包含三个部分:系统指令(System Instruction)、工作上下文(Working Context)和FIFO队列。其中,工作上下文和FIFO队列在概念上属于短期记忆。工作上下文存储了关于用户和Agent角色的关键事实与偏好;FIFO队列则滚动存储消息历史,包括历史对话、系统消息(如内存警告)和模型函数调用的输入输出。

MemGPT相关记忆存储

3.3 长期记忆与持续学习

MemGPT还包括了召回存储和档案存储,这两种是通过外部数据库来实现的,用于记忆更海量的历史消息和事实知识。这,就是长期记忆的经典存储方式。

长期记忆通常存储重要的事实或偏好,这些信息在其他会话和任务中也能派上用场。相比短期记忆,它不受模型上下文长度限制,能在更长时间跨度内保持信息的完整性和准确性。

信息持久性与上下文独立性

:这是长期记忆的突出优势。短期记忆受限于当前对话,一旦结束或超出长度限制,记忆就被丢弃或压缩。而长期记忆跨越多个会话,保持连续性——比如用户某次告诉Agent自己的生日,下次对话时,Agent仍然记得。

存储大容量信息

:长期记忆就像一本笔记本,页数够多就能记录无限量的内容。用户的健康数据、药物服用历史、过敏信息,都可以存在这里,为后续咨询提供个性化建议。

动态更新与管理

:Agent可以从交互中不断学习新信息,添加到长期记忆里,同时还能对陈旧或无关的记忆进行管理和更新。比如将历史会话从短期记忆转移到长期记忆数据库中,确保上下文清晰和相关。

4. 会话内与会话间记忆

短期和长期记忆是基于存储方式定义的。在实际使用时,用户通常会开启新Session(会话)来区分不同话题,这不仅是对交互主题的分类,也让每个会话的记忆相互隔离。从会话角度,记忆可以分为两种:会话内记忆和会话间记忆。

Agent会话记忆框架

4.1 会话内记忆(多轮对话)

这是单次会话窗口内,用户和应用之间的交互历史,也就是多轮对话中的记忆。它只能被当前会话的智能体访问,不影响其他会话。这类似于短期记忆,但实现上除了基于提示词,还可以通过外部数据库进行扩展和强化。

4.2 会话间记忆(持久记忆)

对于重要的概念和事实,会话之间可以共享这些记忆内容,作为持久性记忆。

今年2月13日,OpenAI发布了一篇博客,介绍了ChatGPT新加入的记忆功能。用户可以让ChatGPT记住某些事,也可以询问它记住了什么,或者通过对话让它遗忘。

博客中提到了4种会引发记忆读写的场景:

1. 用户解释过更喜欢在会议记录底部总结标题、要点和行动项目。ChatGPT记住了这一点,并以这种方式回顾会议。

2. 用户告诉ChatGPT自己拥有一家社区咖啡店。在为新店开张的社交帖子集思广益时,ChatGPT知道从哪里开始。

3. 用户提到自己有一个刚学步的小孩,喜欢水母。当请ChatGPT制作生日贺卡时,它会建议画一只戴着派对帽的水母。

4. 作为一名有25名学生的幼儿园老师,用户更喜欢50分钟的课程和后续活动。ChatGPT在帮助制定课程计划时会记住这一点。

有趣的是,1、3、4属于用户偏好相关的记忆,2是关于事实的记忆,但它们都通过这类记忆影响了后续的计划和行动。尤其第3个场景,在一个看似不相关的事件里(生日贺卡),ChatGPT依然调用了儿童喜欢水母这个信息,效果相当不错。

虽然ChatGPT更偏向聊天类应用,但这种跨会话记忆的概念完全可以迁移到Agent类应用中,优化规划和反馈机制。在客户服务领域,Agent记住客户的历史问题和偏好,提供更定制化的服务——这种通过数据回流不断优化的方式,会让Agent的表现越来越贴合实际需求。

5. Agent记忆的妙用

5.1 指代消解

在多轮对话中,短期记忆能帮助模型解决指代不清的问题。当用户用“它”、“他”这类代词时,Agent通过回忆上下文信息,准确定位代词的指代对象。这不仅提高了对话的连贯性和流畅性,还减少了误解和重复沟通,在涉及复杂信息的讨论中尤其重要。

5.2 答案缓存

记忆能显著减少重复调用API的次数,直接降低费用。当Agent记住查询结果并在需要时直接引用,就不必每次都重新调用昂贵的API。比如在客户服务中,用户反复问相同的问题,Agent可以直接从缓存中提取答案,既节省时间又提升响应速度。

5.3 偏好学习

记忆能记住用户的行为和需求偏好,减少对任务的重复解释。Agent根据历史交互,逐渐了解用户的习惯,然后在未来提供更精准的服务。电商平台记住购物记录推荐商品,教育平台根据学习轨迹定制方案——通过偏好学习,Agent不仅提升用户体验,还提高了任务完成效率。

5.4 数据回流

Agent的驱动模型可以基于历史交互数据进行微调,使其更适应专有场景。通过不断记录和分析用户交互数据,Agent能识别常见问题和模式,针对特定领域进行优化。这种数据回流与Reflection结合,将大大提升Agent未来的表现。在医疗咨询中,智能体通过分析大量患者的提问和反馈,优化回答质量;在客户服务中,Agent根据历史投诉和建议调整策略——数据回流不仅帮助模型持续改进,也帮助企业更准确地了解用户需求。

6. 总结

记忆模块的应用虽然还处于探索阶段,但和其他组件的简单读写过程相比,它能让Agent不断存储关键的事实、偏好和改进建议,从而获得更好的表现、准确率和稳定性。记忆也是Agent学习和经验积累的基础——有了记忆,Agent不仅变得更聪明,更具备了“智慧”,能像一位经验丰富的前辈一样,解决那些“年轻”Agent难以应对的难题。未来在通往AGI的道路上,记忆模块的各类妙用,值得深入探索。

AI自动绘画大师
AI自动绘画大师

类型:益智休闲

大小:5.72MB

语言:简体中文

平台:互联网

游戏下载

热门手游

手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc