AI Agent Harness Engineering 的记忆系统:短期记忆与长期记忆的实现

AI Agent Harness Engineering 的记忆系统:短期记忆与长期记忆的实现


关键词

AI Agent Harness Engineering | 短期记忆 (STM, Short-Term Memory) | 长期记忆 (LTM, Long-Term Memory) | 记忆检索机制 | 向量数据库 | LangChain Memory | 上下文窗口管理


摘要

想象一下,如果你和朋友聊天时只能记住最近说的三句话,或者学了新东西第二天就忘得一干二净——你还能完成连贯的对话、持续的学习和复杂的任务吗?这正是早期大型语言模型(LLM)面临的核心困境。为了突破这个限制,AI Agent Harness Engineering(AI Agent 工程化构建)领域中记忆系统的设计与实现成了关键技术高地。

本文将从「大脑记忆的启发」出发,用「图书馆管理员整理书架」「银行账户管理流水」这类生活化的比喻,一步步拆解 AI Agent 短期记忆与长期记忆的核心概念、技术原理、实现细节。我们会深入探讨:

  1. 为什么 AI Agent 的记忆不能简单等同于「把所有历史对话堆进去」;
  2. 短期记忆的「上下文窗口压缩」「滚动缓冲区」「总结压缩窗口」三大主流实现方法;
  3. 长期记忆的「向量嵌入生成」「相似度检索」「元数据过滤」「知识图谱增强」等核心技术;
  4. 基于 LangChain 和 FAISS 的完整短期+长期记忆系统的代码实现;
  5. 记忆系统在「个人助手」「代码解释器」「客服机器人」「自主研究助手」四个实际场景中的应用与最佳实践;
  6. 记忆系统当前的边界(如遗忘机制不完善、语义理解偏差)、未来的发展趋势(如类脑可塑性记忆、跨模态记忆、通用记忆协议)。

全文包含详细的 Mermaid 架构图、流程图、实体关系图,数学模型(如嵌入相似度公式、滚动窗口更新公式),完整的 Python 代码示例(含 LangChain 集成、FAISS 向量存储、自定义压缩算法),以及 10+ 个记忆系统调试的最佳实践 tips,适合从 AI Agent 入门开发者到资深架构师的全层级读者阅读。


1. 背景介绍

1.1 主题背景和重要性

1.1.1 早期 LLM 的「失忆困境」:从 GPT-3 到 GPT-4o 的上下文窗口进化简史

让我们先从一个简单的实验开始:假设你让 GPT-3.5-turbo 帮你写一个完整的「个人财务管理系统的需求文档」,你分 10 个步骤输入需求:

  1. 第 1 步:说清楚系统的目标用户是「大学生,生活费主要来自父母每月转账+兼职收入」;
  2. 第 2-9 步:依次补充「支持支付宝/微信账单导入」「多账户管理」「支出分类(餐饮、交通、娱乐、学习)」「月度/季度/年度报表」「预算设置与提醒」「自定义标签」「数据加密存储」「离线记账」;
  3. 第 10 步:让它把所有需求整合起来,生成一份 2000 字左右的正式需求文档。

如果你用的是免费版的 GPT-3.5-turbo(上下文窗口 4K tokens,约 3000 个汉字),输入完 10 步后,你大概率会发现:GPT-3.5-turbo 要么完全忘记了第 1 步说的「目标用户是大学生」,要么只记得最近 3-4 步的需求,把其他的都丢了——这就是早期 LLM 最致命的缺陷之一:固定且有限的上下文窗口,无法处理长文本、长对话、长任务链条

为了解决这个问题,OpenAI 等公司不断扩大上下文窗口的大小:GPT-3.5-turbo-16k 扩展到 16K tokens(约 1.2 万字),GPT-4-128k 扩展到 128K tokens(约 9.6 万字),GPT-4o 扩展到 200K tokens(约 15 万字),甚至还有专门的 1M tokens 版本。但你猜怎么着?扩大上下文窗口不仅

  1. 成本极高:假设你用 GPT-4o-1M 输入 1M tokens,输出 1M tokens,单次调用成本就高达 15 美元(约 110 元人民币)——这对于普通开发者、中小型企业来说根本无法承担;
  2. 效率极低:LLM 处理上下文窗口内的所有 tokens 时,计算复杂度是 O(n2)O(n^2)O(n2)(因为自注意力机制的注意力矩阵计算是平方级别的)——输入 1M tokens 时,单次响应时间可能要几分钟甚至几十分钟;
  3. 效果有限:即使你输入了 1M tokens,LLM 也不能保证记住所有内容——研究表明,LLM 的注意力机制存在「**中间内容遗忘效应」(Recency Bias + Primacy Bias):LLM 更容易记住对话开头和结尾的内容,对中间的内容记忆效果最差,甚至完全忽略。

这就像**不能把所有的历史对话、任务数据、学习资料「硬塞进一个超大的行李箱里——行李箱越大,越难找到你需要的东西,甚至行李箱本身也太重了,根本搬不动。

1.1.2 AI Agent 对记忆系统的刚需:从「问答机器人」到「自主行动者」

