YouMind
登录

存储很便宜,但注意力很昂贵。你是否正在使用能够利用这一差异的系统?

@S_BatMan
英语2026年5月26日
1.3M
305
37
11
179

TL;DR

对 19 个 AI 系统的分析表明,最高效的 Agents 使用分层内存架构来管理上下文。通过区分热数据、温数据和冷数据,这些系统能够优化检索并最大限度地减少干扰。

分层架构实现回报的非对称性

如果你要修改 Agent 记忆设计的某个方面,那就改这个:别再认为存储成本和注意力成本是一回事。

我深入研究了 19 个系统,反复出现的一个发现是:那些记忆处理得好的系统,未必拥有最复杂的检索机制。关键在于,它们弄清楚了哪些记忆值得放进提示词中。这是另一个问题,也需要另一种解法。

存储很便宜。注意力很昂贵。一个拥有 128k 上下文的模型,如果阅读了 110k 的平庸上下文,实际上并不比同一个模型阅读 8k 精心筛选的上下文表现得更好。关于这方面的研究是一致的:随着上下文被噪声填满,检索质量会下降,而且这种下降并非线性。模型并不会简单地忽略无关材料。它会处理这些材料,而处理过程会挤占有效信号。

存储没有这个特性。存在数据库中的一条事实不需要任何成本来保存。成本只在你检索它并将其加载到提示词中时才会产生。这意味着问题不在于"我该不该存储这个?",而在于"我该不该检索这个?如果该,什么时候检索?"

这个重新定义正是分层架构的来源。不同的记忆项有不同的访问模式。有些事情 Agent 每轮都需要:用户的名字、当前项目、已声明的偏好。有些事情它经常需要,但不一定每轮都需要:最近的决策、待解决的问题、最近几次会话中的情景事实。有些事情它应该能在需要时找到,但绝不应该每轮都造成负担:三个月前的会议记录、已完成的任务、原始转录、一次性参考材料。

扁平存储将这三类记忆一视同仁。热点项要承担冷点项的搜索成本。冷点项用噪声膨胀了提示词。没有机制让记忆项随着相关性增加而升级,也没有机制让记忆项随着相关性降低而老化。操作系统的类比是精确的:CPU 有 L1、L2、L3、RAM、SSD 和磁盘,不是因为字节不同,而是因为访问频率相差数个数量级。在我开始研究之前,19 个系统中的 7 个已经构建了显式的分层架构。其中两个值得详细了解。

MemoryOS 作为参考实现

MemoryOS 是 19 个系统中分层记忆最清晰的实现。有三个层级,每个层级都有不同的数据形态、不同的延迟预算和不同的角色。

短期层是一个 Python 双端队列,最大长度为 10 个 QA 对。没有嵌入、搜索索引或热度追踪。这是纯粹的对话原始材料——最近十次交互——以微秒级延迟可用。当队列填满时,最旧的 QA 对会排入中期层。

中期层最多容纳 2000 个会话。每个会话带有摘要、嵌入、关键词集和热度计数器。该层使用 Faiss 进行索引,并通过余弦相似度进行搜索。当层级达到容量上限时,最冷的会话被逐出。当某个会话变得足够热时,它会被提升到长期层。

长期层是一个 90 维的心理和对齐模式,两个知识库双端队列——一个用于用户事实,一个用于助手事实——每个上限为 100 条。这是持久层,跨会话保留,承载着用户的持久模型。

控制提升的热度公式是 12 行 Python 代码。三个信号:访问频率(类似 LFU)、交互深度(主题参与度的代理指标)、以及最近衰减(指数衰减,半衰期为 24 小时)。当某个片段跨过 5.0 的提升阈值时即被提升。提升后,访问和交互计数器重置为零,热度回落到大约 1.0。

一个容易被忽略的设计决策:热度控制提升,而非检索。检索器纯粹是语义的——基于中期嵌入的余弦相似度。热度是一个后台信号,决定某个片段是否应该升级到长期层。这两个关注点是解耦的,而这种解耦本身比热度公式更重要。

MemoryOS 遗漏的地方值得指出。系数硬编码为 1.0,没有从实际使用模式中学习权重的机制。没有降级路径;一旦某个记忆达到长期层,就会永远保留。而且该公式优化的是频率而非重要性。一个关键但罕见的事实——伴侣的名字、医疗状况、硬约束——如果只出现一次,可能永远无法跨过提升阈值。一旦中期层逐出该片段,这个事实就丢失了。

Hindsight 的理论推导层级

Hindsight 从完全不同的起点得出了相同的三层结构。MemoryOS 借鉴了操作系统缓存理论,而 Hindsight 借鉴了认知科学。

三个层级分别是:世界(World)、经验(Experience)和观察(Observations)。世界层持有关于宇宙的客观陈述——基本事实、始终在线、长期存在。经验层持有系统自身的第一次行动——情景记录。观察层持有从世界层和经验层事实中推导出的巩固信念,带有源记忆 ID、证据计数和历史字段,用于追踪信念的演变过程。

所有三个层级都存在于同一个数据库表中,通过事实类型鉴别器区分。每个事实类型都构建了部分 HNSW 索引。模式是统一的,但访问模式不是。

Hindsight 中的提升并非由计数器驱动,而是由批量化的 LLM 驱动整合来实现。当一条新事实被写入时,它会被加入异步操作队列。后台 worker 会获取新事实以及现有的重叠观察,构建一个批量提示词,并让模型执行创建、更新和删除操作。源记忆会被打上整合时间戳以防止重复处理。每一条新事实,无论其被访问的频率如何,都会被考虑提升到观察层。

