MemPalace:AIが会話を丸ごと記憶するローカルメモリシステムをClaude Codeに組み込む方法

Uncategorized

MemPalace:AIが会話を丸ごと記憶するローカルメモリシステムをClaude Codeに組み込む方法

「なんでまた同じこと説明してるんだろう」

Claude Codeで作業していると、毎回こう思う瞬間がある。先週のセッションで「このプロジェクトはPostgresを使う、理由はモバイルのレスポンス速度を優先したいから」とちゃんと伝えたのに、次のセッションでは「どんなDBを使いますか?」と聞かれる。

AIに記憶がないのは仕様だとわかってても、地味にストレスが溜まる。

そこで試したのが MemPalace(milla-jovovich/mempalace)。GitHubスター数39,000超えのこのOSSは、AIメモリのベンチマーク「LongMemEval」で史上最高スコア96.6%を叩き出したシステムだ。しかも完全ローカル、APIコールゼロ、無料。

実際に組み込んでみたら、思った以上に「これだよこれ」という体験ができた。導入手順と使い勝手を正直にまとめる。


なぜMemPalaceは他のAIメモリシステムと違うのか

他のメモリシステムを試したことがある人なら、こんな経験があると思う。「Postgres好き」という情報は保存されるのに、「モバイルアプリのレスポンス速度のためにPostgresを選んだ」という文脈が消える

MemPalaceが面白いのは、この文脈問題に正面から向き合っている点だ。

設計の着想はギリシャの古典的な記憶術「記憶の宮殿(Memory Palace)」から来ている。会話を3層構造で管理する:

  • wings(翼):人物やプロジェクト単位の大分類
  • halls(廊下):記憶の種類(意思決定・好み・文脈など)
  • rooms(部屋):具体的なアイデアや会話の断片

そして最大のポイントが raw verbatimモード。要約も圧縮もせず、会話をそのままChromaDBに保存する。これがベンチマーク96.6%の正体だ。

一方、圧縮モード(AAKモード)は精度が84.2%まで落ちる。「要約すると情報が落ちる」というシンプルな事実を数字で証明してみせたのが印象的だった。他のシステムが「Postgres好き」だけを抽出して文脈を捨てるのに対し、MemPalaceは「なぜPostgresを選んだか」ごとそのまま保存する。これが検索精度の差として現れる。


インストールと初期設定(10分あれば終わる)

前提:Python 3.9以上が入っていること。それだけ。

### よくある失敗・注意点

**1. ChromaDBのバージョン競合**

最もよく報告されているのがこれ。`pip install chromadb`で最新版を入れると、MemPalaceが想定するAPIと噛み合わないことがある。

```bash
pip install chromadb==0.4.24

バージョンを固定するだけで解決するケースがほとんどだ。エラーメッセージに CollectionEmbeddingFunction が含まれていたらまずここを疑う。

2. OpenAI APIキーの設定忘れ

MemPalaceはエンベディング生成にOpenAI APIを使う。.envファイルに書いたつもりが読み込まれていないパターンが多い。

export OPENAI_API_KEY="sk-..."

シェルに直接exportするか、python-dotenvの読み込み順を確認すること。「保存はできるが検索結果が返ってこない」という症状のほぼ全部がこれだった。

3. ChromaDBのデータディレクトリの権限エラー

VPS上で動かす場合に起きやすい。ChromaDBがデータを永続化するディレクトリに書き込み権限がないと、起動時にサイレントで失敗する。

mkdir -p ~/.mempalace/chroma
chmod 755 ~/.mempalace/chroma

ローカルではなくVPS上で運用したい場合は、ConoHa VPS のようにsudo権限をフルで持てる環境を選ぶと詰まりにくい。共有ホスティングでは権限まわりで詰む確率が高い。


まとめ

MemPalaceは「AIが文脈を忘れる問題」に対して、要約に逃げず生のテキストを保存するという愚直な解を出した。その結果がベンチマーク96.6%だ。記憶の宮殿という比喩が単なる命名遊びではなく、wings・halls・roomsという3層構造として実装に落とし込まれている点も評価できる。まだ発展途上のプロジェクトではあるが、「なぜそうしたか」まで残せるAIの記憶基盤として、現時点で最も実用に近いオプションの一つだと思う。


よくある質問

Q. raw verbatimモードだとデータ量が膨大にならないか?

なる。これはトレードオフとして割り切っている設計だ。ChromaDBはベクトルDBなので検索速度は保てるが、長期運用ではストレージ消費を意識する必要がある。頻度の低いプロジェクトはwingsごとアーカイブする運用が現実的だろう。

Q. Claude以外のLLMでも使えるか?

エンベディング部分はOpenAI依存だが、会話を投げ込むLLM自体はAPI経由で差し替え可能な構造になっている。GPT-4やローカルLLMとの組み合わせ事例もコミュニティで報告されている。ただし公式サポートはClaude前提なので、自己責任での調整は覚悟すること。

Q. 既存の会話履歴をインポートできるか?

ChatGPTやClaudeのエクスポートJSONを変換するスクリプトが非公式で出回っている。公式にはサポートされていないが、テキストとして流し込むだけなのでフォーマット変換さえできれば動く。過去の会話資産を移行したい場合はGitHubのIssuesを漁ると実例が見つかる。
“`

コメント

タイトルとURLをコピーしました