為 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應用程式
  • 研究助理代理 - 可線上試用的研究工具

技術架構

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