在多代理 LLM 系统开发中,内存持久性和共享机制是实现高效协作的关键挑战。传统方法往往依赖向量数据库,导致高成本和复杂性,而 Memori 作为开源 SQL-Native 内存引擎,提供了一种轻量级解决方案。它通过一行代码集成,支持代理间共享持久内存,实现状态管理和跨代理回忆,而无需引入额外的向量 DB 开销。这种方法不仅降低了 80-90% 的存储成本,还确保了内存的可查询性和可审计性,适用于生产级多代理应用。
Memori 的核心优势在于其 SQL-native 设计,将 LLM 的交互历史存储在标准数据库中,如 SQLite、PostgreSQL 或 MySQL。这些数据库由用户完全拥有和控制,避免了厂商锁定。针对多代理场景,Memori 通过拦截 LLM 调用(如 OpenAI 或 Anthropic 的 API)来注入相关上下文,并在响应后提取实体、关系和优先级信息存储起来。例如,在 CrewAI 或 AutoGen 等框架中,Memori 可以启用共享命名空间,确保多个代理访问同一内存池,实现协作任务如研究分析或客户支持,而不丢失历史状态。
从工程角度看,实现持久共享内存首先需要配置数据库连接。使用 Memori 初始化时,指定连接字符串,例如对于 PostgreSQL:database_connect="postgresql://user:pass@localhost/memori"。这确保了所有代理的交互持久化到同一数据库。Memori 支持多种内存模式:Conscious Mode 用于短期工作内存注入,每查询自动检索相关回忆;Auto Mode 动态搜索长时内存;结合模式则提供最佳效果。在多代理系统中,推荐使用结合模式,并设置 memory_namespace="shared_multi_agent" 来隔离共享内存,避免与单代理冲突。
协作状态管理的关键是实体提取和关系映射。Memori 的 Memory Agent 在后处理阶段自动分类内存为事实、偏好、技能、规则和上下文类型。例如,当代理 A 学习用户偏好时,该信息可通过 SQL 查询(如全文搜索索引)注入到代理 B 的上下文中,支持跨代理回忆。证据显示,这种机制在 Swarms 或 CamelAI 集成中有效:代理群可以维护共享任务状态,如项目进度,而无需每次从头同步。相比向量 DB,Memori 使用 SQL 的原生查询避免了嵌入向量的计算开销,查询延迟通常在毫秒级。
为了可落地,下面给出工程参数和清单。首先,集成步骤:1) 安装 pip install memorisdk;2) 初始化 memori = Memori(conscious_ingest=True, auto_ingest=True, database_connect=your_conn_str);3) 调用 memori.enable() 拦截 LLM 客户端;4) 在多代理框架中配置 LiteLLM 回调,例如在 CrewAI 的 Agent 中使用 OpenAI 客户端。对于共享内存,设置环境变量 MEMORI_MEMORY_NAMESPACE="multi_agent_shared" 和 MEMORI_AGENTS_OPENAI_API_KEY="sk-..."。
参数调优:- 数据库选择:生产环境用 PostgreSQL,支持高并发;开发用 SQLite 快速迭代。- 注入阈值:默认上下文长度 4000 tokens,可通过 ConfigManager 设置 max_context_tokens=8000 以适应复杂多代理对话。- 后台分析间隔:默认 6 小时,Conscious Agent 会提升高频内存到短期存储;对于实时系统,可调整为 1 小时。- 查询优化:启用全文搜索索引,SQL 如 CREATE INDEX idx_content ON memories USING GIN(to_tsvector('english', content)); 加速跨代理回忆。
监控要点清单:1) 内存增长监控:使用 SQL 查询 SELECT COUNT(*) FROM memories WHERE namespace='shared_multi_agent';,设置警报阈值 100k 条记录,触发归档。2) 性能指标:追踪注入延迟(目标 <500ms)和存储成功率 (>99%),集成 Prometheus 或类似工具。3) 一致性检查:定期验证代理回忆准确率,通过采样测试跨代理状态同步。4) 安全审计:确保共享内存访问控制,使用数据库角色限制代理读写权限。
回滚策略:在部署新版本时,先在 staging 环境中测试共享内存迁移,使用 Memori 的导出功能将 SQLite 备份为文件,便于回滚。风险包括高并发下的数据库锁,可通过连接池(如 pgBouncer)缓解;另一个是内存污染,建议分类规则过滤低质量交互。
总之,Memori 为多代理系统提供了高效的持久共享内存方案,强调简单集成和低开销。通过上述参数和清单,开发者可以快速构建协作 LLM 应用,提升系统鲁棒性。
资料来源:GitHub 仓库 https://github.com/GibsonAI/Memori,以及官方文档 https://www.gibsonai.com/docs/memori。
(正文字数约 950)