Memory 模块白皮书 —— 理论基础与设计取舍

本文档是 025-the-memory-system.md 的理论补丁,集中沉淀 Memory 模块的认知科学/信息检索/Agent 系统三类引文,附跨框架对比矩阵。日常使用请直接参考 memory-basics


#1. 设计哲学:从认知科学到 Agent 工程

#1.1 类型分层:Episodic / Semantic / Procedural

Tulving 1972 年的经典二分法(Episodic / Semantic)[1],经 Squire 1987 等后续扩展为包含 Procedural 的多分类体系,是 Phase 4 类型分层的理论锚点:

  • Episodic:情景记忆(发生在何时何地)
  • Semantic:语义记忆(事实与概念)
  • Procedural:程序性记忆(如何完成任务)

我们在 Phase 4 将业界普遍使用但缺乏差异化的 memory_type 字段从「枚举占位」演进到「差异化机制」:每类记忆有独立的衰减率(_MEMORY_TYPE_DECAY_RATES)、重要性权重(_MEMORY_TYPE_IMPORTANCE_WEIGHT)和检索路由偏好。

#1.2 互补学习系统(CLS):长期巩固 + 工作记忆

McClelland 等 1995 年的 CLS 理论[2]将「快速情景学习」(海马)与「慢速语义巩固」(皮层)解耦。Phase 4 引入的 Core Memory BlockEpisodic 记忆形成对偶:

  • Core Block 充当工作记忆 + 显性常驻摘要(人为/Agent 主控、不衰减)
  • Episodic Memory 持续涌入并按 Ebbinghaus 衰减[8],重要的内容由 Summarizer 自动凝练或被 Self-edit 工具升格到 Core Block

#1.3 ACT-R 与基础水平激活

Anderson 等的 ACT-R[9]提供了 importance_score 五因子公式的理论基础(base-level activation 方程):

Bi=ln ⁣(j=1ntjd)B_i = \ln\!\left(\sum_{j=1}^{n}{t_j^{-d}}\right)

其中 (t_j) 是历次访问距今的时间,(d) 是衰减常数。我们的实现见 engine/governance/memory.py calculate_importance_score,扩展了类型权重 + 时效性加成。

#1.4 AGM 信念修正:冲突消解的形式基础

Alchourrón-Gärdenfors-Makinson 框架[10]定义了 contraction(移除)/ revision(修正)/ expansion(扩展)三种信念集变换。Phase 3 的冲突消解(engine/governance/conflict_resolver.py)正是 revision 的工程化:当新事实与现有事实矛盾,按置信度差择一并保留 supersede 链。


#2. Phase 4 增强的理论支撑速览

Phase 4 增强理论 / 论文工程参考
类型分层差异化Tulving 1972[1];CLS[2]LangGraph Memory(Semantic/Episodic/Procedural)
Core Memory BlockMemGPT[3] Hierarchical MemoryLetta MemGPT 的 core / archival 三层
Self-editing Memory ToolsMemGPT[3];Reflexion[4]Letta core_memory_replace / archival_insert
LoCoMo / LongMemEval 评测Maharana 2024[5];Wu 2024[6];mem0[7]mem0 论文 baseline 对比
Query Intent 路由Tulving 三分法[1]自研启发式
Episodic 快衰减 / Semantic 慢衰减Ebbinghaus[8];FadeMem[21]mem0 多衰减率
KG 双向同步HippoRAG[11];GraphRAG[12]HippoRAG 神经符号检索

#3. 跨框架对比矩阵

