为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调用来工作 - 在调用前注入上下文,调用后记录信息:

调用前(上下文注入)

  1. 你的应用调用 client.chat.completions.create(messages=[...])
  2. Memori透明地拦截该调用
  3. Retrieval Agent(auto模式)或Conscious Agent(conscious模式)检索相关记忆
  4. 在发送给LLM提供商之前将上下文注入到消息中

调用后(记录)

  1. LLM提供商返回响应
  2. Memory Agent提取实体,分类(事实、偏好、技能、规则、上下文)
  3. 对话存储在SQL数据库中,带有全文搜索索引
  4. 原始响应返回给你的应用

后台处理(每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采用分层架构设计:

  1. 拦截层 - 透明拦截LLM API调用
  2. 检索层 - 智能检索相关记忆上下文
  3. 存储层 - SQL数据库持久化存储
  4. 分析层 - 后台分析和记忆优化

详细架构文档请参考官方文档中的 architecture.md。

企业版(Memori v3)

Memori正在开放v3版本的小型私有测试组。如果你想了解更多并提前访问企业AI的新记忆架构,可以加入他们的测试计划。

社区与支持

贡献指南

Memori欢迎社区贡献!项目提供了详细的贡献指南,包括:

  • 开发环境设置
  • 代码风格和标准
  • 提交Pull Request
  • 报告问题

开源协议

Apache 2.0 许可证

总结

Memori是一个强大且易用的AI记忆解决方案,特别适合:

  • 需要为LLM应用添加记忆功能的开发者
  • 构建多会话AI助手的团队
  • 需要降低向量数据库成本的项目
  • 希望完全控制AI记忆数据的企业

通过SQL原生存储和一行代码集成的设计理念,Memori大大降低了为AI应用添加记忆功能的门槛和成本。

Star History Chart