2023 年被称为「**AI Agent 元年」——ChatGPT Plugin 的推出,AutoGPT、BabyAGI、AutoGen、LangChain Agent 等自主 Agent 框架的爆发,让 AI Agent 从「只能回答问题的工具」变成了「能自主制定计划、执行行动、反思结果、持续学习的行动者」。

而自主 Agent 要完成复杂的任务,比如「帮我找一篇关于 AI Agent 记忆系统的学术论文,整理成中文综述,然后用 Python 实现一个简化版的原型系统,最后写一篇 5000 字的博客」,它需要的绝不仅仅是「记住刚刚输入的搜索关键词」——它需要:

  1. 记住整个任务的目标(综述主题、实现要求、博客要求);
  2. 记住任务的执行进度(已经搜索了哪些论文、哪些是高质量的、哪些已经整理了、代码写到哪一步了);
  3. 记住已经执行过的行动和结果(搜索了 arxiv、semanticscholar、google scholar,搜索到了 20 篇论文,其中 5 篇是高质量的,整理了其中的核心概念、技术原理);
  4. 记住已经学到的知识(从论文中学到的短期记忆实现方法、向量数据库的选择);
  5. 记住用户的偏好和习惯(用户喜欢简洁的综述、喜欢用 LangChain 做框架、喜欢用 FAISS 做向量存储)。

这些需求**仅靠扩大上下文窗口是完全无法满足的——这时候,**专门为 AI Agent 设计的「记忆系统」(Memory System)就成了 AI Agent Harness Engineering 中不可或缺的核心组件,甚至可以说是「AI Agent 的灵魂」——没有记忆系统,AI Agent 就像一个没有过去的人,无法成长,无法持续,无法完成复杂的任务。

根据 Gartner 2024 年的预测报告显示:到 2027 年,80% 的企业级 AI Agent 都会部署专门的记忆系统,部署记忆系统的 AI Agent 任务完成率将提升 40%-60%,用户满意度将提升 30%-50%。而 Memory 已经和 Planning(规划)、Tool Use(工具使用)一起,被称为 AI Agent 的「三大核心能力」。


1.2 目标读者

本文的目标读者是从 AI Agent 入门开发者到资深架构师的全层级读者

  1. 入门开发者:可以通过本文了解 AI Agent 记忆系统的基本概念、核心技术、完整代码实现,快速上手构建自己的第一个带记忆系统的 AI Agent;
  2. 中级开发者:可以通过本文深入探讨记忆系统的技术原理、边界与外延、最佳实践,优化自己已有的记忆系统;
  3. 资深架构师:可以通过本文了解记忆系统的行业发展与未来趋势、概念架构设计、通用记忆协议,设计企业级的可扩展记忆系统;
  4. AI 产品经理:可以通过本文了解记忆系统的应用场景、核心价值、用户体验优化,设计更有竞争力的 AI 产品。

1.3 核心问题或挑战

在设计和实现 AI Agent 记忆系统时,我们会面临以下六个核心问题或挑战

  1. 核心问题一: 如何平衡「记忆容量」与「记忆检索速度」?—— 记忆容量越大,检索速度越慢,LLM 处理速度也越慢;
  2. 核心问题二: 如何平衡「记忆准确性」与「记忆压缩率」?—— 记忆压缩率越高,记忆准确性越低;
  3. 核心问题三: 如何解决「中间内容遗忘效应」?—— 如何让 LLM 记住对话/任务中间的重要内容;
  4. 核心问题四: 如何设计「遗忘机制」?—— 如何让 AI Agent 像人类一样,主动遗忘不重要的内容,释放记忆空间;
  5. 核心问题五: 如何实现「跨模态记忆」?—— 如何让 AI Agent 记住文本、图像、音频、视频等多种模态的内容;
  6. 核心问题六: 如何实现「通用记忆协议」?—— 如何让不同的 AI Agent 共享记忆,协作完成任务。

本文将重点解决前三个核心问题,并对后三个核心问题做初步的探讨和展望。


2. 核心概念解析

2.1 核心概念

2.1.1 AI Agent Harness Engineering

AI Agent Harness Engineering(AI Agent 工程化构建)是一门研究如何设计、开发、部署、优化、维护、评估可落地的 AI Agent 的学科——它不是一门交叉学科,融合了自然语言处理(NLP)、机器学习(ML)、软件工程(SE)、人机交互(HCI)、知识工程(KE)等多个领域的知识。

AI Agent Harness Engineering 的核心目标是**把「实验室里的原型 AI Agent」变成「生产环境里的可落地的、可扩展的、可维护的、可评估的、安全的 AI Agent」——就像把「一辆刚从车间里出来的汽车原型」变成「一辆可以在公路上安全行驶的量产汽车」一样。

AI Agent Harness Engineering 的核心内容包括:

  1. Agent 架构设计(如 ReAct 架构、Reflection 架构、Plan-Do-Check-Act 架构);
  2. 记忆系统设计与实现(这是本文的核心内容);
  3. 规划系统设计与实现
  4. 工具使用系统设计与实现
  5. 评估系统设计与实现
  6. 安全系统设计与实现
  7. 部署系统设计与实现
  8. 维护系统设计与实现
