LLM、AIエージェント、マルチエージェントシステム向けのオープンソースSQLネイティブメモリエンジン。一行のコードで永続化され、クエリ可能なAIメモリ機能を実装。

NOASSERTIONPythonMemoriGibsonAI 8.5k Last Updated: November 24, 2025

Memori - オープンソースAI記憶エンジンの詳細

プロジェクト概要

Memoriは、大規模言語モデル(LLM)、AIエージェント、およびマルチエージェントシステム向けに設計された、オープンソースのSQLネイティブな記憶エンジンです。たった1行のコードで、あらゆるLLMに永続的でクエリ可能な記憶能力を付与し、標準SQLデータベースを使用して記憶データを保存します。

主な特徴:

  • memori.enable() の1行コードで統合可能
  • 記憶データは標準SQLデータベース(SQLite、PostgreSQL、MySQL)に保存され、ユーザーが完全に所有・管理
  • AIは会話を記憶し、インタラクションから学習し、複数のセッション間でコンテキストを維持

Memoriを選ぶ理由

1. 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()

記憶モード

コンシャスモード - 一時的なワーキングメモリ注入

memori = Memori(conscious_ingest=True)

オートモード - クエリごとの動的検索

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 (オートモード) または Conscious Agent (コンシャスモード) が関連する記憶を検索
  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はコミュニティからの貢献を歓迎します!プロジェクトは、以下の詳細な貢献ガイドラインを提供しています。

  • 開発環境のセットアップ
  • コードスタイルと標準
  • プルリクエストの提出
  • 問題の報告

オープンソースライセンス

Apache 2.0 ライセンス

まとめ

Memoriは、強力で使いやすいAI記憶ソリューションであり、特に以下の用途に適しています。

  • LLMアプリケーションに記憶機能を追加したい開発者
  • マルチセッションAIアシスタントを構築するチーム
  • ベクトルデータベースのコストを削減したいプロジェクト
  • AI記憶データを完全に管理したい企業

SQLネイティブなストレージと1行コードでの統合という設計思想により、MemoriはAIアプリケーションに記憶機能を追加する敷居とコストを大幅に削減します。

Star History Chart