C
ChaoBro

Cloudflare Agent Memory 技術解説:AI エージェントの永続記憶アーキテクチャ

Cloudflare Agent Memory 技術解説:AI エージェントの永続記憶アーキテクチャ

コンテキストウィンドウが100万トークンを突破しても、研究結果は依然としてこう示している:詰め込めば詰め込むほど、モデルの出力品質は低下する。

これがいわゆる context rot(コンテキスト劣化)である。この問題の深層分析については、以前の記事 100万トークンコンテキストの真のボトルネックは技術ではなく計算リソース を参照してほしい——大モデルを制限するのは技術だけでなく、計算コストでもあるのだ。

開発者はジレンマに直面する:すべてを詰め込めば品質が低下するのを眺めるしかない。思い切って切り詰めれば、エージェントが後で必要とする重要な情報を失う可能性がある。AI エージェントの記憶管理に関する体系的な議論については、AI エージェントの「コンテキスト健忘」問題 も参照されたい。

Cloudflare は4月末の Agent Week で新製品 Agent Memory(プライベートベータ)を発表し、この問題に根本からアプローチしようとしている。Agent Week の全体的な製品マトリクスについては、Cloudflare がエージェントの自主登録を全面開放 でより包括的に紹介している。Agent Memory は会話の履歴をすべてコンテキストウィンドウに放り込むのではなく、会話から構造化された記憶を抽出し、必要な部分だけを検索して取得する。

「Agent Memory を構築したのは、プラットフォーム上の実際のワークロードが、既存のソリューションでは完全に解決できないギャップを浮き彫りにしたからです。数週間から数ヶ月にわたって実行され、本番のコードベースや生産システムと向き合うエージェントに必要なのは、クリーンなベンチマークデータセット上でうまく動く記憶ではなく、成長してもなお有用であり続ける記憶なのです。」 —— Tyson Trautmann & Rob Sutter、Cloudflare エンジニアリングチーム

抽出パイプライン:二回スキャン + 8ステップ検証

Agent Memory のインバウンドフローは非常に細かく設計されている。

各メッセージにはまずコンテンツアドレッシングの SHA-256 ID が割り当てられ、冪等な再取り込みを可能にする——同じメッセージを重複して送信しても冗長なレコードは生成されない。

抽出器は2つの並列チャネルで動作する:

  • 広域スキャン:約1万文字ごとにチャンク分割し、全体のセマンティクスを把握
  • 詳細スキャン:具体的な数値——名前、価格、バージョン番号などにフォーカス

その後、バリデーターが8項目のチェックを実行し、合格したメッセージのみが4種類の記憶タイプに分類される:

  • Facts(事実):キーバリューペア形式、標準化されたトピック別にインデックス化
  • Events(イベント):タイムラインに関連する活動記録
  • Instructions(指示):行動ルール、新しい記憶が旧バージョンを上書き(削除ではない)
  • Tasks(タスク):やるべきこと

デフォルトでは Llama 4 Scout(17B MoE) が抽出と分類に使用されるが、Cloudflare はこの段階でより大きなモデルを使っても明らかな優位性はないと確認している。

検索アーキテクチャ:5チャネル並列 + RRF 融合

本当に興味深いのは検索側だ。Agent Memory は単純なベクトル検索ではなく、5つのチャネルを並列で実行し、Reciprocal Rank Fusion(RRF)で結果を融合する:

チャネル用途
フルテキスト検索キーワードマッチング
正確なファクトキー検索インデックス済みの事実を直接特定
生メッセージ検索元の会話テキストに遡る
直接ベクトル検索セマンティック類似度
HyDE ベクトル検索宣言的な回答を生成し、語录の不一致を解消

HyDE(Hypothetical Document Embeddings)チャネルは特に注目すべきだ:まず仮説的な回答を生成し、その回答の埋め込みベクトルを使って検索を行う——これにより、ユーザーのクエリと保存された記憶の間の語录の違いを迂回できる。

合成フェーズでは Nemotron 3(120B MoE) が使用され、Cloudflare のテストでは大規模モデルが実質的な効果をもたらすのは合成段階だけであることが判明した。

共有記憶:チームレベルのエージェント知識コラボレーション

Agent Memory のユニークな機能の一つが記憶の共有である。記憶プロファイルは単一のエージェントに紐付ける必要がない——チームで1つの記憶プロファイルを共有でき、あるエンジニアのコーディングエージェントが学んだ慣習、アーキテクチャの判断、チームの「部族知識」を他のメンバーがそのまま利用できる。

Cloudflare 内部ですでにこの機能が活用されている。Agent Memory に接続されたエージェント型コードレビューアーは、あるパターンがマークされたものの作者がそのまま保持することを選択した場合、次回は同じ警告を繰り返さないことを学んだ。

業界比較

Agent Memory の競争はますます激しくなっている:

  • Mem0:ホステッドクラウドAPI、ベクトル・グラフ・キーバリューストアに対応
  • Zep Graphiti:時系列ナレッジグラフ、事実の有効期限を追跡
  • LangMem:LangGraph に統合されるが、自前での構築が必要
  • Letta(旧 MemGPT):階層型記憶アーキテクチャ、エージェントが自律的にコンテキストを管理

Cloudflare の差別化要因はエッジ配信と、自社コンピューティングプリミティブ(Durable Objects、Vectorize、Workers AI)との深層統合にある。すでに Cloudflare 上でエージェントを構築しているチームにとって、導入コストは最小限で済む。

注意すべきリスク

独立評価者の Kristopher Dunham は、いくつかのトレードオフを指摘している:

  • ベンダーロックイン:データはエクスポート可能だが、検索パイプライン自体は移植不可能。「Exportable means you can extract the raw facts. It doesn’t mean your retrieval pipeline is portable.」
  • 抽出品質の制御不能:記憶の抽出は Cloudflare が選択したセカンダリモデルに依存しており、開発者が介入することはできない
  • 提言:重要な事実は自動取り込みに頼らず、明示的に remember ツールを呼び出すべき
  • アーキテクチャ提言:会話履歴と学習した事実は最初から別々に保存すべき。コンテキストの圧縮は容量60%時点でトリガーし、満杯になるまで待つべきではない

現在プライベートベータ段階にあり、 pricing は未公表。


主な情報源:InfoQ - Cloudflare Agent Memory、Cloudflare 公式ブログ