所谓做网站就这么几步,国家高新区网站建设,电脑版淘宝网页,建设网站个人简介范文前文#xff0c;分享了【小智Pro】系列文章#xff1a; 小智Pro#xff1a;智能闹钟提醒 云端同步#xff0c;端云协同方案 小智Pro#xff1a;在线点歌歌词同步#xff0c;支持打断和搜索#xff0c;端云协同方案 小智Pro#xff1a;给小智装上知识外挂&quo…前文分享了【小智Pro】系列文章小智Pro智能闹钟提醒 云端同步端云协同方案小智Pro在线点歌歌词同步支持打断和搜索端云协同方案小智Pro给小智装上知识外挂从此告别一问三不知小智Pro接入 Dify 知识库告别重复建库零门槛为小智接入MCP小智Pro焕新上线MCP广场自定义服务我们知道LLM天生是“健忘”的。每次与它交互模型关注的只有一个“上下文窗口”。因此为了让小智更懂你需要接入长期记忆今日分享聊聊长期记忆的技术方案开源方案梳理和评测小智Pro如何接入1. 长期记忆的技术方案当前大模型普遍采用 Transformer 架构其记忆核心在自注意力机制也就是上下文窗口。但窗口长度是有限的文本长度超过窗口限制信息就会被截断。怎么解决学术界主要有两类技术方案基于外挂的记忆本质上是为大模型配备了一个外部数据库存储和用户相关的历史记录。当用户提问时先去库里检索再将检索结果喂给AI。基于模型参数的记忆本质是将记忆通过训练内化成模型参数的一部分DeepSeek今年年初的论文就是聚焦这一点。其实业界目前在用的主要还是第一种底层还是 RAG检索增强生成那一套。但相比 RAG长期记忆还需要解决哪些内容需要保存什么时候保存怎么保存如何召回如何更新、合并更确切地说长期记忆是 Agent 中至关重要的上下文引擎2. 长期记忆的开源方案梳理目前大部分方案均提供自部署方案和云端API大家可按需取用。2.1 Mem0Mem0 应该是开源最早、目前最广为人知的长期记忆方案。Mem0 支持向量存储与图存储两种模式向量存储默认模式用于存储语义向量适合用户偏好、事件摘要等内容。图谱存储增强版提供用于存储实体及关系适合关系、结构等内容。云端API地址https://app.mem0.ai/开源地址https://github.com/mem0ai/mem0不同付费方案有检索次数限制2.2 CogneeCognee 底层采用三重存储架构相比 Mem0除了向量存储图谱存储还新增了本体体系存储支持以特定序列化格式如 XML描述领域的知识结构、语义关系与约束。开源地址https://github.com/topoteretes/cogneeCognee 支持对话文本、图片、音频等 30 多种数据输入知识抽取、管道、存储层等全部开源本地自托管2.3 MemOS国内团队开源优势在于毫秒级响应。云端API地址https://memos-pre.openmem.net/cn/开源地址https://github.com/MemTensor/MemOS接入方式也非常简单只需四步2.4 EverMemOSEverMemOS 是 EverMind 团队打造的AI记忆基础设施同时继承了基于外部存储和基于隐状态两种路径。看论文公开数据目前最强EverMemOS 通过模拟人类记忆三阶段实现记忆的存储和提取Step 1情景轨迹构建。对应人脑的海马体将连续的对话内容拆分成独立的记忆单元MemCell每个cell记录完整的聊天内容和关键事实、时效信息等。Step 2语义整合。类比新皮层将内容相关的MemCell归类形成主题化的记忆场景MemScene同时更新用户画像区分用户的长期偏好和短期状态。Step 3重构式回忆。类比前额叶皮层和海马体的协同机制当用户提问时在MemScene的引导下进行智能检索只挑选出必要且足够的记忆内容。EverMemOS 同时提供云服务和私有化部署云端API地址https://console.evermind.ai/开源地址https://github.com/EverMind-AI/EverMemOS云服务需要申请内测笔者本地部署后进行了实测。其中添加记忆的API调用步骤如下┌─────────────────────────────────────────────────────────────┐ │ 1. 创建 conversation-meta必须在添加消息之前 │ │ POST /api/v1/memories/conversation-meta │ │ { │ │ scene: assistant, # ← 关键字段 │ │ group_id: xxx, │ │ user_details: {...}, │ │ ... │ │ } │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 2. 循环添加消息 │ │ for msg in messages: │ │ POST /api/v1/memories │ │ {group_id, sender, content, role, create_time...} │ └─────────────────────────────────────────────────────────────┘ ↓ ┌─────────────────────────────────────────────────────────────┐ │ 3. 系统边界检测 记忆提取后台自动处理 │ │ - 消息积累到一定数量触发边界检测 │ │ - 提取 MemCell → Episode → Profile → Foresight... │ └─────────────────────────────────────────────────────────────┘系统接收后的处理逻辑如下1. 接收消息 ↓ 2. 保存到 MemoryRequestLog (MongoDB) - sync_status-1: 刚接收的日志 - sync_status0: 进入窗口累积 ↓ 3. 边界检测触发提取后保存到多个存储: ├─ MongoDB (文档存储) │ ├─ MemCell (边界检测单元) │ ├─ EpisodicMemory (情节记忆) │ ├─ UserProfile (用户画像) │ ├─ ForesightRecord (前瞻记忆) │ ├─ EventLogRecord (事件日志) │ └─ ... (还有多个集合) │ ├─ Milvus (向量数据库) │ ├─ EpisodicMemoryCollection │ ├─ ForesightCollection │ └─ EventLogCollection │ └─ Elasticsearch (全文搜索) ├─ episodic-memory ├─ foresight └─ event-log什么时候才会触发提取记忆消息数量足够通常 8-10 条以上LLM 判断对话已完成一个话题单元检测到明确的结束语如今天就聊到这吧实测发现依赖 LLM 判断并不可靠明明会话已结束但记忆提取没触发导致下一次会话找不到之前的历史。查看MongoDB中的消息状态发现多条信息一直处于累积中MemoryRequestLog 统计 -------------------------------------------------- sync_status-1 (刚接收): 0 条 sync_status0 (累积中): 3 条 sync_status1 (已使用可清理): 10 条 sync_statusNone (未知状态): 0 条 --------------------------------------------------3. 小智Pro接入综合对比以上四种方案基于两点考虑响应速度召回精度小智Pro 最终选择接入MemOS方案。平台侧负责保存会话记录时自动抽取并更新长期记忆对话过程中小智通过MCP检索和话题相关的记忆内容作为对话上下文。成功对话后试试对小智说- 之前/上次/以前我们聊过xx - 调用长期记忆帮我查查xx如果成功调用屏幕or日志中会看到self.memory.search工具调用。如果没有调用可前往小智控制台https://xiaozhi.me在角色提示词中添加以下场景必须调用self.memory.search工具1) 用户提到之前/上次/以前等时间回溯词2) 用户提及具体人名、地点等专有名词且可能存在于记忆中3) 用户要求继续/修改之前的讨论4) 回答需结合用户个人偏好、习惯或历史背景所有对话记忆可在小智Pro控制台进行管理写在最后本文分享了小智Pro 接入长期记忆的几种实现方案。如果对你有帮助不妨点赞收藏备用。欢迎体验小智Pro更多功能请戳https://mkwyqeoebedx.sealosbja.site注长期记忆能力需设备端固件v2.2.1.1版支持。目前已全面适配小智官方仓库收录的开发板型号下载地址https://github.com/hougeai/xiaozhiPro/releases有任何问题欢迎进群交流。