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

なぜOpenClawはツール履歴を忘れるのか?

あなたはOpenClawがタスクを処理する様子を見ています。検索ツールを呼び出し、ファイルを開き、スクリプトを実行します。20ターン後、圧縮が発生し、会話が要約されます。その後、エージェントは同じクエリで同じ検索ツールを呼び出し、同じファイルを開き、類似のスクリプトを実行します。なぜなら、元のツール呼び出しは、チェックできる構造化された記録ではなく、1行の要約になっているからです。

これがツール履歴の忘却問題であり、クリーンな修正があります。

短い答え

OpenClawは、過去のツール呼び出しが会話のトランスクリプトに存在し、圧縮時にMarkdownの要約に変わるため、ツール履歴を忘れます。各呼び出しの構造が失われます。エージェントは「これらの引数でこのツールをすでに呼び出したか?」と信頼性を持って尋ねることができません。持続的な記憶レイヤーは、すべての呼び出し、その引数、およびその結果の構造化された台帳を保持します。

なぜOpenClawはツール履歴を忘れるのか

OpenClawは、記憶ドキュメントに従って、プレーンなMarkdownファイルに記憶を保存し、モデルはディスクに保存されたものだけを記憶します。ツール呼び出しは会話を通じて流れ、専用の台帳を通じて流れません。3つの要因が損失を引き起こします。

1. ツール呼び出しは会話のトランスクリプトに存在します。 各呼び出しとその観察は、セッションの間、モデルのコンテキストウィンドウに存在します。新しいステップが入ると、古い呼び出しは圧縮時に要約されるか、ウィンドウから押し出されます。「検索ツールに渡した正確な引数セット」のような具体的な情報は、「以前にいくつかの検索を実行した」というような文章に変わります。

2. 圧縮要約は呼び出しの構造を失います。 圧縮が発生すると、エージェントは重要な状態を記憶ファイルにフラッシュします。良い要約は、ツールが行ったことの要点を捉えますが、「ツール、引数、結果、タイムスタンプ」のタプルのクエリ可能なリストを保持しません。

3. 記憶検索は呼び出しシグネチャではなく意味で再呼び出しします。 ベクトル類似性とキーワードマッチングを組み合わせたハイブリッド検索は、埋め込みプロバイダーが設定されている場合に過去のノートを引き出します。これは物語の取得のために構築されており、「これらの正確な引数でこのエンドポイントに対してすべての呼び出しを表示してください」とは異なります。

その結果、エージェントはすでに実行したツールを再実行し、同じ呼び出しに対して二重に支払い、時には微妙に異なる結果を得ることになります。

OpenClawがツール履歴を忘れると何を失うのか

ツール履歴の損失は、すべての長いタスクでコストを静かに膨らませる失敗モードです:

  • 重複呼び出しと重複支出。 すべての再呼び出しは、モデル推論とツール呼び出しの両方に対して支払われます。レート制限のあるAPIでは、タスクの要求よりも早く予算を消費します。
  • 不一致の観察。 圧縮をまたいで同じエンドポイントを2回呼び出すと、基になるデータが変更されている可能性があります。エージェントは、同じ事実の2つのバージョンを認識せずに推論します。
  • 自律ループの監査証跡がない。 長い実行が失敗した場合、どのツールがどの順序でどの引数で発火したかを正確に再構築することはできません。トランスクリプトには、詳細な最後の数ターンが保持されていますが、それ以外は要約です。

Mem0のAIエージェント記憶の状態2026レポートは、生産制約を明確に説明しています:エージェントは30から100のツールステップの後にスレッドを失い、ツール呼び出しの重複排除が最初に失敗します。

OpenClawの組み込みワークアラウンド

OpenClawは、役立ついくつかの機能を提供していますが、ツール呼び出しの再呼び出しを完全に解決するものではありません。

圧縮前の保存ターン。 圧縮が会話を要約する前に、OpenClawはエージェントに重要なコンテキストを記憶ファイルに保存するように思い出させるサイレントターンを実行します。物語の状態に役立ちます。構造化された呼び出し台帳を生成するためには設計されていません。

ハイブリッド検索による記憶検索。 OpenAI、Gemini、Voyage、またはMistralのような埋め込みプロバイダーを設定すると、エージェントは過去のノートを類似性と正確なキーワードで検索できます。「これに似たものを見たことがありますか?」には強いですが、「これらの引数でこのツールを呼び出したことがありますか?」には弱いです。

スキル記憶。 エージェントが学習した再利用可能な手順はスキルとして保存され、呼び出すことができます。これは「Xをどうやって行うか」に対処し、「何をしたか」ではありません。この2つは関連していますが、同じではありません。

これらの機能により、OpenClawは透明で人間が編集可能になります。それでも、エージェントはすでに行ったことを知るために文章の要約に依存しています。

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

より深い問題は、Markdownが物語のための優れたストレージ形式であり、構造化されたイベントストリームのための貧弱なストレージ形式であることです。ツール呼び出しはイベントであり、引数、タイムスタンプ、結果を持っています。これらは段落ではなく行として存在するべきです。

構造化されたツール台帳がないと、OpenClawのエージェントは「繰り返さないでください」と指示されることがありますが、そのルールを強制することはできません。なぜなら、チェックに必要なデータの形が欠けているからです。

MemoryLakeがOpenClawのツール履歴忘却を修正する方法

MemoryLakeは、OpenClawのMarkdownファイルに加えて構造化されたイベントストアを追加します。すべてのツール呼び出しはクエリ可能な記録になります。

  • 構造化されたツール台帳。 各ツール呼び出し、その引数、完全な出力、およびタイムスタンプは、プロジェクト内の事実記憶として保存されます。エージェントは「今日はこれらの引数でこのツールをすでに呼び出したか?」と尋ねることができ、重複を正確にスキップできます。
  • 完全な忠実度の観察ストレージ。 生のツール出力は元の忠実度で保持され、要約されません。プランナーが10ターン前の呼び出しから正確な結果を必要とする場合、要約ではなく完全なテキストを引き出します。
  • エージェント間の共有台帳。 関連するタスクに取り組む2つのOpenClawエージェントは、同じツール台帳を読み取ります。1つのエージェントは他のエージェントの呼び出しから学びます。同じストアは、REST、MCP、またはPython SDKを介して接続された任意のエージェントで機能します。

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

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

  1. プロジェクトを作成し、コンテキストをロードします。 MemoryLakeにサインインし、プロジェクト管理を開き、「プロジェクトを作成」をクリックして「OpenClaw — ツール台帳」と名付けます。参照ドキュメント(API仕様、許可リスト、以前のMEMORY.mdエクスポート)をドキュメントドライブを通じてアップロードします。記憶タブを使用して、エージェントが従う必要のあるツール使用ポリシーを設定します。
  2. MCPサーバーエンドポイントを生成します。 プロジェクト内のMCPサーバータブを開き、「MCPサーバーを追加」をクリックし、「OpenClawツール」と名付けて「生成」をクリックします。MemoryLakeはAPIキーID、シークレット、およびエンドポイントURLを返します。シークレットは一度だけ表示されるので、すぐにコピーしてください。
  3. OpenClawを接続します。 エンドポイントURLとBearerトークンを使用して、OpenClawのツールまたはサーバー設定にMemoryLakeをMCP互換の記憶プロバイダーとして追加します。あるいは、カスタムスキルからREST APIを呼び出して、すべてのツール呼び出しをログに記録し、新しい呼び出しを実行する前に台帳をクエリします。

よくある質問

OpenClawはツール呼び出し履歴を保持していますか?

OpenClawはツール呼び出しを会話のトランスクリプト内に保持しており、これはモデルのコンテキストウィンドウによって制限され、圧縮時に要約されます。長いセッションの初期の呼び出しは、構造化された台帳ではなく、文章としてのみ生き残ります。

OpenClawにどのツールをすでに呼び出したかを記憶させるにはどうすればよいですか?

すべてのツール呼び出しを外部の記憶ストアにログし、新しい呼び出しの前にそのストアをクエリします。MemoryLakeは、引数とタイムスタンプを持つ事実記憶を公開しているため、重複排除が正確です。

なぜOpenClawは1つのタスクで同じツールを2回呼び出すのですか?

プランナーが次のステップを選択する頃には、以前の呼び出しが要約されるか、アクティブなコンテキストから押し出されているためです。構造化された台帳がないと、エージェントはすでに実行したことを確認できません。

OpenClawのツール履歴を監査のためにエクスポートできますか?

ライブトランスクリプトとMarkdownノートを超えて、直接はできません。MemoryLakeは、エクスポート、監査、またはコンプライアンスレビューのために再生できる構造化された事実記憶としてツール履歴を保存します。

OpenClawのツール呼び出しに対する記憶制限は何ですか?

保存されたノートに固定の上限はありませんが、実際の再呼び出しはハイブリッド検索が引き出すものと、ロードされたプロンプトに収まるものによって制限されます。MemoryLakeは、数十億のトークンにスケールする取得でその上限を取り除きます。