2.1.2 AI Agent 的记忆系统

AI Agent 的记忆系统是一个专门为 AI Agent 设计的「存储、检索、压缩、遗忘、增强记忆的系统」——它就像「人类大脑的记忆系统」一样,是 AI Agent 的「知识库」「历史记录库」「学习库」。

我们可以把 AI Agent 的记忆系统比作一个智能图书馆

  1. **图书馆的「前台」是「短期记忆(STM)」——专门存放「最近借的书」「最近在读的书」「最近整理的书」,方便随时查阅;
  2. **图书馆的「书库」是「长期记忆(LTM)」——专门存放「所有的书」,按照「分类号」「作者」「书名」「关键词」「标签」「借阅记录」「摘要」等信息整理存放,方便长期保存;
  3. **图书馆的「管理员」是「记忆检索机制」——负责「把书从前台移到书库」「把书从书库找出来」「整理前台的书」「清理不重要的书」;
  4. **图书馆的「搜索引擎」是「向量嵌入生成」「相似度检索」——负责「快速找到需要的书」。
2.1.3 短期记忆(STM, Short-Term Memory)

AI Agent 的短期记忆(STM)是**专门存储「最近的对话、最近的任务、最近的行动、最近的结果的记忆系统」——它就像「人类大脑的工作记忆(Working Memory)」,或者「图书馆的前台」,或者「银行的活期存款账户」,或者「电脑的内存」。

短期记忆的核心特点是:

  1. 容量有限—— 一般来说,短期记忆的容量就是「LLM 的上下文窗口大小」,或者「比 LLM 的上下文窗口小一点」;
  2. 访问速度极快—— 因为短期记忆的内容直接放在 LLM 的上下文窗口里,LLM 可以直接访问;
  3. 存储时间短—— 如果不及时移到长期记忆里,短期记忆的内容会很快被新的内容覆盖掉;
  4. 内容重要性高—— 短期记忆的内容一般是「AI Agent 当前正在处理的内容」。

短期记忆的核心作用是:

  1. 保持对话的连贯性—— 让 AI Agent 记住「刚刚说的话」「刚刚听到的话」;
  2. 保持任务的连续性—— 让 AI Agent 记住「当前正在做的任务」「任务的进度」;
  3. 提供给长期记忆的「临时存储区」—— 把「临时的内容先存放在短期记忆里,等积累到一定程度再整理后移到长期记忆里。
2.1.4 长期记忆(LTM, Long-Term Memory)

AI Agent 的长期记忆(LTM)是专门存储「所有的对话、所有的任务、所有的行动、所有的结果、所有学到的知识的记忆系统」——它就像「人类大脑的长期记忆」,或者「图书馆的书库」,或者「银行的定期存款账户」,或者「电脑的硬盘」。

长期记忆的核心特点是:

  1. 容量几乎无限—— 只要有足够的存储空间,长期记忆可以存储「几乎无限的内容」;
  2. 访问速度相对较慢—— 因为长期记忆的内容需要「通过检索机制才能找到」,然后才能「放到 LLM 的上下文窗口里」;
  3. 存储时间长—— 只要不主动删除,长期记忆的内容可以「永久保存」;
  4. 内容重要性可调节—— 长期记忆的内容可以「通过元数据、标签、权重等信息调节重要性」。

长期记忆的核心作用是:

  1. **保存 AI Agent 的「历史记录」—— 让 AI Agent 记住「过去说过的话」「过去做过的事」「过去学到的知识」;
  2. **提供 AI Agent 的「知识库」—— 让 AI Agent 可以「利用过去的知识解决当前的问题」;
  3. **支持 AI Agent 的「持续学习」—— 让 AI Agent 可以「从过去的经验中学习」「不断优化自己的能力」。
2.1.5 记忆检索机制

AI Agent 的记忆检索机制是专门负责「把内容从短期记忆移到长期记忆」「把内容从长期记忆找出来」「整理短期记忆的内容」「清理不重要的内容」的系统——它就像「图书馆的管理员」,是记忆系统的「核心大脑」。

记忆检索机制的核心技术包括:

  1. 短期记忆更新机制(如滚动缓冲区、总结压缩窗口);
  2. 短期记忆转长期记忆机制(如定期整理、重要性过滤);
  3. 长期记忆检索机制(如向量相似度检索、关键词检索、元数据过滤、知识图谱增强);
  4. 遗忘机制(如时间衰减、重要性衰减、主动遗忘)。
2.1.6 向量嵌入(Vector Embedding)

AI Agent 的向量嵌入(Vector Embedding)是**将「文本、图像、音频、视频等非结构化数据转化为「高维空间中的向量」的技术」——它就像「图书馆的「分类号」「关键词」「摘要」的组合」,是记忆检索机制的「核心基础」。

我们可以把**高维空间想象成一个「超级巨大的三维空间」——不过这个空间不是只有 X、Y、Z 三个维度,而是有 1024、2048、4096 甚至更多的维度——在这个空间里,「语义相似的内容会靠得很近」,「语义不相似的内容会离得很远」。

