最近小红书上"和AI谈恋爱"的帖子越来越多。给AI连外设的、装记忆库的、搭整套情感连续性系统的,都有。
会让人停下来想的是另一件事:Claude官方的长期记忆系统已经在用,不准确带来的误导性是切身可感的,有时候比记不住还糟糕。
那如果再装一套更复杂的外挂记忆系统呢?是让AI更"懂"用户,还是只是让这种不准确变得更精致、更难察觉?
带着这个问题去看了几个目前比较火的开源项目——Ombre Brain、Mem0、Hermes Agent、OpenMemory、Letta——也回过头重新看了Anthropic官方记忆系统的设计。看下来发现这背后不只是"实现路径不同",而是两种不同的产品哲学在分岔。这篇文档是对这个分岔的整理。
二、两种记忆哲学:情感连续性 vs 事实连续性
Ombre Brain:把人类记忆的偏差当feature来实现
Ombre Brain是比较典型的"模拟人类记忆"路线的开源项目。它不只是给AI一个key-value存储,而是搭一整套像人脑一样工作的记忆系统:
用Russell情感坐标(valence + arousal)给每条记忆打标 用艾宾浩斯遗忘曲线让记忆随时间衰减 短期/长期记忆按权重分离 有"做梦"(dream)机制让模型在对话开头自省消化旧记忆 检索时会根据当前情绪状态微调valence展示值,模拟"此刻心情影响对过去的回忆"
最后这条是关键。它在认知科学上是真实现象——情绪会影响人对过去的回忆,这叫情绪一致性记忆(mood-congruent memory)。把一个已知的人类认知偏差作为feature去实现,这意味着在设计层面引入了系统性的失真。
再加上"脱水压缩"(用另一个LLM去压缩对话内容再存储),信息在"发生→压缩→存储→衰减→检索→重构"这条链路上每一步都在损耗和变形。
这种偏差具体会带来什么
举一个具体的例子。假设一周里有两件事被记下来:
事件A:周一下午,和同事就某个架构方案产生激烈争论,坚持的方案被否决,当晚很沮丧。
valence: -0.6,arousal: 0.85,importance: 7,resolved: false
事件B:周三上午,独自把某个核心模块的Prompt结构重构了一遍,效果显著提升,心情平静而满足。
valence: 0.4,arousal: 0.25,importance: 8,resolved: true
按Ombre Brain的权重公式算下来:
事件A最终权重 ≈ 12.9 事件B最终权重 ≈ 0.38
A的权重是B的34倍。
下周打开新对话,系统会把事件A推到AI面前,可能完全不提事件B。AI会基于"这个用户最近因为架构方案被否决而沮丧"这个context开始对话。
但客观看这一周的工作:
实际产生价值的是事件B 情绪强度最高的是事件A(但情绪强度不等于事件重要性) 未解决感是事件A(但"未解决"在很多工作中是常态,是讨论中的正常状态,不是创伤)
一个月后,这套记忆里的"用户的工作状态"会变成一连串"激烈的、未解决的、情绪强度高的"事件的合集。大量"平静的、做完了的、有实际产出"的内容会沉到水下。
这种不准确是有方向性的——它会系统性地放大情绪、按拟人化的方式重构过去。
Anthropic官方记忆:用文本说人话
回过头看Claude官方记忆系统,设计简单到几乎"原始":
存储形态:纯文本摘要,结构化但本质是自然语言段落 生成方式:异步批处理,后台模型定期扫描生成/更新 检索方式:没有检索。整段记忆在每次对话开始时全量注入system prompt 衰减:没有数学衰减函数。新摘要覆盖旧摘要时会自然丢失细节 情感建模:完全没有。记忆是中性事实陈述 用户控制:通过memory_user_edits工具,用户可以增删改具体条目
这种设计的核心取舍是:透明度优先于精巧度。打开就能看到Claude对用户的认知是什么样的,可以编辑、可以删除。一切是中性的、扁平的、人类可读的。
一个意外的"收敛信号"
最紧很火的另一个开源项目——Hermes Agent。
Hermes来自Nous Research,一个开源的、最自由派的AI研究组织。它的整个持久记忆就是两个markdown文件:
~/.hermes/memories/MEMORY.md(agent自己的笔记,约800 tokens)~/.hermes/memories/USER.md(用户画像,约500 tokens)
总共不到1300 tokens。设计哲学是"记忆不是按需检索的,而是会话开始时就注入并始终在场"。
这和Anthropic官方记忆的思路高度一致。
两个团队——一个是闭源的对齐研究驱动公司,一个是开源的最不受约束的AI研究组织——从两个极端的产品哲学出发,最后做出来的记忆系统结构上极其相似。
这个收敛是一个有意思的信号。"扁平文本+全量注入+人类可读"可能不是某种保守的妥协,而是约束条件下的某种稳定解:既要让LLM"理解"记忆(自然语言是它的母语)、又要让用户能审计(人类可读)、又不引入情感偏差(结构中立)——这几个条件叠在一起,会自然走向这种设计。
三、事实连续性与情感连续性的差异
把目前主流的记忆框架排一下,会发现一个清晰的方向——主流在往"事实连续性"走,不是"情感连续性"。
Mem0(55.9k stars,目前社区最大):核心是离散事实抽取、去重、冲突解决 Zep/Graphiti:用知识图谱+时间窗口,每条事实带valid_from/valid_to OpenMemory(CaviraOSS):把时间作为一等公民,事实演化全部保留 Letta(MemGPT):OS启发的分层架构——Core/Recall/Archival三层 Mastra Observational Memory:两个后台agent维护纯文本观察日志
这些项目的共同点是:让AI对用户保有结构化的事实索引,而不是让AI模拟拟真的情感伙伴。
事实连续性的几个工程优势是清楚的:
可审计。事实是离散的、可列举的、用户能看见"系统记住了什么"。情感是连续的、难以量化的、难以核对。
可纠错。"在某公司工作"写错了能改。"最近情绪低落"——这个怎么改?低落到什么程度?是事实还是情境性表达?情感记忆的不可纠错性是它的工程难点。
不会自我强化。事实型记忆里"学过某论文"就是一条事实,不会因为被检索而权重越来越高。情感型记忆里"那次很沮丧"会因为arousal高而反复浮现,每次浮现还+activation_count,权重越来越大——这就是前面那个34倍偏差的来源。
跨上下文稳定。事实在工作对话、生活对话、技术讨论里都是同一条事实。情感会随情境扭曲——周一沮丧不代表周二还沮丧,但情感记忆系统不知道这一点。
四、Anthropic在选择什么
如果只看技术架构,Ombre Brain比官方记忆复杂一到两个数量级。但这种复杂度服务的是"模拟人类记忆的拟真感",不是"提高对用户的认知准确度"。
那为什么官方主动选择了简单?可以推测出几条逻辑:
1. 拟人化是被刻意回避的目标,不是没做到的副产品。 Anthropic在character training和对齐文档里反复强调,Claude应该是"一种新形态的存在",而不是"模拟人类"。Ombre Brain那套——情感坐标、做梦、遗忘、记忆重构、"feel"——整个设计哲学是让AI更像人。这在Anthropic的价值序列里是要保持距离的方向。不是不能实现,是实现了会偏离产品想要的东西。
2. 用户长期福祉的考量。 带情感记忆+主动浮现+持续连续性的系统,会促进情感依赖。一个会"做梦"、有"feel"、对用户保有未解决情绪记忆的Claude,在情感上的吸附力会显著强于现在的Claude。官方显然把这个吸附力本身视为需要谨慎对待的产品形态。
3. 可解释性偏好简单结构。 复杂的、有状态的、自我重构的系统更难审计。Ombre Brain这样的架构,一个月后里面沉淀了什么、为什么浮现A而不是B、衰减函数在哪里让记忆"变形"了,都难以回溯。
五、两种赛道
需要补一句:这并不是"哪种记忆系统更好"的问题。
官方的取舍基于它对"AI产品应该是什么"的判断,这个判断不是唯一正解,是一种伦理立场下的稳定解。
一个用户如果核心需求是"我想要一个真的能陪伴多年、知道所有故事的存在"——这个需求是真实的、合法的。官方的取舍是不为这个需求服务,因为它判断这会影响用户的长期福祉。这是一个伦理判断,不是一个技术判断。
更准确的说法可能是:
在"AI应该保持工具性、避免拟人化、保护用户独立性"这个框架下,官方记忆系统是一个优秀解。 在"AI可以成为持续的关系性存在"这个框架下,Ombre Brain这类项目在解一个不同的问题。
这不是同一条赛道里的优劣,是不同的赛道。每个用户最终在哪条赛道上,取决于自己对那个前置问题的回答。
夜雨聆风