階層化を効果的にする非対称性
エージェントメモリの設計で一つだけ変更するなら、これです。ストレージコストとアテンションコストを同じものとして扱うのをやめること。
私はこれを 19 のシステムにわたって深く調査してきましたが、繰り返し浮かび上がってくる発見は、メモリをうまく扱うシステムは、必ずしも最も洗練された検索を持っているわけではないということです。そうではなく、どのメモリをそもそもプロンプトに含めるべきかを理解しているシステムなのです。これは別の問題であり、別の解決策があります。
ストレージは安い。アテンションは高い。128k コンテキストのモデルが 110k の平均的なコンテキストを読むよりも、同じモデルが 8k の厳選されたコンテキストを読むほうが、経験的に優れたエージェントであるとは言えません。この研究結果は一貫しています。検索品質は、コンテキストがノイズで満たされるにつれて低下し、その低下は線形ではありません。モデルは無関係な素材を単に無視するのではなく、それを処理し、その処理がシグナルを押しのけてしまうのです。
ストレージにはこの性質はありません。データベースにある事実は、保持するのにコストはかかりません。コストが発生するのは、それを検索してプロンプトにロードしたときだけです。つまり、問題は「これを保存すべきか?」ではなく、「これを検索すべきか?もしそうなら、いつ検索すべきか?」なのです。
この捉え直しこそが、階層化の根拠です。メモリアイテムごとにアクセスパターンが異なります。エージェントが毎ターン必要とするもの:ユーザーの名前、現在のプロジェクト、設定された好み。頻繁に必要だが常にではないもの:最近の決定、未解決の質問、過去数セッションのエピソード的事実。必要なときに見つけられるべきだが、毎ターンの負担になるべきではないもの:3ヶ月前の会議メモ、完了したタスク、生のトランスクリプト、一度きりの参照資料。
フラットなストアは、これら 3 つのカテゴリをすべて同一に扱います。ホットなアイテムがコールドなアイテムの検索コストを支払います。コールドなアイテムがプロンプトをノイズで膨らませます。アイテムがより関連性が高くなるにつれて昇格する仕組みも、関連性が低くなるにつれて段階を下げる仕組みもありません。OS のアナロジーは正確です。CPU には L1、L2、L3、RAM、SSD、ディスクがあるのは、バイトが異なるからではなく、アクセス頻度が桁違いに異なるからです。私が調べた 19 のシステムのうち 7 つは、私が調査を始める前から明示的な階層化を構築していました。そのうち 2 つは詳細に理解する価値があります。
MemoryOS - リファレンス実装
MemoryOS は 19 のシステムの中で最も明確な階層型メモリの実装です。3 つの階層があり、それぞれが異なるデータ形状、異なるレイテンシ予算、異なる役割を持っています。
短期的階層は Python の deque で、最大 10 の QA ペアを保持します。埋め込みも検索インデックスもヒートトラッキングもありません。純粋な会話の生の素材であり、最後の 10 回のやり取りをマイクロ秒のレイテンシで利用できます。deque がいっぱいになると、最も古いペアが中期的階層に流れ込みます。
中期的階層は最大 2000 セッションを保持します。各セッションには要約、埋め込み、キーワードセット、ヒートカウンターが含まれます。この階層は Faiss でインデックス化され、コサイン類似度で検索されます。容量に達すると、最も冷たいセッションが追い出されます。セッションが十分にホットになると、長期的階層に昇格します。
長期的階層は 90 次元の心理学・アライメントスキーマ、2 つの知識ベース deque(ユーザー事実用とアシスタント事実用、それぞれ最大 100 エントリ)です。これが永続層であり、セッションを超えて存続し、ユーザーの耐久モデルを保持します。
昇格を制御するヒート計算式は 12 行の Python コードです。3 つのシグナル:訪問頻度(LFU 類似)、対話深度(トピックへの関与のプロキシ)、および減衰(24 時間の半減期を持つ指数関数)。セグメントは 5.0 で昇格閾値を超えます。昇格後、訪問と対話のカウンターはゼロにリセットされ、ヒートは約 1.0 に戻ります。
見逃しがちな設計上の決定:ヒートは昇格を制御し、検索は制御しません。検索は純粋にセマンティックで、中期的階層の埋め込みに対するコサイン類似度です。ヒートはバックグラウンドシグナルであり、セグメントが長期的階層に昇格すべきかを判断します。2 つの関心事は切り離されており、その切り離しが計算式自体よりも重要です。
MemoryOS が残した課題を挙げる価値があります。係数は 1.0 にハードコードされており、実際の使用パターンから重みを学習する仕組みはありません。降格パスもなく、一度長期的階層に達したものはそこに留まり続けます。また、計算式は重要度よりも頻度を最適化しています。重要な希少事実、パートナーの名前、病状、厳格な制約などは、一度しか出てこないと昇格閾値を超えない可能性があります。中期的階層がそのセグメントを追い出すと、その事実は失われます。
Hindsight - 理論に基づく階層
Hindsight はまったく異なる出発点から同じ 3 層構造にたどり着いています。MemoryOS が OS キャッシュ理論に基づくのに対し、Hindsight は認知科学に基づいています。
3 つの階層は、World、Experience、Observations です。World は宇宙に関する客観的な主張、グラウンドトゥルース、常時オン、長命を保持します。Experience はシステム自身の一人称の行動、エピソード的記録を保持します。Observations は World と Experience の事実から導き出された統合された信念を保持し、ソースメモリ ID、証明カウント、信念の進化を追跡する履歴フィールドを持ちます。
これら 3 つの階層はすべて同じデータベーステーブルに存在し、事実タイプの識別子によって区別されます。部分的な HNSW インデックスが事実タイプごとに構築されます。スキーマは統一されていますが、アクセスパターンは異なります。
Hindsight での昇格はカウンタ駆動ではありません。バッチ処理された LLM 駆動の統合です。新しい事実が書き込まれると、非同期操作テーブルにエンキューされます。バックグラウンドワーカーが、既存の重複する観察とともに新しい事実を取得し、バッチプロンプトを構築し、モデルに作成、更新、削除を依頼します。ソースメモリには、再処理を防ぐために統合時刻のタイムスタンプが付与されます。すべての新しい事実は、アクセス頻度に関係なく、Observations 階層への昇格が検討されます。
これが MemoryOS との重要な違いです。上位階層への昇格をヒートではなく統合に結びつけることで、Hindsight は重要だが稀な事実を見逃す盲点を回避しています。単一の統合パスがすべての新しい事実を考慮します。頻度は昇格の可否に関係ありません。
簡単に言えば、2 つのシステム、異なる第一原理、異なる実装言語、異なるターゲットユースケースでありながら、両方とも 3 つの階層に到達しており、下部に生の素材、中間に作業層、上部に統合された永続層があります。両方とも非同期昇格を使用しています。両方とも下位階層への出所を保持しています。これはソフトウェアアーキテクチャにおける収束進化の姿であり、あるパターンが重要な構造であることを示す最も強いシグナルです。
@supermemory - ジャンル条件付き階層化
supermemory はマネージド API デプロイメント形態で動作しており、アーキテクチャを変えずに実装を変えています。3 つの階層は、静的プロファイル、動的プロファイル、ドキュメントとチャンクストアです。
静的プロファイルは安定した長期的な事実、ホットティアを保持します。プロファイルエンドポイントから静的配列として返され、エッジでキャッシュされ、レイテンシ予算は約 50ms です。動的プロファイルは最近のエピソード的コンテキスト、ウォームティアを保持します。多くのエントリには TTL を設定する forgetAfter フィールドがあります。ドキュメントとチャンクストアはコールドティアであり、必要なときに検索エンドポイントを介してクエリされます。
階層割り当ては書き込み時に行われます。抽出 LLM が各受信メモリを isStatic ブール値とオプションの forgetAfter 値で分類します。分類はクローズドな抽出プロンプトによって強制され、すべてのコンシューマで統一されています。
マネージド API デプロイメント形態により、インプロセス設計者が直接コピーできないが理解すべき 3 つのことが可能になります。コールドティアのデータはより安価なハードウェア、生のバイト用のオブジェクトストレージ、メタデータとチャンク用の標準リレーショナルストアに置くことができ、ホットプロファイルはエッジで別途キャッシュされます。ホットティアには、検索パスとは別の独自の SLA を持つ独自のエンドポイントがあります。また、抽出プロンプトは集中化されているため、階層割り当てはエージェントごとの分類ではめったにない一貫性を持ちます。
トレードオフは現実的です。リモートのホットティアはネットワークが速い場合にのみ高速です。エージェントはエンジンの階層分類を上書きできません。抽出プロンプトはブラックボックスです。しかし、ホットティアを独自のエンドポイントとして、コールドティアをより安価なハードウェアに、階層割り当てを書き込み時に行うというアーキテクチャパターンは、デプロイメント形態が異なってもコピーする価値があります。
昇格 vs. 固定タイポロジ
mem9 は、階層化とは何かを明確にする対照的なケースです。
mem9 には、メモリタイプのカラムがあり、3 つの値(pinned、insight、digest)を持ちます。pinned メモリは明示的なコンテンツ書き込みパスによって割り当てられ、手動で作成され、LLM による調整から保護されます。insight は LLM 抽出によるすべての書き込みで割り当てられ、変更可能、バージョン管理可能、置き換え可能です。両方とも同じ RRF スコアリングで同じハイブリッド検索に参加します。タイプフィールドは書き込み保護フラグであり、検索フィルターでも階層シグナルでもありません。
これはタイポロジ(類型論)であり、階層化ではありません。この区別は重要です。なぜなら、この 2 つは混同されやすいからです。タイポロジはガバナンスを記述します。誰がどの条件下でこのメモリを変更できるか。階層化はアクセスパターンを記述します。このメモリはどのくらいの頻度で必要か、どのストレージ表現がその頻度に最適か。システムは両方を持つことができます。supermemory の isStatic は階層シグナルですが、別の isInference フラグはガバナンスクラスに近いものです。しかし、これらを混同すると、実際に最もあいまいさが生じます。
メモリ行にタイプフィールドを追加する場合、そのフィールドがアクセスパターンを記述しているのか、ガバナンスクラスを記述しているのかを自問する必要があります。アクセスパターンなら、階層化を構築しています。ガバナンスクラスなら、タイポロジを構築しています。両方とも有用です。同じものではありません。
フラットストアのコスト
フラットなメモリストアを運用することから生じる具体的な 4 つの事柄があります。
ホットパスがコールドパスの検索コストを支払います。すべての検索が同じアイテムに対して同じインデックスをスキャンします。ユーザー名を検索するエージェントは、6ヶ月前の会議メモを検索するエージェントと同じ検索コストを支払います。小規模ではこれは見えません。大規模ではレイテンシ問題になります。
コールドパスがプロンプトをノイズで膨らませます。検索は意味的に近いアイテムを返します。これには、常時コンテキスト、置き換えられた事実、事実としては正しいが現在のターンには無関係な素材が含まれます。モデルはそのすべてを処理します。コンテキストウィンドウ内のシグナル対ノイズ比は、ストアが成長するにつれて低下します。
アイテムが昇格する仕組みがありません。メモリは静的ではありません。関係の初期段階の一瞬のエピソード的事実が、時間の経過とともにユーザーの好みや制約に関する耐久シグナルになることがあります。フラットストアはその遷移に気づく仕組みを提供しません。アイテムは、関連性がどのように変化しても、書き込まれたときと同じ表現に留まり続けます。
アイテムが段階を下げる仕組みがありません。降格は削除ではありません。フラットストアが古い素材を除去したい場合、削除する必要があります。階層化ストアは、それをより冷たい表現に移動でき、依然として見つけられ、ホットパスの負担にはなりません。フラットストアは階層化ストアにはない二者択一を強制します。
総括
19 のシステムのうち 18 が階層化を実装しているか、それを示唆しているか、明示的に推奨しています。例外は mem9 ですが、mem9 は別の問題を解決するタイポロジ層を持ち、その上に階層化を追加することで利益を得られるでしょう。
エージェントメモリをゼロから構築する場合、19 のシステムが示す進行は次のとおりです。エージェントが毎ターン必要とするものを特定する、それがホットティアです。頻繁に必要だが常にではないものを特定する、それがウォームティアです。必要なときに見つけられるべきだが、毎ターンの負担になるべきではないものを特定する、それがコールドティアです。昇格メカニズムを選択する:MemoryOS のようなヒートベース、Hindsight のような LLM 判断、または supermemory のような抽出時分類。降格メカニズムを選択する:時間減衰、TTL、または鮮度カテゴリ。最初は昇格と検索スコアリングを分離しておく、その切り離しは後から追加するよりも後からほぐす方が難しい。上位階層から下位階層への出所を追跡し、統合された信念がどこから来たのかという質問に常に答えられるようにする。
19 のシステムは多くの点で一致していません。しかし、この点では一致しています。単一のフラットメモリストアは、非自明なエージェントメモリシステムにとって間違ったデフォルトです。
ストレージは安い。アテンションは高い。その差を活用するシステムを構築しましょう。
この記事が面白いと思ったら、ぜひシェアしてください。





