Memori:用 SQL 給 AI 加上記憶
關于AI記憶的項目很多,之前我們介紹過Mem0之類的產品(??mem0推出王炸mcp工具OpenMemory,打造用戶私有、跨應用的共享記憶層??)。今天我們來介紹一個新的項目 Memori,它在技術選型上做了個有趣的選擇:當大家都在追捧向量數據庫和圖數據庫時,它選擇了回歸 SQL。
Memori 是 Gibson 團隊開發的開源記憶引擎,專門給大語言模型和 AI Agent 加上持久記憶。簡單說,就是讓 AI 能記住你們之前的對話,不用每次都從頭開始。
目前主流的 AI 記憶方案各有各的問題:
提示詞填充 最直接,把歷史對話不斷塞進上下文。短對話還行,一旦聊久了,token 數量和成本都會失控。
向量數據庫 是當前主流,用 Pinecone、Weaviate 存儲語義嵌入。但語義檢索本身就是模糊的,經常召回一堆相關但不精確的內容,而且結構化信息容易丟失。
圖數據庫 在表達實體關系上確實強大,做推理很合適。但構建和維護成本高,擴展性也是個問題。
而 Memori 的方案是用關系型數據庫存儲記憶,理由很簡單:SQL 數據庫運行了幾十年,成熟可靠,用 JOIN 和索引做精確檢索正是它的強項。對于需要結構化存儲、精確召回的記憶場景,SQL 可能確實更合適。
這個項目最有意思的地方在于它的雙模式設計:
Conscious Mode(意識模式) 模擬人類的短期記憶。啟動時,AI 會分析歷史對話,把最重要的 5-10 段內容提取出來作為工作記憶。比如你的名字、正在做的項目、常用技術棧這些信息,會被優先記住并在對話開始時一次性注入。
Auto Mode(自動模式) 則是動態搜索整個記憶庫。每次你提問時,AI 都會智能分析需要什么背景信息,然后從數據庫里檢索相關記憶。這個模式更適合需要大量歷史信息的復雜對話。
使用起來很簡單:
from memori import Memori
from openai import OpenAI
# 初始化
memori = Memori(conscious_ingest=True)
memori.enable()
# 正常使用 OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "幫我優化代碼"}]
)
# AI 會自動記住你之前提到的項目信息從功能上看,Memori 支持 SQLite、PostgreSQL 和 MySQL,用 Pydantic 做結構化數據驗證,能自動提取對話中的實體(人名、技術、項目等)并分類存儲。它可以跟任何 LLM 庫配合使用,已經集成了 LangChain、CrewAI、AgentOps 等主流框架。
比較實用的是多用戶隔離功能。通過 namespace 參數,每個用戶的記憶可以完全獨立,適合做 SaaS 應用。項目還提供了 FastAPI 的多用戶示例代碼。
當然,這不意味著向量數據庫沒用。語義搜索在某些場景下不可替代。但 Memori 的實踐提醒我們:解決問題不一定要用最新的技術,有時候最合適的答案就在那些被驗證過的"老技術"里。
如果你在開發 AI 應用,特別是需要長期記憶的場景(客服機器人、個人助理、多智能體系統),這個工具值得一試。畢竟,一個能記住上下文的 AI,比每次都要重新介紹自己的 AI 實用多了。
項目地址:???https://github.com/GibsonAI/memori??
本文轉載自??AI工程化??,作者:ully

















