エージェントメモリシステムとは何か?
エージェントメモリとは、AIエージェントが単一のコンテキストウィンドウを超えて、ステップ、セッション、タスク間で情報を保持および想起する方法である。通常、短期のワーキングメモリ(現在のコンテキスト)と、長期メモリ(エージェントが読み書きする永続的なストレージ)を分離する。メモリによって、エージェントは長いタスクを通じて状態を維持し、時間の経過とともにユーザーを記憶し、重複する作業を避けることができる。これはハーネスエンジニアリング (Harness Engineering) のコアレイヤーである。
定義
エージェントメモリとは、AIエージェントが当面のコンテキストウィンドウを超えて情報を保存、整理、検索するために使用する一連のメカニズムであり、短期のワーキングメモリと長期の永続メモリにまたがる。
主な要点
- メモリは、単一の有限なコンテキストウィンドウを超えてエージェントを拡張する。
- 短期(ワーキング)メモリと長期(永続)メモリは、それぞれ異なる役割を果たす。
- 長期メモリは、エージェント自身の履歴に対するRAGのように、多くの場合オンデマンドで検索される。
- 優れたメモリは、長いタスクにおける重複作業や状態の喪失を防ぐ。
- 何を書き込み、保持し、忘れるかは設計上の決定事項であり、自動的に行われるものではない。
コンテキスト
モデルのコンテキストウィンドウは有限であるため、エージェントがそれを超えて記憶する必要があるものはすべて外部ストレージを必要とする。メモリがなければ、エージェントは以前のステップを忘れ、アクションを繰り返し、セッションをまたいだパーソナライズを行うことができない。
メモリは、ステートレスなモデルを連続性のあるシステムへと変える。難しいのはキュレーションである。何を書き留める価値があるか、それをどのように整理するか、そして今関連するものだけをどのように検索するかを決定することであり、これはコンテキストエンジニアリングと密接に関連している。
アーキテクチャ
2つのレイヤー:ワーキングメモリ(アクティブなタスクを保持する現在のコンテキストウィンドウ)と、長期メモリ(タスク中に書き込まれ、後で検索されるベクトル、キーバリュー、ドキュメント、グラフなどの外部ストレージ)。一部の設計では、エピソードメモリ(イベント)、意味メモリ(事実)、手続きメモリ(スキル)が追加される。
エージェントは各ステップで関連するメモリをコンテキストに読み込み、学習するにつれて新しいメモリを書き込む。検索、要約、忘却のポリシーにより、メモリは肥大化することなく有用な状態に保たれる。
コンポーネント
メリット
- ステップ、セッション、タスク間の連続性。
- 時間の経過とともに持続するパーソナライズ。
- 重複作業やコンテキストの喪失を回避。
- 長期的なステートフルエージェントを実現。
リスク
- 古くなったり誤ったりしたメモリが、将来の回答を汚染する。
- 保存されたデータに対するプライバシーおよびガバナンスの義務。
- 無関係なメモリの検索によるノイズの増加。
- 統合や有効期限がないことによる、制限のない肥大化。
ツールとテクノロジー
例
- セッションをまたいでユーザーの好みを記憶するアシスタント。
- ステップを繰り返さないように進捗を要約する、長期実行型のエージェント。
- 関連する場合に、顧客の過去のチケットを想起するサポートエージェント。
FAQ
- エージェントメモリはRAGとどう違うのですか?
- RAGは外部のナレッジベースから検索しますが、エージェントメモリはエージェント自身が蓄積した状態から検索します。検索の仕組みは似ていますが、ソースと書き込みパスが異なります。
- 短期メモリと長期メモリの違いは何ですか?
- 短期(ワーキング)メモリは現在のタスクのためのライブなコンテキストウィンドウであり、長期メモリはエージェントがタスクやセッションをまたいで読み書きする永続的なストレージです。
- すべてをコンテキストウィンドウに保持しないのはなぜですか?
- ウィンドウは有限であり、満たされるにつれて品質が低下します。状態をメモリに外部化し、関連するものだけを検索することで、エージェントのフォーカスを維持し、コストを抑えることができます。
- ガバナンス上の懸念にはどのようなものがありますか?
- 保存されたメモリには個人データや機密データが含まれる可能性があるため、アクセス制御、保持制限、およびエントリを修正または削除する機能が必要です。