Skip to content
This repository was archived by the owner on Jun 3, 2026. It is now read-only.

Latest commit

 

History

History
419 lines (330 loc) · 21.4 KB

File metadata and controls

419 lines (330 loc) · 21.4 KB
XMem Logo

XMem

決して忘れない AI のためのメモリレイヤー

すべての AI エージェントと LLM インターフェースに、永続的でクロスプラットフォームなメモリをすぐに提供します。

Python 3.11+ BSD-3 License FastAPI
LangGraph Rust Weaver Multi-LLM

English  •  简体中文  •  日本語  •  हिन्दी

デモ  •  機能  •  アーキテクチャ  •  ベンチマーク  •  クイックスタート  •  設定

Star History Chart

更新 / ニュース

  • [2026 年 6 月 1 日] XMem のメモリレイヤーにネイティブ Golang 実装が追加されました。より高いスループット、低いレイテンシ、そして数百万回規模のインタラクションでも信頼して動作する本番環境向けデプロイを目的に構築されています。
  • [2026 年 5 月 25 日] ローカルワークスペース対応が公開されました。わずか 3 コマンドで XMem をローカルにセットアップし、数分でメモリ付きアプリケーションの構築を始められます。セットアップ手順は Local.md を参照してください。
npx create-xmem@latest
cd xmem
npm run dev

XMem とは?

LLM との会話は毎回ゼロから始まります。ツールを切り替え、プロバイダーを切り替え、翌週に戻ってくると、すべてのコンテキストは失われています。

XMem はインドで No.1 のオープンソース Agentic Memory Layer です。私たちは Memory-as-a-Service、つまりあらゆる AI ユースケースとドメインのためのメモリレイヤーを提供します。長時間稼働するエージェントのための時間記憶、患者コンテキストのための医療記憶、チームやプロジェクトのためのエンタープライズ記憶、そしてコーディングエージェントやワークフローのための開発者記憶に対応します。

これはステートフル AI のための、初のエージェント型メモリレイヤーです。 従来のメモリシステムがチャンクの保存と検索にとどまるのに対し、XMem はメモリを能動的な推論プロセスに変えます。何を覚え、何を更新し、何を忘れるべきかを判断し、それぞれのメモリを適切な専用エージェントとストアへ動的にルーティングします。

デモ

任意の AI プラットフォームで「X」と入力するだけで、XMem が提供する 4 つのモードを切り替えられます。メモリの保存と検索、既存チャットからのコンテキスト取り込み、インデックス済みリポジトリの利用をシームレスに行えます。

demo.mp4

機能

Chrome 拡張

XMem の Chrome 拡張は、ChatGPT、Claude、Gemini、DeepSeek、Perplexity に永続メモリをもたらします。

リアルタイム検索と注入 - プロンプトを入力している間、XMem はメモリをリアルタイムに検索し、フローティングチップを表示します。ワンクリックで関連コンテキストを入力欄に直接注入できます。

バックグラウンド自動保存(Xingest) - 「送信」を押すと、XMem は会話ターンを非同期に取得します。バックグラウンドキューが事実と要約を抽出するため、UI の操作を妨げません。

extension-settings-1773462173011.mp4

エージェントプラグイン

新しい plugin/ フォルダにより、XMem を開発者向けエージェントやコーディングアシスタントへ直接組み込めます。Claude Code、Codex、Cursor、Hermes、OpenClaw、OpenCode 向けのファーストパーティ統合を含み、エージェントは既存メモリの検索、永続的なプロジェクト知識の保存、セッションをまたいだコンテキスト維持を行えます。API キーは環境変数またはクライアント固有のシークレットストアに保持できます。

Context

Context を使うと、手動でコピー&ペーストすることなく既存の会話を XMem に取り込めます。

共有された ChatGPT、Claude、Gemini のリンクを貼り付けると、XMem がそれを開き、すべてのユーザー発言とアシスタント発言を抽出し、完全な ingest pipeline を実行して、その会話を検索可能なメモリにします。

トランスクリプトファイル(テキスト、Markdown、JSON)をアップロードすることもできます。XMem は Cursor と Antigravity のエクスポート形式を標準で解析し、未知の形式には LLM ベースのフォールバック解析を使用します。

abbIsz_DujBnbmVp.mp4

Scanner

Scanner は Git リポジトリ全体をインデックスし、コードベースのクエリ可能なナレッジグラフを構築します。

インデックス後は、ファイル、関数、依存関係、影響範囲について自然言語で質問できます。新しいリポジトリの理解、機能の場所の特定、コードのつながりの追跡、変更によって壊れる可能性がある箇所の把握に役立ちます。

MV1KUiFXYXN7MpH3.mp4

マルチドメイン分類

すべてのメモリが同じではありません。それらを同じものとして扱うことが、他のソリューションが伸び悩む理由です。XMem の Classifier Agent は、入力されたすべてのデータを分析し、適切なドメインへルーティングします。

