MemoryLake
すべての記事に戻る
Pain Point2026年5月22日8 分で読了

なぜOpenClawはエージェントの状態を忘れるのか?

OpenClawを再起動すると、エージェントが前回の続きから始まることを期待します。しかし、エージェントは見知らぬ人のようにあなたに挨拶します。昨日の半完成の計画は消えてしまいました。中間変数、部分的な推論、未完了のサブタスクはすべてリセットされました。ディスク上のMarkdownノートはまだありますが、それらを接続していたライブエージェントの状態は消えてしまいました。

これがエージェントの状態を忘れる問題であり、OpenClawのローカルファースト設計を放棄することなく、クリーンに修正する方法があります。

短い答え

OpenClawはエージェントの状態を忘れます。なぜなら、その作業状態はセッションの期間中、モデルのコンテキストウィンドウに存在し、エージェントが明示的にMEMORY.mdまたは日々のノートに書き込んだものだけが再起動を超えて生き残るからです。オープンサブタスクや未保存の中間変数のような一時的な推論に保持されているものは、セッションが終了した瞬間に失われます。外部の記憶レイヤーは、圧縮時だけでなく、すべてのステップでライブ状態をキャプチャします。

なぜOpenClawはエージェントの状態を忘れるのか

OpenClawの設計はローカルファーストでファイルベースです。プロジェクトの記憶に関するドキュメントによると、エージェントはエージェントの作業スペースにプレーンなMarkdownファイルを書き込むことで情報を持続させ、モデルはディスクに保存されたものだけを記憶します。

エージェントの状態喪失を引き起こす三つの構造的選択があります:

1. 状態は書き込まれた場合のみ生き残る。 OpenClawは、重要なコンテキストを記憶ファイルに保存するようエージェントに思い出させるサイレントターンを圧縮前に実行します。これはエージェントが重要だと認識するものには機能しますが、修正しようとしていた半完成の計画や使用しようとしていたツールの結果には機能しません。

2. アクティブな推論フレームはモデルのコンテキストウィンドウに存在する。 セッションが実行されている間、プランナー、ツールバッファ、作業用スクラッチパッドはモデルのプロンプトに存在します。セッションが終了するか圧縮が発生すると、そのフレームはMEMORY.mdに明示的にフラッシュされていない限り消えます。

3. 状態はファイルであり、構造化されたストアではない。 MEMORY.mdと日々のノートは人間が編集可能なMarkdownです。これはポータビリティとレビューには優れていますが、「ステップ47での変数Xの正確な値は何だったか?」というクエリには適していません。データの形状は散文であり、状態グラフではありません。

その結果:エージェントは「なんとなく」昨日の行動を覚えているが、今日の行動を正確に忘れてしまいます。

OpenClawがエージェントの状態を忘れると何を失うのか

状態の喪失は、数日間の自律的なタスクを数日間のリセットに変える失敗モードです:

  • 再開は推測であり、ロードではない。 タスクの途中で再起動すると、エージェントのメンタルモデルを、書き込むことができたノートから再構築する必要があります。保存し忘れたものは消えてしまい、エージェントは何を忘れたのか分かりません。
  • 長期的なタスクは静かに劣化する。 数日または数週間にわたるように設計されたタスクは、圧縮のたびに小さな状態の喪失を蓄積します。一週間後、エージェントの作業理解は実際のプロジェクト状態からずれてしまいます。
  • 並行エージェントは状態を共有できない。 関連する作業を行う二つのOpenClawエージェントを実行すると、それぞれが独自のローカルMarkdownディレクトリを持ちます。状態を調整するにはファイルを手動でマージする必要があり、マージではニュアンスが失われます。

Mem0のAIエージェントの記憶の状態2026レポートは、状態の連続性を生産エージェントスタックにおける最大のギャップとして特定しています。OpenClawのファイルベースの記憶は正直で透明です。しかし、モデルが書き込むことを覚えているものに制約されています。

OpenClawの組み込みの回避策

プロジェクトには、状態の喪失に部分的に対処するいくつかの機能が搭載されています。

MEMORY.mdと日付付きノート。 長期的な事実はMEMORY.mdに保存されます。実行中のコンテキストは日付付きのファイルに保存されます。システムはセッション開始時に今日と昨日のノートを自動的に読み込みます。物語の回想には便利ですが、構造化されたライブ状態には弱いです。

memory_searchとハイブリッド検索。 OpenAI、Gemini、Voyage、またはMistralのような埋め込みプロバイダーを設定すると、OpenClawはベクトル類似性とキーワードマッチングを組み合わせたハイブリッド検索を有効にします。意味による過去の観察を見つけるのに強力です。以前のセッションの正確な推論フレームを再構築するためには設計されていません。

圧縮前の保存ターン。 圧縮が会話を要約する前に、OpenClawはエージェントに重要なコンテキストを記憶ファイルに保存するよう思い出させるサイレントターンを実行します。これはエージェントが重要だと認識するものをキャッチしますが、認識しないものは見逃します。

