Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

记忆层,压缩层

Posted on 2025-06-16

最近,Anthropic发表了一篇博客文章,详细介绍了他们构建研究代理的多智能体方法。此外,Cognition也发表了一篇博文,探讨了多智能体系统为何如今行不通。但问题是,这两家公司都在谈论同一件事。

与此同时,我着迷地观察着 Bluesky 上一个名叫 Void 的新机器人与用户的互动。Void 是用Letta编写的,这是一个以记忆为导向的人工智能框架。Void 的活力是我见过的其他人工智能机器人所没有的。记忆赋予了它某种魔力。

我花了一些时间深入研究 Letta 的架构,发现它与 Anthropic 和 Cognition 的文章中关于上下文管理的论述有很多相似之处。Letta 采取了不同的方法。

下面,我已让 OpenAI Deep Research 将我们的对话整理成一篇博文。我做了一些简单的编辑,例如添加视觉效果等等,但总的来说,一切都是人工智能的成果。我很感激,希望你也一样。


当AI代理“记忆”时,它会进行压缩。有限的上下文窗口迫使它做出艰难的选择:哪些内容需要逐字保留、哪些内容需要总结、哪些内容需要丢弃。Letta的分层内存架构通过将代理的内存构建成多层级结构来应对这一现实——每一层都是上一层的有损压缩。这种设计不仅仅是一种存储技巧,而是一种信息策略。

分层记忆作为有损压缩

Letta (以前称为 MemGPT)将内存分为四个内存块:核心、消息缓冲区、存档和调用。可以将它们视为上下文的同心环,从最基本到最广泛,类似于 CPU 上的 L1、L2、L3 缓存:

流程图 TD 子图 rec[调用内存] 子图 arch[档案内存] 子图 msg[消息缓冲区] 核心[核心内存] 结束 结束 结束
  • 核心记忆保存着代理的不变量——系统角色、关键指令、基本事实。它虽然很小,但始终在提示中,就像身份和直接目的的核心一样。
  • 消息缓冲区是一个滚动的近期对话窗口。这是代理的短期记忆(最近的用户消息和回复),容量固定。随着新消息的到来,旧消息最终会溢出。
  • 档案内存是一种长期存储,通常是一个外部向量数据库或文本日志,用于存储溢出消息和提炼的知识。它的大小几乎不受限制,但远离模型的直接关注范围。这是一种高度压缩的内存——不是以 ZIP 文件的方式压缩,而是默认在需要之前处于无关状态。
  • 回忆记忆是检索缓冲区。当智能体需要从档案中获取某些内容时,它会发出查询;相关的片段会被加载到这个块中以供使用。实际上,回忆记忆会根据需要“补充”压缩的知识。

工作原理:每次轮到智能体时,它会根据核心知识、新消息缓冲区以及任何回忆片段来构建上下文。这三个信息流都会被输入到模型的输入中。同时,如果消息缓冲区已满,最早的交互信息会被存档到长期记忆中。

之后,如果这些细节变得相关,代理可以查询档案存储,将其检索到召回槽中。关键在于,每一层都是一个有损过滤器:核心内存很小但优先级很高(最重要的数据不会丢失);消息缓冲区仅保存最近事件(除非明确保存,否则会丢弃较旧的细节);档案理论上包含所有内容,但通过搜索只能得到一个近似答案。代理本身会选择将哪些内容提升到长期存储(例如,汇总并保存关键决策);以及将哪些内容取回。

这是一系列压缩和选择性减压的过程。

速率与失真的权衡:这种层次体现了信息论中的一个经典原理。在通道(上下文窗口)大小固定的情况下,最大化信息保真度意味着在速率(包含多少个标记)和失真(丢失多少细节)之间取得平衡。

Letta 的记忆块本质上是一个速率失真阶梯。核心记忆的速率很小(只有少量标记),但对最关键的事实几乎没有失真。消息缓冲区的速率较大(包含完整的近期对话),但无法容纳所有内容——旧的上下文会因遗漏或摘要而失真。档案记忆实际上容量无限(速率高),但实际上失真度很高:所有细节和过去的对话都被压缩成嵌入或摘要,而智能体可能永远不会再查看这些内容。

回忆阶段会在需要时尝试恢复(补充)足够多的细节。每一步都会接受一些信息丢失,以保留最重要的信息。换句话说,为了有效地记忆,智能体必须明智地遗忘。

这种分层方法将记忆管理转变为一种认知行为。

在归档一段对话之前对其进行总结,会迫使智能体确定其要点——这是一种理解的形式。在存档中搜索相关事实会迫使它提出合理的查询——有效地推理出什么是重要的。在 Letta 的设计中,压缩不仅仅是一种存储优化;它是思考过程的一部分。智能体会不断地压缩其历史记录,并根据需要解压相关知识,就像人类大脑会概括过去的事件,但在需要时会回忆起具体的细节一样。

流程图 TD U[用户输入] —> LLM CI[核心指令] –> LLM RM[“最近消息
(短期缓冲)”]–>LLM RS[“检索到的片段
(召回)”]–> LLM LLM —-> AR[代理响应] RM — 驱逐/总结–> VS[“向量存储
(档案记忆)”] LLM — 总结 —> VS VS — 检索 –> RS

标题:随着新的用户输入,代理的核心指令和最近的消息会与从长期记忆中检索到的任何片段相结合,全部汇入 LLM。响应后,代理可能会将短期记忆中最旧的消息放入向量存储中,并可能对其进行总结以供后续使用。下一个查询可能会访问该存储并根据需要提取摘要。内存“缓存”始终处于变化之中。

