検索と知識更新日 2026-08-25 · バージョン 1.2

長期記憶(Long-Term Memory)

エージェントにセッション間で永続する記憶を提供し、単一のコンテキストウィンドウを超えて事実、ユーザーの好み、過去の結果を記憶できるようにします。書き込みパスは保存すべき内容を決定し、要約して重複を排除します。読み取りパスは、必要なときにのみ関連する記憶をコンテキストに取得します。再計算をスキップするために回答全体をキャッシュするセマンティックキャッシュとは異なり、長期記憶は永続的な事実と状態を保存し、毎回それらを新しい推論に再構成します。

エビデンス: 本番環境確信度: ソース: 本番システムソース: 個人の経験ソース: 業界での観察

課題

コンテキストウィンドウは有限であり、セッション間でリセットされます。現在の会話しか見えないエージェントは、ユーザーが指定した好み、先週下された決定、過去のタスクの結果を忘れてしまいます。すべての履歴をすべてのプロンプトに詰め込むことは、一定の規模を超えると不可能になり、ウィンドウが価値の低いトークンで満たされるため推論の質が低下します。開発チームは、重要な少数の事実を永続化し、それらが関連するタイミングで正確に提示する方法を必要としています。

適用対象

エージェントが同じユーザーに対応したり、同じ長期的なタスクを繰り返し実行したりする場合に使用します。好みを学習するアシスタント、顧客の履歴を追跡するサポートエージェント、プロジェクトの規約を記憶するコーディングエージェント、数日間にわたるマルチステップのワークフローなどが該当します。これは、モデルの外部(ベクトルストア、データベース、またはメモリフレームワーク)にデータを保存できること、および記憶が書き込まれるタイミングとプロンプトに取得される方法の両方を制御できることを前提としています。

解決策

書き込みパスと読み取りパスを分離します。書き込みパスでは、ターンまたはタスクの完了後に、抽出ステップによって記憶に値するもの(一時的な雑談ではなく、不変の事実、好み、約束、結果など)を決定します。記憶の候補は、コンパクトで自己完結した記述に要約され、既存の記憶と照合されて重複や矛盾が検出された後、メモリタイプ、タイムスタンプ、ソース、所属するユーザーまたはスコープなどのメタデータとともにストアに書き込まれます。少なく、かつ質高く書き込むことが目標です。ノイズの多い記憶は、その後の取得プロセスを阻害します。\n\n読み取りパスでは、エージェントが推論を行う前に、現在のタスクに関連する記憶の候補を(通常はセマンティック類似度に加え、スコープや新しさのフィルターを用いて)取得し、ランク付けして、上位の数件のみをコンテキストに注入します。取得は適合率(プレシジョン)の問題として捉えてください。関連性の薄い大量の記憶よりも、少数の正確な記憶の方が効果的です。取得をターゲット化できるように、記憶のタイプを区別します。エピソード記憶(何が起きたか)、意味記憶(永続的な事実や好み)、手続き記憶(繰り返し発生するタスクの実行方法)などです。定期的に記憶を整理(集約)および期限切れにすることで、ストアを小さく、最新の状態に保ち、矛盾を排除します。

コンポーネント

メモリ抽出器(書き込みパス)重複排除および矛盾チェックメモリストアリトリーバー(読み取りパス)コンテキストアセンブラー集約および期限切れジョブ

メリット

  • エージェントが過去のセッションからの好み、決定、結果を思い出すため、ユーザーがコンテキストを繰り返す必要がなくなり、エージェントは長期にわたって一貫した動作を維持できます。
  • いくつかの関連する記憶のみを取得することで、履歴全体をダンプする代わりに、ウィンドウを価値の高いトークンに集中させることができます。これにより、推論の質が維持され、コストが削減されます。
  • 不変の事実や好みが蓄積されるにつれて、モデルを再学習させることなく、インタラクションを重ねるごとにエージェントはより正確にパーソナライズされた応答を返せるようになります。
  • 記憶はメタデータとともに外部ストアに保存されるため、エージェントが知っている内容を検査、修正、エクスポート、削除できます。これは信頼性とコンプライアンスにおいて重要です。

リスク

  • 集約と期限切れの処理を行わないと、ストアに古い事実や矛盾する記述が蓄積され、エージェントが誤った情報に基づいて自信満々に行動してしまう可能性があります。
  • ユーザーデータを永続化すると、保持、同意、アクセス制御の義務が生じます。スコープが強制されていない場合、記憶によってセッション間やユーザー間で機密情報が漏洩する可能性があります。
  • 適合率(プレシジョン)が低いと、無関係な記憶や誤った記憶が注入されて推論が誤った方向に導かれます。再現率(リコール)が低いと、重要な記憶が暗黙的にドロップされ、失敗の診断が困難になります。
  • 過剰に書き込みを行うと、ストアが肥大化し、取得が遅くなり、ストレージと埋め込み(embedding)のコストが上昇し、優れた取得の前提となるシグナルが希薄化します。

非推奨のケース

  • セッションが独立しており、引き継ぐべき情報がない場合、永続メモリはメリットをもたらさず、複雑さ、コスト、プライバシーのリスクを増大させるだけです。
  • 繰り返されるクエリに対して以前の回答を再利用することが目的である場合は、セマンティックキャッシュが適切なツールです。長期記憶は事実や状態を記憶するためのものであり、出力をキャッシュするためのものではありません。
  • 規制やポリシーによってユーザーデータの保持が禁止されている場合は、記憶を永続化しないでください。セッション内のコンテキストや、ユーザーが制御する明示的でスコープ限定されたストレージに依存してください。

テクノロジー

Vector storeMemory frameworks (Mem0 / LangMem)RAGSummarization

