ブログ一覧へ戻る

AIエージェントのメモリ基盤を比較する: Mem0 / Letta / agentmemory / Contextberg

PyPIで使われるAI memory SDK/APIと、npm・MCPで既存エージェントにつなぐローカル作業メモリの違いを整理します。

AIエージェントメモリMem0LettaagentmemoryContextberg

同じmemoryでも、見ている層が違う

AIエージェントのmemoryという言葉は広く使われています。ただし、Mem0、Letta、agentmemory、Contextbergは同じものを作っているわけではありません。

Mem0やLettaは、アプリやエージェントランタイムにmemoryを組み込むためのSDK/APIに近い存在です。一方、Contextbergは既存のClaude Code、Codex、Cursor、Claude Desktopへ、PC上の作業文脈をMCP経由で渡すデスクトップアプリです。

比較するときの軸

AI memoryを比較するときは、スター数やダウンロード数だけでは足りません。まず見るべきなのは、誰のためのmemoryかです。AIアプリ開発者のためなのか、エージェントランタイムを作る人のためなのか、既存のAIコーディングツールを使う作業者のためなのかで、正解が変わります。

次に、何を記憶するかです。会話、ユーザーの好み、プロジェクトルール、agentのtool call、ブラウザ履歴、画面、キーボード入力、アプリ利用時間。memoryと呼ばれていても、記録している対象はかなり違います。

最後に、どこから読めるかです。SDKからしか読めないのか、APIで読めるのか、MCPでClaude DesktopやCursorから読めるのか、CLIやnpxで接続できるのか。実務では、この出口の違いが使い勝手を決めます。

AI memory基盤の比較軸
項目Mem0LettaagentmemoryContextberg
主な用途AIアプリやassistantに長期記憶を組み込むstateful agent / agent runtimeを作るAI coding agentsにpersistent memoryを追加する既存のClaude Code / Codex / CursorへPC作業文脈を渡す
主な利用者AIアプリ開発者、chatbot開発者agent runtimeを設計する開発者AI coding agentを深く使う開発者複数AIエージェントを横断する作業者
記憶するものユーザーの好み、事実、会話由来のmemoryagentの状態、memory blocks、会話/推論の継続情報agentの学習、hooks、会話やタスク由来のmemory画面、ブラウザ履歴、アプリ利用、キーボード入力、agent会話履歴
接続の出口SDK/API、hosted memorySDK/API、agent platformhooks、MCP、REST、pluginnpm/npx MCP bridge、ローカルデスクトップアプリ
強い場面自社AIアプリにmemoryを入れたい記憶を持つagentそのものを設計したいcoding agentにmemoryを足したい人間のPC作業文脈を複数agentへ渡したい
弱い場面既存デスクトップ作業をそのまま拾う用途Claude Code等の既存ツール横断の即利用画面/ブラウザ/アプリ利用まで含めた作業記録AIアプリに埋め込む汎用memory SDK用途

Mem0: AIアプリにmemory layerを追加する

Mem0は、AI assistantやagentに長期記憶を追加するためのmemory layerです。ユーザーの好み、過去の会話、継続的な事実を保存し、アプリ側からAPI/SDKとして使います。

そのため、Mem0が強いのは『自分のAIアプリにmemoryを組み込みたい』という開発者のユースケースです。Python SDKやhosted APIの利用量が大きいのも、この用途と合っています。

一方で、Claude CodeやCodexやCursorをそのまま使っているだけの開発者にとっては、SDKを組み込む場所がありません。自分のアプリにmemoryを足す話と、自分の作業環境にmemoryを足す話は分けて考える必要があります。

Letta: stateful agentを作るための基盤

Lettaは、memory blocksを持つstateful agentを作るためのプラットフォームです。エージェントランタイムやAPIを設計し、記憶を持つエージェントそのものを作りたい場合に向いています。

Contextbergとはレイヤーが違います。Lettaはエージェントを作る側の基盤で、ContextbergはユーザーのPC作業履歴を既存エージェントに渡す側の基盤です。

たとえば、自社サービスの中で長期記憶を持つsupport agentを作るならLettaのような方向が自然です。反対に、日々Claude CodeとCodexを開いている個人開発者が、昨日の調査や画面状態を次のagentへ渡したい場合は、runtimeより作業環境側のmemoryが必要になります。