举个例子:

  • 文本「苹果很好吃」的向量,会和「香蕉很好吃」的向量靠得很近;
  • 文本「苹果很好吃」的向量,会和「苹果手机很好用」的向量离得很远;
  • 文本「苹果很好吃」的向量,会和「今天天气很好」的向量离得更远。

向量嵌入的核心作用是:

  1. 将非结构化数据转化为结构化数据—— 方便计算机处理;
  2. 计算内容之间的语义相似度—— 方便快速找到语义相似的内容。
2.1.7 相似度检索(Similarity Search)

AI Agent 的相似度检索(Similarity Search)是**在「高维向量空间」中「快速找到与「查询向量」最相似的「K 个向量」的技术」——它就像「图书馆的「语义搜索引擎」」,是长期记忆检索机制的「核心技术」。

相似度检索的核心算法包括:

  1. Brute-force 搜索(暴力搜索,适合小规模数据);
  2. KNN(K-Nearest Neighbors)(K 近邻搜索);
  3. IVF(Inverted File Index)(倒排文件索引,适合中大规模数据);
  4. HNSW(Hierarchical Navigable Small Worlds)(分层导航小世界,适合超大规模数据)。

2.2 问题背景

在设计和实现 AI Agent 记忆系统之前,我们需要了解「为什么早期的 AI Agent 记忆系统没有用」——早期的 AI Agent 记忆系统主要有以下三种方法

  1. 方法一: 把所有的历史对话、任务数据、学习资料「硬塞进 LLM 的上下文窗口里」——这种方法的问题我们在 1.1.1 里已经讲过了,就是「容量有限、成本极高、效率极低、效果有限」;
  2. 方法二: 把所有的历史对话、任务数据、学习资料「存放在关系型数据库(如 MySQL、PostgreSQL)里」——然后用「关键词检索」的方法找到需要的内容——这种方法的问题是「只能找到「关键词完全匹配的内容」,无法找到「语义相似的内容」——举个例子:如果你问「苹果很好吃」,你用关键词检索「苹果」,你会找到「苹果手机很好用」,而找不到「香蕉很好吃」;
  3. 方法三: 把所有的历史对话、任务数据、学习资料「存放在文档数据库(如 MongoDB、Elasticsearch)里」——然后用「全文检索」的方法找到需要的内容——这种方法的问题是「虽然比关键词检索好一点,但还是无法准确找到「语义相似的内容」」——而且「全文检索的效果依赖于「分词技术」,对于中文来说,分词技术的效果还是不够好」。

正是因为这三种方法都有很大的问题,所以我们需要「专门为 AI Agent 设计的记忆系统」——这种记忆系统需要「结合短期记忆和长期记忆」「结合向量检索和关键词检索」「结合元数据过滤和知识图谱增强」。


2.3 问题描述

我们现在面临的具体问题描述是:

假设我们要构建一个「**个人助手 AI Agent」,它可以:

  1. 和用户进行自然语言对话;
  2. 记住用户的「个人信息」(如姓名、年龄、性别、职业、兴趣爱好);
  3. 记住用户的「历史对话」;
  4. 记住用户的「任务提醒」(如明天早上 8 点起床、明天下午 3 点开会);
  5. 记住用户的「学习笔记」(如今天学了什么、今天做了什么笔记);
  6. 可以根据用户的「当前问题」,快速找到「相关的记忆内容」,然后「结合相关的记忆内容」,给用户一个「准确、连贯、个性化的回答」。

现在的问题是:我们应该如何设计和实现这个「个人助手 AI Agent」的「记忆系统」?


2.4 问题解决

我们可以用「**短期记忆 + 长期记忆 + 记忆检索机制」的方法来解决这个问题——具体的解决方案如下:

  1. 短期记忆:我们用「滚动缓冲区 + 总结压缩窗口」的方法来实现短期记忆——滚动缓冲区用来存放「最近的 10 轮对话」,总结压缩窗口用来存放「最近的 100 轮对话的总结」;
  2. 长期记忆:我们用「向量数据库(FAISS)+ 元数据 + 标签」的方法来实现长期记忆——向量数据库用来存储「所有的历史对话、任务提醒、学习笔记的向量嵌入」,元数据用来存储「内容的类型、时间、作者、重要性」,标签用来存储「内容的主题」;
  3. 记忆检索机制:我们用「向量相似度检索 + 元数据过滤 + 时间衰减权重」的方法来实现记忆检索机制——首先用「元数据过滤」找到「类型匹配的内容」,然后用「向量相似度检索」找到「语义相似的内容」,最后用「时间衰减权重」调整「内容的重要性」,把「最重要的 K 个内容」放到 LLM 的上下文窗口里。

2.5 边界与外延

2.5.1 记忆系统的边界

