AIコーディングエージェントを使い始めてしばらく経つと、多くのエンジニアが同じ壁にぶつかります。新しいセッションを開くたびに、プロジェクトの構造・アーキテクチャの経緯・チームの命名規則を一から説明し直す必要があるのです。CLAUDE.md に重要事項を書き留めているエンジニアも少なくありませんが、200 行を超えると更新が滞り、古い情報が残り続けるという別の問題が生まれます。
この問題を解決しようとして「エージェント 永続メモリ」を調べると、mem0・Letta・claude-mem など複数の選択肢が出てきます。どれも「セッションをまたいでコンテキストを保持する」という目的は同じですが、設計思想や対象ユースケースはまったく異なります。agentmemory はその中でも「コーディングエージェント専用の永続メモリ基盤」として設計されており、2026 年 5 月時点でスター数 9,213、Apache-2.0 ライセンスで公開されています(GitHub)。
本記事では、agentmemory の内部アーキテクチャを解説した上で、mem0・Letta との違いを整理し、「自分のプロジェクトに agentmemory を採用すべきかどうか」を判断するための材料を提供します。
agentmemory とは:AIコーディングエージェントの永続メモリ基盤
agentmemory は、AIコーディングエージェントが実行中に行うすべての操作(ツール呼び出し・ユーザープロンプト・ファイルアクセス等)を自動キャプチャし、セッションをまたいで検索可能な形式で保存するメモリサーバーです(公式サイト: agent-memory.dev)。
特筆すべき点は 「エージェント側のコード修正がゼロ」 という設計です。既存のエージェント(Claude Code・Cursor・Gemini CLI など)を修正することなく、メモリサーバーを起動してプラグインを登録するだけで永続メモリが有効になります。外部データベースも不要で、SQLite とインメモリのベクトルインデックスのみで動作します。
指標 | 値 |
|---|---|
スター数 | 9,213(2026-05-15 時点) |
フォーク数 | 762 |
言語 | TypeScript(81.9%) |
ライセンス | Apache-2.0 |
最終更新 | 2026-05-15(活発にメンテナンス中) |
最新バージョン | v0.9.12(2026-05-13 リリース) |
AIコーディングエージェントが「記憶を失う」問題
Claude Code に代表されるAIコーディングエージェントは、セッションが終了するとコンテキストウィンドウがリセットされ、前セッションの会話履歴や判断経緯はゼロになります。CLAUDE.md のような静的ファイルに情報を残す方法もありますが、agentmemory の README では次の限界が指摘されています。
Built-in memory systems (like CLAUDE.md) cap at ~200 lines and go stale.
1,000 件以上の観察データがある場合、CLAUDE.md 形式ではモデルが参照できる情報の 80% が欠落するとも報告されています。agentmemory は「何を伝えるか」をエンジニアが判断する代わりに、エージェントのすべてのアクションを自動的に記録し、次のセッションで「関連する情報だけ」を注入します。
agentmemory の仕組み:3段階のメモリパイプライン

agentmemory のメモリ処理は「キャプチャ → 検索 → 統合」の 3 段階で構成されています。
① 自動キャプチャ:12個のライフサイクルフック
agentmemory は Claude Code 向けに 12 個のライフサイクルフックを自動登録します:
SessionStart,UserPromptSubmit,PreToolUse,PostToolUse,Stop,SessionEndなど
これらのフックが発火するたびに、以下のパイプラインが実行されます。
- SHA-256 による重複排除(5分ウィンドウ)
- プライバシーフィルター(APIキー・シークレットを自動除去)
- オプションの LLM 圧縮(構造化された事実・概念・ナレーティブに変換)
- ベクトル埋め込み → BM25 + ベクトルインデックスへの保存
② BM25+ベクトル+グラフの3ストリーム検索
記憶の想起には「トリプルストリーム検索」が使われます。
ストリーム | 仕組み | 特性 |
|---|---|---|
BM25(キーワード) | ステミング・同義語展開付きマッチング | 常時有効 |
ベクトル(セマンティック) | コサイン類似度による埋め込み検索 | ローカルまたは API 経由 |
グラフ(関係) | 知識グラフトラバーサル | エンティティ関係に強い |
3 つの結果を Reciprocal Rank Fusion(RRF, k=60)で融合し、セッション多様化(1 セッション最大 3 件)を適用します。
③ 4層メモリモデルとエビングハウス減衰
保存されたメモリは 4 層で管理されます。
層 | 内容 | アナロジー |
|---|---|---|
Working | ツール使用からの生の観察データ | 短期記憶 |
Episodic | セッションサマリー | 「何が起きたか」 |
Semantic | 抽出された事実・パターン | 「何を知っているか」 |
Procedural | ワークフロー・意思決定パターン | 「どうやるか」 |
参照されない記憶はエビングハウス曲線に沿って自然減衰し、頻繁に参照される記憶は強化されます。これにより、古くなった情報が自動的に淘汰されます。
セットアップ:1コマンドで始める永続メモリ

