Hello-Agents 记忆与检索
2026/5/11 7:14:33 网站建设 项目流程

一、前言

上一篇我们初步认识了什么是Agent,进行了传统智能体和现代智能体的多种对比,并且实现了一个简单的旅游推荐系统。这一篇我们来讲讲智能体的记忆与检索功能的必要性,采用 “框架扩展 + 知识科普”的方式,在构建过程中深入理解 Memory 和 RAG 的理论基础。

二、启发与思考

从我们人类自身出发,我们的记忆是一个多层级的认知系统,它不仅能够存储信息,还能根据重要性、时间和上下文来对信息进行分类和整理,拿认知心理提供的理论框架图来看,如下:

我们的记忆可以分为三个层次:

  • 感觉记忆(Sensory Memory):持续时间极短(0.5-3秒),容量巨大,负责暂时保存感官接收到的所有信息
  • 工作记忆(Working Memory):持续时间短(15-30秒),容量有限(7±2个项目),负责当前任务的信息处理
  • 长期记忆(Long-term Memory):持续时间长(可达终生),容量几乎无限,进一步分为:
    • 程序性记忆:技能和习惯(如骑自行车)
    • 陈述性记忆:可以用语言表达的知识,又分为:
      • 语义记忆:一般知识和概念(如"巴黎是法国首都")
      • 情景记忆:个人经历和事件(如"昨天的会议内容")

从上面的描述可以知道人类的重要特性就是能够记住过去的经历,对此进行学习并用于新的情况中。同样要实现一个真正的智能体也需要这些。但目前,对基于LLM的智能体来说,通常存在两个局限:对话状态的遗忘内置知识的局限,这也是为什么智能体需要记忆和RAG的原因

(1)无状态导致的对话遗忘:
大模型虽然强大,但设计上是无状态的,这使得用户每次请求或调用API都是独立的计算,模型本身不会自动记住上一次对话的内容,而这就带来了很多个问题:

  • 上下文丢失:在长对话中,早期的重要信息可能会因为上下文窗口限制而丢失
  • 个性化缺失:Agent无法记住用户的偏好、习惯或特定需求
  • 学习能力受限:无法从过往的成功或失败经验中学习改进
  • 一致性问题:在多轮对话中可能出现前后矛盾的回答
    要解决这些问题就必须引入记忆系统

(2)模型内置知识的局限:
除了遗忘对话历史,LLM的另一个核心局限在于知识是静态的、有限的。这些知识完全来自于它的训练,并带来一系列的问题:

  • 知识时效性:大模型的训练数据有时间截止点,无法获取最新信息
  • 专业领域知识:通用模型在特定领域的深度知识可能不足
  • 事实准确性:通过检索验证,减少模型的幻觉问题
  • 可解释性:提供信息来源,增强回答的可信度

基于这个局限,RAG技术就出现了,它的核心是在模型生成回答之前,先从外部知识库(如文档、数据库、API)中检索出最新信息,并将其作为上下文一起提供给模型。因此基于之前我们学到的基础以及科学的启发,我们设计了一个分层的记忆与RAG系统框架,如下图所示:


这个框架不仅借鉴了人类记忆系统的层次结构,还充分考虑了工程实现的可扩展性。我们讲记忆和RAG设计为独立的两个工具:

  • memory_tool:负责存储和维护对话过程中的交互信
  • rag_tool:负责从用户提供的知识库中检索相关信息作为上下文,并可将重要的检索结果自动存储到记忆系统中。

其记忆系统和RAG系统的设计如下:

HelloAgents 记忆系统 ├── 基础设施层 (Infrastructure Layer) │ ├── MemoryManager - 记忆管理器(统一调度和协调) │ ├── MemoryItem - 记忆数据结构(标准化记忆项) │ ├── MemoryConfig - 配置管理(系统参数设置) │ └── BaseMemory - 记忆基类(通用接口定义) ├── 记忆类型层 (Memory Types Layer) │ ├── WorkingMemory - 工作记忆(临时信息,TTL管理) │ ├── EpisodicMemory - 情景记忆(具体事件,时间序列) │ ├── SemanticMemory - 语义记忆(抽象知识,图谱关系) │ └── PerceptualMemory - 感知记忆(多模态数据) ├── 存储后端层 (Storage Backend Layer) │ ├── QdrantVectorStore - 向量存储(高性能语义检索) │ ├── Neo4jGraphStore - 图存储(知识图谱管理) │ └── SQLiteDocumentStore - 文档存储(结构化持久化) └── 嵌入服务层 (Embedding Service Layer) ├── DashScopeEmbedding - 通义千问嵌入(云端API) ├── LocalTransformerEmbedding - 本地嵌入(离线部署) └── TFIDFEmbedding - TFIDF嵌入(轻量级兜底) HelloAgents RAG系统 ├── 文档处理层 (Document Processing Layer) │ ├── DocumentProcessor - 文档处理器(多格式解析) │ ├── Document - 文档对象(元数据管理) │ └── Pipeline - RAG管道(端到端处理) ├── 嵌入表示层 (Embedding Layer) │ └── 统一嵌入接口 - 复用记忆系统的嵌入服务 ├── 向量存储层 (Vector Storage Layer) │ └── QdrantVectorStore - 向量数据库(命名空间隔离) └── 智能问答层 (Intelligent Q&A Layer) ├── 多策略检索 - 向量检索 + MQE + HyDE ├── 上下文构建 - 智能片段合并与截断 └── LLM增强生成 - 基于上下文的准确问答

