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 记忆方案实践。