这就是与 MemoryOS 的关键区别。通过将上层提升与整合而非热度挂钩,Hindsight 避免了"关键但罕见事实"的盲点。一次整合过程会考虑每一条新事实。频率与某项事实能否升级无关。

简单来说:两个系统,不同的第一原理,不同的实现语言,不同的目标用例,但都落在了三个层级上——底层是原始材料,中间是工作层,顶部是整合后的持久层。两者都使用异步提升。两者都将来源追溯回下层。这就是软件架构中的趋同演化,也是我所知道的某种模式具有承载力的最强信号。

@supermemory 的场景条件分层

supermemory 采用托管 API 部署形态,这改变了实现方式,但没有改变架构。三个层级分别是:静态档案(static profile)、动态档案(dynamic profile)以及文档和片段存储(document and chunk store)。

静态档案持有稳定的长期事实——热层级。它作为静态数组从档案端点返回,在边缘缓存,延迟预算大约 50 毫秒。动态档案持有近期和情景上下文——暖层级。许多条目带有 forgetAfter 字段,设置 TTL。文档和片段存储是冷层级,在需要时通过搜索端点查询。

层级分配在写入时完成。一个提取 LLM 将每条传入的记忆分类为 isStatic 布尔值,并可选择设置 forgetAfter 值。分类由一个封闭的提取提示词强制执行,对所有消费者统一。

托管 API 部署形态实现了三个特性,进程内设计者无法直接复制,但应该理解。冷层级数据可以放在更便宜的硬件上——对象存储用于原始字节,标准关系存储用于元数据和片段——而热档案则在边缘单独缓存。热层级拥有自己的端点和自己的 SLA,与搜索路径分开。提取提示词是集中式的,这意味着层级分配的一致性远超每个 Agent 的分类方式。

权衡是真实存在的。远程热层级只有在网络速度快时才快。Agent 无法覆盖引擎的层级分类。提取提示词是一个黑盒。但架构模式——热层级作为独立端点、冷层级放在更便宜的硬件上、层级分配在写入时完成——即使部署形态不同,也值得复制。

提升 vs. 固定类型学

mem9 是一个对照案例,澄清了什么是分层。

mem9 有一个记忆类型列,包含三个值:固定(pinned)、洞察(insight)和摘要(digest)。固定记忆通过显式的内容写入路径分配,手动创建,受保护防止 LLM 协调修改。洞察记忆由每次 LLM 提取的写入分配,可变更、可版本化、可被取代。两者都参与相同的混合召回和相同的 RRF 评分。类型字段是一个写保护标志,而不是检索过滤器,也不是层级信号。

这是类型学,而非分层。这种区分很重要,因为两者容易混淆。类型学描述治理:谁可以修改这条记忆,在什么条件下。分层描述访问模式:这条记忆多久需要一次,以及哪种存储表示最能满足这种频率。一个系统可以两者兼备。supermemory 的 isStatic 是一个层级信号,而单独的 isInference 标志更接近于治理类。但将两者混淆在实践中会产生最大的歧义。

如果你发现在记忆行中添加了类型字段,要问的问题是:这个字段描述的是访问模式还是治理类?如果是访问模式,你就是在构建分层。如果是治理类,你就是在构建类型学。两者都有用。但它们不是一回事。

扁平存储的代价

运行扁平记忆存储会带来四个具体问题。

热路径要承担冷路径的搜索成本。每次检索都要扫描同一个索引,针对相同的条目。Agent 查找用户名字所付出的搜索成本,与查找六个月前的会议记录相同。在小规模时这不可见。在规模扩大时,这是一个延迟问题。

冷路径用噪声膨胀了提示词。检索返回语义上相近的条目,其中包括固定上下文、已取代的事实以及事实正确但与当前轮次无关的材料。模型会处理所有这些内容。随着存储增长,上下文窗口中的信噪比会下降。

没有机制让条目升级。记忆不是静态的。关系早期一个短暂的情景事实,随着时间的推移,可能成为关于用户偏好或约束的持久信号。扁平存储没有机制注意到这种转变。条目始终停留在最初写入时的表示中,无论其相关性如何变化。

没有机制让条目老化。降级不是删除。一个想要移除陈旧材料的扁平存储必须直接删除。而分层存储可以将其移至更冷的表示中——仍然可被找到,但不再给热路径造成负担。扁平存储迫使做出分层存储所没有的二元选择。

最终结论

19 个系统中有 18 个实现了分层、向分层靠拢,或明确建议分层。例外是 mem9,它有一个类型学层解决另一个问题,并且会在其上受益于分层。

如果你从头构建 Agent 记忆,这 19 个系统指向的演进路径如下。识别出 Agent 每轮都需要什么——这是你的热层级。识别出它经常需要但不一定每轮都需要什么——这是你的暖层级。识别出它在需要时应该能找到但绝不应每轮都造成负担什么——这是你的冷层级。选择一种提升机制:基于热度的(如 MemoryOS)、基于 LLM 判断的(如 Hindsight),或是基于提取时分类的(如 supermemory)。选择一种降级机制:时间衰减、TTL 或新鲜度类别。起初保持提升和检索评分分离——解耦比事后解开更容易。从上层到下层追踪来源,这样你总能回答一个整合信念从何而来的问题。

这 19 个系统在很多事情上都不一致。但在这件事上它们是一致的:单一的扁平记忆存储是任何非平凡 Agent 记忆系统的错误默认选项。

存储很便宜。注意力很昂贵。构建利用这种差异的系统。

如果你觉得这篇文章有趣,请分享。

一键保存

使用 YouMind AI 深度阅读爆款文章

保存原文、追问细节、总结观点,并在一个 AI 工作空间里把爆款文章沉淀成可复用笔记。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章