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()或 envMEMORI_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 (代理与模式详解)