维度mem0cogneeLangGraphLetta (MemGPT)Google ADKNegentropy(本项目)
写入策略早期 LLM ADD/UPDATE/DELETE/NOOP,新版退化为 ADD-only + 检索期排序DataPoint 抽象 + Cognify 管线(chunk→entity→graph→memify)显式 namespace + JSON Patch updateself-editing tools 主控add_session_to_memory 显式归档巩固管线 + Phase 4 self-edit 工具,二者并存
检索策略Hybrid search(vector + BM25 + recency)GraphRAG-style 多跳namespace 内向量检索recall + archival 检索分层RAG 风 + LoadMemory toolHybrid (BM25+pgvector) + Query-Aware + 类型加权 + 关联多跳
记忆分层user / agent / session / appDataPoint type systemSemantic / Episodic / ProceduralCore / Recall / ArchivalSession vs MemoryCore / Episodic / Semantic / Procedural / Preference / Fact
衰减机制retention_score + 用户访问频率默认无(依赖 LLM 重判定)默认无(用户管理)由 Agent 自主 archive多因子 Ebbinghaus + 类型差异化 λ
评测指标LoCoMo + LongMemEval baseline无标准 benchmarkLoCoMo-mini + LongMemEval-mini(CI 触发)
KG 集成可选 Neo4jDataPoint → graph 一等公民PostgreSQL 一等公民 + association.entity 双向同步
隐私治理PII 占位 + audit_log + idempotency
可观测性简易search_level / score_type / 检索反馈闭环 + Rocchio

数据采集时间:2026-05;mem0/cognee 处于活跃迭代,能力可能再演进。


#4. Phase 5 四方向落地记录(2026-05 启动)

Phase 5 聚焦白皮书既定的四个高/中优先级缺口。这些特性自 Phase 8(§4.10)起默认启用、开箱即用(各带运行时安全闸,可一键关闭),工程契约见 025-the-memory-system.md §10 与 memory-basics "高级特性(默认开箱即用)"。

#4.1 F1 — HippoRAG 神经符号检索(PPR-Boosted Hybrid)

原理:海马体记忆索引启发的神经符号检索[11]——将 query 经 entity linking 锚定到知识图谱(KG)种子节点,沿语义/关联/时序边做 Personalized PageRank[15]加权扩散,把图遍历得到的高激活记忆作为新通道与现有 Hybrid(BM25 + pgvector)结果用 Reciprocal Rank Fusion (RRF)[16]融合。

工程参考:HippoRAG 官方实现复用 NetworkX;本项目复用 Apache AGE 的 Cypher 直接做 BFS 加权扩散,不引入新依赖。集成点为 engine/adapters/postgres/memory_service.py:search_memory()association_service.py:expand_via_ppr(),作为现有 4 级回退之上的"第 5 通道"。

状态:✅ 已交付(默认 MEMORY_HIPPORAG_ENABLED=false,超时 / 0 种子 / KG 数据不足三种降级路径)。

#4.2 F2 — Reflexion Episodic Replay(失败反思 + Few-Shot 召回)

原理:Reflexion 范式[4]把语言模型的失败反馈转化为"语言形式的强化信号"——本项目复用现有 RetrievalTracker 的 helpful/irrelevant/harmful 反馈通道:当 outcome ∈ {irrelevant, harmful} 时异步生成反思(LLM + Pattern 兜底),以 episodic 子类型(metadata.subtype='reflection')回写记忆库;下次同类查询(Query Intent ∈ {procedural, episodic})自动 few-shot 注入 ContextAssembler。

工程参考:复用 LLMFactExtractor 的 retry + JSON output + pattern fallback 模式;不改 schema(仅扩展 metadata);新增 reflection_dedupsha1(query) + 7 天内 cosine ≥ 0.92 跳过)防止反思过载。

状态:✅ 已交付(默认 MEMORY_REFLECTION_ENABLED=false,dedup + 单用户日上限防过载,LLM 失败 pattern 兜底)。

#4.3 F3 — Memify 后处理插件管线(Consolidation Plugin Pipeline)

原理:cognee Memify[13]把"事实抽取 → 结构化 → 推理"解耦为可组合的 cognify-step。本项目把 add_session_to_memory 中硬编码的 "fact_extract → summarize" 两步重构为 ConsolidationPipeline + ConsolidationStep 协议(GoF Strategy + Chain of Responsibility[17]),支持 serial / parallel / fail_tolerant 三策略,新增 step(实体规范化、主题聚类、PII Scrub)通过注册即可生效。

