你是否也曾苦恼,精心调教的 AI 助手,转头就把你们的对话忘得一干二净?每开启一次新的会话,都得把前情提要再说一遍,仿佛在和一个只有七秒记忆的鱼对话。
这背后的原因其实很简单:大多数大型语言模型(LLM)天生是无状态的,它们不会主动保留过去的交互信息。为了解决这个问题,开发者们通常会引入向量数据库来存储对话历史和上下文。但这也带来了新的挑战:技术栈更复杂了,成本也上去了,还可能被特定的服务商“套牢”。
今天,我们要介绍一个名为 Memori 的开源项目,它为 AI 的“失忆症”提供了一剂优雅且经济的良方。
Memori 是什么?
Memori 是一个为 LLM、AI Agent 和多智能体系统设计的开源记忆引擎。它的核心理念是:用一行代码,为你熟悉的标准 SQL 数据库(如 SQLite, PostgreSQL, MySQL)赋予 AI 记忆能力。
没错,你没看错,只需要一行代码:memori.enable()。
为什么选择 Memori?
- • 一键集成:无论是 OpenAI、Anthropic、LangChain 还是其他 LLM 框架,都能无缝接入。
- • 原生 SQL 存储:将记忆数据存储在你完全控制的 SQL 数据库中,数据可移植、可查询、可审计。
- • 节省 80-90% 成本:不再需要昂贵且复杂的向量数据库。
- • 零厂商锁定:你可以随时将记忆数据导出为 SQLite 文件,轻松迁移。
- • 智能记忆:自动提取实体、映射关系,并根据上下文智能判断记忆的优先级。
快速上手
体验 Memori 的魔力有多简单?我们来看一段代码。
首先,安装 SDK:
pip install memorisdk
然后,在你的代码中加入 Memori:
from memori import Memori
from openai import OpenAI
# 初始化并启用 Memori
memori = Memori(conscious_ingest=True)
memori.enable()
client = OpenAI()
# 第一次对话
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "我正在开发一个 FastAPI 项目"}]
)
# 过了一段时间,开启新的对话
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "帮我为这个项目添加用户认证功能"}]
)
# 此时,LLM 已经知道你在谈论的是之前的 FastAPI 项目就是这么简单!在第二次对话中,你无需重复提及项目背景,Memori 已经悄悄地将上下文信息注入,让 LLM “记起”了你们之前的谈话内容。
工作原理
Memori 的实现方式非常巧妙,它通过“拦截” LLM 的调用请求来工作。
整个流程可以分为两部分:
- 1. 调用前(上下文注入):当你的应用调用 LLM 时,Memori 会先拦截这个请求。它会根据当前对话,从你的 SQL 数据库中检索最相关的记忆片段,然后将这些上下文信息“注入”到发送给 LLM 的消息中。
- 2. 调用后(记忆存储):当 LLM 返回响应后,Memori 再次拦截。它的记忆代理(Memory Agent)会从这次交互中提取关键实体、事实、偏好等信息,进行分类和结构化,然后存入 SQL 数据库,以备将来使用。
此外,Memori 还有一个后台的“意识代理”(Conscious Agent),它会定期分析长期记忆,将重要的信息提升到短期工作记忆中,进一步优化检索效率。
强大的兼容性
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 可以支持几乎所有的 LLM 框架。
| 框架 | 状态 |
|---|---|
| OpenAI | ✓ 原生支持 |
| Anthropic | ✓ 原生支持 |
| LiteLLM | ✓ 原生支持 |
| LangChain | ✓ 支持 |
| Azure OpenAI | ✓ 支持 |
| 100+ 模型 | ✓ 支持 |
总结
对于正在构建 AI 应用的开发者来说,记忆管理是一个无法回避的核心问题。Memori 项目提供了一种全新的解决思路,它通过拥抱开发者最熟悉的 SQL 技术,极大地降低了实现持久化记忆的门槛和成本。
它不仅让 AI “记住”了过去,更让开发者能够完全掌控自己的数据,避免了被特定技术或服务锁定。如果你也想让你的 AI 应用变得更聪明、更善解人意,那么 Memori 绝对是一个值得尝试的开源利器。