agentmemory のセットアップは最小構成なら 1 コマンドです。
npx @agentmemory/agentmemory
出典: https://github.com/rohitg00/agentmemory#readme
これでメモリサーバーがポート 3111 で起動します。リアルタイムビューア(ポート 3113)で観察データのライブストリームを確認できます。
Claude Code へのプラグインインストール
Claude Code には専用のプラグイン登録コマンドが用意されています。
/plugin install agentmemory
出典: https://github.com/rohitg00/agentmemory#readme
このコマンド 1 つで 12 個のフック・4 個のスキル・MCP ツール(51 個)が自動接続されます。
Cursor・Claude Desktop など MCP 経由での接続
MCP に対応したエージェントには、設定ファイルにサーバーブロックを追加するだけです。
{
"mcpServers": {
"agentmemory": {
"command": "npx",
"args": ["-y", "@agentmemory/mcp"],
"env": {
"AGENTMEMORY_URL": "http://localhost:3111"
}
}
}
}
出典: https://github.com/rohitg00/agentmemory#readme
Cursor・Claude Desktop・Gemini CLI・Cline・Windsurf・Roo Code・Kilo Code・Goose・Aider・OpenCode が対応しています。1 つのメモリサーバーが複数のエージェントで共有できる点が、エージェント固有のプラグイン型(claude-mem など)との大きな違いです。
agentmemory と mem0・Letta の違い

同じ「AIエージェントの永続メモリ」というカテゴリに属しながら、各 OSS は設計思想が大きく異なります。
mem0 との比較:汎用性 vs コーディングエージェント特化
mem0(mem0ai/mem0)はスター数 55,700+、$24M の資金調達を経た汎用メモリ API です。
観点 | mem0 | agentmemory |
|---|---|---|
主な用途 | AI 製品へのメモリ機能組み込み | コーディングエージェント専用 |
メモリ追加方法 | 手動 | 12フックによる自動キャプチャ |
外部 DB | Qdrant / pgvector が必要 | SQLite のみ(外部 DB 不要) |
検索精度(R@5) | 68.5%(agentmemory README 記載) | 95.2% |
mem0 は LangChain・CrewAI・Claude Agent SDK など多様なフレームワークと統合でき、汎用性が高い一方、コーディングエージェントのライフサイクルに特化した自動キャプチャ機能は持っていません。
Letta との比較:エージェント統合型 vs 後付けメモリサーバー
Letta(旧 MemGPT)はスター数 22,000+、エージェント自身がメモリを管理する「エージェント統合型」フレームワークです。
観点 | Letta | agentmemory |
|---|---|---|
アーキテクチャ | Letta ランタイムに依存する統合型 | 任意のエージェントへの後付け可能な外部サーバー |
セットアップ | Postgres + ベクトルDB が必要 |
|
検索精度(R@5) | 83.2%(agentmemory README 記載) | 95.2% |
Claude Code 対応 | 非ネイティブ |
|
Letta は「エージェント自身がメモリを編集する」設計が特徴ですが、既存のコーディングエージェント(Claude Code・Cursor 等)に後付けする用途では agentmemory の方が導入コストが低くなります。
LongMemEval-S ベンチマーク比較
agentmemory の README では、500 問からなるベンチマーク(LongMemEval-S)での比較結果が公開されています。
システム | R@5 | R@10 | MRR |
|---|---|---|---|
agentmemory | 95.2% | 98.6% | 88.2% |
BM25-only fallback | 86.2% | 94.6% | 71.5% |
出典: https://github.com/rohitg00/agentmemory#readme
mem0(68.5%)・Letta/MemGPT(83.2%)との比較数値は agentmemory 側の自己報告値であるため、独立した第三者検証ではない点に留意が必要です。
トークン効率:年間コストの試算
agentmemory の README では、アプローチ別のトークン消費と年間コストが公開されています。
アプローチ | 年間トークン | 年間コスト |
|---|---|---|
フルコンテキスト貼り付け | 19.5M+ | ウィンドウ超過 |
LLMサマリー(手動) | ~650K | ~$500 |
agentmemory | ~170K | ~$10 |
agentmemory + ローカル埋め込み | ~170K | $0 |
出典: https://github.com/rohitg00/agentmemory#readme
ローカル埋め込み(all-MiniLM-L6-v2)を使用すれば埋め込みコストもゼロになります。
リアルタイムビューアとスナップショット機能
agentmemory はデバッグと可観測性を重視した機能を備えています。
リアルタイムビューア(localhost:3113):
- ライブストリーム: エージェントが動作中に観察データが到着する様子をリアルタイム確認
- セッションエクスプローラー: 過去セッションの完全なリプレイ(タイムライン・スクラブ・再生速度制御)
- メモリブラウザ: 保存された記憶の検索・閲覧
- 知識グラフ: エンティティ間の関係を可視化
スナップショット・バージョニング: git のようにメモリ状態のバージョンを作成し、ロールバックや差分確認ができます。
まとめ:agentmemory を選ぶべきケース
agentmemory は「コーディングエージェント専用の永続メモリ基盤」として、次のニーズに最も適しています。
採用を検討すべきケース:
- Claude Code・Cursor など複数のコーディングエージェントを同一プロジェクトで使い、共通のメモリを共有したい
- 外部データベース(Postgres・Qdrant など)を追加したくない(
npxのみで完結させたい) - セッション間のコンテキスト消失が課題で、手動メモリ追加ではなく自動キャプチャが必要
- Apache-2.0 ライセンスで商用プロジェクトにも利用したい
他の選択肢を検討すべきケース:
- アプリケーション全体にメモリ機能を組み込みたい → mem0(汎用 API・エコシステムが広い)
- エージェント自身がメモリを管理・編集する設計にしたい → Letta
- Claude Code 専用で軽量なプラグイン型で十分 → claude-mem(syusodo.co.jp の紹介記事も参照)
9,000+ スターのトラクション・Apache-2.0 ライセンス・毎日のようなアップデート(最終プッシュ: 2026-05-15)から、メンテナンスの健全性は現時点では高いと判断できます。ただし、メモリシステムはプロジェクトの核となる依存関係になるため、本番導入前に小規模プロジェクトで動作確認することを推奨します。
詳細な仕様・統合ガイドは agentmemory GitHub リポジトリおよび 公式サイト(agent-memory.dev)を参照してください。



