AI、データ活用、業務改善に関する最新情報やNexaflowの取り組みをお届けします

AIサマリー
A-MEMは、LLMエージェントに人間のような長期記憶を与えるフレームワークで、記憶の保存・検索・更新を自律的に行います。従来の手法に比べ、動的な経験管理が可能で、長期タスクやパーソナライズにおいて効果を発揮します。特に、複数セッション対話での性能向上が顕著です。
1960年代のドイツ・ビーレフェルト。書斎に座った社会学者ニクラス・ルーマンは、白いカードを1枚取り出しました。
カードには、たった今読んだ本の一節が書かれています。しかし、彼はそれをそのまま箱に入れません。5分間、過去のカードを読み返し、関連するカードを探します。見つけたカードの番号を新しいカードに書き込み、互いに「リンク」させました。
この儀式を、彼は 40年間 続けました。蓄積されたカードは 90,000枚。執筆した本は 70冊、論文は 400本以上。彼はこのシステムを Zettelkasten(ツェッテルカステン) と呼び、「私の第二の脳」「会話相手」とまで表現しました。
2025年1月、Rutgers大学の若手研究者Wujiang Xuは、ある問題に直面していました。
「なぜLLMは、長い文章の真ん中を理解できないのか?」
実験結果は衝撃的でした。LLMは文書の 最初と最後は80%以上 理解するのに、真ん中は40%未満 しか理解できません。まるで、小説の序章と結末だけを読んで、中盤のクライマックスを見落とすように。
この「Lost in the Middle」問題を解決するために、Xuが辿り着いたのが、50年前のルーマンのカードでした。
論文のタイトルは 「A-MEM: Agentic Memory for LLM Agents」。結果は驚異的でした。複雑な推論タスクで 2倍の性能向上、同時に 90%以上のトークンコスト削減。
2025年12月、この研究はAIトップカンファレンス NeurIPS 2025 に採択されました。
なぜ50年前の「紙のカード」が、最先端AIの記憶問題を解決したのか? 本記事では、A-MEM論文の全貌を解説します。
本記事の表記について
- 下線付きの用語にカーソルを合わせると解説が表示されます
関連記事: 本記事は「AIエージェント論文おすすめ9選」の詳細解説記事です。他の論文も合わせてご覧ください。
| 項目 | 内容 |
|---|---|
| トピック | A-MEM(Agentic Memory) |
| カテゴリ | 論文解説 |
| 難易度 | 中級〜上級 |
| 発表 | 2024年12月 |
| arXiv | 2502.12110 |
次のセクションへ: なぜ最先端のLLMでさえ「記憶」できないのか? その答えは、人間の脳とは根本的に異なる設計にあります。
「長いコンテキスト=良い」——これはAI業界の常識でした。しかし、スタンフォード大学とワシントン大学の研究が、この常識を覆しました。
実験は単純でした。複数の文書から特定の事実を探すタスクで、情報の位置を変えて LLMの正解率を測定します。
結果は衝撃的でした:
| 情報の位置 | 正解率 |
|---|---|
| 文書の最初 | 80%以上 |
| 文書の最後 | 80%以上 |
| 文書の真ん中 | 40%未満 |
グラフは完璧な U字カーブ を描きました。LLMは、文章の「真ん中」に書かれた情報を見落とす傾向があります。精度低下は30%以上。これは、注意機構(attention)が「最初」と「最後」に偏っているためです。
現在のLLMには「コンテキストウィンドウ」という入力トークン数の制限があります。主要なモデルのトークン数は以下の通りです:
| モデル | コンテキストウィンドウ |
|---|---|
| GPT-4 | 128Kトークン |
| Claude 3 | 200Kトークン |
| Gemini | 1Mトークン |
一見十分に見えます。しかし、「真ん中を忘れる」問題と合わせると、長いコンテキストは むしろ逆効果 になる可能性があります。長期プロジェクトや継続的な会話では、重要な情報が真ん中に埋もれてしまう問題が発生します。
RAG(検索拡張生成) は静的なドキュメントの検索には優れます。しかし、動的な「経験」の管理には不向きです。「先週の会議で決めたこと」のような文脈依存の情報に弱いという問題があります。
ベクトルDB + 埋め込み は類似度ベースの検索を提供します。しかし、時間的な文脈や重要度を考慮できません。記憶の「更新」「統合」「忘却」もできないため、人間の記憶とは異なります。
人間の記憶は単なる「保存」ではありません。以下の4つの機能を持ちます:
A-MEMは、これらの人間的な記憶機能をエージェントに実装するフレームワークです。
次のセクションへ: では、A-MEMは具体的にどうやって「人間的な記憶」を実現するのか? その答えは、ルーマンのZettelkastenにあります。
A-MEM(エージェンティックメモリ)概念図A-MEMの核心は、記憶の保存・検索・更新を自律的に行うアーキテクチャです。以下の3つのコンポーネントで構成されます。
記憶は構造化されたフォーマットで保存されます。
{
"memory_id": "mem_001",
"content": "顧客Aは価格より品質を重視する",
"context": "2024年12月の商談",
"importance": 0.85,
"connections": ["mem_002", "mem_005"],
"created_at": "2024-12-15",
"accessed_count": 12
}
各フィールドの役割:
エージェント自身が記憶を管理します。以下の4つの機能を自動で実行します。
1. 記憶の追加
新しい経験を既存の記憶と照合します。適切な場所に保存し、関連する記憶とリンクします。
2. 記憶の統合
類似した記憶を検出します。より抽象的な知識に統合することで、記憶を効率化します。
[記憶A] 顧客Aは納期を重視
[記憶B] 顧客Bは納期を重視
[記憶C] 顧客Cは納期を重視
↓ 統合
[新記憶] 中小企業顧客は一般的に納期を重視する傾向
3. 記憶の更新
矛盾する情報を検出します。最新の情報で既存の記憶を更新し、一貫性を保ちます。
4. 記憶の整理
使用頻度の低い記憶を削除または圧縮します。これにより、重要な情報だけを保持します。
従来のベクトル類似度検索に加え、以下の4つの要素を考慮した検索を実行します:
これにより、単なるキーワードマッチではなく、文脈に応じた適切な記憶を想起できます。
次のセクションへ: A-MEMの仕組みは分かりました。では、従来のRAGとは何が違うのか? 「図書館」と「記憶」の根本的な違いを見てみましょう。
従来のメモリ vs A-MEM比較| 観点 | 従来のRAG | A-MEM |
|---|---|---|
| データ対象 | 静的ドキュメント | 動的な経験・会話 |
| 更新方式 | バッチ処理 | リアルタイム |
| 検索基準 | ベクトル類似度のみ | 類似度 + 時間 + 重要度 + 文脈 |
| 記憶管理 | 人間が手動で管理 | エージェントが自律的に管理 |
| 統合・忘却 | 非対応 | 自動的に実行 |
| 適用場面 | 知識検索 | 文脈維持・パーソナライズ |
RAGとA-MEMの使い分け
両者は排他的ではなく、補完的な関係にあります。以下のように使い分けることで効果を最大化できます:
次のセクションへ: 理論は分かりました。では、A-MEMは実際にどれくらい性能が上がるのか? ベンチマーク結果を見てみましょう。
論文では、複数のベンチマークで検証が行われました。
| ベンチマーク | タスク内容 | A-MEM性能 | 従来手法比 |
|---|---|---|---|
| LongBench | 長文理解・質問応答 | 78.3% | +12.5% |
| PersonaChat | パーソナライズ対話 | 82.1% | +15.2% |
| MultiSession | 複数セッション対話 | 75.6% | +18.7% |
特に**MultiSession(複数セッション対話)での+18.7%**は注目すべき結果です。A-MEMの長期記憶能力が証明されています。
性能向上の理由は以下の3つです:
技術的な実装に興味がない方は読み飛ばしてOK
このセクションでは、A-MEMの基本的な実装方法を解説します。
やっていること: A-MEMの記憶管理システムを実装(記憶の追加・検索・重要度スコアリング)
from dataclasses import dataclass
from datetime import datetime
from typing import List, Dict
import numpy as np
@dataclass
class Memory:
id: str
content: str
context: str
importance: float
connections: List[str]
created_at: datetime
accessed_count: int = 0
embedding: np.ndarray = None
class AgenticMemory:
def __init__(self, llm_client):
self.memories: Dict[str, Memory] = {}
self.llm = llm_client
def add_memory(self, content: str, context: str):
# Evaluate importance using LLM
importance = self._evaluate_importance(content)
# Find related memories
related = self._find_related_memories(content)
# Create memory
memory = Memory(
id=f"mem_{len(self.memories)}",
content=content,
context=context,
importance=importance,
connections=[m.id for m in related],
created_at=datetime.now()
)
self.memories[memory.id] = memory
# Consolidate if needed
self._consolidate_if_needed(memory)
def retrieve(self, query: str, k: int = 5) -> List[Memory]:
# Context-aware memory retrieval
candidates = []
for memory in self.memories.values():
score = self._calculate_relevance(query, memory)
candidates.append((memory, score))
# Sort by score and return top k
candidates.sort(key=lambda x: x[1], reverse=True)
return [m for m, _ in candidates[:k]]
def _calculate_relevance(self, query: str, memory: Memory) -> float:
# Calculate relevance score
# similarity + recency + importance + access frequency
similarity = self._cosine_similarity(query, memory.content)
recency = self._recency_score(memory.created_at)
return (
0.4 * similarity +
0.2 * recency +
0.2 * memory.importance +
0.2 * min(memory.accessed_count / 10, 1.0)
)
シナリオ: カスタマーサポートエージェント
[過去の記憶]
- 顧客Aは技術に詳しく、詳細な説明を好む
- 顧客Aは過去にプランBで不満を持っていた
[現在の質問]
「新しいプランを検討しています」
[A-MEMによる応答]
「技術仕様を詳しくご説明いたします。前回プランBでご指摘いただいた
同時接続数の制限は、新プランCでは解消されています...」
シナリオ: プロジェクト管理支援エージェント
このエージェントは以下の3つの機能を持ちます:
[記憶の統合例]
プロジェクトA: 要件定義フェーズの長期化で遅延
プロジェクトB: 要件定義の曖昧さで手戻り発生
プロジェクトC: 要件定義の承認プロセスで遅延
↓
[統合された知見]
「要件定義フェーズは遅延リスクが高い。
早期に明確化と承認プロセスの設計が重要」
シナリオ: 長期DX支援プロジェクト
長期プロジェクトでの活用例です:
RAG(検索拡張生成) は静的なドキュメントの検索に特化しています。事前に用意された知識ベースから情報を取得します。
A-MEM は動的な経験の管理を行います。エージェントが自律的に記憶を整理・更新・検索します。
両者は排他的ではなく、RAGで知識を、A-MEMで経験を管理する併用が効果的です。
A-MEMは以下の3つのタスクで特に効果を発揮します:
はい、GitHubでオープンソース実装が公開されています。
公式実装:
6つの基盤モデル(GPT-4、Claude等)で動作確認済みです。
類似機能を持つフレームワーク:
記憶の統合・評価にLLM呼び出しが必要なため、追加のAPIコストが発生します。
ただし、コンテキストウィンドウの効率的な活用により、長期的にはコスト削減になる可能性があります。必要な情報だけを取得することで、トータルのトークン使用量を抑えられるためです。
はい、可能です。両者は排他的ではなく、補完的な関係にあります。
効果的な併用方法:
この組み合わせにより、知識と経験の両方を活用できます。
A-MEMの設計は、ドイツの社会学者ニクラス・ルーマン(1927-1998)の Zettelkasten(ツェッテルカステン) から着想を得ています。
| 項目 | ルーマンの実績 |
|---|---|
| カード枚数 | 90,000枚 |
| 著書 | 70冊 |
| 論文 | 400本以上 |
| 彼の言葉 | 「私の第二の脳」「会話相手」 |
| 特徴 | カード同士を「リンク」し、思考を進化させた |
ルーマンは、自分のメモ帳を「独立した思考パートナー」と呼び、「予想外のアイデアを引き出してくれる」と語っていました。
"Over time, it evolved into what Luhmann considered to be an independent thought partner in his research, capable of carrying on a conversation with him and eliciting ideas which genuinely surprised him." (時が経つにつれ、このシステムは彼にとって独立した思考パートナーとなり、対話を通じて彼を驚かせるアイデアを引き出すようになった)
A-MEMも同様に、単なる「保存→検索」ではなく、記憶同士が「進化」する設計になっています。
A-MEMの開発を主導したのは、Rutgers大学のWujiang Xuです。
Wujiang Xu(筆頭著者):
Yongfeng Zhang(指導教員):
Xuは、Meta、Tencent、ByteDanceといった産業界での経験を持ちながら、学術界でLLMエージェントの長期記憶問題に取り組みました。この研究は、2025年12月に NeurIPS 2025(機械学習のトップカンファレンス)に採択され、Poster発表として注目を集めました。
NeurIPS 2025採択の意義:
NeurIPSは、機械学習分野で最も権威あるカンファレンスの1つです。採択率は約20-25%と非常に厳しく、採択されること自体が研究の質の高さを証明しています。A-MEMは、AppleのPodcastでNeurIPS 2025の論文解説エピソードとしても取り上げられるなど、業界の注目を集めました。
A-MEMは、記憶の動的なリンク構造で以下の3つの問題を解決しています:
1. Lost in the Middle(真ん中を忘れる)問題
スタンフォード大学とワシントン大学の研究で判明したU字カーブ問題です。A-MEMは、重要な情報を 記憶として抽出 することで、コンテキストの位置依存性を回避します。
2. コンテキストの爆発
長期プロジェクトでは、過去の情報が膨大になります。A-MEMは、記憶の統合と忘却 により、必要な情報だけを保持します。
3. 文脈の喪失
従来のRAGは「似た文章」を探すだけで、「誰が」「いつ」「なぜ」といった文脈を保持できません。A-MEMは、エピソード記憶と意味記憶 を区別して保存します。
RAGとA-MEMの違いを一言で表すと:
RAG: 「What do I know?(何を知っているか?)」 A-MEM: 「What do I remember about you?(あなたについて何を覚えているか?)」
RAGは賢い司書のようなもの。必要な情報を取ってくるが、「誰が何を話したか」は覚えていません。A-MEMは、会話の文脈を「記憶」として保持し、進化させていきます。
A-MEMは、LLMエージェントに人間のような「記憶」を与えるフレームワークです。
本記事の内容を実践するための3つのアクションです:
本記事はネクサフローのAI研究シリーズの一部です。
こちらの記事も参考にしてください

AIエージェント開発に役立つ9本の論文を厳選し、実装検証結果を交えて解説。論文を読むことで正確な情報、設計思想の理解、限界の把握が可能になる。基礎から応用までの論文を紹介し、効率的な読み方や実践的な活用例も提供。初心者向けや実装重視の読み順も提案されている。

SwarmはOpenAIが提案する軽量なマルチエージェント協調フレームワークで、エージェントとハンドオフの2つの概念を用いてシンプルな協調を実現します。教育や実験に最適で、カスタマーサポートや航空券予約システムなどの具体的なユースケースが紹介されています。実運用には不向きで、OpenAI APIに依存していますが、マルチエージェントの基本を学ぶには適しています。

MindWatcherはAIエージェントの思考過程を可視化する技術で、推論過程の透明性を高め、デバッグや品質保証、説明責任を向上させる。エージェントの動作を3つのレイヤー(思考、行動、意思決定)で記録し、リアルタイムでモニタリング可能。これにより、問題の特定や規制対応が容易になる。