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應用程式
- 研究助理代理 - 可線上試用的研究工具
技術架構
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應用程式添加記憶功能的門檻和成本。