「AIエージェントキャッチアップ #62 - Mem0」を開催しました

ジェネラティブエージェンツの大嶋です。

「AIエージェントキャッチアップ #62 - Mem0」という勉強会を開催しました。

generative-agents.connpass.com

アーカイブ動画はこちらです。

youtube.com

Mem0

今回は、AIアシスタント・AIエージェントのメモリーレイヤー「Mem0」をキャッチアップしました。

Mem0のGitHubリポジトリはこちらです。

github.com

公式ドキュメントはこちらです。

docs.mem0.ai

今回のポイント

Mem0とは

Mem0は、AIアシスタント・AIエージェントのメモリーレイヤーを提供するライブラリ・プラットフォームです。

プラットフォーム版(マネージドサービス)とオープンソース版が提供されており、2025年10月にバージョン1.0がリリースされています。

基本的な使い方

Mem0のオープンソース版の基本的な使い方を見てみます。

まず、Mem0をインストールします。

uv add mem0ai

次に、Pythonコードでメモリの追加と検索を行います。

import json

from mem0 import Memory

m = Memory()

messages = [
    {"role": "user", "content": "Hi, I'm Alex. I love basketball and gaming."},
    {"role": "assistant", "content": "Hey Alex! I'll remember your interests."},
]
m.add(messages, user_id="alex")

results = m.search("What do you know about me?", user_id="alex")
print(json.dumps(results, indent=2))

このコードを実行すると、「Name is Alex」や「Loves basketball and gaming」という事実が検索されます。

Mem0では、入力したテキストから自動的に事実を抽出して保存されていることが分かります。

デフォルトの設定では、検索にOpenAIのEmbeddingモデルとQdrantが使われます。

その他の機能

Mem0のその他の機能をいくつか紹介します。

検索処理のカスタマイズ

Mem0では、検索処理のカスタマイズ方法がいくつか提供されています。

たとえば、ベクトル検索だけでなくグラフデータベースも組み合わせた検索が可能です。

docs.mem0.ai

他にも、事実の抽出のプロンプトをカスタマイズしたり、検索時にリランカーを設定することもできます。

マルチモーダルサポート

Mem0は、テキストだけでなく画像からも情報を抽出して記憶として扱うことができるようです。

docs.mem0.ai

各種フレームワークとのインテグレーション

LangChainをはじめとする各種フレームワークとのインテグレーション例も提供されています。

docs.mem0.ai

まとめ

Mem0について一言で言えば、「LLMエージェントでよく使われる、事実の抽出とベクトル検索によるメモリーの実装を提供するライブラリ」という印象です。 そのようなメモリー機能を実装したいときは、手軽に使うことができるため選択肢になるかもしれません。

ただし、最近はコーディングエージェントのように、メモリーとしてファイルシステムにファイルとして書き込み探索するような実装もあります。 メモリーの実装として、ベクトル検索以外の選択肢もあることには注意が必要です。

次回のご案内

以上、今回は「Mem0」をキャッチアップしました。

次回は「AIエージェントキャッチアップ #63 - A2UI」ということで、Generative UIのためのエージェントとユーザー間のインターフェース「A2UI」がテーマです!

generative-agents.connpass.com

ご興味・お時間ある方はぜひご参加ください!

また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!