AIの基礎
AIエージェントのメモリとは? 短期・長期・エピソード・セマンティックメモリの解説
エージェントメモリは単一のデータベースでも、無限に増え続けるプロンプトでもありません。作業コンテキスト、エピソード、事実、学習した手順を保持し、適切なタイミングで適切な情報を取得するよう設計されたシステムです。

AIエージェントのメモリは、エージェントが即時のモデル応答を超えて必要とする情報を保存、整理、取得するシステムです。それはアクティブなタスク状態、過去の経験、事実、好み、学習した手順を保持できますが、単一のデータベースではなく、モデルのコンテキストウィンドウと同じものでもありません。
メモリはエージェントが長時間のタスクや繰り返しのインタラクションにおいて一貫性を保つのに役立ちます。また、古くなった事実やプライバシーリスク、誤解を招く取得結果をもたらす可能性もあります。重要な設計上の問いは「エージェントはすべてを記憶できるか?」ではなく、「何を、どのくらいの期間、どの権限の下で記憶すべきか?」です。
コンテキストはメモリではない
コンテキストウィンドウは、特定の推論時に利用可能な情報です:指示、メッセージ、ツール結果、取得した文書、その他の入力。これは一時的な作業領域のように機能します。
メモリは、どの情報が永続化され、選択された記録がその作業領域に戻るかを決定する広範な仕組みです。会話のデータベースは保存領域です;システムが適切なタイミングで正しい情報を取得し、その信頼性を表現できるときに初めて有用なメモリとなります。
この区別は重要です。なぜなら大きなコンテキストウィンドウはメモリ管理を解決しないからです。すべての過去のイベントでプロンプトを埋めるとコストが増大し、モデルが無関係または矛盾した詳細に注意をそらす可能性があります。
エージェントメモリの主要なタイプ
プロダクションシステムは、会話状態、構造化データベース、ベクトル検索、イベントログ、バージョン化された指示の組み合わせでこれらすべてを実装できる場合があります。この分類は情報が果たす役割を説明しており、情報を保存するデータベース製品を指すものではありません。顧客の好みは、リレーショナルテーブルにあろうとベクトルインデックスにあろうと、セマンティックメモリです。
作業メモリ(短期メモリ)
作業メモリは現在のタスクのアクティブな状態を保持します:目標、現在の計画、最近の観測、未解決の質問、ツールの出力、完了したステップなどです。これらは会話の一部と構造化された状態オブジェクトの一部に格納されることが多いです。
作業コンテキストが制限されているため、長時間稼働するエージェントは古いイベントを要約したり、重要な変数を別途保持したり、タスクの次に関連する部分だけをロードしたりすることがあります。
エピソードメモリ
エピソードメモリは経験をイベントとして記録します:何が起きたか、いつ、どのような状況で、どの行動が取られ、結果はどうだったか。エージェントは、特定のデプロイが設定変更後に失敗したことや、ユーザーが提示された理由で推奨を拒否したことを記憶しているかもしれません。
エピソード記録はケースベース推論を支援できます――現在の状況に似た過去の事例を見つけることです。以前の結果が現在は適用されない条件に依存していた可能性があるため、慎重な属性付けが必要です。
セマンティックメモリ
セマンティックメモリは、単一のイベントに依存せずに事実や概念を表現します。例としては、顧客の好みの言語、内部指標の定義、製品間の関係などがあります。
セマンティックメモリは文書、ベクトルインデックス、リレーショナルデータベース、あるいはナレッジグラフに格納されることがあります。重要な事実には出所、タイムスタンプ、所有権を含めるべきで、エージェントは権威ある記録とモデルが生成した要約を区別できるようにします。
手続きメモリ
手続きメモリは作業の実行方法を捉えます:ワークフロー、ツール選択ルール、チェックリスト、成功した計画、再利用可能なスキルなどです。現在のシステムでは、これはしばしばバージョン化された指示、コード、テスト済みテンプレートとして現れ、モデルが黙って自身を変更するものではありません。
手続きの更新を通常の会話から分離することは安全機能です。単一の異常なインタラクションがエージェントの操作ルールを自動的に書き換えるべきではありません。
エージェントが何かを記憶する方法
| 作業記憶 | 現在のタスク中に使用される一時的なコンテキスト。 |
|---|---|
| エピソード記憶 | 選択された出来事や過去のやり取りの記録。 |
| 意味記憶 | 経験から導き出された一般化された事実や概念。 |
| 忘却 | 古くなった、機密性のある、価値の低い状態を制限する削除または劣化。 |
実用的なメモリーパイプラインは4つの段階からなります。
- 取得: メッセージ、アクション、結果、または環境変化を観測する。
- 選択とエンコード: 情報を保持すべきか判断し、メタデータ付きの記録に変換する。
- 保存: 記録をアクセス制御と保持ポリシーを備えた適切なシステムに配置する。
- 取得: 新しいタスクが来たとき、関連記録を検索し、ランク付けして、少数をコンテキストに配置する。
一部のシステムは統合を追加します:繰り返し観測を結合し、重複を解消し、または出来事を永続的な事実に変換します。そのプロセスは出所や不確実性を消去すべきではありません。
取得の仕組み
ベクトル類似検索は、表現が異なっていても意味的に関連する記録を見つけられるため一般的です。しかし、類似性だけでは不十分です。6か月前の好みはトピック的には関連していても、もはや有効でないことがあります。
堅牢な取得は複数のシグナルを組み合わせることができます:
- 意味的関連性: 記録が現在のタスクとどれだけ一致しているか;
- 新しさ: 新しい情報により重みを付けるべきか;
- 重要性: 記録が重要な決定や制約に影響するか;
- 権威: 信頼できるシステム、ユーザー、またはモデル推論から来たか;
- スコープ: 現在のエージェントとユーザーがアクセス許可を持つか;
- 多様性: 選択された記憶が同一点の繰り返しではなく、異なる情報を付加するか。
影響力のあるメモリアーキテクチャ
The Generative Agents の研究は、エージェントが観測を保存し、関連性・新しさ・重要性に基づいて記憶を検索し、計画を導くための上位レベルの反省を形成するアーキテクチャを導入した。これは、記憶がシミュレートされた行動に連続性をもたらす方法を示した。
MemGPT は、オペレーティングシステムのアナロジーを用いて限定されたコンテキストに取り組み、階層的なメモリと小さなアクティブコンテキストと大きな外部ストレージ間の明示的な移動を使用した。より広い教訓は、コンテキストを希少なリソースとして管理すべきだということである。
これらの考えは現代のエージェントに影響を与えていますが、実運用のメモリはしばしば、構造化されたタスク状態、イベントログ、ベクトルストア、明示的なユーザー設定といったシンプルなコンポーネントを使用します。複雑さは実証された必要性に応じて導入すべきです。
メモリと取得強化生成の比較
取得強化生成(RAG)は外部情報をモデルのコンテキストに持ち込みます。エージェントメモリも同じ取得手法を使用できますが、情報源とライフサイクルは異なります。
RAG システムは、エージェントとは独立して存在するキュレーションされたナレッジベースから取得することがあります。メモリシステムはしばしばエージェント自身のやり取りで作成された記録を含み、何を書き込むかだけでなく何を読むかも決定しなければなりません。境界は曖昧になることがありますが、メモリはパーソナライズや保持、自己生成データのリスクをもたらし、通常の文書取得にはない特徴です。
一般的なメモリ障害
対立は避けられません。ユーザーが設定を変更したり、2つのシステムがアカウントについて意見が合わなかったり、要約が重要な例外を省略したりすることがあります。信頼できるメモリはタイムスタンプと情報源を保持し、どのシステムが権威あるものかを定義し、最初にランク付けされたレコードを黙って選択するのではなく、未解決の矛盾を表面化させます。
- 古い記憶: 古い事実が新しいシステム・オブ・レコードの値を上書きする。
- 誤った記憶: モデルが生成した推論が、確認されたかのように保存される。
- 検索ノイズ: 類似しているが無関係なレコードがモデルの注意をそらす。
- 過度なパーソナライズ: システムが、与えられたコンテキスト外で好みを適用する。
- ユーザー間リーク: ある人物またはテナントのレコードが別のユーザーのコンテキストに現れる。
- 汚染: 悪意のあるコンテンツが保存され、後のエージェントの動作を操作できるようになる。
- 無制限保持: 敏感なデータが明確な目的や削除経路なしに残存する。
メモリを責任ある方法で設計する
まずは明確なカテゴリから始めます。権威ある事実、ユーザー提供の好み、モデル要約、そして生のインタラクションログを分離します。出所とタイムスタンプを保存します。影響度の高い事実には有効期限ルールを設定するか、証拠が矛盾した際に確認を求めます。
ユーザーは、適切な場合に永続的な個人メモリを閲覧、修正、削除できるべきです。アクセス制御は保存時と取得時の両方に適用されなければなりません。データベースに存在するレコードがすべてのエージェント、タスク、ユーザーに自動的に利用できるわけではありません。
メモリをシステムとして評価します。エージェントが有用なレコードを取得し、無関係なものを無視し、更新された事実を尊重し、汚染試行に耐え、メモリが利用できない場合に正しく動作するかをテストします。改善効果を追加されたレイテンシ、コスト、プライバシーリスクと比較して測定します。
メモリはエージェントが学習したことを意味するのか?
通常、モデルの重みは変わりません。ほとんどのエージェントメモリは、実行時にモデルのコンテキストへ取得される外部情報です。これにより動作が大きく変わることがありますが、基礎モデルのトレーニングやファインチューニングとは異なります。この区別を明確に保つことで、チームは可逆性について考えやすくなります。外部レコードはモデルを再学習させることなく修正や削除が可能です。
必ずしもそうとは限りません。ほとんどのエージェントメモリは固定されたモデルに提供される情報を変えるだけで、モデルのパラメータを更新するわけではありません。コンテキストが変わることでシステムの挙動が変化し、基礎となるニューラルネットワークを変更せずに学習したように見えることがあります。
この分離は有用です。外部メモリは、トレーニングによって組み込まれた知識よりも、検査・修正・管理・削除が容易です。
AIエージェントメモリについて覚えておくべきこと
AIエージェントメモリは、モデルを取り巻く検索とガバナンスのアーキテクチャです。作業メモリは現在のタスクを保持し、エピソードメモリは経験を記録し、セマンティックメモリは事実を保存し、手続きメモリは再利用可能な作業手順を符号化します。
最適なメモリシステムは選択的で、出所が明確で、権限を意識し、修正が容易であることです。記憶量を増やすことが目的ではありません。エージェントが適切な証拠を適切な意思決定に活用できるよう支援し、信頼を損なわないことが重要です。