工程参考:默认行为不回归——老的 fact_extract / summarize 包装为内置 step,按原顺序执行;feature flag memory.consolidation.legacy=true 一键回退。

状态:✅ 已交付(默认 policy=serialsteps=[fact_extract, auto_link],与 Phase 4 行为等价;legacy=true 一键回退)。

#4.4 F4 — Presidio 生产级 PII(合规级隐私治理)

原理:将 Phase 4 的 regex 占位升级为 Microsoft Presidio[18]双引擎(NER + Pattern + Context 三段融合),覆盖 NIST SP 800-122[19]定义的 identifying / linkable PII 类别;写入路径接入 mark / mask / anonymize 三策略;检索路径增加 PIIGatekeeper 按 ACL 决定低权限用户是否看到 anonymized 副本,落实 GDPR Art. 17 / Art. 25[20]合规闭环。

工程参考PIIDetectorBase 抽象 + RegexPIIDetector(保留)+ PresidioPIIDetector(新)适配器模式;Presidio 作为 [project.optional-dependencies] pii-presidio 可选依赖;导入失败 factory 自动 fallback regex。

状态:✅ 已交付(默认 memory.pii.engine=regex,Presidio 作为 [project.optional-dependencies] pii-presidio 可选依赖;导入失败 factory 自动 fallback)。

#4.5 路线表(Phase 5 + 后续)

方向价值复杂度论文 / 资源状态
F1 HippoRAG 神经符号检索(PPR on KG)KG ↔ Memory 联合检索,长尾召回中-大[11], [15], [16]✅ 已交付
F2 Reflexion Episodic Replay失败反思 → few-shot 召回小-中[4]✅ 已交付
F3 Memify 后处理插件管线巩固后多 LLM 任务可组合(cognee 风格)[13], [17]✅ 已交付
F4 Presidio PII 引擎合规级 PII 检测/掩码[18], [19], [20]✅ 已交付
F5 Rocchio 相关性反馈闭环反馈驱动排序优化 + PRF 查询扩展小-中[22], [23]✅ 已交付
F6 巩固管线 Step 补全6-step 完整管线(聚类/去重/规范化)[3], [13]✅ 已交付
LongMem 全量评测1000+ 样本规模化对比[14]📋 未启动
英文版本 user-guide国际化📋 未启动

✅ 已交付:契约已固化(配置项、API 签名、降级策略),代码实施迭代式推进。

#4.6 F5 — Rocchio 相关性反馈闭环(Phase 6 G1)

原理:Rocchio (1971)[22]相关性反馈将累积的 helpful/irrelevant 反馈转化为 per-memory 排序权重。权重公式 weight = 1.0 + β·helpful_ratio - γ·irrelevant_ratio,clamp 到 [0.5, 2.0] 防止极端值。周期性聚合任务从 memory_retrieval_logs 表统计反馈,写入 memories.metadata_.relevance_weight;搜索路径在 intent rerank 后乘以该权重。

此外引入 Pseudo-Relevance Feedback (PRF)[23]查询扩展:取 top-K 初检结果的 embedding 质心,与原始查询向量按 prf_alpha 融合后重跑向量检索。

工程参考:mem0 使用访问频率排序;Elasticsearch LTR 插件。

状态:✅ 已交付(默认 NE_MEMORY_RELEVANCE__ENABLED=false,权重由异步聚合任务预计算,搜索路径仅乘法操作 <1ms 开销)。

#4.7 F6 — 巩固管线 Step 补全(Phase 6 G2)

原理:CLS 理论[3]要求碎片记忆经多阶段提炼。Phase 5 F3 仅注册 2 step(fact_extract + auto_link),Phase 6 补全为 6 step 完整管线:

  1. fact_extract — LLM/Pattern 事实提取(已有)
  2. entity_normalization — 实体规范化(已有,Phase 6 注册到默认列表)
  3. topic_cluster — 基于 pgvector 余弦距离的 single-linkage 聚类,生成主题标签写入 metadata_.topics(新增)
  4. dedup_merge — 近重复合并(cosine >= 0.90),保留高 retention 版本,soft-delete 低分版本,内容追加到 metadata_.merged_from(新增)
  5. summarize — 用户画像摘要(已有,Phase 6 注册到默认列表)
  6. auto_link — 自动关联建立(已有)

