当前位置: 首页 > article >正文

AI Agent的记忆系统架构2026:四种记忆类型与工程实现完全指南

摘要记忆系统是AI Agent实现持续学习和个性化服务的核心基础设施。本文系统梳理Agent记忆的四大类型——感官记忆、短期记忆、长期记忆与情节记忆并提供完整的工程实现方案。## 一、为什么Agent需要记忆系统大语言模型本质上是无状态的每次推理相互独立无法感知上下文历史。这使得复杂的多轮任务、个性化交互以及跨会话的经验积累成为难题。记忆系统的引入让Agent能够-跨轮次保持上下文避免重复询问已知信息-积累领域经验将成功/失败的工具调用结果保存为可复用知识-实现个性化记住用户偏好、历史决策和工作习惯-支持长程任务将数小时或数天的任务拆解成可恢复的子步骤## 二、四种记忆类型详解### 2.1 感官记忆Sensory Memory定义原始输入的即时缓冲保留时间极短单次推理内。工程实现pythonclass SensoryBuffer: 原始输入预处理与临时存储 def __init__(self, max_tokens: int 2048): self.buffer [] self.max_tokens max_tokens def ingest(self, inputs: list[dict]) - list[dict]: 过滤并截断输入到允许长度 filtered [i for i in inputs if i.get(relevance_score, 1.0) 0.3] return self._truncate_to_token_limit(filtered)适用场景多模态输入预处理、噪声过滤、输入压缩。### 2.2 短期记忆Short-Term / Working Memory定义当前任务的活跃上下文对应LLM的上下文窗口Context Window。工程实现pythonfrom collections import dequefrom typing import Optionalimport tiktokenclass WorkingMemory: def __init__(self, model: str gpt-4o, max_tokens: int 16000): self.messages: deque deque() self.encoder tiktoken.encoding_for_model(model) self.max_tokens max_tokens def add(self, role: str, content: str): self.messages.append({role: role, content: content}) self._evict_oldest() def _count_tokens(self, messages) - int: return sum(len(self.encoder.encode(m[content])) for m in messages) def _evict_oldest(self): while self._count_tokens(list(self.messages)) self.max_tokens: self.messages.popleft() def get_context(self) - list[dict]: return list(self.messages)关键挑战上下文窗口的LRU淘汰策略、重要消息的钉住pinning机制。### 2.3 长期记忆Long-Term Memory定义跨会话持久化的知识存储通常基于向量数据库实现语义检索。工程实现pythonfrom qdrant_client import QdrantClientfrom qdrant_client.models import Distance, VectorParams, PointStructimport uuidclass LongTermMemory: def __init__(self, collection: str agent_memory): self.client QdrantClient(urlhttp://localhost:6333) self.collection collection self._ensure_collection() def _ensure_collection(self): existing [c.name for c in self.client.get_collections().collections] if self.collection not in existing: self.client.create_collection( collection_nameself.collection, vectors_configVectorParams(size1536, distanceDistance.COSINE) ) def store(self, content: str, embedding: list[float], metadata: dict {}): self.client.upsert( collection_nameself.collection, points[PointStruct( idstr(uuid.uuid4()), vectorembedding, payload{content: content, **metadata} )] ) def recall(self, query_embedding: list[float], top_k: int 5) - list[dict]: results self.client.search( collection_nameself.collection, query_vectorquery_embedding, limittop_k ) return [{content: r.payload[content], score: r.score} for r in results]最佳实践- 使用元数据过滤时间范围、话题标签缩小召回范围- 存储时对内容分块避免超长文档噪声- 定期做记忆整合Memory Consolidation合并相似条目### 2.4 情节记忆Episodic Memory定义以完整事件或任务为单位的记忆保存做了什么、结果如何的完整轨迹。工程实现pythonimport jsonfrom datetime import datetimefrom pathlib import Pathclass EpisodicMemory: def __init__(self, storage_dir: str ./episodic_memory): self.storage_dir Path(storage_dir) self.storage_dir.mkdir(exist_okTrue) def record_episode(self, task: str, steps: list[dict], outcome: str, success: bool): episode { task: task, steps: steps, outcome: outcome, success: success, timestamp: datetime.now().isoformat(), duration_seconds: sum(s.get(duration, 0) for s in steps) } episode_id f{datetime.now().strftime(%Y%m%d_%H%M%S)}_{task[:20]} with open(self.storage_dir / f{episode_id}.json, w, encodingutf-8) as f: json.dump(episode, f, ensure_asciiFalse, indent2) def get_similar_episodes(self, task: str, limit: int 3) - list[dict]: 简单关键词匹配生产环境建议用向量检索 episodes [] for f in sorted(self.storage_dir.glob(*.json), reverseTrue)[:50]: ep json.loads(f.read_text(encodingutf-8)) if any(kw in ep[task] for kw in task.split()[:5]): episodes.append(ep) if len(episodes) limit: break return episodes## 三、四种记忆的集成架构用户输入 │ ▼[感官记忆] ──→ 过滤 压缩 ──→ [短期记忆/上下文窗口] │ ┌────────────┼────────────┐ ▼ ▼ ▼ [长期记忆检索] [情节记忆检索] [工具调用] │ │ │ └────────────┴────────────┘ │ 组合上下文 │ LLM推理 │ ┌─────────┴─────────┐ ▼ ▼ [回答用户] [更新记忆存储]## 四、生产环境关键考量### 4.1 记忆隔离不同用户的记忆必须严格隔离推荐以user_id作为向量数据库的 namespace 或 collection 前缀。### 4.2 记忆遗忘策略无限增长的记忆会降低检索质量。可实现基于访问频率的 TTL 机制pythondef decay_memories(self, days_threshold: int 90): 删除90天未访问的低相关记忆 cutoff datetime.now().timestamp() - days_threshold * 86400 self.client.delete( collection_nameself.collection, points_selectorFilter( must[FieldCondition( keylast_accessed, rangeRange(ltcutoff) )] ) )### 4.3 记忆一致性当长期记忆与短期记忆中存在矛盾信息时优先以短期记忆更新信息为准并触发长期记忆更新。## 五、总结| 记忆类型 | 持续时间 | 容量 | 访问速度 | 技术实现 ||---------|---------|------|---------|---------|| 感官记忆 | 单次推理 | 小 | 极快 | 内存缓冲 || 短期记忆 | 单次会话 | 中 | 快 | Context Window || 长期记忆 | 永久 | 大 | 中 | 向量数据库 || 情节记忆 | 永久 | 中 | 中 | 结构化JSON向量 |构建完善的Agent记忆系统是让AI从单次问答进化为持续成长的智能助手的关键工程投入。建议从短期记忆的上下文管理开始逐步引入长期记忆最终形成完整的四层记忆架构。

