摘要#
记忆是智能体(Agent)区别于传统大语言模型调用方式的重要能力之一。没有记忆的智能体,每一次交互都只能依赖当前输入的信息,无法理解上下文、记住用户偏好,更无法完成跨轮对话、多步骤任务或长期协作。而随着 LangGraph、Memory、RAG 等技术的发展,现代 Agent 已经逐渐具备了类似人类的记忆能力,能够保存历史对话、积累长期知识,并根据不同任务动态检索和更新记忆,从而实现更加智能、个性化的交互体验。因此,如何设计和管理智能体的记忆系统,已经成为构建 AI Agent 的核心技术之一。
本章围绕 Agent 的记忆机制展开,系统介绍短期记忆与长期记忆的设计思想、实现方法以及工程实践。首先介绍 Agent 中记忆系统的整体架构,帮助读者理解短期记忆、长期记忆以及外部知识库之间的关系;随后结合 LangGraph,讲解短期记忆的持久化、状态管理以及多轮对话中的上下文维护方法,并进一步构建具有短期记忆能力的 RAG Agent,使智能体不仅能够检索外部知识,还能够结合历史对话进行推理。在长期记忆部分,本章将介绍长期记忆的存储、更新、检索与遗忘机制,并结合 pgvector 完成向量数据库的安装与配置,实现基于语义相似度的长期记忆检索能力。
在完成记忆系统的基础能力之后,本章进一步以实际项目为主线,从零构建一个具备完整记忆能力的 Mini ChatGPT 助手。读者将学习如何组织项目结构、管理会话状态、集成长期记忆、实现知识检索以及完成完整的聊天流程,并进一步基于 LangGraph 构建具有状态管理能力的智能助手。最后,本章还将介绍 LangChain 提供的 create_agent 工厂函数,演示如何利用官方框架快速搭建具备工具调用、记忆管理和推理能力的 Agent。通过本章学习,读者不仅能够深入理解 Agent 记忆系统的设计原理,还能够掌握构建具备长期学习能力和连续对话能力智能助手的完整开发流程,为后续构建更加复杂的 AI Agent 系统奠定坚实基础。
本章内容
5.1 Agent 记忆机制概览
记忆机制是一个让 Agent 能够记住历史交互信息的系统。具体来说,我们希望它能够做到三件事情:① 记住之前的对话内容;② 从用户的反馈中学习;③ 根据用户的偏好调整自身的行为。虽然这三件事听起来好像很简单也很自然,但对于一个实用的 AI …
阅读全文5.2 短期记忆持久化与使用
LangGraph 没有为短期记忆单独设计一套存储系统,而是直接复用了我们在第4.9节中介绍过的状态机制(State)。Agent 在一次对话中需要记住的所有内容——包括对话历史、用户上传的文件、检索到的文档片段、中间生成的结果——都可以作 …
阅读全文5.3 短期记忆管理
理解了短期记忆的底层机制之后,还有一个工程问题不得不面对,那就是对话历史会无限增长但模型的上下文窗口是有限的,这也是我们在第5.2节末尾所提及的问题,也是在实际业务场景中最容易出现的问题。
阅读全文5.4 拥有短期记忆的 RAG Agent
在上一节内容中详细介绍了短期记忆管理的3种方式,删除、修剪和总结。在本节内容中,我们将基于第4.10节的内容实现一个类似 ChatGPT 的 RAG 问答工具,做到每次回答完用户问题后都判断是否需要对历史消息进行一次总结,并同步将会话消息实 …
阅读全文5.5 长期记忆管理与持久化
在前面几节内容中我们介绍了短期记忆的底层机制以及消息列表的管理策略。从本节开始,我们将把目光转向长期记忆——它解决的是一个短期记忆根本无法触及的问题——如何让 Agent 在不同的对话会话之间也能记住用户。为了能更加深刻地理解长期记忆,下面 …
阅读全文5.6 从零实现 Mini ChatGPT 助手
在上一节内容中,我们详细介绍了长期记忆的模式、管理和持久化,为了能够更加清晰地理解记忆的运行机制,接下来将会详细介绍如何基于本地持久化的长期记忆来从零构建一个类似 ChatGPT 一样具有用户隔离以及记忆功能的个人助手。
阅读全文5.7 pgvector 配置安装
在前面章节关于 RAG 的实现中,我们已经采用了 Milvus 作为向量数据库,用于承载知识库文档的向量化存储与语义检索。而在本节中转向 pgvector,并不意味着前面的技术路线发生变化,而是因为当前讨论的重点已经从外部知识检索转向了 …
阅读全文5.8 长期记忆检索与遗忘
在前面的内容中,我们已经完成了长期记忆的持久化存储,但如果一个系统只是不断累积记忆,却无法在需要时准确找回,也无法在信息过时后及时清理,那么这些记忆最终就会从系统资产变成系统负担。本节内容将系统介绍长期记忆的检索方式、过期机制以及自定义遗忘 …
阅读全文5.9 基于 LangGraph 的Mini ChatGPT 助手
在第5.6节内容中,我们详细介绍了如何基于本地持久化的长期记忆来从零实现一个类似 ChatGPT 的个人助手。不过,从工程实现角度看,第5.6节中的版本更多是手工维护流程:短期记忆需要由程序员自己维护,长期记忆则保存在本地 JSON 文件中 …
阅读全文5.10 使用 create_agent 搭建 Mini ChatGPT
在第4.10节内容中我们详细介绍了 ReAct 框架的原理并且知道了 LangChain 中 `create_agent` 函数背后的实现机制就是基于的 ReAct 范式。同时,在第5.6节和第5.9节我们也分别介绍了如何从零实现 …
阅读全文