登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
【Agent】MemOS 源码笔记---(5)---记忆分类
【Agent】MemOS 源码笔记---(5)---记忆分类
[ 复制链接 ]
能杜孱
昨天 22:25
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
【Agent】MemOS 源码笔记---(5)---记忆分类
目录
【Agent】MemOS 源码笔记---(5)---记忆分类
0x00 摘要
0x01 记忆分类
1.1 业界分类
1.1.1 整体图表
1.1.2 梳理
1.2 MemOS
0x02 MemOS分类解析
2.1 维度定义
2.1.1 按「物理形态 + 生命周期」划分
2.1.2 按「存储归属 + 访问优先级」划分
2.2 核心关系解析
2.2.1. 不存在直接包含关系
2.2.2. 关键映射关系
0x03 MemOS的具体实现
3.1 基本概念
3.1.1. 记忆类型 (memory_type)
3.1.2. 记忆状态 (status)
3.1.3. 记忆类型 (type)
3.1.4 问题
3.2 记忆生成
3.2.1 记忆提取阶段
3.2.2 内存类型判断的标准
3.2.3 判断依据总结
3.2.4 代码流程
实际转换流程总结
创建和初始存储
定期清理与维护机制
搜索时的数据交互
图结构重组过程中的记忆优化
用户控制方式
总结
0x04 MemOS 记忆生命周期管理
4.1 生命周期阶段简介
4.2 案例:在线教育助手的记忆生命周期
4.3 自己的理解
4.4 MemScheduler
0xFF 参考
0x00 摘要
大模型之所以“忘事”,根本在于我们对“无状态模型”里“上下文窗口”的误解。很多人把它当成一只大箩筐,认为装得越多越好;然而,事实上,上下文窗口更像一块容量有限的工作记忆。硬塞太多信息,只会同时带来如下麻烦:关键内容被噪声淹没,模型抓不住重点,上下文越长,费用和延迟也越高。
这不是模型偷懒,而是 Transformer 架构的先天特性。每一次调用都像重新开机:没有长期记忆,上下文一旦过长,注意力就被冗余信息扯散,于是出现遗忘、跑题、速度下降。
为了补上这块短板,人们在记忆上大动手脚。
虽然前文简略介绍了MemOS的记忆类型,但是并未深入,本文以官方文档为基础进行解读,目的是了解MemOS的记忆分类,以及其生命周期。
0x01 记忆分类
1.1 业界分类
为了更好的分析,我们先来看看业界如何对记忆进行分类。
在当前(截至 2025 年)主流的智能体(Agent)系统和记忆架构研究与实践中,存在多种分类方式,这些分类借鉴自认知科学,并被 AI Agent 架构不同程度地采纳。
1.1.1 整体图表
先给出整体图表。
Memory 类型特点存储形式典型用途
工作记忆(Working)
任务级、临时、结构化内存中的字典 / 对象正在执行的工具调用参数、任务状态
短期记忆(Short-term Memory)
容量小、时效短、上下文相关内存中的缓存 / 列表当前对话、任务执行中的临时状态
长期记忆(Long-term Memory)
持久存储、可检索、结构化/非结构化结构化数据库 / 向量库 / 知识库用户历史、知识库、经验沉淀
情景记忆(Episodic Memory)
记录特定事件(时间+地点+内容)和对话轨迹向量数据库 / 知识库回忆“上次用户说...”
语义记忆(Semantic Memory)
抽象知识(事实、概念、规则),即从多次交互中提炼稳定事实向量数据库 / 知识库“巴黎是法国首都”
程序性记忆(Procedural Memory)
如何做某事(技能、流程)结构化数据库 / 向量库调用工具链、执行计划
偏好/用户画像记忆/个性化记忆(Preference/User Profile Memory)
用户兴趣、习惯、风格偏好结构化数据库 / 向量库个性化推荐、语气调整
1.1.2 梳理
以下分类属于笔者自己的理解,不一定正确,仅供大家参考。主要是 “感知 - 短期 - 长期” 三级时效分层体系,各层级功能与特性相对可以明确区分:
感知记忆(环境感知记忆):最瞬时的记忆形态,仅存储当下环境中的即时数据(如视觉、声音信息),无长期复用价值,仅在当前瞬间有效,需通过转化机制进入更高层级记忆才能长期保留。
短期记忆(对应 Agent 的 Session 级别数据管理),此处有两种非常类似的说法,可以混用。可能工作记忆更强调当前会话,短期记忆强调短期的对话记录。
工作记忆(Working Memory):用来处理当前会话与任务的上下文,包括当前目标、正在执行的子任务等。核心作用是保障上下文连续性与即时响应能力。容量有限,但读写频繁、延迟极低。
有的方案中,工作记忆也包括最近几轮对话
。
短期记忆:与特定会话或任务线程强绑定,即常见的 “历史对话记录”,是 LLM 推理 API 的核心基础参数,核心作用是维持单一会话内的交互连贯性。
长期记忆:不依赖特定会话,可跨场景复用,包括两种分类方法:
分类1(从用户角度出发)
情景记忆(Episodic Memory):负责存储用户和Agent的具体交互事件。记录过往事件与行动历程,区别于孤立事实,更侧重 “经历” 的完整留存,帮助 Agent 回忆任务执行的具体过程与场景;
陈述性记忆(Declarative Memory,“是什么),此处也有两种类似的说法:
语义记忆(Semantic Memory”):通过层级结构归纳用户长期信息。聚焦事实与概念的存储,如交互中积累的特定信息、概念间的关联关系,是实现个性化服务的关键(如记住用户的偏好事实);
陈述性记忆:此分类和语义记忆很类似,属于将语义记忆扩大化。即, 陈述性记忆是关于事实和事件的知识 。它回答的是各种“是什么”的问题 — 无论是世界知识还是用户的具体信息。比如用户的姓名、喜欢的美食,曾遭遇过的事件等,都属于陈述性记忆 。
程序性记忆(Procedural Memory,“怎么做”):存储执行任务的规则、方法与流程,由模型权重、智能体代码、提示词策略等共同构成,相当于 Agent 的 “内在方法论”,指导其如何完成具体任务(类似人类骑自行车的技能记忆)。
个性化记忆:形成关于用户的持续画像。通过会话内容摘要等方式提取的用户画像信息,包括用户偏好、行为习惯、身份特征等,支撑长期交互中的个性化服务。
分类2(从实际应用功能出发):
检索记忆:通过 RAG 技术对接外部知识库,核心价值是补充模型原生知识,同时减少内部知识冲突,提升信息获取的精准性与时效性。
通用记忆:通过预训练或后续微调沉淀的基础通用知识,构成 Agent 的核心认知底座,支撑各类基础任务的理解与执行。
规则记忆:以强化学习(RL)、提示词(Prompt)等方式固化的行为规范,用于约束 Agent 输出格式(如 JSON、CoT 链式推理)与行为边界,确保响应的一致性与合规性。
个性化记忆:通过会话内容摘要等方式提取的用户画像信息,包括用户偏好、行为习惯、身份特征等,支撑长期交互中的个性化服务。
1.2 MemOS
MemOS对记忆有两种分类:
第一种是分成三个子类:
结构化记忆(明文记忆):尝试基于图的分层知识 TreeTextMemory,是结构化、层次化和知识图谱。图与向量后端会连接 Neo4j 或 Qdrant 实现生产级向量/图搜索。适合常青技能和稳定的领域专业知识。
激活记忆:运行时的 KV 缓存和隐藏状态(高效率),使用 KVCacheMemory (最近或稳定的上下文)加速多轮对话,高效的运行时状态缓存。适合对话中的快速重用、多轮会话。
参数化记忆:嵌入模型中的长期知识和技能,用适配器/LoRA 实现动态技能注入。适合可搜索、可检查、演进知识。
第二种也是三个子类:
WorkingMemory: 工作记忆,临时存储
LongTermMemory: 长期记忆,持久存储
UserMemory: 用户记忆,个性化存储
0x02 MemOS分类解析
MemOS 这是两套完全不同的分类维度 —— 前者按 “记忆的物理形态与生命周期” 划分,后者按 “记忆的存储归属与访问优先级” 划分。二者无直接包含关系,但存在明确的动态迁移逻辑,共同支撑 MemOS 对 Agent 记忆的精细化管理。
「物理形态 + 生命周期」分类(第一套):解决 “记忆如何高效存储、快速访问” 的工程问题,通过 “工作记忆→激活记忆→长期存储” 的层级设计,平衡内存占用与访问速度;
「存储归属 + 访问优先级」分类(第二套):解决 “记忆如何精准管理、个性化调用” 的功能问题,通过 “WorkingMemory→LongTermMemory→UserMemory” 的模块划分,实现 “任务实时处理、通用知识沉淀、用户个性化适配” 的目标。
2.1 维度定义
先明确两套分类的核心定义(维度本质)。
2.1.1 按「物理形态 + 生命周期」划分
参数记忆(Parameter Memory)/激活记忆(Activated Memory)/结构化记忆(明文记忆) 的分类聚焦 “记忆在系统中的存在形式、存活时长”,是从工程实现角度对记忆数据的拆解,核心服务于 “资源优化”(如内存占用、计算效率),偏 “技术实现维度”:
记忆类型核心定义物理形态生命周期核心作用参数记忆(Parameter Memory)固化在模型权重中的 “隐性记忆”,是模型训练阶段习得的知识(非 MemOS 动态管理的记忆)。模型参数(权重矩阵)长期固定(除非模型微调)提供 Agent 基础认知能力(如语言理解、通用逻辑),是其他记忆发挥作用的前提。激活记忆(Activated Memory)从长期存储中 “临时唤醒” 并加载到内存的记忆片段(如近期高频访问的知识、正在处理的任务相关记忆)。内存中的结构化数据(节点、关系、向量)中短期(任务执行期间 / 闲置超时后释放)作为 “缓冲层”,避免频繁读取长期存储,提升记忆访问速度。结构化记忆(明文记忆)任务执行时 “实时生成 / 使用” 的临时记忆,是 Agent 当前决策所需的核心信息集合。内存中的临时数据结构(如任务状态、推理中间结果、即时交互信息)短期(任务结束后销毁 / 归档)支撑当前任务的实时决策(如 “规划旅行” 时,临时存储目的地、交通方式等信息)。
2.1.2 按「存储归属 + 访问优先级」划分
该分类聚焦 “记忆的所有权、用途与访问优先级”,是从 Agent 功能逻辑角度对记忆的组织,核心服务于 “精准检索与管理”(如区分用户专属记忆和通用知识),偏 “功能逻辑维度”:
记忆类型核心定义存储归属访问优先级核心作用WorkingMemory(工作记忆)此处是 MemOS 中 “任务级临时存储模块”,专门存放当前任务的实时信息。内存 / 临时存储最高(任务执行期间优先访问)承接当前任务的输入、中间结果、决策依据,是 Agent 实时交互的 “临时工作台”。LongTermMemory(长期记忆)Agent 的 “通用知识库”,存放不随任务销毁的长期有效信息(如通用知识、历史任务归档、领域规则)。持久化存储(图数据库、向量数据库)中低(需检索唤醒)提供 Agent 长期稳定的知识支撑,避免 “任务结束即失忆”。UserMemory(用户记忆)属于 LongTermMemory 的 “子集化存储”,专门存放用户专属信息(如用户偏好、历史交互记录、个人属性)。持久化存储(独立分区 / 带用户标识的数据库)中高(用户相关任务优先访问)实现 “个性化交互”(如记住用户喜欢的沟通风格、历史需求)。
2.2 核心关系解析
无包含关系,但有明确的 “映射与迁移”。
2.2.1. 不存在直接包含关系
这两套分类维度是平行的
第一套是 “技术实现维度”(关注 “记忆怎么存、存多久”),第二套是 “功能逻辑维度”(关注 “记忆为谁存、用来做什么”),二者如同 “按‘材质 + 保质期’分类食品” 与 “按‘食用场景 + 归属人’分类食品”—— 分类标准完全不同,无法直接说 “某类包含某类”。
例:UserMemory(功能维度)的物理形态可能是 “长期存储的结构化数据”(对应第一套的 “非激活态长期记忆”),也可能是 “临时加载到内存的激活数据”(对应第一套的 “激活记忆”);WorkingMemory(功能维度)的物理形态就是第一套的 “结构化记忆”(临时数据结构)。
2.2.2. 关键映射关系
为了让逻辑更清晰,可通过 “功能模块 → 技术形态” 的映射理解二者关联:
功能维度记忆(第二套)对应的技术维度记忆(第一套)WorkingMemory100% 对应「结构化记忆」(临时数据结构,任务结束后销毁 / 归档);部分场景会加载「激活记忆」(如调用历史任务相关的唤醒记忆)。LongTermMemory(通用)未访问时:对应「长期存储的结构化数据」(非激活态);访问时:加载为「激活记忆」;核心知识可能间接依赖「参数记忆」(模型权重中的通用认知)。UserMemory未访问时:对应「长期存储的用户专属数据」(非激活态);访问时:加载为「激活记忆」;个性化偏好的理解依赖「参数记忆」(模型对 “偏好” 的语义认知)。
0x03 MemOS的具体实现
3.1 基本概念
MemOS 关于记忆的基本概念如下。
3.1.1. 记忆类型 (memory_type)
WorkingMemory: 工作记忆,临时存储。
LongTermMemory: 长期记忆,持久存储
UserMemory: 用户记忆,个性化存储
WorkingMemory是Memos中的一种记忆类型,具有有限容量且会被定期清理。在MemoryManager中,默认最多保存20条WorkingMemory记录,并会自动移除旧记录以维持容量限制。
LongTermMemory和UserMemory是另外两种记忆类型,容量较大(默认分别为1500和480条记录)。它们不会像WorkingMemory那样频繁清理,用于存储更持久的信息。
3.1.2. 记忆状态 (status)
activated: 激活状态
archived: 归档状态
deleted: 删除状态
3.1.3. 记忆类型 (type)
fact: 事实
event: 事件
opinion: 观点
topic: 主题
reasoning: 推理
procedure: 程序
3.1.4 问题
如何选择合适的memory_type?
[code]#
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
能杜孱
昨天 22:25
关注
0
粉丝关注
26
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
anyue1937
9994893
kk14977
6845357
3934307807
991123
4
xiangqian
638210
5
韶又彤
9998
6
宋子
9983
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
512
C#+VisionMaster 学习笔记(目录)-目录
584
ROS2核心概念之参数
87
【Agent】MemOS 源码笔记---(5)---记忆分类
129
.NET周刊【11月第4期 2025-11-23】
188
Oracle回滚与撤销(Undo)技术:从理论到实
218
吴恩达深度学习课程四:计算机视觉 第二周
854
jetson nano的ssh远程登录连接
638
Categraf 监控采集器常见问题汇总
825
11月和12月求职总结
949
2026年成都品牌主,如何选择AI优化搜索(AI
368
01 相向双指针
486
制造行业项目管理工具选型经验分享(简直是
251
vue 甘特图 vxe-gantt table 任务条可拖拽
24
Antd 在 Next.js 项目中,初次渲染样式丢失
936
1分钟安装N8N-2.0中文版!解除组件限制,界
212
Tomcat部署zrlog——处理动态数据的环境
881
Kafka简介
189
记录 Windows系统开启hyper-v ,部分端口被
507
1.java基本语法
533
从诊断到质保,为您揭秘一次靠谱的上海防水