agentmemory: AI coding agents向けのpersistent memory

agentmemoryはContextbergに近い方向です。Claude Code、Codex、CursorなどAI coding agentにpersistent memoryを持たせることを前面に出しています。

違いは、Contextbergがエージェント会話履歴だけではなく、画面、ブラウザ履歴、アプリ利用、キーボード入力まで含めたPC作業文脈を扱うことです。agentmemoryがagent側のmemoryに寄っているなら、Contextbergは作業者側のlocal work memoryに寄っています。

この違いは小さく見えて実務では大きいです。agentが何を言ったかだけでなく、ユーザーがagentに聞く前に何を読んでいたか、どのエラー画面を見ていたか、どのアプリで時間を使っていたかまで拾うと、再開時の説明量が変わります。

Contextberg: 既存エージェントへ作業文脈を渡す

Contextbergは、memory SDKではありません。npxでMCP bridgeを起動し、Claude DesktopやMCP対応クライアントからローカルの作業メモリを読めるようにするアプリです。

開発者がAIアプリを作るためのmemoryではなく、開発者本人がClaude Code、Codex、Cursorをまたいで作業するためのmemoryです。会話履歴だけではなく、会話の前後に何を見て、何を試し、どこで判断したかを渡すことを目的にしています。

そのため、Contextbergの比較対象はmemory APIだけではありません。RewindやMicrosoft Recallのようなscreen history系、RescueTimeのようなactivity tracking系、Claude Code plugin系とも少しずつ重なります。ただし中心は、AIエージェントに作業文脈を渡すことです。

Recall / screen history系とは何が違うか

検索上はMicrosoft Recall alternative、Rewind alternative、screen history AIといった言葉も近く見えます。ただし、これはAI agent memoryとは別の軸です。画面履歴を検索することと、Claude CodeやCodexに作業文脈を渡すことは似ていますが、最終的な使われ方が違います。

screen history系とagent memory系の違い
カテゴリ主な目的強い場面Contextbergとの関係
Microsoft Recall / Rewind系過去に見た画面を人間が思い出すあのページ、あの資料、あの画面を探す近いが、Contextbergの主目的はAIエージェントへ作業文脈を渡すこと
screenpipe / OpenRecall系ローカルな画面履歴・OCR・検索プライバシー重視でPC履歴を検索するローカル記録の思想は近いが、MCPでcoding agentへ渡す導線が差別化点
agentmemory / Claude-Mem系AI coding agentの会話やtool使用を継続するClaude Codeなどの作業継続Contextbergはagentの会話だけでなく、ブラウザ・画面・アプリ利用まで含める
ContextbergPC作業文脈をAI agentが読めるmemoryにするClaude Code、Codex、Cursorをまたぐ作業再開・レビュー・調査引き継ぎscreen historyとagent memoryの間にあるlocal work memory

公開指標の読み方

GitHub starsは話題性の指標です。開発者が面白いと思った、あとで試したいと思った、紹介された、という反応は見えますが、実際に毎日使われているかは分かりません。

npm downloadsやPyPI downloadsは実利用に近い指標ですが、これもユーザー数ではありません。CI、Docker build、再インストール、依存パッケージ経由のダウンロードでも増えます。特にMem0のようなSDKはPyPI downloadsが伸びやすく、Contextbergのようなデスクトップ/MCP型とは数字の意味が違います。

だから、比較ではstars、downloads、更新頻度、issues、docsの厚さ、実際の導入経路をセットで見るべきです。SEOでも同じで、数字が強い競合の言葉をそのまま真似るのではなく、なぜその言葉が刺さっているかを分解して、自分のプロダクトの文脈に翻訳する必要があります。

選び方

AIアプリにmemoryを組み込みたいならMem0、stateful agentを作りたいならLetta、AI coding agent側のpersistent memoryを軽く足したいならagentmemoryが候補になります。

一方で、Claude Codeで設計し、Codexでレビューし、Cursorで編集するような複数エージェント横断の作業文脈を残したいなら、Contextbergのようなローカル作業メモリが合います。