AI Agent 的记忆系统不是「万能的」——它有以下五个核心边界

  1. 边界一: 记忆系统的「效果依赖于 LLM 的能力」——如果 LLM 的「语义理解能力」「推理能力」「生成能力」不好,记忆系统的效果也不会好;
  2. 边界二: 记忆系统的「效果依赖于向量嵌入的质量」——如果向量嵌入的「语义表示能力」不好,相似度检索的效果也不会好;
  3. 边界三: 记忆系统的「效果依赖于记忆检索机制的设计」——如果记忆检索机制的「设计不合理」,找到的内容就不会是「用户需要的内容」;
  4. 边界四: 记忆系统的「容量依赖于存储空间」——虽然长期记忆的容量几乎无限,但还是「存储空间是有限的」;
  5. 边界五: 记忆系统的「遗忘机制不完善」——目前的 AI Agent 记忆系统还没有「像人类一样的主动遗忘机制」,只能「用「时间衰减」「重要性衰减」的方法被动遗忘」。
2.5.2 记忆系统的外延

AI Agent 的记忆系统可以「扩展到以下五个核心方向」:

  1. 方向一: 跨模态记忆——支持「文本、图像、音频、视频等多种模态的内容」;
  2. 方向二: 类脑可塑性记忆——支持「像人类大脑一样的「突触可塑性」「记忆巩固」「记忆提取」「记忆遗忘」」;
  3. 方向三: 通用记忆协议——支持「不同的 AI Agent 共享记忆」「协作完成任务」;
  4. 方向四: 隐私保护记忆——支持「记忆的加密存储」「记忆的脱敏处理」「记忆的权限控制」;
  5. 方向五: 情感记忆——支持「记忆用户的「情感状态」「情感偏好」「情感历史」」「结合「情感记忆」给用户一个「情感化的回答」。

2.6 概念结构与核心要素组成

2.6.1 AI Agent 记忆系统的整体概念结构

AI Agent 记忆系统的整体概念结构如下图所示(Mermaid 架构图):

记忆系统(Memory System)

AI Agent 核心(Core)

用户(User)

记忆检索机制(Retrieval Mechanism)

短期记忆更新器(STM Updater)

记忆转存器(Memory Transferer)

元数据过滤器(Metadata Filter)

向量相似度检索器(Similarity Searcher)

权重调整器(Weight Adjuster)

遗忘器(Forgetting Mechanism)

长期记忆(LTM)

记忆数据库(Memory Database)

向量嵌入生成器(Embedding Generator)

元数据管理器(Metadata Manager)

标签管理器(Tag Manager)

知识图谱增强器(Knowledge Graph Enhancer)

短期记忆(STM)

滚动缓冲区(Rolling Buffer)

总结压缩窗口(Summary Compression Window)

重要性标记(Importance Tagging)

输入问题/请求/数据

接收回答/反馈

LLM 推理引擎(Inference Engine)

规划系统(Planning System)

工具使用系统(Tool Use System)

从这个架构图中,我们可以看到:

  1. 用户(User):和 AI Agent 核心(Core)、记忆检索机制(Retrieval Mechanism)进行交互;
  2. AI Agent 核心(Core):包括 LLM 推理引擎(Inference Engine)、规划系统(Planning System)、工具使用系统(Tool Use System),和记忆系统(Memory System)进行交互;
  3. 记忆系统(Memory System):包括短期记忆(STM)、长期记忆(LTM)、记忆检索机制(Retrieval Mechanism);
  4. 短期记忆(STM):包括滚动缓冲区(Rolling Buffer)、总结压缩窗口(Summary Compression Window)、重要性标记(Importance Tagging);
  5. 长期记忆(LTM):包括记忆数据库(Memory Database)、向量嵌入生成器(Embedding Generator)、元数据管理器(Metadata Manager)、标签管理器(Tag Manager)、知识图谱增强器(Knowledge Graph Enhancer);
  6. 记忆检索机制(Retrieval Mechanism):包括短期记忆更新器(STM Updater)、记忆转存器(Memory Transferer)、元数据过滤器(Metadata Filter)、向量相似度检索器(Similarity Searcher)、权重调整器(Weight Adjuster)、遗忘器(Forgetting Mechanism)。
2.6.2 短期记忆的核心要素组成

短期记忆的核心要素组成如下表所示:

核心要素核心功能核心技术类比
滚动缓冲区(Rolling Buffer)存放「最近的 N 轮对话/任务/行动/结果」先进先出(FIFO)银行的活期存款账户,最近存的钱先取出来
总结压缩窗口(Summary Compression Window)存放「最近的 M 轮对话/任务/行动/结果的总结」LLM 总结压缩算法图书馆的前台目录,只存放「最近读的书的目录」
重要性标记(Importance Tagging)标记「内容的重要性」LLM 重要性评分算法图书馆的前台书架上的「红色标签」「黄色标签」「绿色标签」
2.6.3 长期记忆的核心要素组成

长期记忆的核心要素组成如下表所示:

