Hotdry.
ai-systems

Memori 分层语义记忆引擎:自动去重紧凑与多代理同步实践

剖析 Memori 开源引擎的分层存储架构,支持 LLM 代理长时记忆持久化,通过 Conscious Agent 实现语义去重紧凑、多代理 namespace 同步的工程参数与监控要点。

Memori 作为开源 SQL 原生记忆引擎,通过分层存储架构(短期工作记忆与长期记忆)与多代理协作,实现 LLM 和 AI 代理的长时记忆持久化,避免传统向量数据库的高成本与黑箱问题。其核心优势在于语义去重与紧凑机制,能自动提炼本质信息,同时支持多代理场景下的同步,确保跨会话与跨代理上下文一致性。

分层存储架构:短期 vs 长期记忆

Memori 的数据库 schema 明确划分了 short_term_memory(短期记忆表)和 long_term_memory(长期记忆表)。短期记忆存储高频、近期或高重要性对话摘要,用于快速注入;长期记忆则保留完整处理后的实体、关系与推理,用于深度检索。这种分层设计模仿人类记忆机制:短期记忆容量有限(默认 5-10 条),长期记忆则通过 FTS(全文搜索)索引支持海量扩展。

证据显示,short_term_memory 字段包括 importance_score、frequency_score、recency_score 等复合评分,确保注入内容精炼。“Conscious Agent 每 6 小时分析长期记忆模式,将本质对话提升至短期存储。” 长期记忆则关联 chat_history、memory_entities(实体表)和 memory_relationships(关系表),支持复杂查询如实体关联检索。

落地参数:

  • 数据库初始化:使用 database_connect="sqlite:///my_memory.db" 本地测试;生产 PostgreSQL postgresql://user:pass@host/memori,启用连接池 pool_size=20
  • 表优化:自动创建 FTS 虚拟表 memory_fts,索引 idx_memory_importance ON long_term_memory(importance_score DESC),查询延迟 <50ms。
  • 记忆阈值:短期记忆 expires_at 设置 7 天;长期 retention_policy="30_days" 自动清理低分记录(importance_score < 0.5)。

语义去重与紧凑:Conscious Agent 驱动

Memori 的自动去重不依赖 embedding,而是通过代理智能分析实现语义紧凑。Memory Agent 先处理对话,提取实体并分类(facts、preferences、skills、rules);Conscious Agent 则批量扫描长期记忆,基于模式识别(如重复实体)进行去重与摘要生成,仅保留高价值片段提升至短期。

例如,在多轮对话中,重复提及 “FastAPI 项目” 会被紧凑为单一 summary:“用户偏好 FastAPI 框架,用于用户管理接口。” 这避免了 token 浪费,节省 80-90% 上下文成本。

可落地清单:

  1. 启用 conscious_ingest=True,触发背景分析:memori.trigger_conscious_analysis() 手动运行。
  2. 代理模型:default_model="gpt-4o-mini",API 密钥环境变量 MEMORI_AGENTS__OPENAI_API_KEY
  3. 去重规则:自定义 retention_type 过滤 category="facts" 优先级 >0.7;监控 copied_count 日志,确保 >80% 成功率。
  4. 紧凑参数:limit=5 短期注入条数;复合评分公式 score = 0.4*importance + 0.3*frequency + 0.3*recency,阈值 0.6 以上推广。

风险控制:代理失败时降级至基本 FTS 搜索;异常重连指数退避(初始 1s,max 60s)。

多代理同步:Namespace 与检索隔离

多代理系统(如 CrewAI、AutoGen)需共享记忆而不冲突,Memori 通过 namespace 和 user_id 实现隔离同步。每个代理 / 用户有独立命名空间,Retrieval Agent 在 auto_ingest 模式下动态搜索全库,但过滤 namespace="production"

架构中,DatabaseManager.search_memories(query, namespace, limit=5) 支持语义 + 分类 + LIKE 多阶段搜索,rerank 后注入 top 3-5 条。FastAPI 多用户示例展示:/chat/{user_id} 路由隔离记忆,确保代理间同步如 “代理 A 学到技能,代理 B 立即检索”。

工程参数:

  • 同步配置MEMORI_MEMORY__NAMESPACE="multi-agent-team";多用户 session_id + user_id 复合键。
  • 检索策略:阶段 1 FTS (score=1.0);阶段 2 分类 (0.6);阶段 3 LIKE (0.4);最终 _rank_results 限 5 条,token <250。
  • 监控点:Prometheus 指标 memory_growth (DB 大小)、search_latency (<100ms)、context_effectiveness (响应质量提升 2x)。
  • 回滚策略auto_ingest=False 纯 conscious 模式;缓存失效 TTL 5min。

生产部署清单

  1. 集成pip install memorisdkmemori = Memori(conscious_ingest=True, auto_ingest=True); memori.enable()
  2. 性能调优:批量存储 batch_size=100;异步代理 async def process()
  3. 安全:RBAC 访问 namespace;加密敏感实体 metadata JSON
  4. 扩展:Neon/Supabase 云 DB;自定义 Agent 继承 BaseAgent

Memori 的分层 + 代理设计,使长时记忆从 “存储” 转向 “智能管理”,适用于代理密集场景。实际部署中,结合日志监控 importance_score 分布,确保 90% 查询命中率。

资料来源

查看归档