How Memory is Implemented in LLM-based Agents?

news/2025/4/2 6:12:29/文章来源:https://www.cnblogs.com/IcyFeather/p/18802019

原文链接:https://medium.com/@parklize/how-memory-is-implemented-in-llm-based-agents-f08e7b6662ff


在之前的文章中,我们讨论了大语言模型(LLM)的局限性以及LLM与基于LLM的智能体之间的关系。

智能体为LLM带来的关键增强功能之一是记忆能力,这有助于克服LLM的上下文长度限制。但记忆功能在智能体中是如何具体实现的呢?这正是本文要探讨的重点。

首先,我们将探讨一个名为《语言智能体的认知架构》(CoALA)的概念性框架。然后,我们将分析近期研究中几个记忆实现的案例,例如MemGPT和Zep。

CoALA框架(2023年)

图1:语言智能体的认知架构

《语言智能体的认知架构》(CoALA)[3]为基于LLM的智能体提供了一个清晰的概念框架,其中包含两种主要记忆类型(如图1所示):

  1. 工作记忆
  2. 长期记忆

我们可以暂时忽略图1中的其他细节,因为它们与本文讨论的内容无关。

工作记忆存储当前决策周期中活跃且随时可用的信息。这包括感知输入、主动知识(通过推理生成或从长期记忆中检索)以及从前一个决策周期传递过来的其他核心信息(例如智能体的当前目标)。

长期记忆分为三种不同类型:

  • 程序性记忆:包含存储在LLM权重中的_隐性_知识,以及写入智能体代码中的_显性_知识。智能体代码可进一步分为两类:实现动作的程序(例如推理、检索、基础和学习程序),以及实现决策本身的程序。
  • 语义记忆:存储智能体关于世界和自身的知识。检索增强生成(RAG)可以看作是从非结构化文本(如维基百科)的语义记忆中检索信息。
  • 情景记忆:存储早期决策周期的经验。

有了这个概念框架,让我们看看近期研究中记忆功能的一些具体实现方式。本质上,这些方法旨在将关键信息保留在工作记忆中,而将其余信息存储在长期记忆中,并通过机制促进两者之间的信息交换。

MemGPT(2023年)

图2:MemGPT架构

MemGPT[1]提出了一种受操作系统启发的多级内存架构,包含两种主要内存类型:

  • 主上下文​(类似于主内存/物理内存或RAM):指LLM有限上下文窗口内的上下文,可在推理过程中被LLM访问(图1顶部)
  • 外部上下文​(类似于磁盘内存/磁盘存储):指任何位于LLM固定上下文窗口_之外_的信息,由图1中的_归档存储_(MemGPT读写数据库,存储任意长度的文本对象)和_回忆存储_(MemGPT消息数据库)组成。

在CoALA框架的语境下,主上下文可视为工作记忆,而外部上下文则充当长期记忆。

核心思想:​

  • FIFO队列在主上下文中维护消息的滚动历史,其第一个索引是系统消息,包含从队列中移除消息的递归摘要。
  • 队列管理器在管理主上下文方面起着关键作用:
    1. 管理回忆存储和FIFO队列中的消息:将传入消息和生成的LLM输出写入回忆存储。回忆存储中的消息可通过函数调用(由图1中的函数执行器处理)检索并附加到主上下文。
    2. 当提示令牌超过"警告令牌计数"(例如LLM上下文窗口的70%)时,队列管理器插入警告,并允许LLM使用函数调用将FIFO队列中的重要信息存储到_工作上下文_或_归档存储_中。
    3. 当提示令牌超过"刷新令牌计数"(例如上下文窗口的100%)时,队列管理器刷新队列以释放上下文窗口空间,并使用现有递归摘要和被逐出消息生成新的递归摘要。这些被逐出的消息将无限期存储在回忆存储中,可通过MemGPT函数调用读取。

Zep(2025年)

Zep[2]通过引入时间知识图谱(KG)作为智能体的记忆来解决记忆问题,这可视为长期记忆的一种形式。

图3:Zep架构

核心思想:​
构建的KG包含三种节点类型:

  • 事件节点:包含原始输入数据(消息、文本或JSON);事件边将节点(事件)连接到它们引用的语义_实体_
  • 语义实体节点:表示从事件中提取并解析到现有图实体的实体;_实体节点_之间的语义边捕获从事件中提取的实体之间的关系
  • 社区节点:表示强连接实体的组(通过社区检测方法识别);社区边将_社区_与其各自的_实体成员_连接起来。