工程参考:cognee Cognify 多步管线;Google ADK checkpointing。

状态:✅ 已交付(默认 policy 升级为 fail_tolerant,新 step 失败不阻塞主流程;legacy=true 一键回退 Phase 4 行为)。

#4.8 Phase 6 G3/G4 — 测试覆盖 + 可观测性

G3 测试覆盖:从 ~62 个测试扩展到 ~420+,覆盖率 ~15% → ~19%(engine 模块)。新增覆盖:RRF 融合、巩固管线辅助方法、去重检测、重要性/Retention 评分、Rocchio 权重、PipelineContext 协议。

G4 可观测性:新增 GET /memory/health(无需鉴权)和 GET /memory/metrics(需 admin)端点。指标基于 SRE 四大黄金信号[24]从现有表聚合,无 schema 变更。配置:NE_MEMORY_OBSERVABILITY__HEALTH_ENABLED=trueNE_MEMORY_OBSERVABILITY__METRICS_ENABLED=true

#4.9 Phase 7: 闭环验证 + 冲突桥接 + Rocchio 自动化

Gap变更理论基础
G1Consolidation Pipeline 3 个核心 Step(EntityNormalization / TopicCluster / DedupMerge)补全单元测试,覆盖率 ≥ 80%CLS (McClelland 1995)[2] 巩固正确性验证
G2DedupMergeStep ↔ ConflictResolver 桥接:近重复合并前检测事实冲突,偏好反转等场景通过 AGM 信念修正显式解决AGM (Alchourrón 1985)[10] + Doyle TMS (1979)
G3Rocchio 重加权自动化调度:新增 reweight_relevance Job,每 6h 聚合反馈并更新 metadata_.relevance_weightRocchio (1971)[22] 反馈闭环
G4端到端集成测试:全 Pipeline 巩固、去重、Rocchio 反馈、审计追踪"Verification Before Done" 工程准则

#4.10 Phase 8: 开箱即用化 + 接线缺陷修复(2026-05)

承接 Phase 5-7「实现完成但默认关闭」的现状,本轮把全部高级特性翻为默认启用(开箱即用),并修复验证中暴露的多处「实现完成但未真正生效」缺陷。运行时事实源是 config.default.yaml(YAML 优先级高于 Python field 默认,见 config/_base.py)——这正是此前 6-step Memify「代码就绪却被 YAML 锁在 2 步」的根因。

默认状态翻转config.default.yaml):F1 HippoRAG / F2 Reflexion / F4 Presidio / Rocchio 读侧 + Memify 6-step 全部 enabled: true;各自保留运行时安全闸(HippoRAG min_kg_associations 数据闸、Reflexion max_inflight_tasks 并发上限、Presidio allow_engine_fallback 缺模型降级),既开箱即用又自保护。

接线缺陷修复(详见 issue.md ISSUE-098~101):

缺陷根因修复
Hybrid 检索长期静默回退纯向量hybrid_search() SQL 函数从未迁移(仅在 schema 文件)+ :embedding::vector 被 SQLAlchemy 误解析报语法错迁移 0047 创建函数 + search_vector/GIN;改 CAST(:embedding AS vector(1536))
F4 Presidio 在热路径是死代码写侧硬编码 legacy regex detect_pii,绕过 engine 工厂;PIIGatekeeper 零调用点写侧改 detect_pii_for_storage(工厂引擎,落 pii_spans);检索出口接 PIIGatekeeper
Presidio 中文分析失效AnalyzerEngine 未装配 zh NLP 引擎,CN 识别器全失效_build_nlp_engine 按语言显式映射 spaCy 模型(en→lg、zh→sm)+ 优雅降级
测试隔离污染test_runner_artifacts 模块级永久替换 sys.modules 工厂改「临时 mock + try/finally 还原」