これらの機能により、OpenClawは市場で最も透明なエージェント記憶システムの一つとなっています。それでも「保存されたもの」と「エージェントが実際に行っていたこと」の間にはギャップが残ります。

OpenClawの組み込みの記憶が不足している点

より深刻な問題は、ファイルベースのモデルキュレーションされた記憶が、何が重要かについてモデルの判断を引き継ぐことです。モデルはこれを正しく理解することが多いですが、時には間違えることもあります。すべてのステップでエージェントの状態を自動的にキャプチャするメカニズムはなく、モデルが書き込むことを選択したものだけが記録されます。

個人のエージェントにはこれは許容されますが、複数のエージェントが調整し、実行が数週間にわたる生産エージェントスタックでは、ギャップがドリフト、重複、静かなタスクの放棄として現れます。

MemoryLakeがOpenClawのエージェント状態の忘却を修正する方法

MemoryLakeは、OpenClawのMarkdownファイルに加えて、構造化されたクエリ可能な状態レイヤーを追加します。エージェントは両方に書き込み、正確なリコールが必要なものについてMemoryLakeにクエリを送ります。

  • すべてのステップでの完全なエージェント状態のスナップショット。 プラン、オープンサブタスク、中間変数、ツールバッファは、プロジェクト内の構造化された記憶として保存されます。再起動すると、エージェントはシャットダウン時の正確なフレームをロードします。Markdownの要約ではありません。
  • エージェント記憶のGitスタイルのバージョン管理。 すべての状態変更はコミットです。ステップ30とステップ60の間で何が変わったかを比較したり、実行を再生したり、長い自律ループが横道にそれた場合に既知の良好な状態にロールバックしたりできます。
  • エージェント間の共有記憶。 関連するタスクに取り組む二つのOpenClawエージェントは、同じプロジェクトから読み書きします。調整はクエリで行い、ファイルのマージではありません。同じ記憶はClaude、Cursor、またはREST、MCP、Python SDKを介して接続された他のエージェントでも機能します。

MemoryLakeはLoCoMoの長コンテキストベンチマークで94.03%を記録しており、2026年時点での最高の公開結果であり、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を提供しています。

MemoryLakeをOpenClawに接続する3つのステップ

  1. プロジェクトを作成し、コンテキストをロードします。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックして「OpenClaw — エージェントの状態」と名付けます。参照ドキュメント(プロジェクト仕様、実行手順、以前のMEMORY.mdエクスポート)をドキュメントドライブを通じてアップロードします。記憶ズタブを使用して、エージェントにスタンディングルールと初期状態スキーマを提供します。
  2. MCPサーバーエンドポイントを生成します。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックして「OpenClaw統合」と名付け、「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるので、すぐにコピーしてください。
  3. OpenClawを接続します。 OpenClawのツールまたはサーバー設定を介してMemoryLakeをMCP互換の記憶プロバイダーとして追加し、エンドポイントURLとBearerトークンを貼り付けます。あるいは、カスタムスキルからREST APIを呼び出して、すべてのステップでエージェントの状態をスナップショットします。Python SDKは、複数のOpenClawエージェントを並行して実行する場合のクラスター全体の操作をサポートしています。

よくある質問

OpenClawには持続的なエージェント状態がありますか?

OpenClawは、エージェントがMEMORY.mdおよび日付付きノートディレクトリに書き込んだものを持続させます。オープンサブタスクや中間変数のようなライブ作業状態は自動的にキャプチャされません。エージェントが明示的に保存しなかったものは、セッション終了時に失われます。

OpenClawが再起動を超えてエージェントの状態を記憶するようにするにはどうすればよいですか?

外部の記憶レイヤーにすべてのステップで完全なエージェント状態をスナップショットします。MemoryLakeは、プラン、サブタスク、ツールバッファ、および変数を構造化された記憶として保存し、エージェントは毎回のセッション開始時にそれを再ロードします。

なぜOpenClawはセッション間で何をしていたかを忘れるのですか?

アクティブな推論フレームがセッション中にモデルのコンテキストウィンドウに存在し、Markdownファイルに書き込まれるキュレーションされたサブセットのみが生き残るからです。セッションが終了すると、残りは消えてしまいます。

OpenClawは他のエージェントとエージェント状態を共有できますか?

ネイティブではできません。各OpenClawインスタンスは独自のローカルMarkdownディレクトリを持っています。MemoryLakeを使用すると、複数のエージェントが同じプロジェクトを読み書きできるため、状態が実際に共有されます。

OpenClawの記憶制限は何ですか?

ファイルサイズに固定の制限はありませんが、実用的なリコールは、ロード時にモデルのコンテキストウィンドウに収まるものと、ハイブリッド検索が表面化するものに制約されます。MemoryLakeは、数十億のトークンにスケールする取得でその上限を取り除きます。