三、记忆系统工作流程

学习不能图快,我们先熟悉记忆系统的工作流程,理解各种映射关系
上图描述了我们人类记忆形成的几个阶段:

  • 编码(Encoding):将感知到的信息转换为可存储的形式
  • 存储(Storage):将编码后的信息保存在记忆系统中
  • 检索(Retrieval):根据需要从记忆中提取相关信息
  • 整合(Consolidation):将短期记忆转化为长期记忆
  • 遗忘(Forgetting):删除不重要或过时的信息

基于此,记忆系统通过模仿人脑处理不同类型信息的方式,可划分多个模块,并建立一套智能化的管理机制,如下图:


我们的记忆系统由四种不同类型的记忆模块构成,每种模块都针对特定的应用场景和生命周期进行了优化:

  • 工作记忆:“短期记忆”,用于存储当前会话的上下文信息,为确保高速访问和响应,其容量被限制(如默认50条),并且生命周期与单个会话绑定,会话结束后自动清理
  • 情景记忆:复制长期存储具体的交互事件和智能体的学习经历,它包括了丰富的上下文信息,并支持按时间序列或主题进行检索,是智能体学习和复盘的基础
  • 语言记忆:存储更为抽象的知识、概念和规则,如,通过对话了解到的用户偏好、需要长期遵守的指令或领域知识点,都适合存放在这里。这部分记忆具有高度的持久性和重要性,是智能体形成“知识体系”和进行关联推理的核心。
  • 感知记忆:该模块专门处理图像、音频等多模态信息,并支持跨模态检索。其生命周期会根据信息的重要性和可用存储空间进行动态管理。

四、RAG系统:知识检索增强

在深入了解RAG系统之前,我们先来了解了解RAG技术的基本概念、发展历程以及Helloagents的核心原理

(1)什么是RAG?

检索增强生成(Retrieval-Augmented Generation,RAG)是一种结合了信息检索和文本生成的技术。它的核心思想是:在生成回答之前,先从外部知识库中检索相关信息,然后将检索到的信息作为上下文提供给大语言模型,从而生成更准确、更可靠的回答。

因此,检索增强生成可以拆分为三个词汇。检索是指从知识库中查询相关内容;增强是将检索结果融入提示词,辅助模型生成;生成则输出兼具准确性与透明度的答案。

(2)基本工作流程

一个完整的RAG应用流程主要分为两大核心环节。在数据准备阶段,系统通过数据提取、文本分割和向量化,将外部知识构建成一个可检索的数据库。随后在应用阶段,系统会响应用户的提问,从数据库中检索相关信息,将其注入Prompt,并最终驱动大语言模型生成答案。

(3)发展历程

  • 第一阶段:朴素RAG(Naive RAG, 2020-2021)。这是RAG技术的萌芽阶段,其流程直接而简单,通常被称为“检索-读取”(Retrieve-Read)模式。检索方式:主要依赖传统的关键词匹配算法,如TF-IDF或BM25。这些方法计算词频和文档频率来评估相关性,对字面匹配效果好,但难以理解语义上的相似性。生成模式:将检索到的文档内容不加处理地直接拼接到提示词的上下文中,然后送给生成模型。

  • 第二阶段:高级RAG(Advanced RAG, 2022-2023)。随着向量数据库和文本嵌入技术的成熟,RAG进入了快速发展阶段。研究者和开发者们在“检索”和“生成”的各个环节引入了大量优化技术。检索方式:转向基于稠密嵌入(Dense Embedding)的语义检索。通过将文本转换为高维向量,模型能够理解和匹配语义上的相似性,而不仅仅是关键词。生成模式:引入了很多优化技术,例如查询重写,文档分块,重排序等。

  • 第三阶段:模块化RAG(Modular RAG, 2023-至今)。在高级RAG的基础上,现代RAG系统进一步向着模块化、自动化和智能化的方向发展。系统的各个部分被设计成可插拔、可组合的独立模块,以适应更多样化和复杂的应用场景。检索方式:如混合检索,多查询扩展,假设性文档嵌入等。生成模式:思维链推理,自我反思与修正等。

(4)Helloagents核心原理


如上图所示,展示了RAG系统的两个主要工作模式:

  • 数据处理流程:处理和存储知识文档,在这里我们采取工具Markitdown,设计思路是将传入的一切外部知识源统一转化为Markdown格式进行处理。
  • 查询与生成流程:根据查询检索相关信息并生成回答。

其他的具体细节就不介绍了,可以参考 Hello-Agent 的第八章

五、总结

这里放一个思维导图来总结第八章的知识体系

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询