事例

  • セッションをまたいでトーン、フォーマット、頻繁に連絡する相手、常時指示を記憶し、再質問する代わり現在のリクエストに適用される少数の指示を取得します。
  • コンタクトのたびに、そのアカウントにスコープされた顧客の過去の課題、資格、解決策を取得するため、会話を最初からやり直すのではなく、継続することができます。
  • 手続き記憶(ビルドコマンド、命名規則、レビューの好みなど)を保存し、多くのセッションにわたって同じリポジトリで作業する際にそれらを呼び出します。

本番環境での実績

コンテキスト
57日間(161セッション / 2,776ターン)にわたって観察された、シングルオペレーター、ローカルファーストのOpenClawデプロイメント。エージェント自身のトラジェクトリトレースから集計。
シナリオ
エージェントは、ターン間およびセッション間の継続性のためにワークスペースメモリファイルとセッションごとのトレースを永続化し、オンデマンドでセマンティックリコールプラグインを利用できるようにします。
テクノロジー
ワークスペースメモリファイル(MEMORY.md、IDENTITY.md、SOUL.md、USER.md、HEARTBEAT.md)、永続的なセッションIDとライフサイクルイベント、およびアクティブメモリプラグイン(memory_search/get/recall)。
負荷
57日間のウィンドウ全体で134の永続化されたセッションファイル。セマンティックリコールは1回呼び出されました。
結果
構造化されたワークスペースメモリにより、57日間にわたる134の永続セッション全体で継続性が維持されました。この自律的なワークロードにおいて、明示的なセマンティックリコールはほとんど必要ありませんでした(呼び出しは1回)。単一オペレーターによるローカルファーストのデプロイメント。

KPI

注入されたメモリの検索適合率(Precision)
コンテキストに配置されたメモリのうち、実際に関連していたものの割合。これは回答の品質を最も直接的に左右する指標です。良好な状態とは、注入されたメモリセットがほぼ完全にトピックに沿っており、無関係なメモリがほとんどない状態を指します。
メモリ依存タスクにおける検索再現率(Recall)
既知の保存された事実を必要とするタスクにおいて、その事実が実際に検索される頻度。良好な状態とは、適切なメモリが確実に表面化することです。継続的な検索漏れは、抽出またはインデックス作成のギャップを示しています。
メモリストアのサイズと成長率
総メモリ数と、アクティブユーザーあたりの蓄積速度。良好な状態とは、制限のない増加ではなく、真に新しい永続的な事実に追従して成長することです。制御不能な急上昇曲線は、過剰な書き込みが行われていることを示します。
陳腐化および矛盾の発生率
検索されたメモリのうち、古くなっているか、より新しい事実と矛盾しているものの割合。良好な状態とは、この割合が低く安定していることであり、整理(consolidation)と有効期限切れ(expiry)の処理が変化に追いついている証拠です。

観察された失敗パターン

  • すべてを書き込むとストアがノイズ化し、検索時に価値の低いメモリや誤ったメモリが表面化します。書き込む情報の基準を引き上げ、抽出品質を見直すことで解決します。
  • 事実が変更された後、それが古くなっているというシグナルがないまま、古い事実が検索されて実行されてしまいます。タイムスタンプ、新しさを重視した重み付けランキング、および書き込み時の明示的な上書き(supersession)によって軽減します。
  • スコープフィルターの欠落や誤りにより、あるユーザー、テナント、またはプロジェクトのメモリが別のコンテキストに検索されてしまいます。これはプライバシーと正確性の両方における重大な障害です。
  • ランキング精度の低さを補うために、チームが多数のメモリを注入してしまい、コンテキストウィンドウが重要度の低いトークンで埋め尽くされ、メモリが本来サポートすべき推論能力自体が低下します。

得られた教訓

  • 品質は、何を記憶するかを選択する時点で決まります。重複が排除された、小さくクリーンなストアは、ノイズの多い巨大なストアよりもはるかに優れた検索精度を発揮します。
  • 少数の正確なメモリは、緩やかに関連する多数 of メモリよりも優れたパフォーマンスを発揮します。注入する量を最大化するのではなく、関連性を調整し、厳密にランク付けしてください。
  • メタデータを保存し、メモリの表示、編集、期限切れ、削除を行う方法を提供してください。これは、デバッグ、信頼性の確保、およびプライバシー義務の遵守に不可欠です。
  • 事実は陳腐化し、互いに矛盾するようになります。整理、上書き、および有効期限切れの仕組みを早期に構築してください。汚染された大規模なストアにこれらを後から組み込むのは極めて困難です。

FAQ

セマンティックキャッシュとはどのように違うのですか?
セマンティックキャッシュは、同様のリクエストの再計算を避けるために、回答全体を保存して再利用します。長期メモリは、永続的な事実、好み、および結果を保存し、新しいタスクごとにそれらを再構成して新たな推論を行います。一方は出力を再利用し、他方は状態を記憶します。
エージェントは実際に何を記憶すべきですか?
ユーザーの好み、決定とコミットメント、以前のタスクの結果、繰り返し発生する手順など、安定して再利用可能なシグナルです。一時的な雑談や、保持する正当な理由がないものは避けてください。書き込み量を抑え、質の高い書き込みを行うことが、後の検索精度を高める鍵となります。
PII(個人特定情報)とプライバシーはどのように処理しますか?
ストアをガバナンス対象データとして扱います。メモリがユーザーやテナントをまたぐことがないようスコープを強制し、永続化するデータを最小限に抑え、同意と削除をサポートし、保持期間とアクセス制御を設定します。監査可能性と有効期限ポリシーは、これらの義務を果たすための要素です。

参考文献