Hotdry.
ai-systems

Memori 多代理分层记忆引擎:语义去重压缩与持久上下文同步工程实践

Memori 开源引擎的分层存储与语义去重机制,支持 multi-agent LLM 持久上下文同步,提供阈值调优、监控参数与多代理落地清单。

Memori 作为开源 SQL 原生记忆引擎,专为 LLM、AI 代理及多代理系统设计,通过分层存储与语义去重机制,实现持久上下文的跨会话同步与高效检索,避免传统向量数据库的高成本与锁定问题。在多代理场景下,代理间记忆共享易导致冗余膨胀与不一致,Memori 采用短期工作记忆(Conscious Mode)与长期动态检索(Auto Mode)结合,利用 namespace 隔离与后台 compaction,确保上下文高效同步。

分层存储是 Memori 的核心架构,模仿人类记忆分层:短期记忆(working memory)存储高优先级上下文,约 7 天有效期;长期记忆持久化事实、偏好、技能、规则与实体关系。Conscious Agent 每 6 小时后台运行,分析模式将 “conscious-info” 标签记忆从长期提升至短期,一次性注入 LLM 上下文,实现低延迟访问。证据显示,在 CrewAI 多代理示例中,此机制让代理共享项目状态,避免重复工具调用;AutoGen 群聊中,namespace 确保用户级隔离,记忆不泄露。

语义去重压缩聚焦存储与检索优化。Memory Agent 在 post-call 阶段提取实体并分类,Conscious Ingest 时批量复制前执行去重,避免短期记忆冗余。检索采用多阶段 hybrid 策略:阶段 1 FTS 全文本搜索(score=1.0);阶段 2 分类匹配(score=0.6);阶段 3 LIKE 模糊兜底(score=0.4),最终 composite score 排序取 top-5。该策略在多代理协作中压缩 token 消耗 80-90%,如 Swarms 示例中,代理间同步仅注入相关事实,减少上下文污染。

多代理 LLM 持久上下文同步依赖 namespace 与 interceptor。初始化时设置 MEMORI_MEMORY_NAMESPACE="agent-group-1",多代理共享同一 DB 表但 user_id 隔离;enable () 后,client.chat.completions.create 自动拦截、注入、记录。证据:在 FastAPI 多用户 App 示例,RBAC + namespace 实现代理间 sync,无需手动传递状态;在 Azure AI Foundry 集成,企业代理集群下,PostgreSQL 连接 postgresql://user:pass@host/memori 支持高并发读写。

工程落地参数与清单如下,提供可复制配置:

1. 初始化配置(combined mode)

from memori import Memori
memori = Memori(
    database_connect="sqlite:///memori.db",  # 生产用 PostgreSQL
    conscious_ingest=True,  # 短期注入
    auto_ingest=True,       # 动态检索
    openai_api_key="sk-...",  # 或 env
    memory_namespace="multi-agent-prod"  # 代理组隔离
)
memori.enable()

阈值调优:检索 limit=3-7(默认 5,代理多时减至 3 防 token 爆);后台间隔 4-8h(默认 6h,高频场景 4h)。

2. 检索参数清单

参数 默认 调优建议 场景
search_limit 5 3 (高并发代理) Multi-agent sync
fts_score 1.0 ≥0.8 精确匹配优先
category_score 0.6 0.5-0.7 偏好 / 规则检索
like_score 0.4 ≤0.3 兜底阈值防噪声
composite_weight FTS:0.4, Cat:0.3, Recency:0.3 Recency↑ (实时代理) 动态排序

3. 去重压缩清单

  • 存储前:实体提取 + 分类(facts/preferences/skills/rules)
  • 复制时:_copy_memory_to_short_term 内 hash 去重
  • Compaction:Conscious Agent 标记 processed,TTL 7 天短期表
  • 规模化:PostgreSQL + pg_trgm 扩展 FTS,索引 CREATE INDEX ON memories USING GIN (to_tsvector('english', content));

4. 多代理集成清单

  • CrewAI:memori.enable() 前置,共享 namespace
  • AutoGen:groupchat 中注入 Retrieval Agent
  • Swarms:persistent memory via DB sync
  • 回滚:memori.disable() 或 env MEMORI_CONSCIOUS_INGEST=False

监控要点:Prometheus 采集 SQL 查询 p95 <100ms,记忆命中率>80%,token 节省监控(pre/post inject 对比)。风险:记忆爆炸设 TTL=30 天长期表;不一致用 version 列乐观锁。生产部署 Docker + Neon/Supabase,成本 < vector DB 10%。

Memori 的分层去重与 sync 机制,让 multi-agent 系统从 “孤岛” 转向 “集体智能”,落地门槛低,值得工程实践。

资料来源
[1] https://github.com/GibsonAI/Memori (架构与示例)
[2] Memori 文档:docs/architecture.md (代理与模式详解)

查看归档