核心要素核心功能核心技术类比
记忆数据库(Memory Database)存储「所有的内容的向量嵌入、元数据、标签」向量数据库(FAISS、Pinecone、Weaviate、Chroma)图书馆的书库
向量嵌入生成器(Embedding Generator)将「非结构化数据转化为高维空间中的向量」预训练向量嵌入模型(OpenAI Embeddings、Hugging Face Sentence-Transformers、Cohere Embeddings)图书馆的分类员,给每本书分配分类号、关键词、摘要
元数据管理器(Metadata Manager)管理「内容的元数据」关系型数据库(MySQL、PostgreSQL)图书馆的图书管理系统,记录每本书的作者、书名、出版时间、借阅记录
标签管理器(Tag Manager)管理「内容的标签」关系型数据库(MySQL、PostgreSQL)图书馆的标签系统,给每本书贴标签
知识图谱增强器(Knowledge Graph Enhancer)增强「内容之间的关系」知识图谱数据库(Neo4j、Amazon Neptune)图书馆的知识图谱,显示「作者之间的关系」「书之间的关系」「作者和书之间的关系」

2.7 概念之间的关系

2.7.1 概念核心属性维度对比

我们从**核心属性维度对比短期记忆和长期记忆,如下表所示:

核心属性维度短期记忆(STM)长期记忆(LTM)
容量有限(LLM 上下文窗口大小左右)几乎无限(存储空间大小)
访问速度极快(直接放在 LLM 上下文窗口里)相对较慢(需要检索)
存储时间短(不及时转存会被覆盖)长(不主动删除会永久保存)
内容重要性高(当前正在处理的内容)可调节(通过元数据、标签、权重)
内容类型最近的对话、最近的任务、最近的行动、最近的结果所有的对话、所有的任务、所有的行动、所有的结果、所有学到的知识
存储方式内存(RAM)硬盘(HDD/SSD)+ 向量数据库
检索方式直接访问向量相似度检索 + 元数据过滤 + 权重调整
遗忘机制先进先出(FIFO)时间衰减 + 重要性衰减 + 主动遗忘
核心作用保持对话连贯性、保持任务连续性、提供临时存储区保存历史记录、提供知识库、支持持续学习
2.7.2 概念联系的 ER 实体关系图

我们用Mermaid ER 实体关系图来表示短期记忆、长期记忆、记忆检索机制、AI Agent 核心、用户之间的实体关系:

输入

接收

生成

处理

读写

通过检索机制读写

包含

包含

包含

包含

包含

包含

包含

包含

更新/转存

检索/转存/遗忘

接收

USER

string

user_id

PK

用户 ID

string

name

姓名

int

age

年龄

string

gender

性别

string

occupation

职业

string[]

interests

兴趣爱好

QUESTION_REQUEST_DATA

string

data_id

PK

数据 ID

string

user_id

FK

用户 ID

string

content

内容

datetime

timestamp

时间戳

string

type

类型(问题/请求/数据)

ANSWER_FEEDBACK

string

feedback_id

PK

反馈 ID

string

user_id

FK

用户 ID

string

content

内容

datetime

timestamp

时间戳

string

type

类型(回答/反馈)

int

rating

评分(1-5)

AI_AGENT_CORE

string

agent_id

PK

Agent ID

string

llm_model

LLM 模型

string

version

版本

SHORT_TERM_MEMORY

string

stm_id

PK

短期记忆 ID

string

agent_id

FK

Agent ID

string

user_id

FK

用户 ID

LONG_TERM_MEMORY

string

ltm_id

PK

长期记忆 ID

string

agent_id

FK

Agent ID

string

user_id

FK

用户 ID

ROLLING_BUFFER

string

rb_id

PK

滚动缓冲区 ID

string

stm_id

FK

短期记忆 ID

string

content

内容

datetime

timestamp

时间戳

int

importance

重要性(1-5)

int

order

顺序

SUMMARY_COMPRESSION_WINDOW

string

scw_id

PK

总结压缩窗口 ID

string

stm_id

FK

短期记忆 ID

string

content

内容

datetime

start_timestamp

开始时间戳

datetime

end_timestamp

结束时间戳

int

importance

重要性(1-5)

IMPORTANCE_TAGGING

string

it_id

PK

重要性标记 ID

string

rb_id

FK

滚动缓冲区 ID

int

importance

重要性(1-5)

string

reason

原因

MEMORY_DATABASE

string

md_id

PK

记忆数据库 ID

string

ltm_id

FK

长期记忆 ID

EMBEDDING_GENERATOR

string

eg_id

PK

向量嵌入生成器 ID

string

ltm_id

FK

长期记忆 ID

string

embedding_model

向量嵌入模型

int

embedding_dimension

向量维度

METADATA_MANAGER

string

mm_id

PK

元数据管理器 ID

string

ltm_id

FK

长期记忆 ID

TAG_MANAGER

string

tm_id

PK

标签管理器 ID

string

ltm_id

FK

长期记忆 ID

KNOWLEDGE_GRAPH_ENHANCER

string

kge_id

PK

知识图谱增强器 ID

string

ltm_id

FK

长期记忆 ID

string

kg_model

知识图谱模型

MEMORY_RETRIEVAL_MECHANISM

string

mrm_id

PK

记忆检索机制 ID

string

agent_id

FK

Agent ID

string

user_id

FK

用户 ID

