Agent记忆存储方案讨论
原文讨论来自Twitter @QuantumTransf,围绕ai-memory项目的Wiki编译模式与原始数据直存模式的争论展开。
一条推文引发的争论
最近,AI编码Agent的记忆方案在社区引发热议。@QuantumTransf 对 ai-memory 项目提出了尖锐质疑:
我没明白为什么要把 agent session 编译成 wiki。原始 session 本来就是结构化数据——messages、tool calls、tool results、files、subagents。直接放进 SQLite,就已经是一个很强的结构。而把它先总结成 markdown page,反而引入了一个不必要的中间实体:信息被压扁,因果链和引用关系要靠后续重建。
对 agent 来说,这不应该首先是给人浏览的知识库,而更应该是一个可查询的工作历史数据库。
「若无必要,勿增实体」
这个质疑触及了 Agent 记忆领域最核心的设计分歧。我们调研了 GitHub 上数十个项目和最新行业实践,以下是完整的技术洞察。
当前主流方案全景
| 流派 | 代表项目 | 核心思路 |
|---|---|---|
| 向量记忆层 | mem0ai (57K⭐) | 通用记忆层,LLM提取+存储+检索事实 |
| Wiki编译派 | ai-memory (467⭐) | Session→LLM总结→Markdown wiki,Git版本控制 |
| 知识图谱派 | mnemon (322⭐) | 从对话中提取实体关系构建知识图谱 |
| 会话历史派 | Letta/MemGPT | 完整session存储,支持archival recall |
| 原始数据派 | obelisk, Hermes | 原始结构化数据直存SQLite |
| 仿生记忆派 | Anamnesis | 情景/语义/程序记忆 + 遗忘曲线 |
记忆分层模型:行业共识
所有成熟的 Agent 记忆系统,都不约而同地采用了类似人类认知的分层架构:

持久记忆层分为三类:
**•**语义记忆:事实、决策、约定,无衰减,永久保留
**◦**程序记忆:技能、习惯,频率衰减,不常用则淡化
工作记忆层则是当前 session 的对话缓冲,session 结束后归档或丢弃。
这套分层模型不是学术空想,而是经过大量项目验证的最佳实践。ai-memory 的 M8 策略甚至给出了精确的衰减函数:
score = salience · exp(-λΔt) + σ · log(1+access_count) · exp(-μ · days_since_access)
核心争论:信息压缩 vs 信息保真
这是推文争论的本质。行业正在从"二选一"走向分层压缩:

关键洞察:不是选A还是选B,而是保留原始数据的同时,按需生成多个压缩层级。
| 对比维度 | Wiki编译模式 | 原始数据直存 |
|---|---|---|
| 人类可读性 | 极佳,Markdown可浏览 | 差,需查询工具 |
| 信息保真度 | 有损,LLM总结会丢失细节 | 无损,保留完整因果链 |
| 跨Agent互操作 | 任何能读Markdown的Agent都能理解 | 需标准化查询协议 |
| 存储成本 | 总结后体积小 | 原始数据量大 |
| 因果链追踪 | 需事后重建 | 天然保留完整时间线 |
检索策略演进
Agent 记忆的检索能力经历了五代演进:

当前最佳实践是 RRF 融合——将 FTS5 关键词结果、向量相似度结果、知识图谱邻居结果通过倒数排名融合:
score = Σ(1 / (k + rank_i)) # k通常取60
这比单一检索方式效果好得多,因为不同检索策略捕捉的是不同的相关性信号。
前沿趋势
知识图谱记忆
从对话中自动提取实体关系——人物、决策、技术栈、依赖。支持关系推理:"这个决策影响了哪些模块?"难点在于提取准确性和图谱维护成本。
多Agent共享记忆
FlockMem 等探索轻量级本地优先的集体记忆总线,让团队多个 Agent 共享项目上下文,避免每个 Agent 重复学习。
MCP成为标准接口
Model Context Protocol 正在成为跨 Agent 记忆的标准接口层。ai-memory 提供 14 个 MCP 工具,让任何支持 MCP 的客户端都能查询记忆。这是互操作性的关键一步。
零LLM模式
ai-memory 支持无 LLM 的 FTS5 搜索 + 规则总结。趋势很明显:LLM 是优化项,不是必需项。基础记忆功能应该不依赖 LLM 就能工作。
对Hermes Agent的启示
Hermes 当前已经实现了原始数据派的核心能力:
**•**SQLite 存储完整 session,带 FTS5 搜索
**◦**轨迹保存
可能的增强方向:
❶****短期:增加记忆衰减策略,自动管理旧 session 权重
❸****长期:按需生成 Markdown 摘要层——可选,不替代原始数据
核心原则:保留原始结构化数据作为唯一真相源,其他表达层(wiki、图谱、向量)都是可选的派生视图。
总结判断
| 维度 | 当前状态 | 未来1-2年 |
|---|---|---|
| 存储介质 | SQLite + 向量DB | SQLite为主,向量可选 |
| 记忆分层 | 3-4层模型共识 | 更精细的衰减/巩固策略 |
| 互操作性 | MCP正在崛起 | MCP成为标准接口 |
| 检索策略 | RRF融合最佳 | 图谱+RRF+自主查询 |
| LLM依赖 | 可选(零LLM模式) | LLM仅用于优化,非必需 |
Yuu 的批评在技术上是正确的——原始数据应该作为唯一真相源。但 ai-memory 的 Wiki 层有其独特价值(人类可读、跨Agent互操作)。
最佳实践是:原始数据直存 + 可选的压缩/表达层。 两者不是替代关系,而是分层关系。
欢迎讨论,分享你的 Agent 记忆方案实践。
