GibsonAI/Memori View GitHub Homepage for Latest Official Releases
为LLM、AI Agent和多智能体系统提供的开源SQL原生记忆引擎,一行代码实现持久化、可查询的AI记忆功能
NOASSERTIONPythonMemoriGibsonAI 8.5k Last Updated: November 24, 2025
Memori - 开源AI记忆引擎详细介绍
项目概述
Memori 是一个开源的SQL原生记忆引擎,专为大型语言模型(LLM)、AI Agent和多智能体系统设计。它可以通过一行代码让任何LLM拥有持久化、可查询的记忆能力,使用标准SQL数据库存储记忆数据。
核心特点:
- 通过
memori.enable()一行代码即可集成 - 记忆数据存储在标准SQL数据库中(SQLite、PostgreSQL、MySQL),用户完全拥有和控制
- AI可以记住对话、从交互中学习,并在多个会话中保持上下文
为什么选择Memori?
1. 一行代码集成
支持OpenAI、Anthropic、LiteLLM、LangChain以及任何LLM框架,集成极其简单。
2. SQL原生存储
- 可移植、可查询、可审计的记忆数据
- 存储在你完全控制的数据库中
- 无需复杂的向量数据库
3. 成本节省80-90%
不需要昂贵的向量数据库,大幅降低运营成本。
4. 零供应商锁定
可以将记忆导出为SQLite格式,随时迁移到任何地方。
5. 智能记忆管理
- 自动实体提取
- 关系映射
- 上下文优先级排序
快速开始
安装
pip install memorisdk
基础使用
from memori import Memori
from openai import OpenAI
# 初始化
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()
# 第一次对话
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "I'm building a FastAPI project"}]
)
# 后续对话 - Memori自动提供上下文
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Help me add authentication"}]
)
# LLM会自动知道你的FastAPI项目信息
支持的数据库
Memori支持任何标准SQL数据库:
| 数据库 | 连接字符串示例 |
|---|---|
| SQLite | sqlite:///my_memory.db |
| PostgreSQL | postgresql://user:pass@localhost/memori |
| MySQL | mysql://user:pass@localhost/memori |
| Neon | postgresql://user:pass@ep-*.neon.tech/memori |
| Supabase | postgresql://postgres:pass@db.*.supabase.co/postgres |
支持的LLM框架
通过LiteLLM的原生回调系统,Memori支持所有主流框架:
| 框架 | 状态 | 使用方式 |
|---|---|---|
| OpenAI | ✓ 原生支持 | from openai import OpenAI |
| Anthropic | ✓ 原生支持 | from anthropic import Anthropic |
| LiteLLM | ✓ 原生支持 | from litellm import completion |
| LangChain | ✓ 支持 | 通过LiteLLM集成 |
| Azure OpenAI | ✓ 支持 | 使用 ProviderConfig.from_azure() 配置 |
| 100+ 模型 | ✓ 支持 | 任何LiteLLM兼容的提供商 |
配置选项
数据库配置
from memori import Memori
memori = Memori(
database_connect="postgresql://user:pass@localhost/memori",
conscious_ingest=True, # 短期工作记忆
auto_ingest=True, # 每次查询动态搜索
openai_api_key="sk-..."
)
memori.enable()
记忆模式
Conscious模式 - 一次性工作记忆注入
memori = Memori(conscious_ingest=True)
Auto模式 - 每次查询动态搜索
memori = Memori(auto_ingest=True)
组合模式 - 两者兼得
memori = Memori(conscious_ingest=True, auto_ingest=True)
环境变量配置
from memori import Memori, ConfigManager
config = ConfigManager()
config.auto_load() # 从环境变量或配置文件加载
memori = Memori()
memori.enable()
设置环境变量:
export MEMORI_DATABASE__CONNECTION_STRING="postgresql://..."
export MEMORI_AGENTS__OPENAI_API_KEY="sk-..."
export MEMORI_MEMORY__NAMESPACE="production"
工作原理
Memori通过拦截LLM调用来工作 - 在调用前注入上下文,调用后记录信息:
调用前(上下文注入)
- 你的应用调用
client.chat.completions.create(messages=[...]) - Memori透明地拦截该调用
- Retrieval Agent(auto模式)或Conscious Agent(conscious模式)检索相关记忆
- 在发送给LLM提供商之前将上下文注入到消息中
调用后(记录)
- LLM提供商返回响应
- Memory Agent提取实体,分类(事实、偏好、技能、规则、上下文)
- 对话存储在SQL数据库中,带有全文搜索索引
- 原始响应返回给你的应用
后台处理(每6小时)
- Conscious Agent分析模式,将重要记忆从长期存储提升到短期存储
应用场景示例
基础示例
- 基础使用 - 简单的记忆设置
- 个人助手 - 带记忆的AI助手
- 记忆检索 - 函数调用
- 高级配置 - 生产环境设置
多用户场景
- 简单多用户 - 用户记忆隔离
- FastAPI多用户应用 - 带Swagger的REST API
框架集成示例
Memori提供了与多个流行AI框架的集成示例:
- Agno
- AWS Strands
- Azure AI Foundry
- AutoGen
- CamelAI
- CrewAI
- Digital Ocean AI
- LangChain
- OpenAI Agent
- Swarms
在线演示
- 个人日记助手 - 可在线试用的Streamlit应用
- 研究助手Agent - 可在线试用的研究工具
技术架构
Memori采用分层架构设计:
- 拦截层 - 透明拦截LLM API调用
- 检索层 - 智能检索相关记忆上下文
- 存储层 - SQL数据库持久化存储
- 分析层 - 后台分析和记忆优化
详细架构文档请参考官方文档中的 architecture.md。
企业版(Memori v3)
Memori正在开放v3版本的小型私有测试组。如果你想了解更多并提前访问企业AI的新记忆架构,可以加入他们的测试计划。
社区与支持
- 文档: https://memorilabs.ai/docs
- Discord社区: https://discord.gg/abD4eGym6v
- GitHub Issues: https://github.com/GibsonAI/memori/issues
贡献指南
Memori欢迎社区贡献!项目提供了详细的贡献指南,包括:
- 开发环境设置
- 代码风格和标准
- 提交Pull Request
- 报告问题
开源协议
Apache 2.0 许可证
总结
Memori是一个强大且易用的AI记忆解决方案,特别适合:
- 需要为LLM应用添加记忆功能的开发者
- 构建多会话AI助手的团队
- 需要降低向量数据库成本的项目
- 希望完全控制AI记忆数据的企业
通过SQL原生存储和一行代码集成的设计理念,Memori大大降低了为AI应用添加记忆功能的门槛和成本。