1. プロジェクト概要
MemPalaceは、ローカルファーストでオープンソースのAIメモリシステムです。AIエージェントの会話履歴をそのまま保存し、意味検索で取り出すことで、コーディングエージェントやチャットボットがセッション終了時やコンテキストウィンドウの圧縮時にすべてを「忘れてしまう」問題を解決します。
2. 背景と位置づけ
MemPalaceは、非常に具体的な課題を解決するために作られました。長時間にわたるエージェントセッション(Claude Codeなどのツール)では、圧縮後にそれ以前のコンテキストが失われ、何時間も作業した後でもエージェントが「今日は何をするんでしたっけ?」と尋ねざるを得なくなります。その中核的な使命は、ほとんどのメモリツールがトレードオフとして扱ってきた2つのことを両立させることです。すべてを完全な忠実度で保存することと、曖昧で断片的な記憶からの問い合わせであっても、必要な情報を即座に見つけ出すことです。
アーキテクチャとしては、Zettelkastenメソッド(小さく、相互参照された索引カード)から着想を得ており、メモリをwings(人やプロジェクト)、rooms(トピック)、closets(圧縮されたAI可読な索引エントリ)、drawers(元の逐語的なコンテンツ)という階層に整理します。これは、ほとんどのメモリフレームワークと2つの点で異なります。保存する内容を要約したり言い換えたりしないこと(検索結果は常に元のテキストを返す)、そして検索バックエンドが特定のベクターデータベースに固定されず、差し替え可能であることです。そのため、チームはローカルのみで開始し、システムの他の部分の動作を変えることなく、サーバーで支えるストアへ移行できます。
3. 機能カテゴリ
- 🗂️ Palace Storage — wings/rooms/closets/drawersにわたる逐語的で構造化されたストレージ。主要な操作には
mine、search、wake-up、メッセージごとのsweepが含まれます。目的:会話の忠実度を完全に保ちながら、ナビゲートしやすくすること。 - 🔌 Pluggable Backends — 5つのサポート対象ストア:
chroma(デフォルト、組み込み)、sqlite_exact、milvus、qdrant、pgvector。目的:ユーザーがローカルで開始し、再設計することなく共有サーバーへスケールできるようにすること。 - 🕸️ Knowledge Graph — 有効期間ウィンドウを持つ時間的エンティティ関係グラフで、ローカルSQLiteに支えられています。追加/照会/無効化/タイムライン操作をサポートします。目的:静的なスナップショットではなく、事実と関係が時間とともにどう変化するかを追跡すること。
- 🔧 MCP Server & Tools — palaceの読み書き、知識グラフ操作、wing間ナビゲーション、drawer管理、エージェント日誌、マルチエージェント調整をカバーする45個のMCPツール。目的:MCP互換のあらゆるエージェントに、メモリを第一級の機能として公開すること。
- 🪝 Auto-Save Hooks — Claude Code、Codex CLI、Cursor IDE向けのフックで、定期的に、そしてコンテキスト圧縮前に保存します。目的:手動の「これを覚えておいて」という手順なしで、セッションを自動的に記録すること。
- 🤖 Multi-Agent Support — 各専門エージェントは独自のwingと日誌を持ち、実行時に
mempalace_list_agentsで発見できます。目的:複数のエージェントが互いのコンテキストやシステムプロンプトを汚染することなく、1つのメモリシステムを共有できるようにすること。
4. 主なハイライト
- 要約ではなく逐語的な検索 — 検索結果は元のテキストを返すため、途中で非可逆圧縮によって失われるものはありません。
- ローカルファーストでオフライン対応 — 中核となるベンチマーク経路(LongMemEvalでR@5 96.6%)は、どの段階でもAPIキー、クラウド、LLM呼び出しを必要としません。
- ベンチマーク済みで再現可能な結果 — 公開されているすべての数値(LongMemEval、LoCoMo、ConvoMem、MemBench)には、リポジトリから再現するための正確なコマンドが付属しています。
- オプションのハイブリッド+LLM再ランクパイプライン — キーワードブースティング、時間的近接性ブースティング、嗜好パターン抽出により、ホールドアウトで再現率98.4%を達成し、LLM再ランクオプションでは99%以上に達します。また、モデル非依存です(Claude、およびOllama Cloud経由のオープンモデルでテスト済み)。
- 静かなバックグラウンド動作 — 現在の設計では、日誌の書き込みとpalaceへのファイリングは、目に見えるチャットではなくバックグラウンドのフック/サブエージェントで実行され、再送信されるステータス更新によるトークンオーバーヘッドを削減します。
- マルチアーキテクチャDockerサポート — 公開されているコンテナイメージは、amd64とarm64(Apple Siliconを含む)の両方でネイティブに動作し、GPUワークロード向けには別途CUDAビルドも用意されています。
5. 役割別のユースケース
- 一般の開発者 — 圧縮や再起動のたびに決定事項を説明し直すのではなく、AIコーディングアシスタントのプロジェクトコンテキストをセッションをまたいで保持します。
- データ/リサーチサイエンティスト — 過去の会話やメモを大量に意味的にマイニング・検索し、参照実装としてプロジェクト自身の検索ベンチマークを再現します。
- プロジェクトマネージャー/チーム — 共有されたClaude Codeのトランスクリプトを共通のpalace(「共有脳ハブ」)にマイニングし、チームの知識と決定事項が個々のチャット履歴に散らばることなく、1か所で検索可能な状態を保ちます。
6. はじめに
必要なものを見つける — ガイドや参考資料についてはドキュメントサイトを参照してください:
https://mempalaceofficial.com/guide/getting-started.html
インストール/統合 — uvによる隔離されたインストールを推奨し、その後palaceを初期化します:
uv tool install mempalace
mempalace init ~/projects/myapp
mempalace mine ~/projects/myapp
mempalace search "why did we switch to GraphQL"
プロジェクトのスキルをインストールすることで、エージェントによるガイド付きセットアップも利用できます:
npx skills add MemPalace/mempalace
貢献する — PRを開く前に貢献ガイドを読んでください:
https://github.com/MemPalace/mempalace/blob/main/CONTRIBUTING.md
7. プロジェクト構造
mempalace/
├── backends/ # 差し替え可能なストレージバックエンド実装(chroma、qdrant、pgvector、...)
├── data/ # 同梱データアセット
├── i18n/ # 国際化リソース
├── instructions/ # エージェント向け指示セット
├── integrations/ # サードパーティツール統合
├── sources/ # マイニング用の取り込みソース
├── cli.py # `mempalace`コマンドラインエントリポイント
├── mcp_server.py # MCPサーバー実装(ツール公開)
├── knowledge_graph.py # 時間的エンティティ関係グラフ
├── palace.py # 中核となるpalaceの読み書きロジック
├── miner.py / convo_miner.py # コンテンツおよび会話マイニングパイプライン
├── searcher.py # 意味検索/検索ロジック
└── onboarding.py # 初回セットアップと埋め込みモデル選択
知っておく価値のある他のトップレベルディレクトリ:benchmarks/(再現可能なベンチマークスクリプトと結果)、hooks/(対応エディタ/エージェント向けの自動保存フック実装)、skills/(インストール可能なエージェントスキル)、website/(ドキュメントサイトのソース)。
8. 関連エコシステム
- 上流の依存関係:ChromaDB(デフォルトのベクターストア)、Milvus、Qdrant、pgvectorのオプションサポート付き。ローカル埋め込み用のONNX Runtimeと埋め込みモデル(
all-MiniLM-L6-v2、embeddinggemma-300m)。 - エージェント/エディタ統合:Claude Code、Codex CLI、Cursor IDE、Gemini CLI、Antigravity。Model Context Protocol(MCP)経由で接続されます。
- 補完的ツール:OpenAI互換の
/v1/embeddingsエンドポイント(LM Studio、llama.cpp、vLLM、Ollama)ならどれでも、ローカル計算の代わりにリモートまたはGPU加速の埋め込みに使用できます。
9. ライセンス
- ✅ MITライセンスの下で、商用利用、改変、再配布、私的利用が許可されています。
- ❌ 本ライセンスは、作者に対するいかなる保証も責任補償も提供しません。
- ℹ️ ソフトウェアのコピーまたはその主要部分には、元の著作権表示とライセンス表示を保持する必要があります。
10. よくある質問
Q: MemPalaceの動作にAPIキーやクラウドサービスは必要ですか?
A: いいえ。LongMemEvalでのR@5 96.6%という生の検索スコアを含む中核的なベンチマーク経路は、デフォルトのchromaバックエンドで完全にローカルに動作し、LLM呼び出しもありません。
Q: MemPalaceはどのベクターデータベースを使用しますか?
A: デフォルトではChromaDBで、sqlite_exact、milvus、qdrant、pgvectorへの差し替え可能なサポートがあり、--backend <name>またはMEMPALACE_BACKENDで選択できます。
Q: MemPalaceはローカルのPython環境なしで実行できますか?
A: はい、公開されているマルチアーキテクチャDockerイメージを使用できます:
docker pull ghcr.io/mempalace/mempalace:latest
Q: 圧縮後もClaude Codeセッションのコンテキストを保持するにはどうすればよいですか?
A: Claude Code保持セットアップチェックリストに記載されている自動保存フックを設定し、既存のトランスクリプトを以下でバックフィルします:
mempalace mine ~/.claude/projects/ --mode convos
Q: GitHubリポジトリ以外に公式ウェブサイトはありますか?
A: 公式の情報源は、GitHubリポジトリ、PyPIパッケージ(mempalace)、およびmempalaceofficial.comのドキュメントのみです。類似した名前の他のドメインは本プロジェクトとは関係ありません。
11. クイックリンク
- リポジトリ:https://github.com/MemPalace/mempalace
- 公式ドキュメント:https://mempalaceofficial.com
- 貢献ガイド:https://github.com/MemPalace/mempalace/blob/main/CONTRIBUTING.md
- コミュニティ:https://discord.com/invite/ycTQQCu6kn
12. まとめ
MemPalaceは、長時間動作するAIエージェントを構築または使用するすべての人にとって実用的なギャップを埋めます。すべてを保存することと何かを見つけることの二者択一を強いるのではなく、高速かつ正確な検索を保ちながら、完全で逐語的な会話履歴を保持します。Claude Code、Codex、Cursorなどのコーディングエージェントを統合する開発者は、必須のクラウド依存なしに、永続的で再現可能なベンチマーク済みのメモリを手に入れられます。一方、チームはニーズの拡大に応じて、プライベートなローカルpalaceから共有バックエンドへと同じシステムをスケールさせることができます。