2026年、AIエージェントの長期記憶は単なる機能追加ではなく、コンテキストウィンドウの限界を超える新しいパラダイムとして注目を集めている。AWS AgentCore Memory、Mem0、MemRLといった実装が登場し、エピソード記憶・意味記憶・手続き記憶という人間の認知科学に基づくメモリ分類が、本番環境のエージェント設計に取り入れられ始めた。本記事では、これらの実装パターンを比較し、コンテキストエンジニアリングの最前線で求められるメモリアーキテクチャ設計の実践ガイドを提供する。
コンテキストウィンドウの限界とメモリの必要性
Claude 4.6やGPT-5.2といった最新モデルでは200K〜1Mトークンのコンテキストウィンドウが提供されているが、実際のエージェント運用では長期的な会話履歴や複数セッションにまたがるタスク実行において、依然として容量不足が課題となる。コンテキストウィンドウに全履歴を詰め込む「context stuffing」は、レイテンシの増加とコストの爆発を招く。
2025年12月、AWS re:InventでAgentCore Memoryが発表された際、Amazon Bedrockチームは「コンテキストはワーキングメモリ、永続メモリは長期記憶」という比喩で設計思想を説明した。この考え方は、人間の脳におけるワーキングメモリと長期記憶の関係を模倣している。エージェントがユーザーとの対話を重ねるごとに、重要な情報を永続化し、必要なときに想起する仕組みが求められる。
エピソード・意味・手続き記憶の分類と実装パターン
認知心理学では、人間の長期記憶は**エピソード記憶**(出来事の記憶)、**意味記憶**(知識・概念)、**手続き記憶**(スキル・手順)に分類される。この分類は、AIエージェントのメモリ設計においても有効な枠組みとして採用されている。
エピソード記憶(Episodic Memory)
エピソード記憶は「いつ・どこで・何が起きたか」を記録する時系列の記憶である。エージェントにおいては、過去の会話ログ、ユーザーとのやりとり、実行したタスクの履歴が該当する。AWS AgentCore Memoryでは、各会話セッションがタイムスタンプとともに保存され、ユーザーIDやセッションIDでインデックス化される。
実装上のポイントは、ベクトル検索とメタデータフィルタリングの組み合わせである。例えば、「先月のプロジェクトXについての議論」を想起する際、時間範囲とプロジェクト名で絞り込んだ上で、意味的類似性の高いエピソードを取得する。Pineconeのnamespaceやメタデータフィルタ、Qdrantのpayload filteringがこの用途に適している。
意味記憶(Semantic Memory)
意味記憶は、事実やコンセプト、一般知識を保持する。エージェントにおいては、ユーザーの好みやプロフィール情報、ビジネスルール、ドメイン知識が該当する。Mem0は意味記憶の抽出に特化したライブラリで、会話ログから「ユーザーはTypeScriptを好む」「プロジェクトの締め切りは3月末」といった構造化された事実を抽出し、グラフDBやベクトルDBに保存する。
Mem0の特徴は、**Memory Layer**として既存のLLMアプリケーションに統合しやすい設計にある。OpenAI、Anthropic、Google Geminiなど主要なLLMプロバイダーと連携し、会話ごとに自動で意味記憶を更新する。2026年1月のv0.3リリースでは、Neo4jとの統合によりエンティティ間の関係性を保持するグラフベースの意味記憶が実装された。
手続き記憶(Procedural Memory)
手続き記憶は、タスク実行の手順や戦略を記録する。エージェントが「どのようにタスクを実行するか」を学習し、再利用する仕組みである。MemRLは強化学習をベースにした手続き記憶の実装で、タスク成功時のアクションシーケンスを保存し、類似タスクで優先的に試行する。
実例として、コード生成エージェントがデバッグタスクを繰り返す中で、「エラーログを確認 → 関連ファイルを検索 → パッチを適用」という手順が成功した場合、この手順をテンプレート化して次回以降のデバッグに適用する。MemRLでは、手順の成功率をスコアリングし、Q-learning風にポリシーを更新する。
AWS AgentCore Memoryの設計と統合
AWS AgentCore Memoryは、Amazon Bedrock上で動作するマネージドメモリサービスである。2025年12月のre:Inventで発表され、2026年1月にGAとなった。特徴は、エピソード記憶と意味記憶を自動で分類し、DynamoDBとOpenSearch Serverlessに保存する点にある。
AgentCoreは会話履歴を受け取ると、以下のプロセスでメモリを構築する:
- 要約生成:会話セッションごとに要約を生成し、エピソード記憶として保存
- エンティティ抽出:固有名詞、日付、数値を抽出し、メタデータとして付与
- 埋め込み生成:Amazon Titan Embeddingsで意味ベクトルを生成
- ストレージ振り分け:時系列検索が必要なデータはDynamoDB、意味検索が必要なデータはOpenSearch
統合は、Bedrock AgentのメモリモジュールとしてAPI経由で行う。`create_memory_session`、`add_memory`、`retrieve_memory`の3つのAPIが提供され、既存のLangChainやLlamaIndexベースのエージェントに組み込める。料金は保存データ量とクエリ回数に応じた従量課金で、1GBあたり$0.30、1,000クエリあたり$0.10である(2026年2月時点、us-east-1リージョン)。
Mem0によるオープンソースメモリ実装
Mem0は、YC支援のスタートアップMem0 Labsが開発するオープンソースのメモリレイヤーライブラリである。2024年9月にv0.1がリリースされ、2026年2月時点でGitHub Star数12,000を超える人気プロジェクトとなっている。
Mem0の設計思想は「Plug-and-Play Memory for LLMs」にある。既存のLLMアプリケーションに数行のコード追加で長期記憶を追加できる。以下はPythonでの実装例である:
from mem0 import Memory
memory = Memory.from_config({
"vector_store": {"provider": "qdrant", "config": {"url": "localhost:6333"}},
"llm": {"provider": "openai", "config": {"model": "gpt-4o"}}
})
# 会話から記憶を抽出
memory.add("ユーザーはNext.js 16でプロジェクトを進めている", user_id="user123")
memory.add("締め切りは3月31日", user_id="user123")
# 記憶を検索
results = memory.search("プロジェクトの技術スタックは?", user_id="user123")
print(results) # [{"text": "ユーザーはNext.js 16で...", "score": 0.92}]
Mem0の強みは、意味記憶の自動抽出にある。会話ログを渡すと、LLMを用いて事実を抽出し、既存の記憶と矛盾がないかチェックし、マージまたは更新を行う。この「Memory Conflict Resolution」機能により、「ユーザーはPythonを使う」と「ユーザーはTypeScriptを好む」といった矛盾する情報が混在しない。
MemRLによる強化学習ベース手続き記憶
MemRLは、UCバークレーのBair Labが2025年10月に発表した研究プロトタイプで、強化学習を用いてエージェントの行動履歴から成功パターンを学習する。論文「MemRL: Memory-Augmented Reinforcement Learning for Long-Horizon Tasks」で提案され、2026年2月にオープンソース実装が公開された。
MemRLの特徴は、タスク実行の軌跡(trajectory)をベクトル化し、成功時の軌跡を優先的にサンプリングする点にある。例えば、「GitHubのissueを自動でクローズする」タスクにおいて、以下のような軌跡が記録される:
[
{"action": "search_issue", "params": {"label": "bug"}, "result": "success"},
{"action": "read_issue", "params": {"id": 123}, "result": "success"},
{"action": "create_pr", "params": {"branch": "fix-123"}, "result": "success"},
{"action": "close_issue", "params": {"id": 123}, "result": "success"}
]
この軌跡が成功した場合、類似タスク(別のissueのクローズ)に対して、同じアクションシーケンスを優先的に試行する。失敗した場合は、報酬を減算し、別の戦略を探索する。MemRLは、Gym環境やLangGraph Agentと統合でき、multi-step taskにおいて従来のReActやPlannerを上回る成功率を示している(論文ベンチマークでは、WebShopタスクで68% → 82%に改善)。
本番環境でのメモリアーキテクチャ設計の実践
実際のプロダクションでメモリシステムを構築する際、以下の設計パターンが推奨される:
1. Hybrid Storage(ベクトルDB + 構造化DB)
エピソード記憶はベクトル検索が有効だが、意味記憶はRDBやグラフDBで構造化して保持する方が効率的である。例えば、「ユーザーの好み」はPostgreSQLのJSONBカラムに保存し、「過去の会話履歴」はPineconeに保存する。AWS AgentCoreもこのハイブリッド戦略を採用している。
2. Memory Pruning(記憶の刈り込み)
無限に記憶を蓄積すると、検索性能が劣化する。重要度スコアリングに基づいて古い記憶を削除または圧縮するポリシーが必要である。Mem0では、`memory.prune(user_id="user123", threshold=0.3)`で低スコアの記憶を削除できる。
3. Memory Versioning(記憶のバージョン管理)
意味記憶は時間とともに変化する(ユーザーの好みが変わる、プロジェクトのスコープが変更される)。記憶の更新履歴をバージョン管理し、特定時点での記憶を再現できるようにすると、デバッグやロールバックが容易になる。
4. Privacy-Aware Memory(プライバシー考慮のメモリ)
GDPRやCCPAを考慮し、ユーザーが自分の記憶を削除できる「忘れられる権利」を実装する。Mem0は`memory.delete(user_id="user123")`でユーザーごとの記憶を削除でき、ベクトルDBのnamespaceDeletion APIと組み合わせて完全削除を保証する。
FAQ
メモリシステムの導入でレイテンシは増加しないか?
適切に設計すれば影響は最小限である。ベクトル検索のTop-Kを10〜20件に絞り、メタデータフィルタで事前に候補を削減することで、検索時間を50ms以下に抑えられる。AWSのOpenSearch Serverlessやk-NN最適化されたPineconeを使用すると、さらに高速化できる。
既存のLangChainエージェントにメモリを追加する方法は?
LangChainの`ConversationBufferMemory`を`Mem0Memory`に置き換えるだけで導入できる。Mem0は公式にLangChain統合を提供しており、`pip install mem0ai langchain-mem0`でインストール後、`memory=Mem0Memory()`で初期化すればよい。
エピソード記憶と意味記憶の振り分けは自動化できるか?
AWS AgentCoreやMem0は自動分類を行うが、精度は完璧ではない。本番環境では、ドメイン固有のルールを追加することが推奨される。例えば、「ユーザーが明示的に述べた好み」は意味記憶、「特定日時の会話」はエピソード記憶、といった分類ロジックをカスタムで実装する。
手続き記憶の学習には大量のデータが必要か?
MemRLは数百回のタスク実行で有効な手続き記憶を構築できる。Few-shot learningと組み合わせることで、初期段階では人間が定義したテンプレートを使い、徐々にエージェント自身が改善していくハイブリッド学習が可能である。
メモリシステムのコストはどの程度か?
ベクトルDBの料金が主要コストとなる。Pineconeのスタータープランで月額$70(100万ベクトル)、AWS OpenSearch Serverlessで月額$90程度(データ量・クエリ数による)。自己ホスティング(Qdrant on EC2)であれば月額$30程度に抑えられる。LLM APIコストは、記憶抽出時のトークン数に依存し、月あたり$10〜50程度が目安である。
参考文献
- Amazon Bedrock Agents with Memory - AWS Machine Learning Blog — AWS, 2025年12月
- Mem0: The Memory Layer for AI Applications — Mem0 Labs GitHub, 2026年2月
- MemRL: Memory-Augmented Reinforcement Learning for Long-Horizon Tasks — UC Berkeley BAIR, 2025年10月
- What is a Vector Database? — Pinecone, 2025年8月
- Context Window Scaling in Claude 4 — Anthropic, 2025年11月
- Memory Systems in Large Language Models — Google DeepMind, 2025年7月