相关文章:

AI Agent的记忆系统架构2026:四种记忆类型与工程实现完全指南

摘要 记忆系统是AI Agent实现持续学习和个性化服务的核心基础设施。本文系统梳理Agent记忆的四大类型——感官记忆、短期记忆、长期记忆与情节记忆,并提供完整的工程实现方案。## 一、为什么Agent需要记忆系统大语言模型本质上是无状态的:每次推理相互独…...

猫抓Cat-Catch终极指南:5分钟掌握浏览器资源嗅探与视频下载

猫抓Cat-Catch终极指南:5分钟掌握浏览器资源嗅探与视频下载 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓Cat-Catch是一款完全免…...

OnmyojiAutoScript:阴阳师自动化脚本终极指南,20+任务智能托管解放双手

OnmyojiAutoScript:阴阳师自动化脚本终极指南,20任务智能托管解放双手 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师中重复繁琐的日常任务…...

3分钟掌握ncmdump:让你的网易云音乐在任意设备自由播放

3分钟掌握ncmdump:让你的网易云音乐在任意设备自由播放 【免费下载链接】ncmdump ncmdump - 网易云音乐NCM转换 项目地址: https://gitcode.com/gh_mirrors/ncmdu/ncmdump 你是否曾有过这样的体验?在网易云音乐下载了心爱的歌曲,准备在…...

Python移除GIL对多核性能与能耗的影响分析

1. Python GIL移除对硬件使用与能耗的影响解析在Python 3.13版本中,一个重大变革悄然发生——开发者可以通过实验性构建选项移除全局解释器锁(GIL)。这个改变可能重塑Python在多核时代的性能格局。作为长期从事高性能计算的开发者&#xff0c…...

g2810,g3810,g1800,g2800,g3800,g4800,TS3340,X6800,iB4180报错5B00,P07,E08,1700,5b04废墨垫清零,亲测有用。