依赖默认化:presidio-analyzer/anonymizer + spaCy 从可选 extra 提升为主依赖;新增 negentropy bootstrap-pii-models CLI 下载 NER 模型(独立下载产物,缺失时按 fallback 降级 regex,/memory/health 可观测实际引擎)。

验证:全 Memory 测试套件(unit + integration,单会话)667+ 例绿;实机经 add_session_to_memory 跑通 6-step Memify(statuses=[success×6],真实 LLM)+ Presidio 检出 person/email/CN-mobile + Hybrid 检索生效;浏览器逐页核对 Timeline/Facts/Conflicts/Audit/Scheduler。

#4.11 未来工作:业界前沿的演进方向

本项目当前架构(PostgreSQL 单栈 + 类型分层 Ebbinghaus 衰减 + 6-step Memify + HippoRAG PPR)已覆盖生产记忆系统的核心能力。结合 2025–2026 年最新文献,以下方向可作为后续迭代的循证参考(均为前瞻性 inspiration,非当前实现):

  • 多图正交检索:MAGMA[25]将记忆跨语义/时序/因果/实体四张正交图表征,把检索建模为意图感知的策略化遍历,解耦表征与检索逻辑。本项目的关联网络(memory_associations)与 KG 已具雏形,可演进为显式多图视图选择。
  • 段落级 PPR 整合:HippoRAG 2[26]在原 HippoRAG 基础上引入更深的 passage 整合与在线 LLM 相关性校验,关联记忆任务提升 7%。本项目 F1 当前为实体级 seeding,可借鉴其 passage 整合提升 RRF 融合质量。
  • 检索期时序推理:mem0[27]在检索排序中显式引入时序信号(区分"当前状态 vs 历史事件 vs 未来计划")。本项目当前依赖 created_at 排序,可在评分公式中补充时序维度。
  • 睡眠启发的巩固遗忘:SleepGate[28]以"睡眠微周期"对 KV cache 做冲突感知标记、选择性遗忘与摘要合并,缓解 proactive interference。本项目的 cleanup_low_value_memories 当前为纯阈值删除,可借鉴 LLM 引导的融合决策替代硬删除。

#5. 引文清单(IEEE)

[1] E. Tulving, "Episodic and semantic memory," in Organization of Memory, E. Tulving and W. Donaldson, Eds. New York: Academic Press, 1972, pp. 381–403.

[2] J. L. McClelland, B. L. McNaughton, and R. C. O'Reilly, "Why there are complementary learning systems in the hippocampus and neocortex: Insights from the successes and failures of connectionist models of learning and memory," Psychological Review, vol. 102, no. 3, pp. 419–457, 1995.

[3] C. Packer et al., "MemGPT: Towards LLMs as Operating Systems," arXiv:2310.08560, 2023.

[4] S. Yao et al., "Reflexion: Language agents with verbal reinforcement learning," Adv. Neural Inf. Process. Syst., vol. 36, pp. 8634–8652, 2023.

[5] A. Maharana et al., "Evaluating very long-term conversational memory of LLM agents," in Proc. ACL, 2024.

[6] D. Wu et al., "LongMemEval: Benchmarking chat assistants on long-term memory," arXiv:2410.10813, 2024.

[7] T. Chhikara et al., "Mem0: Building production-ready AI agents with scalable long-term memory," arXiv:2504.19413, 2025.

[8] H. Ebbinghaus, Memory: A Contribution to Experimental Psychology. New York: Teachers College, Columbia University, 1885 (Ruger and Bussenius transl., 1913).

[9] J. R. Anderson et al., "An integrated theory of the mind," Psychological Review, vol. 111, no. 4, pp. 1036–1060, 2004.

[10] C. E. Alchourrón, P. Gärdenfors, and D. Makinson, "On the logic of theory change: Partial meet contraction and revision functions," J. Symbolic Logic, vol. 50, no. 2, pp. 510–530, 1985.