ドメイン 保存する内容 ストレージ
Profile 永続的なユーザー事実、好み、アイデンティティ 「バックエンドでは Python より Go が好き」 Pinecone
Temporal 日付解決を伴う時間に紐づいたイベント 「昨日 Staff Engineer に昇進した」 Neo4j
Summary 圧縮された会話の要点 「REST から gRPC への移行について話した」 Pinecone
Code シンボルに紐づく注釈、バグ、説明 「このリトライロジックには競合状態がある」 Neo4j + Pinecone
Snippet 個人のコードパターンやユーティリティ 「これは Go で使う標準的なエラーハンドラ」 Pinecone
Image 視覚的な観察と説明 アーキテクチャ図のスクリーンショット Pinecone

Agentic Retrieval

XMem に問い合わせるとき、検索は単純なベクトル検索ではありません。LLM 自身が何を調べるべきかを判断します。

  1. ツール選択 - Retrieval LLM がクエリを分析し、適切な検索ツール(SearchProfile、SearchTemporal、SearchSummary、SearchSnippet)を呼び出します。必要に応じて複数のツールを並列に呼び出します。
  2. 統合生成 - すべての検索ツールの結果を集約し、LLM が出典付きの回答を生成します。

つまり「私の好みの技術スタックは何で、auth モジュールを最後にリファクタしたのはいつ?」と聞くと、profile 検索と temporal 検索が自動的に同時実行されます。

フォールバック付きマルチ LLM オーケストレーション

XMem は 1 つのプロバイダーに縛られません。Gemini、Claude、OpenAI、OpenRouter、Amazon Bedrock、Ollama をまたいでオーケストレーションし、自動フェイルオーバーを行います。

gemini -> claude -> openai -> bedrock -> ollama

メインの LLM がレート制限を受けたり停止したりした場合、XMem は次のプロバイダーへ静かにフォールバックします。各エージェントは特定のモデルに固定でき、フォールバック順序は完全に設定可能です。

ローカル実行

クラウド依存は不要です。LLM に Ollama、埋め込みに FastEmbed、ベクトルストレージに Chroma または SQLite を使って XMem を実行できます。

pip install -e ".[local]"

アーキテクチャ

WhatsApp Image 2026-04-27 at 11 50 51

XMem は、LangGraph によって調整される専用 AI エージェントのパイプラインとして構築され、決定論的実行レイヤー(Weaver)と 3 つの目的特化型ストレージエンジンに支えられています。

取り込みフロー

ユーザー入力(SDK / Chrome 拡張 / API)
         |
         v
   +--------------+
   |  Classifier  |    テキストを分析し、ドメインへルーティング
   +------+-------+
          |
    +-----+-----+------+----------+
    v     v     v      v          v
 Profile Temporal Summary Code  Snippet     ドメインエージェントが構造化データを並列抽出
 Agent   Agent   Agent  Agent   Agent
    |     |      |      |        |
    v     v      v      v        v
   +----------------------------------+
   |          Judge Agent             |     既存メモリと比較
   |   (ADD / UPDATE / DELETE / NOOP) |     重複と陳腐化を防止
   +----------------+-----------------+
                    |
                    v
   +----------------------------------+
   |        Weaver(Rust core)       |     決定論的エグゼキュータ
   |  Pinecone | Neo4j | MongoDB     |     LLM なし。純粋なソフトウェアロジック
   +----------------------------------+
  1. Classifier が入力を関連ドメインへルーティングします。
  2. Domain Agents(Profiler、Temporal、Summarizer、Code、Snippet、Image)が構造化データを並列抽出します。
  3. Judge Agent が各抽出結果を既存メモリと比較し、ADD、UPDATE、DELETE、NOOP のいずれかを判断します。
  4. Weaver が Judge の判断をすべてのストレージバックエンドに対して決定論的に実行します。コアは LLM に依存しない独立した Rust crate として実装されています。

高 effort モードでは、長い入力を重複するチャンク(約 200 token)に自動分割して並列処理し、結果を統合することで長い会話の取りこぼしを防ぎます。

検索フロー

ユーザークエリ
    |
    v
+----------------------------------+
|       Retrieval LLM              |
|  呼び出すツールを決定:          |
|  SearchProfile, SearchTemporal,  |
|  SearchSummary, SearchSnippet    |
+----------------+-----------------+
                 |
    +------------+------------+
    v            v            v
 Pinecone      Neo4j      Pinecone        並列検索実行
 (profiles)   (events)   (summaries)
    |            |            |
    +------------+------------+
                 v
+----------------------------------+
|   回答統合 + 引用                |    LLM が出典付き回答を生成
+----------------------------------+

ストレージ

エンジン 目的 用途
Pinecone 高速なベクトル類似検索 Profile、要約、スニペット、コード注釈
Neo4j グラフ探索 + 時間推論 イベント、コード知識グラフ、注釈
MongoDB 生ドキュメント保存 スキャン済みコード、ファイルメタデータ、スキャン状態

Note

ローカルデプロイでは、Pinecone を Chromapgvector、または SQLite ベクトルストアに置き換えられます。

ベンチマーク

XMem を主要なメモリソリューションとともに、確立された 2 つの学術ベンチマークで評価しました。XMem は全体的に優れた結果を示しています。