下载:点这里下载 备用下载:https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下: G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...

别再死记硬背I2C时序了!用Verilog手搓一个I2C Master控制器(FPGA/数字IC验证适用)

用Verilog实现I2C Master控制器的工程实践 在数字电路设计中,I2C总线因其简洁的两线制结构和灵活的多设备连接能力,成为芯片间通信的主流选择之一。但对于许多刚接触RTL设计的工程师来说,从协议理解到实际代码实现之间往往存在一道难以跨越的…...

3分钟实现B站视频转文字:bili2text技术架构与实现原理深度解析

3分钟实现B站视频转文字:bili2text技术架构与实现原理深度解析 【免费下载链接】bili2text Bilibili视频转文字,一步到位,输入链接即可使用 项目地址: https://gitcode.com/gh_mirrors/bi/bili2text B站视频转文字工具bili2text是一个…...

Agent 下一步:不只是会回答,而是能在沙箱里把任务做完

过去谈 AI Agent,很多讨论集中在“模型有多聪明”。它能不能拆任务,能不能调用工具,能不能自己规划步骤,似乎只要推理能力继续提升,Agent 就会自然变成数字员工。但真正进入工作现场后,问题很快从“会不会想…...

终极Windows清理指南:如何用Windows Cleaner一键解决C盘爆红问题

终极Windows清理指南:如何用Windows Cleaner一键解决C盘爆红问题 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你的电脑是否经常提示"磁盘空间…...

构建模块化技能编排系统:Prime-Weaver架构设计与工程实践

1. 项目概述与核心价值最近在梳理个人技能栈和项目经验时,我重新审视了一个名为“prime-weaver-skill”的仓库。这个项目名称听起来有点抽象,但它的核心思想非常明确:构建一个能够将多种基础能力(Prime)高效编织&#…...

Azure Logic Apps与Key Vault的自动化密码管理

在当今的云计算环境中,安全性和自动化是至关重要的两个方面。Azure提供了许多工具和服务来帮助企业实现这些目标,其中Azure Logic Apps和Azure Key Vault就是其中两项强大的服务。本文将探讨如何结合使用Azure Logic Apps和Azure Key Vault来实现自动化密码管理,特别是在处理…...

WeDot引擎:开源游戏引擎架构解析与开发实践指南

1. 项目概述与核心定位如果你是一名游戏开发者,尤其是对Unity或Godot这类主流引擎的某些方面感到“意难平”,或者你正渴望一个更纯粹、更专注于游戏创作本身的开发环境,那么WeDot引擎的出现,或许能给你带来一些新的启发。WeDot是一…...

TypeScript类型转换的优化之道

引言 在TypeScript中,我们经常需要将一种类型转换为另一种类型。尤其是当我们面对大量类型映射时,性能优化变得尤为重要。本文将探讨如何通过TypeScript的类型系统来优化类型转换,避免使用性能低下的条件类型或函数重载。 问题描述 假设我们有以下类型映射: type Kitte…...

Python 内存管理

1. Python 对象底层结构 What(是什么) Python 是用 C 语言写的。你在 Python 里创建的每一个对象(数字、字符串、列表……),底层都是一个 C 语言的结构体(struct),里面维护着一些关键信息。 就像一个快递包裹,外表看起来是你的东西,但快递公司会在包裹外面贴一张快…...

如何在 VSCode 中安全地管理 Git 仓库

引言 在使用 Visual Studio Code (VSCode) 进行开发时,管理 Git 仓库是一个常见的需求,特别是当你通过远程连接到服务器或使用 Docker 容器时。如何避免无意中更改并推送别人的代码是一个新手容易遇到的问题。本文将详细介绍如何在 VSCode 中正确管理 Git 仓库,并通过实例展…...

G-Helper终极配置手册:20个实战问题与优化解决方案深度解析

G-Helper终极配置手册:20个实战问题与优化解决方案深度解析 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenboo…...

使用OpenClaw Agent工具时如何配置Taotoken作为其模型供应商

使用OpenClaw Agent工具时如何配置Taotoken作为其模型供应商 1. 准备工作 在开始配置之前,请确保已安装OpenClaw Agent工具并拥有有效的Taotoken API Key。API Key可在Taotoken控制台的「API密钥管理」页面创建。同时建议在模型广场查看当前支持的模型ID列表&…...