KG的时间特性:

  • KG构建从创建事件节点开始,使用_双时间_模型。一个时间方面表示事件的时间顺序,另一个跟踪Zep数据摄取的事务顺序。
  • 这种方法允许通过时间提取和边失效过程进行动态信息更新。具体来说,系统跟踪四个时间戳:t' created_和_t' expired(属于T')监控事实在系统中的创建或失效时间,t valid_和_t invalid(属于T)跟踪事实保持有效的时间范围。这些时间数据点与其他事实一起存储在边上。

KG的记忆检索分为三个步骤:

  1. 搜索过程:识别可能包含相关信息的候选节点和边,并返回三元组(语义边、实体节点、社区节点)
  2. 重新排序器:对搜索结果重新排序
  3. 构造器:将相关节点和边转换为_文本上下文_

时间KG可视为CoALA架构中长期记忆的实现,记忆检索机制用于工作记忆和长期记忆之间的信息交换。此外,CoALA架构中的语义记忆更广泛,包含了Zep中的语义实体节点。

最终评述

记忆在克服LLM固有的上下文长度限制方面起着至关重要的作用,使其能够作为智能体的组成部分有效运作。CoALA框架提供了对基于LLM的智能体中记忆的概念性理解,区分了工作记忆和长期记忆。

MemGPT和Zep提供了这些记忆概念的具体实现。MemGPT采用受操作系统启发的方法,使用滚动FIFO队列作为工作记忆,外部存储作为长期记忆,并通过队列管理器促进信息流动。Zep则利用时间知识图谱来构建和检索长期记忆,结合时间推理来保持知识的准确性。

作为基于LLM的智能体的关键能力,近期已引入许多记忆机制[4],未来肯定还会出现更多。这个GitHub仓库包含了基于LLM的智能体记忆机制的最新进展,如果您有兴趣了解更多。

参考文献

  1. MemGPT:将LLM视为操作系统,2023年
  2. Zep:智能体记忆的时间知识图谱架构,2025年
  3. 语言智能体的认知架构,2023年
  4. 基于大语言模型的智能体记忆机制综述,2024年

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

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

相关文章

运行MBConicHulls教程

为了运行MBConicHulls(a Mathematica package to evaluate N-fold MB integrals)需要安装啥 目录环境Mathematica 13.0.1 Linux版 ✅MultivariateResidues.m (计算多变量余数)✅TOPCOM(一个用于计算三角剖分和相关结构的软件包) ✅前置安装需求步骤-已跑通安装完了测试一下…

信创概念股投资回报率最高的五家公司

信创产业作为近年来备受瞩目的领域,其发展态势对投资者具有极大的吸引力。探寻信创概念股中投资回报率最高的五家公司,对于投资者来说至关重要。这不仅能为他们的资金找到更具潜力的投向,也有助于把握行业发展的脉搏,在复杂多变的市场中获取丰厚的回报。随着信息技术的飞速…

信创国产化背景下人才培养的四大策略

信创国产化是当前我国科技发展的重要战略方向,旨在实现信息技术领域的自主可控,减少对国外技术的依赖,保障国家信息安全。在这一背景下,人才的培养显得尤为关键。信创国产化涉及众多领域和技术,从芯片、操作系统、数据库到各类应用软件,每一个环节都需要专业人才的支撑。…

信创行业政策支持与市场机遇探讨

信创,即信息技术应用创新产业,旨在实现信息技术领域的自主可控,保障国家信息安全。近年来,随着全球政治经济形势的变化以及科技竞争的日益激烈,信创行业迎来了前所未有的发展契机。政策的大力支持为信创行业筑牢了坚实的发展根基,而广阔的市场则为其提供了无限的增长可能…

华硕asus灵耀pro14笔记本电脑在使用自带oled屏幕时低亮度灰色背景时有肉眼可见的闪烁频闪现象

因为平时都是外接屏幕使用,没太在意,最近经常搬着笔记本到处用,才注意到 原本以为是硬件层面的问题,后来搜了一下发现可能是驱动级的节能设置导致的 打开“英特尔显卡控制中心”,找到 系统-功率 分别在使用电池与外接电源场景下,将面板自刷新关掉 其它几个自适应亮度、显…

如何通过PLM项目管理软件提升产品开发效率的7个关键步骤

产品开发效率对于企业的竞争力至关重要。在当今复杂多变的商业环境中,如何有效提升产品开发效率成为众多企业关注的焦点。产品生命周期管理(PLM)作为一种整合产品全生命周期信息的管理理念和技术,为提升产品开发效率提供了有力的支持。通过合理运用PLM,企业能够优化流程、…

BUG记录--Mybatis-Plus注解中动态sql的注意事项

问题点,报错 原因,如果配置了动态sql -- 使用了 <foreach></foreach> 标签前,一定要用 <script></script> 整体包起来,不然动态sql不起作用所以,在 @Select 等注解中使用动态 SQL 时,必须用 <script> 标签包裹。 正确的sql

web164笔记(图片二次渲染绕过)

先右键查看源码,发现有个download.php?image= 猜测有可能是上传图片马,然后文件包含执行命令,我们先上传一个图片马 点击查看图片,跳转到图片页面,但发现执行不了,crtl+s把图片下载下来后,对比之前的图片发现马被弄没了 应该是经过了二次刷新,这里用之前收集的外国师…

US108S-ASEMI功率电机控制电路专用US108S

US108S-ASEMI功率电机控制电路专用US108S编辑:LL US108S-ASEMI功率电机控制电路专用US108S 型号:US108S 品牌:ASEMI 封装:TO-220F US108S核心优势:高耐压、大电流、超强抗干扰‌作为一款高性能双向可控硅,US108S专为交流电调控设计,其核心参数包括: ‌800V断态重复峰值…