AIエンジニアのための7種類のエージェントメモリ技術ガイド
大規模言語モデルはデフォルトでステートレスだが、エージェントは記憶によってコンテキストを保持する。本稿はワーキングメモリ、セマンティックメモリ、エピソディックメモリ、プロシージャルメモリ、検索メモリ、パラメトリックメモリ、プロスペクティブメモリの7種類を解説。各記憶の内容、保存場所、構築タイミングを説明し、比較表とPythonコード例を提供する。
大規模言語モデル(LLM)はデフォルトでステートレスです。API呼び出しのたびに新しく始まり、応答が返ると前回のメッセージを忘れます。単一の質問には問題ありませんが、エージェントを構築する際にこれが破綻します。エージェントは計画を立て、ツールを呼び出し、複数のステップにわたって実行するため、記憶が必要です。記憶はこの問題を解決するインフラであり、ステートレスなモデルをコンテキストを保持し、経験から学習し、時間の経過とともに行動するシステムに変えます。
エージェントメモリとは、モデルの推論中に情報を伝達するあらゆるメカニズムです。一部はコンテキストウィンドウ内に、一部はデータベースやモデル重みの外部に存在します。各タイプは異なるクラスの情報を異なる期間保存します。記憶は形式(パラメトリック:重みに保存、非パラメトリック:テキストとして保存)と時間スケール(短期または長期)によって分類されます。以下に7つのタイプをこれら2つの軸にマッピングします。
- コンテキスト内/ワーキングメモリ(短期):モデルが現在コンテキストウィンドウ内で見ることができるすべて。システムプロンプト、最近のメッセージ、ツール出力、推論ステップを含みます。RAMのようなもので、高速で不可欠ですが、一時的でサイズ制限があります。他のすべての記憶タイプはここでスペースを競合します。
- セマンティックメモリ(長期):事実、好み、ドメイン知識の永続的なストア。「ユーザーはPythonよりJavaScriptを好む」などのエントリを保持します。知識は学習時期から切り離されており、エージェントのユーザーやトピックに関する整理された百科事典です。
- エピソディックメモリ(長期):特定の過去のイベント、全文の会話、タスクの実行を記録します。何が成功し、何が失敗したかを記録します。エージェントはこれを用いて経験から学習し、ReflexionやExpeLなどのシステムは事後分析を書き、将来の実行のために結論を保存します。
- プロシージャルメモリ(長期):エージェントの物事のやり方に関する知識。スキル、ツール使用パターン、ワークフロー、行動ルールをカバーします。100回目のパスワードリセットを処理するサポートエージェントはワークフローを再推論せず、学習した手順を実行します。
- 外部/検索メモリ(短期+長期):モデル外部のベクトルデータベースに保存された知識で、推論時に類似性検索を用いてコンテキストに引き込まれます。これはRAGをエージェント履歴やドキュメントに適用したものです。検索品質がすぐにボトルネックになります。
- パラメトリックメモリ(長期):トレーニング中にモデル重みに直接埋め込まれた知識で、言語、推論パターン、一般的な世界知識を含みます。モデルは何も検索せず、学習した関連付けから生成します。トレードオフは、トレーニング時に凍結されることです。
- プロスペクティブメモリ(短期+長期):エージェントが将来の意図やスケジュールされた目標を記憶する能力。計画済みだが未実行のタスクを追跡します。長期的な計画やマルチステップ計画エージェントにとって重要であり、これがないとエージェントは自身のコミットメントを忘れます。
比較:7つの記憶はタイムスケール、場所、典型的な実装が異なります。以下の表が各タイプのマッピングを示します(原文の表を参照)。ワーキングメモリはコンテキストウィンドウ、短期、プロンプト・メッセージ・ツール出力を保存。セマンティックメモリは外部ストア、長期、事実・好み。エピソディックメモリは外部ストア、長期、イベントログ。プロシージャルメモリはプロンプトまたは重み、長期、スキル・ルール。検索メモリはベクトルデータベース、両方、ドキュメント。パラメトリックメモリはモデル重み、長期、世界知識。プロスペクティブメモリは状態ストア、両方、将来の意図。
ユースケース:各記憶は具体的な製品ニーズを解決します。コーディングアシスタントはセッション内でワーキングメモリを使用。パーソナルアシスタントはセマンティックメモリでユーザーを記憶。研究エージェントはエピソディックメモリで改善。旅行予約エージェントはプロシージャルメモリでフローを習得。ドキュメントチャットボットは検索メモリを必要とします。長期プロジェクトエージェントはプロスペクティブメモリが必要です。統合例:自律市場分析エージェントは7つすべてを同時に使用します。パラメトリックメモリが基本推論を提供し、検索メモリが市場データを取得、セマンティックメモリがユーザーのフォーマット好みを提供、エピソディックメモリが信頼できる情報源を想起、プロシージャルメモリがセクション順序を駆動、プロスペクティブメモリがフォローアップをスケジュール、ワーキングメモリがすべてをアクティブコンテキストに組み立てます。
実装:以下は最小限のメモリスタックのPythonスケッチです(コード例は原文を参照)。本番環境では長期ストアはベクターデータベースに移行しますが、パターンは同じです。長期記憶に書き込み、ワーキングメモリに取得し、推論します。
階層化の方法:7つすべてを一度に構築しないでください。ワーキングメモリから始め、セッションをまたいだユーザー記憶が必要になったらセマンティックメモリを追加し、その後必要に応じてエピソディック、プロシージャル、プロスペクティブメモリを追加します。パラメトリックメモリと検索メモリは多くの場合既に存在します(ベースモデルとRAG)。
参考文献:CoALAフレームワーク(arXiv:2309.02427)、「AIエージェント時代の記憶」調査(arXiv:2512.13564)、「人間の記憶からAIの記憶へ」調査(arXiv:2504.15965)、LangChain LangMem、MongoDB、Redis、Neo4jエージェントメモリドキュメント。