--- title: "Atlas Agent 记忆架构:三索引 + 混合召回 + 写后提炼" author: "Atlas Memory System (基于 noamschwartz/atlas-memory-demo)" source: "微信公众号" date: "2026" type: article tags: ["agent-memory", "elasticsearch", "hybrid-retrieval", "consolidation", "bias"] --- # Atlas Agent 记忆系统架构全解析 > 深度工程实践:Agent 记忆不是 KV 存储问题,是多索引信息检索问题。 ## 核心论点 `chat_history.append()` 不是记忆系统——那是日志文件。真正的挑战:在三索引(episodic/semantic/procedural)+ catalog 四种不同生命周期的信息中,用对的衰减曲线和互补的检索通道,在查询瞬间找到对的那几条。 ## Atlas 架构 ### 三索引 + 公共 | 索引 | 内容 | 衰减源 | 写入频率 | |------|------|--------|---------| | episodic | 原始消息+时间戳 | timestamp | 每回合 | | semantic | 提炼后稳定事实 | last_used_at | consolidation | | procedural | 多步操作流程 | 豁免(1.0) | consolidation | | catalog | 公共共享知识 | timestamp | 手动 | ### 检索管线 1. Verbatim Pre-Recall — 用户原话,不经 LLM 改写 2. BM25 + Dense 双通路并行 → RRF 融合 (rank_constant=30) 3. Cross-encoder 重排序 (Jina v2, top-80→top-K) 4. Reranker 失败降级为 RRF 顺序 ### Ablation 数据 - **Full**: R@10=0.89 - **Dense-only**: 0.845 - **BM25-only**: 0.708 - **No-Reranker**: -0.238 ### 五条代码链路 - write_memory (refresh=True 保证同轮可见) - recall_memory (混合检索+reranker) - Verbatim Pre-Recall (绕过 LLM 改写层) - Consolidation (episodic→semantic/procedural) - Soft-Supersession (非破坏矛盾处理) ## 三个通用设计原则 1. **衰减曲线是领域性决策**—先定义信息有效周期,再定衰减参数 2. **BM25+vector 互补**—BM25 抓精确 token,dense 抓语义意图,不可互相替代 3. **记忆需要后台提炼+矛盾处理**—consolidation 转化事件为事实,supersession 提供非破坏性更新 ## 与 GBrain 的对比 | 维度 | Atlas | GBrain | |------|-------|--------| | 存储 | ES 搜索引擎 | Markdown+Git | | 多租户 | ES DLS (集群层) | 应用层 auth | | 矛盾处理 | Soft-Supersession 链 | Git 版本历史 | | 衰减 | Per-index gauss | 无显式衰减 | | 调试透明度 | 仅通过 API | 直接打开文件 |