# Anamnesis：为LLM Agent打造的智能记忆代理系统

> Anamnesis是一个受EverMemOS启发的自组织记忆代理，通过分层记忆架构和智能检索机制，为LLM Agent提供跨会话的持久化记忆能力。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-24T04:13:57.000Z
- 最近活动: 2026-05-24T04:22:47.797Z
- 热度: 114.8
- 关键词: LLM, Agent, Memory, Context Window, RAG, Vector Embedding, OpenClaw, AI Memory
- 页面链接: https://www.zingnex.cn/forum/thread/anamnesis-llm-agent
- Canonical: https://www.zingnex.cn/forum/thread/anamnesis-llm-agent
- Markdown 来源: ingested_event

---

## 原作者与来源

- 原作者/维护者：Fleabag515
- 来源平台：github
- 原始标题：anamnesis
- 原始链接：https://github.com/Fleabag515/anamnesis
- 来源发布时间/更新时间：2026-05-24T04:13:57Z

## 原作者与来源\n\n- 原作者/维护者：Fleabag515\n- 来源平台：GitHub\n- 原始标题：anamnesis\n- 原始链接：https://github.com/Fleabag515/anamnesis\n- 来源发布时间/更新时间：2026-05-24T04:13:57Z\n\n## 引言：LLM记忆困境与破局之道\n\n当前主流的大语言模型（LLM）在推理时面临着根本性的记忆限制——上下文窗口（Context Window）的硬性约束。无论是32K、128K还是更长的上下文长度，终究存在一个上限。当对话或任务持续进行，早期的信息会被无情地"遗忘"，这种基于滑动窗口的简单截断机制，使得Agent难以在长时间、多会话的场景中保持连贯性和对历史信息的深度利用。\n\nAnamnesis（希腊语：ἀνάμνησις，意为"深层回忆"）正是针对这一痛点提出的解决方案。它并非试图无限扩展模型的上下文窗口，而是构建了一个智能的记忆代理层，让LLM能够像人类一样，拥有选择性回忆和结构化记忆的能力。\n\n## 核心架构：分层记忆系统\n\nAnamnesis采用了一种层次化的记忆架构，将原始交互数据逐步提炼为更高层次的知识结构：\n\n```\nOpenClaw ──→ Anamnesis :8084 ──→ llama-server :8083\n                 │\n                 ├── turns       (原始交互记录，SQLite存储)\n                 ├── memcells    (LLM提取的原子化事实)\n                 ├── memscenes   (主题聚类，自组织)\n                 └── decay       (基于分数衰减的智能遗忘)\n```\n\n这种四层架构的设计哲学源于认知科学对人类记忆的理解：原始经历（turns）经过加工形成语义单元（memcells），相关语义单元聚合成主题场景（memscenes），而遗忘机制（decay）则确保记忆系统的健康运转。\n\n## 记忆流水线：从原始交互到结构化知识\n\nAnamnesis的记忆处理流水线是一个持续运行的后台系统，确保记忆库始终保持最新且结构优化：\n\n```\nTurn received\n    │\n    ├─→ Store raw turn + embedding\n    │\n    └─→ [background] MemCell extraction (gemma4:e2b)\n              │\n              └─→ [periodic] MemScene consolidation\n                      │\n                      └─→ Decay scoring + pruning\n```\n\n当新的对话轮次（Turn）到达时，系统首先存储原始记录并计算其向量嵌入。随后，后台进程使用轻量级模型（默认gemma4:e2b）从对话中提取原子化的事实单元（MemCell）。这些MemCell定期被聚类成主题场景（MemScene），同时系统会根据时间衰减和召回频率对记忆单元进行评分和修剪。\n\n## 智能检索：超越简单的滑动窗口\n\n与传统滑动窗口机制相比，Anamnesis的检索策略更加智能和精准：\n\n| 特性 | 滑动窗口 | Anamnesis |\n|---|---|---|\n| 旧轮次处理 | 永久丢弃 | 永久存储，按需检索 |\n| 检索依据 | 仅按时间 | 场景引导的余弦相似度 |\n| 记忆结构 | 扁平 | 分层（turn → cell → scene） |\n| 遗忘机制 | 硬性截断 | 基于年龄和召回频率的软衰减 |\n| 后台处理 | 无 | MemCell提取 + 场景整合 |\n\n检索流程首先计算查询的向量嵌入，然后对所有MemScene进行余弦相似度评分。得分最高的场景会被展开为包含的原始轮次ID，再综合考虑相似度和衰减权重进行最终排序。这种机制确保了即使在超长对话中，系统也能精准召回最相关的历史信息。\n\n## 上下文窗口的精妙设计\n\nAnamnesis构建的最终上下文窗口由三部分组成：系统提示（system）、基于场景检索的相关历史轮次（rotating relevant turns），以及最近的8轮 verbatim 记录。这种设计既保证了Agent能够获取经过提炼的历史知识，又确保了对最新对话的完整感知。\n\n配置文件中提供了丰富的参数调节选项：\n\n- `context.tokenBudget`：总Token预算（默认65536）\n- `context.recencyTurns`：始终保留在上下文中的最近轮次（默认8）\n- `context.rotatingSlots`：通过场景检索添加的旧轮次数量（默认6）\n- `memory.sceneClusterThreshold`：场景聚类的余弦相似度阈值（默认0.72）\n- `memory.decayPruneThreshold`：记忆单元修剪的分数阈值（默认0.05）\n\n## 技术实现与部署\n\nAnamnesis采用Node.js开发，通过HTTP代理模式与OpenClaw集成。安装过程非常简单：\n\n```bash\nsudo bash install.sh\n```\n\n安装完成后，只需将OpenClaw的`llamaserver.baseUrl`指向`http://127.0.0.1:8084/v1`即可。系统内置SQLite数据库用于持久化存储，并通过Ollama调用轻量级模型进行MemCell提取。\n\n系统还提供了状态监控端点：\n\n```\nGET http://127.0.0.1:8084/anamnesis/status\n→ { \"status\": \"ok\", \"turns\": 142, \"cells\": 831, \"scenes\": 24 }\n```\n\n## 未来展望\n\nAnamnesis项目仍在积极开发中，路线图包括：流式响应存储、前瞻信号（预测未来上下文需求）、跨会话场景合并、OpenClaw插件封装，以及用于浏览记忆图谱的Web UI。\n\n## 结语\n\nAnamnesis代表了LLM Agent记忆管理的一个重要方向——与其追求无限的上下文窗口，不如构建智能的记忆代理层。通过分层存储、语义聚类和智能检索，它让LLM真正拥有了"回忆"的能力。这种架构设计不仅适用于对话Agent，也为任何需要长期记忆和知识积累的AI系统提供了有价值的参考范式。
