在构建 LLM 代理系统时,长程上下文管理和状态持久化是核心挑战。传统方法依赖昂贵的向量数据库或复杂缓存,Memori 则以 SQL 原生方式解决,提供一行代码集成、一键持久记忆。Memori 通过拦截 LLM 调用,实现预注入上下文和后提取存储,支持 OpenAI、Anthropic、LangChain 等框架,使用 SQLite、PostgreSQL 等标准数据库,确保零供应商锁定和 80-90% 成本节省。
Memori 核心集成与配置参数
Memori 的启动极其简洁:from memori import Memori; memori = Memori(); memori.enable()。这行代码自动拦截所有 LLM 客户端调用,如 OpenAI 的 client.chat.completions.create。关键参数包括:
- database_conn:数据库连接字符串,例如
sqlite:///my_memory.db 或 postgresql://user:pass@localhost/memori。推荐生产环境用 PostgreSQL,支持高并发和全文搜索索引。
- conscious_ingest=True:启用“意识模式”,实现短期工作记忆一键注入。Memori 会从数据库检索最近交互,优先注入高相关实体(如用户偏好、项目上下文)。
- auto_ingest=True:启用“自动模式”,每查询动态搜索相关记忆,避免上下文过载。结合使用时,意识模式处理即时上下文,自动模式补足历史深度。
- openai_api_key:LLM 后端 API 密钥,支持环境变量注入,避免硬编码。
使用 ConfigManager 进一步优化:config = ConfigManager(); config.auto_load(),从环境变量加载如 MEMORI_DATABASE_CONNECTION_STRING 和 MEMORI_MEMORY_NAMESPACE="production",实现多租户隔离。
落地清单:
- 安装:
pip install memorisdk(Python 3.8+)。
- 初始化客户端:
client = OpenAI(); memori.enable()。
- 第一轮对话:用户输入“构建 FastAPI 项目”,Memori 记录实体(FastAPI、项目)。
- 后续对话:“添加认证”,Memori 自动注入“FastAPI 项目”上下文,LLM 无缝续接。
此机制确保代理“记住”跨会话状态,例如个人助理记住用户 FastAPI 偏好,而无需手动提示工程。
语义向量存储与关联检索机制
Memori 不依赖外部向量库,而是 SQL 内置全文搜索和实体关系映射。架构分为三阶段:
- Pre-Call 检索:拦截调用前,Retrieval Agent(自动模式)或 Conscious Agent(意识模式)查询数据库。检索优先级:实体匹配 > 语义相似 > 时间衰减。注入上下文限制在 4K-8K token,避免幻觉。
- Post-Call 提取:Memory Agent 解析响应,分类存储为 facts(事实)、preferences(偏好)、skills(技能)、rules(规则)、context(上下文)。例如,“用户喜欢 FastAPI”存为 preference 实体,与“认证模块”关联。
- 背景处理:每 6 小时,Conscious Agent 分析模式,促进长期记忆(如将临时事实升级为规则)。
更新/遗忘机制内置:新交互覆盖旧实体(时间戳优先);遗忘通过 TTL(默认 30 天,可调 memory_ttl_hours=720)或手动 memori.forget(entity_id)。多代理共享:通过 namespace 分隔,如 CrewAI 示例中,多个代理共享“团队项目”内存空间。
参数优化:
- 检索 Top-K:默认 5,调至 3 减 token 消耗。
- 上下文温度阈值:
context_relevance_threshold=0.7,低于阈值记忆不注入。
- 批量注入大小:
max_context_chunks=4,每 chunk 512 token。
多代理共享内存与状态管理
Memori 天然支持多代理场景,如 AutoGen、CrewAI、Swarms。示例:FastAPI 多用户应用中,每个用户 ID 映射独立 namespace,代理间通过共享 namespace 协作。
工程化落地:
- 隔离策略:
memori = Memori(memory_namespace=f"user_{user_id}"),防止跨用户泄露。
- 共享机制:群聊代理用
group_namespace="team_project",检索时融合多源记忆。
- 状态同步:背景任务每 10 分钟同步(
sync_interval=600),支持分布式部署。
监控要点:
- SQL 查询延迟:<50ms,PostgreSQL 加 GIN 索引全文搜索。
- Token 消耗:日志
memori_injected_tokens,警报 >2K/调用。
- 记忆饱和:监控表行数,>10万 触发压缩(删除低频实体)。
- 回滚策略:测试环境用 SQLite 快照;生产双写主从,失败回滚。
性能与扩展参数清单
生产部署参数汇总:
| 参数 |
默认值 |
推荐生产值 |
作用 |
| conscious_ingest |
False |
True |
短期记忆注入 |
| auto_ingest |
False |
True |
动态检索 |
| max_context_length |
8192 |
4096 |
Token 上限 |
| relevance_threshold |
0.5 |
0.7 |
注入阈值 |
| background_interval |
21600s |
3600s |
分析周期 |
| memory_ttl_days |
30 |
90 |
遗忘周期 |
成本估算:SQLite 单实例 <1$/月;PostgreSQL Neon/Supabase 免费阶梯足 1000 用户。相比 Pinecone 等,节省 80%。
实际案例:个人日记 demo 中,Memori 追踪情绪模式,检索“过去一周心情”历史;研究员代理融合 web 搜索与记忆,避免重复。
Memori v3 即将支持企业级内存织物,但当前版已足代理生产。通过这些参数与机制,开发者可快速构建可靠长程记忆系统,提升代理智能与稳定性。
资料来源:
[1] GitHub Memori 仓库:一行代码启用持久记忆,支持 SQL 存储与多框架集成。https://github.com/GibsonAI/Memori
[2] 官方文档:详细架构与示例。https://memorilabs.ai/docs