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

同じ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で接続できるのか。実務では、この出口の違いが使い勝手を決めます。
| 項目 | Mem0 | Letta | agentmemory | Contextberg |
|---|---|---|---|---|
| 主な用途 | AIアプリやassistantに長期記憶を組み込む | stateful agent / agent runtimeを作る | AI coding agentsにpersistent memoryを追加する | 既存のClaude Code / Codex / CursorへPC作業文脈を渡す |
| 主な利用者 | AIアプリ開発者、chatbot開発者 | agent runtimeを設計する開発者 | AI coding agentを深く使う開発者 | 複数AIエージェントを横断する作業者 |
| 記憶するもの | ユーザーの好み、事実、会話由来のmemory | agentの状態、memory blocks、会話/推論の継続情報 | agentの学習、hooks、会話やタスク由来のmemory | 画面、ブラウザ履歴、アプリ利用、キーボード入力、agent会話履歴 |
| 接続の出口 | SDK/API、hosted memory | SDK/API、agent platform | hooks、MCP、REST、plugin | npm/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に作業文脈を渡すことは似ていますが、最終的な使われ方が違います。
| カテゴリ | 主な目的 | 強い場面 | Contextbergとの関係 |
|---|---|---|---|
| Microsoft Recall / Rewind系 | 過去に見た画面を人間が思い出す | あのページ、あの資料、あの画面を探す | 近いが、Contextbergの主目的はAIエージェントへ作業文脈を渡すこと |
| screenpipe / OpenRecall系 | ローカルな画面履歴・OCR・検索 | プライバシー重視でPC履歴を検索する | ローカル記録の思想は近いが、MCPでcoding agentへ渡す導線が差別化点 |
| agentmemory / Claude-Mem系 | AI coding agentの会話やtool使用を継続する | Claude Codeなどの作業継続 | Contextbergはagentの会話だけでなく、ブラウザ・画面・アプリ利用まで含める |
| Contextberg | PC作業文脈を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のようなローカル作業メモリが合います。