ICML 2025ベスト論文の白眉:xMemoryはRAGのメモリ課題を本当に解決できるのか?
大規模言語モデルを使ったエージェントが急速に発展する現在、AIに何十回にもわたる会話履歴を記憶させることは、エージェントの実用性を左右する重要な要素になっています。数か月付き合うAIアシスタントと話していると、以前話し合ったプロジェクトの好み、仕事の進め方、あるチャットで触れた重要な細部まで覚えていてほしいと思うものです。しかし、標準的な検索拡張生成(RAG)手法は、こうした「エージェント・メモリ」の局面で、驚くべきほど大きな制約を露呈しました。
見過ごされてきた根本的な問題:RAGとエージェント・メモリは「設計思想が相容しない」
xMemoryを詳しく見る前に、この変化を形づくった核心となる背景を整理しておきます。従来のRAGは何を前提に設計されてきたのか。それは、海量のインターネット文書や企業の知識ベース、あるいは数百本の研究論文から情報を検索するためのものです。こうした場面では、検索対象のテキスト断片は異なる出典から来ているため、互いに話題も視点も異なります。正是このため、従来型の「top-k類似度検索」は、多数の異質な候補の中から、現在のクエリと関係する多种多様な情報を効率よく選び出せます。
ところが、エージェント・メモリの状況はその辺りとはまったく異なります。ユーザーがエージェントと数週間から数か月にわたって対話すると、保存されるメモリには、強く関連している一方、冗長性も高く、時間軸上で密につながる、独特の構造が現れます。たとえば、ユーザーが1か月のあいだ同じプロジェクトについて何度も話し合ったなら、そのプロジェクトに関するすべての会話断片は、意味空間の中に密集した「雲」をつくります。その中の断片どうしの類似度は非常に高い一方、現在のクエリに関係する核心情報は、雲のなかのたった数点にしか含まれないかもしれません。
少し扱いにくい状況が生じます。標準のtop-5やtop-10検索を使うと、返ってくるのは同じ話題に近い重複した断片です。言い換えれば、RAGがわざわざ見つけた「最も関連する」コンテキストは、結局同じことを繰り返しているだけでした。必要とされている、時系列で前後に結び付いた証拠の連鎖は、逆にアルゴリズムに冗長なものとして「最適化」されてしまっていたのです。
xMemory論文の核心的な洞察はまさにここにあります。標準RAGが前提とするのは「異質なテキスト群」である一方、エージェント・メモリは本質的に「同質なメモリの流れ」です。この根本的なミスマッチを、パラメータ調整だけで解決することはできません。
xMemoryの核となる考え方:「切り離ししてから集約」
この課題に対して、xMemoryは「切り離してから集約」(Decoupling-then-Aggregation)という、考え抜かれた解法案を提案しています。この考え方の核心は、元の会話断片の扱いで右往左往する代わりに、まずメモリを構造化してから、その階層を逆にたどって検索を動かすことです。
具体的には、xMemoryは次の4階層からなる記憶構造を構築します。
- 生のメッセージ(Messages):ユーザーとエージェントの実際の対話ターン
- 会話エピソード(Episodes):連続した複数ターンの対話を要約に圧縮し、1つのまとまった話題単位を捉えたもの
- 意味単位(Semantics):会話エピソードから抽出された、再利用できる長期的事実。ユーザーの名前、勤務先、好みや習慣など
- テーマ(Themes):関連する意味単位をまとめ、より上位の概念を集約したもの
この階層構造が上手い点は、もともと時間の流れに混ざっていた情報を「切り離し」られることです。意味単位が単独で抽出され、元の対話ターンに紐づけられなくなる一方、テーマ層の「集約」によって、意味単位どうしの高次の関係も作られます。これは、濁った川の水をしおり分けて沈殿させ、必要なものだけを後から取り出すようなものです。
2段階の適応型検索:代表選択と不確実性に基づく絞り込み
ただし、階層をつくるだけでは不十分です。重要なのは、その階層をどう効率よく検索できるかです。xMemoryが採用する2段階の適応型検索戦略は、この論文で特に光った部分です。
第1段階:kNNグラフ上でクエリを考慮した代表選択
テーマ層と意味単位層では、xMemoryはk最近傍(kNN)グラフを維持しています。ユーザーがクエリを入力すると、システムは元の対話から直接最も似た断片を探すのではなく、まずテーマ層で「代表選択」を行います。つまり、複数の関連テーマから、異なる知識の側面を最も広くカバーできる代表ノードを選び出すのです。
ここでの重要な革新は、2つの目標をどうトレードオフさせるかを示す次の式です。
i* = argmax [α × 覆盖增益 + (1-α) × 查询相关性]
システムはこの式を使って2つの目標をバランスします。一方では、現在のクエリと意味的に関連した内容を選びます。他方では、選んだ内容によってメモリ内の異なる知識の側面がカバーされ、ある密集領域に偏りすぎないことも保証します。このプロセスは反復的に進みます。ノードを1つ選ぶたびにその隣接ノードのカバー状態を更新し、あるカバー率の閾値に達するまで繰り返します。
第2段階:不確実性に応じた証拠の選択
関連した意味単位を選んだ後、次に決めるのは、どの具体的な会話エピソードを「証拠」として含めるかです。xMemoryの方法は巧妙で、関連する断片を一挙にコンテキストウィンドウへ詰め込むのではなく、「不確実性の低減」という原則に基づいて選び分けます。
具体的には、各候補の会話エピソードについて、その断片を追加することで、言語モデルが答えを予測するときの不確実性を減らせるかを評価します。その断片を追加することで答えの不確実性が有意に下がる場合だけ、最終コンテキストに含めます。この方法なら自然に「必要な分だけ取得」できます。答えに直接関係する細部は残し、冗長でほぼ重複した内容は取り除かれます。
実験結果:効率と品質を両立
xMemoryは2つのベンチマークデータセットで十分な検証を行いました。LoCoMo(複数セッションの対話データセットで、平均約300ターンの対話を含む)とPerLTQA(個人の長期記憶に関する質問応答)です。
実験結果は印象的で、特に以下の3点が目立ちます。
- Qwen3-8Bでは、平均BLEUが28.51から34.48へ、F1が40.45から43.98へ向上
- GPT-5 nanoでも、BLEUが36.65から38.71、F1が48.17から50.00へと向上
- 最も惊人だったのはトークン使用効率です。Qwen3-8Bでは、トークン消費量が9103から4711へ減り、ほぼ半分になりました!
つまり、xMemoryは答えの品質を高めながら、コストも同時に抑えられるのです。長期稼働型のエージェントアプリにとって、これは非常に大きな魅力になります。
より深い示唆
この論文を読んで、エージェント分野全体に向けた、より深い示唆を考えさせられました。
まず、xMemoryは重要な設計原則を示しています。「メモリの整理方法によって検索効率が決まる」というものです。エージェントのメモリシステムを設計するとき、単に保存や索引付けの方法だけを見るのでなく、知識を「切り離す」方法を考えるべきです。長期的に有効な一般的な事実と、短期的に有効な対話コンテキストを分ける。中核的な概念と細かな情報を分ける。この分離そのものが一種の知性です。
次に、xMemoryの「2段階検索」は、より広い設計パターンも示しています。粗い代表選択で探索空間を制御し、それから細かい不確実性評価で内容を絞り込む。この「粗く選んでから細かく詰める」戦略は、限られたリソースを効率よく使う必要がある多くの場面で、普遍的な価値を持ちます。
最後に、この論文はRAGの境界線 rethink させる必要的も示しています。RAGは強力なパラダイムですが、万能ではありません。アプリケーションの特徴がRAGの前提と合わない場合は、無理に合わせるのではなく、必要に応じて個別に最適化し、prototype自体をを再構築するくらいの勇気が必要かもしれません。
おわりに
ICML 2025のこの論文は、エージェント・メモリという先端領域に大きな刺激を与えました。xMemoryは「切り離し-集約」の階層的な考え方と、「代表選択-不確実性に基づく絞り込み」の2段階検索によって、標準RAGが同質なメモリの流れを扱う際のジレンマを解消しました。さらに注目されるのは、答えの品質を高めるだけでなく、トークンコストも大幅に下げていた点です。実運用を念頭に置くエンジニアにとって、これは無視できない魅力になるはずです。
長期記憶を必要とするAIエージェントを開発している、あるいは検索拡張技術に一層関心がある人なら、この論文は必読です。実装可能な技術的なsolution を提供しているだけでなく、それ以上に、問題を考える方法を示しています。既存のMETHODOLOGYが問題の本質と合わないとわかったら、一度問題の出所に戻って、システム全体を設計し直す价值的ITYもあります。