从这个 ER 实体关系图中,我们可以看到:

  1. USER(用户) 输入 QUESTION_REQUEST_DATA(问题/请求/数据),接收 ANSWER_FEEDBACK(回答/反馈);
  2. AI_AGENT_CORE(AI Agent 核心) 处理 QUESTION_REQUEST_DATA(问题/请求/数据),生成 ANSWER_FEEDBACK(回答/反馈),读写 SHORT_TERM_MEMORY(短期记忆),通过 MEMORY_RETRIEVAL_MECHANISM(记忆检索机制)读写 LONG_TERM_MEMORY(长期记忆);
  3. SHORT_TERM_MEMORY(短期记忆) 包含 ROLLING_BUFFER(滚动缓冲区)、SUMMARY_COMPRESSION_WINDOW(总结压缩窗口)、IMPORTANCE_TAGGING(重要性标记);
  4. LONG_TERM_MEMORY(长期记忆) 包含 MEMORY_DATABASE(记忆数据库)、EMBEDDING_GENERATOR(向量嵌入生成器)、METADATA_MANAGER(元数据管理器)、TAG_MANAGER(标签管理器)、KNOWLEDGE_GRAPH_ENHANCER(知识图谱增强器);
  5. MEMORY_RETRIEVAL_MECHANISM(记忆检索机制) 更新/转存 SHORT_TERM_MEMORY(短期记忆),检索/转存/遗忘 LONG_TERM_MEMORY(长期记忆),接收 QUESTION_REQUEST_DATA(问题/请求/数据)。
2.7.3 概念之间的交互关系图

我们用Mermaid 序列图来表示短期记忆、长期记忆、记忆检索机制、AI Agent 核心、用户之间的交互关系:

AI Agent 核心(AAC)长期记忆(LTM)短期记忆(STM)记忆检索机制(MRM)用户(User)AI Agent 核心(AAC)长期记忆(LTM)短期记忆(STM)记忆检索机制(MRM)用户(User)alt[滚动缓冲区满了]alt[需要更新总结压缩窗口]alt[需要转存内容到长期记忆]alt[需要遗忘长期记忆的内容]1. 输入问题/请求/数据12. 输入问题/请求/数据23. 生成查询向量34. 元数据过滤45. 返回过滤后的内容56. 向量相似度检索67. 返回相似的内容78. 权重调整89. 返回最重要的 K 个内容910. 读取滚动缓冲区的内容1011. 返回滚动缓冲区的内容1112. 读取总结压缩窗口的内容1213. 返回总结压缩窗口的内容1314. 结合短期记忆 + 长期记忆 + 当前问题/请求/数据生成回答/反馈1415. 返回回答/反馈1516. 将当前问题/请求/数据 + 回答/反馈加入滚动缓冲区1617. 检查滚动缓冲区是否满了1718. 先进先出(FIFO)移除最旧的内容1819. 标记内容的重要性1920. 检查是否需要更新总结压缩窗口2021. 请求 LLM 总结压缩滚动缓冲区的内容 + 旧的总结压缩窗口的内容2122. 返回新的总结压缩内容2223. 更新总结压缩窗口的内容2324. 检查是否需要转存内容到长期记忆2425. 生成内容的向量嵌入2526. 管理内容的元数据2627. 管理内容的标签2728. 存储内容到记忆数据库2829. 检查是否需要遗忘长期记忆的内容2930. 遗忘不重要的内容30

从这个序列图中,我们可以看到AI Agent 记忆系统的完整交互流程

  1. 用户输入问题/请求/数据
  2. 记忆检索机制从长期记忆中检索相关内容
  3. AI Agent 核心从短期记忆中读取内容
  4. AI Agent 核心结合短期记忆 + 长期记忆 + 当前问题/请求/数据生成回答/反馈
  5. 记忆检索机制更新短期记忆
  6. 记忆检索机制将短期记忆的内容转存到长期记忆
  7. 记忆检索机制遗忘长期记忆的内容

3. 技术原理与实现

3.1 数学模型

3.1.1 向量嵌入相似度公式

向量嵌入相似度是长期记忆检索机制的「核心基础」——我们常用的向量嵌入相似度公式有以下三种

3.1.1.1 余弦相似度(Cosine Similarity)

余弦相似度(Cosine Similarity)是最常用的向量嵌入相似度公式——它测量的是「两个向量之间的夹角的余弦值」——余弦值的范围是「[-1, 1]」——余弦值越接近 1,表示两个向量越相似;余弦值越接近 -1,表示两个向量越不相似;余弦值越接近 0,表示两个向量无关。

