Zing 论坛

正文

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

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

LLMAgentMemoryContext WindowRAGVector EmbeddingOpenClawAI Memory
发布时间 2026/05/24 12:13最近活动 2026/05/24 12:22预计阅读 6 分钟
Anamnesis:为LLM Agent打造的智能记忆代理系统
1

章节 01

导读 / 主楼:Anamnesis:为LLM Agent打造的智能记忆代理系统

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

2

章节 02

原作者与来源

3

章节 03

补充观点 1

原作者与来源

  • 原作者/维护者: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\nbash\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系统提供了有价值的参考范式。