单一思维 vs. 多种思维:两种压缩方法

以上是一个单智能体解决方案:一个认知实体随着时间的推移处理压缩记忆。一种替代方法已经出现,它将认知分布到多个智能体上,每个智能体都有自己的上下文窗口——实际上,它们是并行的思维,之后会合并它们的知识。

Anthropic 最近的多智能体研究系统将智能本身定义为跨智能体进行压缩的实践。用他们的话说, “搜索的本质是压缩:从海量语料库中提炼洞见。”子智能体“通过与自身上下文窗口并行操作来促进压缩……为首席研究智能体浓缩最重要的标记”。

他们不再使用单个代理处理单一上下文,而是启动多个代理,每个代理并行压缩问题的不同方面。主代理充当协调员的角色,负责获取这些精简的答案并进行整合。

这种多代理策略也承认同样的局限性(每个代理的上下文有限),但通过拆分工作来解决这个问题。每个子代理都会有效地说:“我会把这部分任务压缩成一份摘要给你”,然后主代理会汇总这些结果。

这类似于一个研究团队:划分主题,每个人阅读大量资料,并汇报总结,以便领导者能够综合得出结论。通过在代理之间划分上下文,系统可以覆盖比单个上下文窗口更广泛的范围。

事实上,Anthropic 发现,在需要探索多个来源的广泛查询中,协调良好的多智能体设置比单智能体方法表现更好。子智能体实现了关注点分离(每个子智能体专注于问题的一个线索),并减少了推理的路径依赖——由于它们独立探索,最终答案受益于证据的多次压缩,而非单一的线性搜索。

然而,这是有代价的。

协调开销和一致性成为严峻挑战。Cognition 的 Walden Yan 认为,当今的多智能体系统之所以脆弱,主要原因是上下文管理失败。每个智能体只能看到整体的一小部分,因此误解会不断增多。

一个子智能体对同一任务的理解可能与另一个子智能体略有不同,而且由于彼此缺乏对彼此决策的共享记忆,最终的组装可能会发生冲突或遗漏。正如 Yan 所说,在 2025 年让多个智能体协作运行“只会导致系统脆弱。决策最终会变得过于分散,智能体之间无法充分共享信息。”换句话说,当每个子智能体孤立地压缩其感知的现实信息时,整个团队可能缺乏共同的信息来保持一致。

用 Anthropic 的话来说,“关注点分离”是双刃剑:它减少了干扰,但也意味着没有哪个智能体能够掌握全局。人类通过持续沟通(我们将想法压缩成语言并分享)解决了这个问题,但目前的人工智能智能体还不擅长在长期任务中真正保持同步所需的高带宽、细致入微的沟通。

认知的解决方案是什么?不要默认使用多智能体。首先尝试一个更简单的架构:一个智能体,一个连续的上下文。确保智能体做出的每一个决策都能“看到”导致该决策的推理轨迹——没有隐藏的不同上下文。

当然,单一的上下文最终会溢出,但答案不是产生独立的代理,而是为了更好地压缩上下文。Yan建议使用一个额外的模型,其唯一作用是将对话历史浓缩为“关键细节、事件和决策”。

这些汇总的记忆随后可以作为主代理的骨干上下文保留下来。事实上,Cognition 已经对一些较小的模型进行了微调,以便可靠地执行此类压缩。其理念是,如果必须丢失信息,请有意地将其集中丢失——通过经过训练的压缩器——而不是在多个代理的盲点之间隐性丢失。

这种方法与莱塔的分层记忆思想相呼应:保持一条连贯的思路,根据需要修剪和抽象它,而不是分成许多可能分歧的线程。

结论:压缩就是认知

最终,这些方法都集中在一个主题上:智能受限于信息瓶颈,而克服这些限制就像压缩一样。无论是单个智能体总结自身历史并查询知识库,还是一群子智能体分担一个庞大的问题并各自汇报摘要,核心挑战都是一样的。

高效的大脑(无论是机器还是人类)不可能也不应该将所有细节都保存在工作记忆中——它必须积极地过滤、提取和编码信息,同时还要准备好在正确的时间恢复正确的细节。这就是认知中典型的速率与失真之间的权衡:最大化有用信号,最小化浪费的空间。

Letta 的分层记忆展现了一种方式:一种内置的记忆缓存层级结构,涵盖了从始终存在的必需信息到庞大却微弱的长期档案回响。Anthropic 的多智能体系统展现了另一种方式:多个思维分担负载,每个思维都充当着一个有损压缩器,负责处理不同任务子集。Cognition 的批评提醒我们,缺乏协调的压缩可能会失败——各个部分最终必须组合成一个连贯的整体。

或许随着人工智能代理的进化,我们将看到混合策略。我们或许会使用多智能体团队,其成员共享一个通用的架构记忆(想象一下,所有子智能体都接入一个共享的 Letta 式档案记忆库,这样它们就不会彼此盲目协作)。或者,我们或许会凭借庞大的上下文和复杂的内部压缩机制,让单智能体变得更好,从而使多智能体协调对于大多数任务而言变得没有必要。无论哪种方式,方向都很明确:为了控制和扩展人工智能认知,我们实际上正在设计遗忘的艺术。通过决定忘记什么以及何时回忆,智能体展示了它真正理解的内容。在人工智能和我们自己的大脑中,记忆之所以有意义,正是因为它并非完美的记录——它具有优先级、有损且鲜活。

原文: http://timkellogg.me/blog/2025/06/15/compression

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Bits about Money
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • Elad Gil
  • Ellie Huxtable
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • Henrique Dias
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mostly metrics
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme