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

なぜOpenClawはタスクコンテキストを忘れるのか?

あなたはOpenClawに複数のステップからなるタスクを渡します。エージェントは40ターンを費やして作業理解を深め、計画を描き、参照を引き出し、中間的な決定を頭の中で保持します。すると、コンパクションが発動し、会話が要約され、半分の具体的な内容が1行の箇条書きに変わります。エージェントは続けますが、今や自分の以前の推論の言い換えから操作しており、推論そのものではありません。

これがタスクコンテキストの忘却問題であり、クリーンな解決策があります。

短い答え

OpenClawはタスクコンテキストを忘れるのは、会話のコンパクションがタスクの途中の推論をMarkdownノートに要約し、具体的な内容を落としてしまうためです。また、モデルの制約されたコンテキストウィンドウは、長時間実行されるタスクのすべての観察、サブ決定、中間結果を保持することができません。持続的な記憶レイヤーは、エージェントが必要に応じて正確な詳細を引き出せるように、完全なコンテキストをクエリ可能に保ちます。

なぜOpenClawはタスクコンテキストを忘れるのか

OpenClawの記憶ドキュメントは、デザインについて正直です:モデルはディスクに保存されたものだけを記憶します。何が生き残るかを決定するのは3つのメカニズムです。

1. コンパクションは要約するが、逐語的には保存しない。 コンテキストウィンドウが満杯になると、OpenClawはエージェントに重要な状態を記憶ファイルにフラッシュするように求めるサイレントセーブターンを実行し、その後会話を圧縮します。要約は要点を捉えますが、ツールの結果の正確な言葉や中間計画の正確な構造を保持しません。

2. Markdownノートはプローズであり、状態ではない。 MEMORY.mdおよび日付付きノートディレクトリは、人間が読めるテキストを保持します。物語のリコールには優れています(「私たちはJSONBにPostgresを使用することに決めました」)。「ステップ38でクエリQによって返された正確な行は何でしたか?」には弱いです。

3. 作業記憶はコンテキストウィンドウに等しい。 タスクの途中で、エージェントが積極的に推論しているすべてのことはモデルのプロンプトに存在します。新しいツールコールが入ると、古いコンテキストは押し出されるか圧縮されます。エージェントにはウィンドウを生き残るタスクスコープの記憶がありません。

結果として、長いタスクは優雅に劣化します。エージェントはクラッシュせず、漂流します。ターン80までにタスクの説明とエージェントの理解は静かに乖離しています。

OpenClawがタスクコンテキストを忘れると失うもの

タスクコンテキストの喪失は、注意深い複数ステップの計画を近似に変える失敗モードです:

  • 具体的な内容が要約に変わる。 「私たちが合意したスキーマ」は、エージェントがもはや再現できないスキーマへのあいまいな参照になります。下流のステップは、エージェントの最良の推測を実装します。
  • ツールの出力が劣化する。 ターン12に情報を提供したスクレイピングページは、ターン60にはプランナーが再検討できない1行の要約になります。元の詳細が重要であった場合、エージェントは再度スクレイピングする必要があります。
  • 複数日間のタスクが連続性を失う。 セッションの境界を越えて、MEMORY.mdに昇格されなかったものはすべて失われます。エージェントは昨日のノートと今日の圧縮された要約のサニタイズ版を再読み込みし、ライブの推論フレームではありません。

Mem0のAIエージェントの記憶の状態2026レポートは、これを生産制約としてフラグ付けしています:エージェントは30から100のツールステップの後にスレッドを失い、最初に失われるのはタスクコンテキストです。

OpenClawの組み込みの回避策

プロジェクトは意味のある記憶機能を提供します。これらは良いものです。しかし、タスクコンテキストを完全には解決しません。

コンパクション前のセーブターン。 コンパクションの前に、OpenClawはエージェントに重要なコンテキストを記憶ファイルに書き込むように促します。これにより、エージェントが重要だと認識するものが救われます。しかし、タスクの途中で目立たないように見えるものが、後で重要になることがあります。

memory_searchハイブリッド検索。 埋め込みプロバイダーが設定されている場合、エージェントは過去のノートを意味的な類似性と正確なキーワードで検索できます。「私たちはXについて話し合いましたか?」には強いですが、「ターン38で生成した正確なリストを教えてください。」には弱いです。

日付付きノート。 毎日のMarkdownファイルは、進行中の日記を保持します。今日と昨日は自動的に読み込まれます。短いウィンドウには便利です。古いものは明示的な検索が必要で、エージェントが元々書き留めた忠実度に依存します。

これらの機能により、OpenClawは記憶していることについて本当に透明性があります。しかし、コンパクションが実行される瞬間にタスクの忠実度が劣化する事実は変わりません。

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

構造的なギャップは、ローカルMarkdownが人間が読める物語のために設計されており、完全な忠実度のタスク状態のためではないことです。エージェントのキュレーションの判断がボトルネックです。もしそれがツールの結果を「要約の材料」と決定し、それが重要であることが判明した場合、元のものは失われます。

探索的または個人的な作業にはこれで問題ありません。しかし、下流のステップが正確な以前の出力に依存する生産タスクの実行には、元のものを保持し、エージェントがIDでクエリできるストレージが必要です。

MemoryLakeがOpenClawのタスクコンテキストの忘却を修正する方法

MemoryLakeは、OpenClawのローカルファイルの隣に構造化された完全な忠実度のタスクストアとして存在します。エージェントは両方に書き込み、要約ではなく正確な具体的内容が必要なときにMemoryLakeから引き出します。

  • 完全な忠実度のタスクストレージ。 ツールの出力、中間計画、決定の根拠は、プロジェクト内の記憶として逐語的に保存されます。エージェントがターン38から正確な結果を必要とする場合、生のテキストを引き出し、圧縮された要約ではありません。
  • 生のプロンプトの10,000倍のコンテキスト。 MemoryLakeの取得エンジンは、プロジェクトの記憶から数十億のトークンを読み取り、OpenClawにターンごとに関連するものだけを提供します。モデルのコンテキストウィンドウは、タスクの複雑さの上限ではなくなります。
  • 競合解決と記憶の出所。 同じ事実が長いタスクの中で2つの形で現れると、MemoryLakeは競合をフラグ付けし、どのステップがどのバージョンを生成したかを記録します。エージェントは新しいソースを選択するか、レビューのために競合を提示できます。

MemoryLakeは、2026年時点でのLoCoMo長コンテキストベンチマークで94.03%を記録し、ミリ秒単位の取得とAES-256のエンドツーエンド暗号化を実現しています。

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

  1. プロジェクトを作成し、コンテキストをロードします。 MemoryLakeにサインインし、プロジェクト管理を開き、プロジェクトを作成をクリックし、タスクの名前を付けます(例:「OpenClaw — 競合分析実行」)。サポート文書、以前のMEMORY.mdファイル、スクレイピングした参照資料をドキュメントドライブを通じてアップロードします。記憶タブにスタンディングルールとタスクブリーフをシードします。
  2. MCPサーバーエンドポイントを生成します。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「OpenClawタスクコンテキスト」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるので、すぐにコピーしてください。
  3. OpenClawを接続します。 エンドポイントURLとBearerトークンを使用して、OpenClawのツールまたはサーバー設定にMemoryLakeをMCP互換の記憶プロバイダーとして追加します。あるいは、カスタムスキルからREST APIを呼び出し、すべてのツール出力と中間計画をプロジェクトに書き込むことで、コンパクションが具体的な内容を失うことがないようにします。

よくある質問

OpenClawはセッション間でタスクコンテキストを保持しますか?

OpenClawは、エージェントがMEMORY.mdおよび日付付きノートディレクトリに書き込んだものを保持します。明示的に保存されなかったタスクの途中の推論は、コンパクションで要約され、その後ほとんど失われます。

OpenClawに私の完全なタスクコンテキストを記憶させるにはどうすればよいですか?

コンパクションに依存するのではなく、各ステップで外部の記憶レイヤーにタスク状態を書き込みます。MemoryLakeは、ツールの出力と中間決定を構造化された記憶として保存し、エージェントが逐語的にクエリできるようにします。

なぜOpenClawはタスクの初めの具体的な内容を忘れるのですか?

コンパクションがタスクの途中の推論をMarkdownの要約に圧縮し、エージェントのキュレーションの判断が何が生き残るかを決定するためです。詳細が書かれたときに重要でないように見え、後で重要になることが判明した場合、元のものは失われます。

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

実際の制限は、モデルのコンテキストウィンドウに加え、MEMORY.mdおよび日付付きノートに収まるものです。ハイブリッド検索は関連する過去のノートを浮上させるのに役立ちますが、エージェントが保存しなかった詳細を回復することはできません。

OpenClawと他のエージェント間でタスクコンテキストを共有できますか?

ネイティブにはできません。各OpenClawインスタンスには独自のローカルファイルディレクトリがあります。MemoryLakeは、モデルに依存しないプロジェクトにタスクコンテキストを保存するため、同じ記憶がOpenClaw、Claude、Cursor、またはRESTまたはMCPを介して接続された任意のエージェントで機能します。