[11] B. Jiménez-Gutiérrez et al., "HippoRAG: Neurobiologically inspired long-term memory for large language models," in Proc. NeurIPS, 2024.

[12] D. Edge et al., "From local to global: A graph RAG approach to query-focused summarization," arXiv:2404.16130, 2024.

[13] cognee documentation, "Memify post-processing pipeline," https://docs.cognee.ai/core-concepts/main-operations/memify (accessed 2026-05).

[14] J. Wang et al., "LongMem: Augmenting language models with long-term memory," in Proc. NeurIPS, vol. 36, 2023.

[15] L. Page, S. Brin, R. Motwani, and T. Winograd, "The PageRank citation ranking: Bringing order to the web," Stanford Univ., Tech. Rep. SIDL-WP-1999-0120, Nov. 1999.

[16] G. V. Cormack, C. L. A. Clarke, and S. Buettcher, "Reciprocal rank fusion outperforms Condorcet and individual rank learning methods," in Proc. 32nd Int. ACM SIGIR Conf. Res. Develop. Inf. Retr., 2009, pp. 758–759.

[17] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA, USA: Addison-Wesley, 1994.

[18] O. Mendels, C. Peled, N. Vaisman Levy, T. Rosenthal, L. Lahiani, and others, "Microsoft Presidio: Context-aware, pluggable and customizable data protection service," https://microsoft.github.io/presidio/ (accessed 2026-05).

[19] E. McCallister, T. Grance, and K. Scarfone, "Guide to protecting the confidentiality of personally identifiable information (PII)," NIST Special Publication 800-122, Apr. 2010.

[20] European Parliament and Council, "Regulation (EU) 2016/679 (General Data Protection Regulation), Articles 17 and 25," Official Journal of the European Union, L 119, pp. 1–88, May 2016.

[21] L. Wei, X. Peng, D. Xu, N. Xie, and B. Wang, "FadeMem: Biologically-Inspired Forgetting for Efficient Agent Memory," arXiv:2601.18642, 2026.

[22] J. J. Rocchio, "Relevance feedback in information retrieval," in The SMART Retrieval System, Prentice-Hall, 1971, pp. 313-323.

[23] Y. Lv and C. Zhai, "A comparative study of methods for estimating query language models," in Proc. 32nd Int. ACM SIGIR Conf., 2009, pp. 289-296.

[24] B. Beyer, C. Jones, J. Petoff, and N. R. Murphy, Site Reliability Engineering: How Google Runs Production Systems. O'Reilly, 2016.

[25] D. Jiang et al., "MAGMA: A multi-graph based agentic memory architecture for AI agents," in Proc. ACL, 2026. (arXiv:2601.03236)

[26] B. J. Gutiérrez, Y. Shu, W. Qi, S. Zhou, and Y. Su, "From RAG to memory: Non-parametric continual learning for large language models," in Proc. 42nd Int. Conf. Machine Learning (ICML), PMLR 267:21497–21515, 2025. (HippoRAG 2)

[27] P. Chhikara, D. Khant, S. Aryan, T. Singh, and D. Yadav, "Mem0: Building production-ready AI agents with scalable long-term memory," in Proc. ECAI, 2025. (arXiv:2504.19413)

[28] Y. Xie, "Learning to forget: Sleep-inspired memory consolidation for resolving proactive interference in large language models," arXiv:2603.14517, Mar. 2026. (SleepGate)


#6. 附录:Phase 4 评测基线快照

首次 BM25 baseline(2026-05-02 跑出)见 .temp/eval/baseline_*.md。CI 触发参考 memory-eval workflow

DatasetNMRR@10NDCG@10Hit@10F1
LoCoMo-mini300.9330.9471.0000.216
LongMemEval-mini300.8670.9021.0000.257

这是 算法层(BM25-only)基线;后续与 PostgresMemoryService 的 Hybrid 对比应有 5%+ 提升。