How neuromem Models Memory: A Cognitive Psychology Approach
neuromem team
大多数 AI 记忆系统将记忆视为扁平的键值存储:保存所有内容,按相似度检索,然后听天由命。neuromem 采用了截然不同的方法。我们从认知心理学的第一性原理出发设计记忆架构,然后在五个独立研究方向上进行了验证——从 Tulving 的记忆分类体系到斯坦福的 Generative Agents,再到 Mem0 和 Zep 等商业系统。
最终成果是一个具备四种记忆类型、六阶段特质生命周期、证据质量分级和内置遗忘机制的系统——因为记住所有东西并不等于记得好。
4
记忆类型
6
特质阶段
4
证据等级
4
自维护机制
四种记忆类型
neuromem 将所有记忆分为四种类型,每种都对应认知心理学中一个成熟的概念:
-
事实(Fact) — 从单次对话中提取的离散、客观、可验证的信息。对应 Tulving 的语义记忆。例如:"用户在 Google 工作"、"用户有一只叫咪咪的猫"。
-
事件(Episode) — 绑定到特定时间、地点或人物的一次性事件。对应 Tulving 的情景记忆。例如:"2024-02-15:用户参加了一场 Python meetup"、"用户上周二参加了工作面试"。
-
特质(Trait) — 跨多次对话推断出的行为模式、偏好和人格特征。这是 neuromem 与大多数系统的核心差异所在。特质永远不会从单次对话中提取——它们只能由反思引擎在多个事实和事件中观察到一致模式后才能产生。
-
文档(Document) — 来自上传文件的内容,用于 RAG(检索增强生成)场景。
四种记忆类型分布(典型用户画像)
经过 50 次对话后,各类型记忆的占比
为什么不只用事实和事件?
关键洞察在于:事实和特质有着根本不同的生命周期。"用户在 Google 工作"可以通过一句话确立。但"用户是数据驱动的决策者"则需要跨多次对话观察到相同模式——在做决定前要求看指标、要求 A/B 测试结果、没有数据就拒绝上线。
研究也证实了这一点:相关研究表明,LLM 从单次对话推断大五人格特质的最大相关系数仅为 r=0.27。单次对话的人格提取效果仅比随机稍好。因此 neuromem 设置了严格的边界:LLM 提取产生事实和事件;只有反思引擎才能产生特质。
三层特质分类
并非所有特质都生而平等。neuromem 将特质组织为三个层级,灵感来自 Gordon Allport 的特质理论和 Conway 自我记忆系统中的认知抽象层级:
稳定性(高 → 低) 可观察性(低 → 高)
核心层(Core) 难以直接观察,从偏好推断
↑ "高尽责性"、"重视自主权"
偏好层(Preference) 通过选择可观察
↑ "偏好数据驱动决策"、"喜欢极简设计"
行为层(Behavior) 可直接观察
"深夜活跃"、"决策前必看数据"
行为层特质是系统可以直接观察到的表层模式。偏好层通过聚类相关行为进行推断——如果一个人总是在决策前检查数据,并且坚持要 A/B 测试,那他很可能偏好数据驱动的方式。核心层特质是从多个偏好中抽象出的深层人格维度。
每个层级有不同的衰减速率,反映了心理学研究中表层行为比深层人格特质更容易变化的结论:
- 行为层:基础衰减 λ = 0.005(随工作、环境变化)
- 偏好层:基础衰减 λ = 0.002(相对稳定)
- 核心层:基础衰减 λ = 0.001(成年后高度稳定)
三层特质衰减速率对比
基础衰减率 λ 值——行为层变化最快,核心层最稳定
从第一天起就打上情境标签
受 Mischel 的 CAPS 理论(认知-情感人格系统)启发,neuromem 从行为层开始就为每个特质标注情境上下文——work(工作)、personal(个人)、social(社交)、learning(学习)或 general(通用)。这一点至关重要,因为人们在不同情境下表现不同,这不是矛盾,而是完整画像。
例如,同一个人可能在工作中一丝不苟,在家里却随性自在。neuromem 不会将其视为冲突数据,而是通过情境标签同时捕捉两面,构建更丰富的人格模型。
特质生命周期:六个阶段
每个特质都经历六个阶段的生命周期:
趋势(trend) → 候选(candidate) → 萌发(emerging) → 确立(established) → 核心(core) → 消解(dissolved)
| 阶段 | 置信度 | 检索行为 |
|---|---|---|
| 趋势(Trend) | 由时间窗口管理 | 不参与 |
| 候选(Candidate) | < 0.3 | 不参与 |
| 萌发(Emerging) | 0.3 – 0.6 | 低权重 |
| 确立(Established) | 0.6 – 0.85 | 正常权重 |
| 核心(Core) | > 0.85 | 高权重,优先返回 |
| 消解(Dissolved) | — | 归档,排除 |
特质生命周期阶段演进
趋势 Trend
30 天观察窗口
候选 Candidate
置信度 < 0.3
萌发 Emerging
置信度 0.3 – 0.6,低权重检索
确立 Established
置信度 0.6 – 0.85,正常权重
核心 Core
置信度 > 0.85,优先返回
消解 Dissolved
归档,排除检索
趋势阶段尤其值得关注。它捕捉"近期倾向"——在短时间窗口(默认 30 天)内观察到的、尚未证明持久性的模式。比如"用户最近频繁讨论换工作"会被赋予一个时间窗口。如果在窗口内被 2 次以上的反思周期强化,它就会晋升为候选;如果窗口过期仍未被强化,趋势会自动消解。
这个机制取代了我们原来的 insight 记忆类型。我们意识到洞察本质上就是早期阶段的特质:它们要么固化为稳定模式,要么逐渐淡去。将它们建模为特质生命周期的一个阶段,而非独立类型,消除了跨类型提升逻辑,大大简化了整个流程。
证据质量:并非所有信号都等价
反思引擎在评估特质的证据时,会分配四个质量等级:
| 等级 | 类型 | 强化因子 | 示例 |
|---|---|---|---|
| A | 跨情境一致性 | 0.25 | 在工作和个人情境中都观察到相同模式 |
| B | 显式陈述 | 0.20 | 用户说"我是个急性子" |
| C | 跨对话行为 | 0.15 | 不同对话中出现相同模式 |
| D | 同对话 / 隐式推断 | 0.05 | 从单次对话的行为中推断 |
证据质量等级与强化因子
A 级证据的强化效果是 D 级的 5 倍
置信度更新公式是刻意设计为非对称的——建立置信度是渐进的,但矛盾证据打击更大:
- 强化:
new = old + (1 - old) * factor(收益递减) - 矛盾:
new = old * (1 - contradiction_factor)(乘法惩罚)
置信度更新的非对称性
强化是渐进的(收益递减),矛盾打击是乘法的(快速下降)
这意味着一个特质需要持续的高质量证据才能达到核心状态,但几条强有力的矛盾证据就能迅速将其拉回。
自维护记忆质量
大多数记忆系统只会增长。neuromem 通过四种机制主动维护质量:
-
带间隔效应的时间衰减 — 未被强化的特质会逐步失去置信度。但多次强化的特质衰减更慢,这镜像了心理学中的间隔效应(经 MemoryBank, AAAI 2024 验证)。有效衰减率为
base_lambda / (1 + 0.1 * reinforcement_count),因此被强化 10 次的行为特质其衰减速率仅为新形成特质的一半。 -
矛盾触发的反思 — 当矛盾证据超过某特质总证据的 30% 时,系统会触发专项反思周期。LLM 会审查所有支持和矛盾证据,决定是修正特质、拆分为情境相关的变体,还是彻底消解。
-
趋势过期 — 未在时间窗口内被强化的早期趋势会自动消解,防止推测性模式污染记忆。
-
阶段门控检索 — 只有达到
emerging(萌发)阶段及以上的特质才参与检索。趋势和候选对检索管道不可见,确保未验证的模式永远不会影响 Agent 的行为。
为什么这很重要
"用嵌入向量存储文本"和"建模一个人的记忆"之间有着巨大的鸿沟。扁平的向量存储无法区分一次性提及和深层偏好。它无法优雅地处理矛盾。它不会遗忘。
neuromem 的架构通过扎根于数十年认知科学研究的机制来弥合这些差距。最终的结果是一个随时间越来越精准的记忆系统——不是通过积累更多数据,而是通过证据加权反思、情境感知和有原则的遗忘来持续优化所知。
我们相信这才是 AI 记忆应有的样子:不是数据库,而是认知系统。