LoCoMo

メモリに対する合成推論をテストします。システムが会話をまたいだ事実を結び付け、時間関係を推論し、自由回答形式の質問に答えられるかを評価します。

手法 Single-Hop (%) Multi-Hop (%) Open Domain (%) Temporal (%) Overall (%)
XMEM(私たちの手法)90.692.391.291.991.5
Zep74.1166.0467.7179.7975.14
Memobase (v0.0.37)70.9246.8877.1785.0575.78
Mem0g (YC 24)65.7147.1975.7158.1368.44
Mem0 (YC 24)67.1351.1572.9355.5166.88
LangMem62.2347.9271.1223.4358.10
OpenAI63.7942.9262.2921.7152.90

マルチホップ推論(異なる会話の事実を結び付ける能力)では、XMem は次点のシステムを 26.3 ポイント 上回ります。総合でも XMem は 91.5% で全システムをリードし、Zep の 75.14 を上回っています。

LongMemEval-S

長期会話メモリの業界標準ベンチマークです。事実の想起、好みの変化の追跡、時間推論、セッションをまたいだコンテキスト保持を評価します。

カテゴリ XMem (Gemini 3-flash) Backboard.io (GPT-4o) Mastra (GPT-4o) Supermemory (GPT-4o)
マルチセッション93.691.779.771.43
時間推論94.591.785.776.69
単一セッション(アシスタント)96.4398.282.196.43
単一セッション(ユーザー)97.197.198.697.14
知識更新91.293.685.988.46
単一セッションの好み87.090.073.370.0

XMem はすべてのカテゴリで Backboard.io に匹敵し、セッション想起と好みの追跡でほぼ満点を記録しています。総合では Mastra を 9.2 ポイント、Supermemory を 11.8 ポイント 上回ります。

ベンチマーク方法

  • 評価:構造化ルーブリックを用いた Gemini による LLM-as-Judge
  • 公平性:すべてのシステムを同一の会話履歴とクエリでテスト

クイックスタート

ローカル XMem

npx create-xmem@latest
cd xmem
npm run dev

Windows、macOS、Linux で動作します。ローカル XMem ワークスペースを作成し、バックエンドをインストールし、ローカルストレージを起動し、Chrome 拡張をビルドし、http://localhost:8000 で API を起動します。

ローカル前提条件:

  • Git
  • Node.js 20+
  • Python 3.11+
  • Docker Desktop
  • .env にクラウド LLM key を追加しない場合は Ollama

セットアップ後、次の場所から拡張機能を読み込みます。

repos/xmem-extension/dist

Chrome のパス:chrome://extensions -> デベロッパーモードを有効化 -> パッケージ化されていない拡張機能を読み込む。

ローカルコマンド

npm run setup
npm run start
npm run verify
npm run doctor

.env に実際のクラウド LLM key が含まれている場合、XMem はそのプロバイダーを使用し、埋め込みは FastEmbed でローカルに保ちます。クラウド key が設定されていない場合、XMem はローカル Ollama にフォールバックし、セットアップ中に必要なローカルモデルを取得します。

コンテキストのポータビリティ

npm run context:export
npm run context:import -- --file ./exports/xmem-context.json
npm run context:sync -- --file ./exports/xmem-context.json --server https://api.xmem.in --api-key <key>

context:export は、後でインポートまたは XMem サーバーへ同期できるローカルコンテキストバンドルを書き出します。

リポジトリをインデックスする

python -m src.scanner.runner \
  --org your-org \
  --repo your-repo \
  --url https://github.com/your-org/your-repo.git \
  --enrich

Tip

クラウド依存のない完全ローカルセットアップの場合:

FALLBACK_ORDER='["ollama"]'
EMBEDDING_PROVIDER=ollama
VECTOR_STORE_PROVIDER=pgvector

その後、ローカル追加依存をインストールします:pip install -e ".[local]"

設定

XMem は高度に設定可能です。任意のエージェントのモデルを上書きし、フォールバックチェーンを調整し、品質と速度のトレードオフを変更できます。

設定 デフォルト 説明
FALLBACK_ORDERopenrouter,gemini,claude,openaiプロバイダーのフェイルオーバー順序
DEEPSEEK_API_KEYempty公式 OpenAI 互換エンドポイント用の DeepSeek API key
MIMO_API_KEYempty公式 OpenAI 互換エンドポイント用の Xiaomi MiMo API key
CLASSIFIER_MODELdefault modelclassifier agent のモデルを上書き
JUDGE_MODELdefault modeljudge agent のモデルを上書き
RETRIEVAL_MODELdefault model検索統合モデルを上書き
EMBEDDING_MODELgemini-embedding-001テキスト埋め込みモデル
EMBEDDING_PROVIDERautoauto, gemini, bedrock, ollama, fastembed
VECTOR_STORE_PROVIDERpineconepinecone, pgvector, chroma, sqlite
PINECONE_DIMENSION768埋め込みベクトルの次元数
RATE_LIMIT601 分あたりの API リクエスト数
TEMPERATURE0.4LLM 生成温度