Shiv Shankar

LLMはステートレスである。それがエージェントのメモリに実際に意味すること

ほとんどのAIエージェントのチュートリアルが触れていない一文があり、それが
信頼性の高い長時間実行エージェントの構築が難しい理由を説明している。

API呼び出しの間、モデルは何も知らない。

ChatGPTのメモリ、ClaudeのProjects、 LangMem、Mem0など、これまでに見たすべての「メモリ機能」は、 テキストを準備してモデルを呼び出す前にコンテキストウィンドウに注入する 人間が書いたシステムである。モデル自体は永続的な状態を持たない。

人々が見逃している意味

LLMがステートレスであるなら、長時間実行されるエージェントの知能は、 何を注入し、何を破棄するかを管理するハーネスの中に完全に存在する。

これは制限ではない。設計原則である。

研究コミュニティはこれを明示的にこのように扱い始めている。

  • MemGPT (2023) は「LLMをOSとして」アナロジーを導入した。 モデルはCPUで、外部メモリはディスクであり、ハーネスは クエリ時にRAMにどのページを入れるかを管理する。

  • StateFlow (2024) はさらに進んでいる。エージェントは有限状態機械である。 LLMは状態遷移時のみ呼び出され、状態自体に責任を負わない。

  • ClawVM (2026) はこれを仮想メモリ層として形式化している。 ハーネスはライフサイクル境界ごとに決定的で検証済みの書き戻しを強制する。 LLMは生の思考を出力し、ハーネスが何をコミットするかを決定する。

メモリ設計への影響

LLMが純粋に処理ユニットであるなら、エージェントのメモリの品質は 完全にハーネスの品質である。 ハーネスとは、どの事実を保存するか、それらが有効な期間、 いつ置き換えられるべきかを決定するシステムである。

フラットな埋め込みを保存し、類似性で検索するハーネスは 平凡なエージェントを生む。時間的アサーションを保存し、 衝突を決定的に解決するハーネスは信頼性の高いエージェントを生む。

「時間的アサーション」が実際に意味すること

時間的アサーションとは、有効期限を持つ事実である。

subject:   user_project
predicate: uses_language  
object:    Python
valid_from: 2025-01-10
valid_to:   2025-06-15   ← ユーザーがTypeScriptに切り替えたときに終了

Enter fullscreen mode Exit fullscreen mode

ハーネスがこれを保存するのであり、LLMではない。LLMはvalid_toが設定されると 古い事実を二度と見ることはない。アクティブな状態はWHERE valid_to IS NULLである。

これはSmritiの背後にあるモデルである。 SmritiはステートレスLLMのための信頼性の高いハーネスとして まさに構築されたオープンソースの時間的メモリエンジンである。

LLMはエージェントではない。ハーネスがエージェントである。ハーネスをうまく構築せよ。


MITライセンス。PostgreSQLベース。オープンソース。