Taotoken的按token计费模式让实验性项目成本可预测

Taotoken的按token计费模式让实验性项目成本可预测 对于研究者和创新项目团队而言,项目初期的探索阶段充满了不确定性。无论是算法模型的快速迭代,还是产品原型的反复验证,大模型API的调用量往往难以预估,呈现出剧烈的波动。传统…...

JetBrains IDE试用期重置终极指南:2026年开源解决方案详解

JetBrains IDE试用期重置终极指南:2026年开源解决方案详解 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在项目开发的关键时刻,突然被JetBrains IDE弹出的试用期结束提示打断思…...

第十九篇:《视觉回归测试:让UI自动化检测样式异常》

传统的UI自动化测试主要验证功能正确性(元素是否存在、能否点击),但无法发现样式问题:字体变大了、颜色错了、布局错位、元素重叠等。视觉回归测试通过截图对比,能够精准捕获这些视觉上的“回归”。本文将介绍视觉回归…...

观测ubuntu服务器调用taotoken api的延迟与token消耗情况

观测 Ubuntu 服务器调用 Taotoken API 的延迟与 Token 消耗情况 在将大模型能力集成到生产环境时,开发者不仅关注功能的实现,更关心服务的稳定性和成本的可控性。对于在 Ubuntu 服务器上部署的应用,通过 Taotoken 平台统一接入多家模型后&am…...

解锁Windows 10的Android生态:WSA-Windows-10移植项目完全指南

解锁Windows 10的Android生态:WSA-Windows-10移植项目完全指南 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 想在Windows 10上无缝运…...

基于MCP协议实现AI助手与Amazing Marvin任务管理系统的无缝集成

1. 项目概述:当AI助手遇见你的任务清单 如果你和我一样,既是Amazing Marvin的深度用户,又习惯了在Claude、Cursor这类AI助手的聊天窗口里解决大部分问题,那你肯定也经历过这种“割裂感”:想问问AI“我今天该先做什么”…...

AI+水文水资源实战:攻克非平稳序列预测、CMIP6降尺度、SWAT/EFDC/VIC模型自动化率定、启发式强化学习多目标优化(NSGA/MOEA/D)难关

您是否遇到过以下场景:拿到一个水文时间序列,不知道怎么自动检测异常值、估计P-III曲线参数、计算重现期?想用随机森林、XGBoost、LSTM甚至图神经网络做预测,但调参、过拟合、可解释性问题让您望而却步?跑SWAT/EFDC/De…...

自动化生产线和传统生产线到底差在哪?工厂选型看完不纠结

很多制造工厂在产线升级时,都会纠结一个核心问题,到底该继续沿用传统生产线,还是直接换成自动化生产线。不少老板只听别人说自动化更好,就盲目投入改造,也有的担心投入太高、不好上手,一直守着老产线勉强生…...

矢量网络分析仪维修全攻略:常见故障与排查方法科普

矢量网络分析仪(简称矢网)是射频微波领域核心测试仪器,广泛应用于通信、雷达、电子研发等行业,用于测量网络散射参数(S参数)。作为精密仪器,其长期高负荷运行、环境影响或操作不当易出现故障,影响测试精度与进度。矢网核心由射频前…...

从代码片段到上下文理解:构建自动化代码分析工具的设计与实践

1. 项目概述:从代码片段到上下文理解的桥梁最近在和一些团队做代码审查和知识库梳理时,我反复遇到一个痛点:面对一个孤零零的函数或者类文件,即使代码写得再漂亮,也常常需要花费大量时间去追溯它的调用链路、依赖关系&…...

AI驱动的认知行为疗法实践:用cbt-llm-kit构建结构化情绪管理工具

1. 项目概述:当AI助手成为你的认知行为疗法伙伴如果你和我一样,对AI助手的印象还停留在写代码、改文档或者生成一些营销文案,那么cbt-llm-kit这个项目可能会彻底改变你的看法。它本质上是一个“认知行为疗法工具包”,但别被这个专…...

提示词工程day2-day4

提示词工程 Day2 进阶写法(核心 5 点)强制固定输出格式可指定模型按:分点列表、表格、JSON、步骤式、只给结论、不加废话 输出。常用指令:请分点作答请用表格整理只给最终结果,不要多余解释链式思维:让模型…...