余弦相似度的数学公式如下:
cos⁡(θ)=A⃗⋅B⃗∥A⃗∥∥B⃗∥ \cos(\theta) = \frac{\vec{A} \cdot \vec{B}}{\|\vec{A}\| \|\vec{B}\|} cos(θ)=A∥∥BAB
其中:

  • A⃗=(a1,a2,...,an)\vec{A} = (a_1, a_2, ..., a_n)A=(a1,a2,...,an):第一个向量;
  • B⃗=(b1,b2,...,bn)\vec{B} = (b_1, b_2, ..., b_n)B=(b1,b2,...,bn):第二个向量;
  • A⃗⋅B⃗=∑i=1naibi\vec{A} \cdot \vec{B} = \sum_{i=1}^{n} a_i b_iAB=i=1naibi:两个向量的点积;
  • ∥A⃗∥=∑i=1nai2\|\vec{A}\| = \sqrt{\sum_{i=1}^{n} a_i^2}A=i=1nai2:第一个向量的欧几里得范数(长度);
  • $\
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议题。 标题 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...
内容概要:本文系统研究了移相控制全桥LLC谐振变换器的工作特性,深入分析其在不同工作模式下的运行机理性能表现,重点探讨了软开关实现、高效率能量转换及宽范围电压调节等关键技术优势。通过Simulink搭建精确的仿真模型,对谐振腔参数、开关频率、电压增益、系统效率等关键指标进行仿真分析,验证了理论设计的正确性。同时,详细研究了移相控制策略对系统动态响应、稳定性和轻载/重载工况适应性的影响,揭示了控制参数电路参数之间的耦合关系,为高频高效电源设计提供了理论依据和实践指导。; 适合人群:具备电力电子技术、模拟电路及自动控制理论基础,从事开关电源、新能源变换器、电动汽车充电模块或高频电源系统研发的工程师及高校研究生。; 使用场景及目标:①掌握全桥LLC谐振变换器的拓扑结构、工作原理关键参数设计方法;②理解移相控制在实现零电压开通(ZVS)和零电流关断(ZCS)中的作用机制;③通过Simulink仿真掌握变换器建模、参数优化性能评估流程,服务于实际产品开发学术课题研究。; 阅读建议:建议读者结合提供的Simulink仿真模型进行同步操作,重点关注谐振网络(Lr, Lm, Cr)参数移相角之间的匹配设计,深入理解软开关条件的形成过程,并通过调整负载和输入电压进行多工况仿真,以全面掌握系统动态特性。
一、项目概述 本项目设计并实现了一个基于STM32F103C8T6微控制器的温湿度监测报警系统。系统通过DHT11传感器实时采集环境温湿度数据,当数据超过预设阈值时,蜂鸣器发出声音报警,同时通过4位数码管实时显示当前温湿度值。整个系统采用Type-C接口供电,支持USB串口通信,便于数据调试传输。 二、硬件组成 1. 主控模块:STM32F103C8T6最小系统(含晶振、复位、BOOT电路、去耦电容)。 2. 传感器模块:DHT11温湿度传感器(单总线通信)。 3. 报警模块:有源蜂鸣器(三极管驱动)。 4. 显示模块:4位共阴数码管(TM1637驱动)。 5. 通信模块:CH340N USB转串口芯片(Type-C接口)。 6. 电源模块:AMS1117-3.3稳压电路(5V转3.3V)。 7. 调试接口:SWD调试排针(SWDIO/SWCLK)。 三、开发流程 1. 原理图设计:使用嘉立创EDA绘制完整原理图,包含各功能模块。 2. PCB设计:进行PCB布局布线,注重电源完整性、信号隔离及晶振走线。 3. 制板焊接:嘉立创打样,手工焊接元器件。 4. 软件开发:STM32CubeMX配置工程,编写DHT11驱动、TM1637显示、串口通信及报警逻辑。 5. 调试测试:通过SWD下载程序,串口输出数据,测试温湿度采集报警功能。 四、项目特点 - 完整的嵌入式系统开发流程(硬件设计→制板→软件编程→调试)。 - 多传感器数据融合实时显示。 - 低功耗设计,支持USB供电串口通信。 - 模块化设计,便于功能扩展(如添加WiFi模块、数据存储等)。 五、应用前景 适用于家庭环境监测、农业大棚、仓库温湿度监控等场景
内容概要:本文提出了一种基于TOGI-SOGI混合积分器的光储并网谐波自适应抑制方法,并通过Simulink实现完整仿真验证。该方法融合三重二阶广义积分器(TOGI)标准二阶广义积分器(SOGI),能够精确提取电网电压中的基波正序分量,有效分离并抑制高次谐波成分,尤其在电网电压畸变条件下显著提升了并网逆变器的控制精度电能质量。文中详细阐述了混合积分器的结构设计、谐波检测机制、自适应调节策略及其在锁相环(PLL)中的集成应用,并通过构建光储并网系统模型进行多工况仿真,结果表明该方法具备优良的动态响应特性、强鲁棒性及谐波抑制能力。; 适合人群:具备电力电子、新能源发电、自动控制等相关专业背景,熟悉Simulink仿真环境,从事光伏并网控制、电能质量治理、微电网运行控制等领域研究的科研人员、工程技术人员及研究生。; 使用场景及目标:①应用于电网存在谐波污染的光伏发电并网场景,提升逆变器在非理想电网下的运行稳定性;②为基于广义积分器的先进锁相技术谐波补偿策略提供理论支持实现范例;③服务于高校科研项目复现、学位论文研究、电力电子控制器原型开发及学术成果验证。; 阅读建议:建议学习者结合提供的Simulink模型深入剖析TOGI-SOGI的内部信号流向参数整定逻辑,重点关注谐波分量的解耦过程自适应控制模块的实现机制,可通过设置不同谐波含量、频率偏移等扰动工况进行对比测试,以全面掌握其在复杂电网环境下的适应性优越性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值