Storage 07
Hierarchical Memory
像 OS 一样管理记忆
交互
添加消息以增加上下文使用量。达到 92% 时触发压缩。观察低优先级信息被归档的过程。
Context Window 使用率73/100 tokens (73%)
Core Memory (核心)
System Prompt15t
用户画像8t
当前任务12t
Recall (近期)
对话记录 (近)20t
对话记录 (中)18t
Archival (归档)
对话记录 (远)15t
积累的事实10t
用户偏好5t
Context Window 就是 RAM
这个来自 MemGPT/Letta(21K stars)的类比是理解层级 Memory 最直观的方式:
| 操作系统 | Agent Memory | 特性 |
|---|---|---|
| RAM | Context Window | 快速、容量小、易失 |
| 磁盘 | 外部 Memory 存储 | 慢速、容量大、持久 |
| Page table | Agent 的 Memory 管理策略 | 决定换入/换出的内容 |
| Page fault | Agent 意识到需要某条 Memory | 触发检索与换入 |
"MemGPT 的核心洞察是:Context Window 是 RAM,不是磁盘。Agent 应该像操作系统内核管理 page table 一样,自行管理自己的 Memory 层级。"
Letta 的三层架构
Core Memory
始终在上下文中。包含 system prompt、用户画像、当前任务。Agent 可直接编辑。
常驻 RAM
Recall Memory
近期对话历史。可搜索,可换入上下文。随时间过期。
热缓存
Archival Memory
长期存储在 vector 数据库中。按需检索。容量无限。
冷存储
关键设计:Agent 自己决定换入和换出的内容。Letta 提供 Memory 操作工具(如 core_memory_append、archival_memory_search),Agent 学习何时使用它们。
OpenViking 的文件系统隐喻
OpenViking(4K stars,ByteDance)使用了不同的直觉模型:虚拟文件系统。
L0(上下文内):活跃文件,直接在 prompt 中
L1(热缓存):近期文件摘要,快速检索
L2(冷存储):全部文件,通过 viking://find 搜索
Agent 使用类 shell 命令:
$ viking://ls — 列出当前目录
$ viking://find "user preferences" — 搜索 Memory
L1(热缓存):近期文件摘要,快速检索
L2(冷存储):全部文件,通过 viking://find 搜索
Agent 使用类 shell 命令:
$ viking://ls — 列出当前目录
$ viking://find "user preferences" — 搜索 Memory
核心原则
无论是操作系统类比还是文件系统,洞察都一样:并非所有 Memory 都需要同时在上下文中。好的层级 Memory 解决两个问题:何时换入(检测 page fault)和何时换出(基于重要性/时效性评分进行淘汰)。
下一节
存储架构已介绍完毕(文件、vector、graph、层级)。现在进入操作层面。第一步:如何从对话中提取值得记住的信息。