~/.openclaw/workspace)に
プレーンな Markdown ファイルを書き込むことで情報を記憶します。モデルが記憶するのは
ディスクに保存された内容だけであり、隠し状態はありません。
仕組み
エージェントには、メモリに関連するファイルが 3 つあります。MEMORY.md— 長期メモリ。永続的な事実、設定、決定事項。 セッション開始時に読み込まれます。memory/YYYY-MM-DD.md(またはmemory/YYYY-MM-DD-<slug>.md)— 日次メモ。 進行中のコンテキストと所見。プレーンな/newまたは/resetでは、今日と昨日の日付付きメモが自動的に読み込まれます。 バンドルされたセッションメモリフックによって書き込まれるものなど、スラッグ付きの バリエーションも、日付のみのファイルと併せて読み込まれます。DREAMS.md(任意)— 人間によるレビュー用の Dream Diary と Dreaming スイープの要約。根拠に基づく過去データのバックフィルエントリも含まれます。
何をどこに保存するか
MEMORY.md は、簡潔に整理されたレイヤーです。永続的な事実、設定、継続的な
決定事項、およびセッション開始時に利用できるべき短い要約を保存します。生の
トランスクリプト、日次ログ、網羅的なアーカイブではありません。
memory/YYYY-MM-DD.md ファイルは作業用レイヤーです。詳細な日次メモ、所見、
セッションの要約、後で役立つ可能性のある生のコンテキストを保存します。これらは
memory_search と memory_get 用にインデックス化されますが、毎ターンの
ブートストラッププロンプトには挿入されません。
時間の経過とともに、エージェントは日次メモから有用な情報を抽出して
MEMORY.md にまとめ、古くなった長期エントリを削除します。生成された
ワークスペース指示と Heartbeat フローがこれを定期的に実行するため、詳細を
記録するたびに MEMORY.md を手動で編集する必要はありません。
MEMORY.md がブートストラップファイルの予算を超えて増大した場合、
OpenClaw はディスク上のファイルをそのまま維持しますが、コンテキストに挿入する
コピーを切り詰めます。これは、詳細な情報を memory/*.md に移し、
MEMORY.md には永続的な要約だけを残すか、より多くのプロンプト予算を
使用する場合はブートストラップの上限を引き上げる必要があるという合図です。
/context list、/context detail、または openclaw doctor を使用すると、
生データと挿入データのサイズ、および切り詰め状態を確認できます。
コーディングアシスタントからのインポート
Control UI では、Codex と Claude Code の既存のローカルメモリをインポートできます。 Settings → Import Memory を開き、インポート先のエージェントを選択して、 検出されたファイルを確認し、インポートを確定します。OpenClaw がコピーするのは Markdown メモリだけです。- Codex:
~/.codex/memories(またはCODEX_HOME/memories)配下の 統合されたMEMORY.mdファイルとmemory_summary.mdファイル。生の ロールアウトファイルとトランスクリプトファイルはインポートされません。 - Claude Code:
~/.claude/projects/*/memory配下にある各プロジェクトの 自動メモリディレクトリ内の Markdown ファイルと、存在する場合はユーザーが設定したautoMemoryDirectory。プロジェクトの指示、セッション、設定、認証情報は、この メモリのみを対象とする操作には含まれません。
memory/imports/codex/ と memory/imports/claude-code/ に分けて保存されます。これらは
memory_search 用にインデックス化され、memory_get から利用できますが、
エージェントのブートストラップ MEMORY.md には統合されません。ソース
ファイルは変更されません。
プレビューにはインポート先の競合が表示されます。Replace existing imports を
有効にすると、それらのファイルが置き換えられます。適用時には検証済みの
インポート前バックアップが作成され、上書きされたファイルの項目単位のコピーが
移行レポートに保持されます。
アクションに影響するメモリ
ほとんどのメモリは通常の Markdown メモです。一部のメモリは、後でエージェントが 何を行うべきかに影響します。そのようなメモでは、事実だけでなく、そのメモに 基づいて行動しても安全なタイミングも記録してください。 次の事項に関するメモでは、アクションの境界を記録します。- 承認または許可の要件、
- 一時的な制約、
- 別のセッション、スレッド、または担当者への引き継ぎ、
- 有効期限の条件、
- 行動しても安全なタイミング、
- 情報源または所有者の権限、
- 実行したくなる操作を避けるための指示。
- 今後の動作を変えるもの、
- 適用される時期または条件、
- 期限が切れる時期、または行動を可能にする条件、
- エージェントが避けるべき操作、
- 信頼性や権限に影響する場合は、情報源または所有者。
廃止された推論コミットメント
将来のフォローアップの中には、永続的な事実ではないものもあります。明日の面接に 言及した場合、有用なメモリは「これをMEMORY.md に永久に保存する」ではなく、
「面接後に状況を確認する」かもしれません。
推論コミットメントの実験は廃止されました。OpenClaw は、これらのフォローアップを
抽出したり配信したりしなくなりました。将来のアクションには
スケジュールされたタスクを使用してください。既存の保存済み
行を調査または破棄するために、従来の openclaw commitments コマンドは引き続き利用できます。
メモリツール
エージェントには、メモリを操作するためのツールが 2 つあります。memory_search— 元の表現と異なる場合でも、セマンティック検索を 使用して関連するメモを検索します。memory_get— 特定のメモリファイルまたは行範囲を読み取ります。
memory-core)によって
提供されます。
メモリ検索
埋め込みプロバイダーが設定されている場合、memory_search はハイブリッド検索を
使用します。ベクトル類似度(意味的な類似性)とキーワード照合(ID やコードシンボル
などの完全一致語)を組み合わせます。サポートされている任意のプロバイダーの API キーが
あれば、すぐに利用できます。
OpenClaw はデフォルトで OpenAI の埋め込みを使用します。Gemini、Voyage、
Mistral、Bedrock、DeepInfra、ローカル GGUF、Ollama、LM Studio、GitHub Copilot、
または汎用の OpenAI 互換エンドポイントを使用するには、
memory.search.provider を
明示的に設定してください。メモリバックエンド
組み込み(デフォルト)
SQLite ベースです。キーワード検索、ベクトル類似度、ハイブリッド検索をすぐに
利用できます。追加の依存関係はありません。
QMD
ローカル優先のサイドカーで、再ランキング、クエリ拡張、ワークスペース外の
ディレクトリをインデックス化する機能を備えています。
Honcho
ユーザーモデリング、セマンティック検索、マルチエージェント認識を備えた、
AI ネイティブのセッション横断メモリです。Plugin のインストールが必要です。
LanceDB
OpenAI 互換の埋め込み、自動想起、自動取得、ローカル Ollama 埋め込みのサポートを
備えた、LanceDB ベースのメモリです。Plugin のインストールが必要です。
ナレッジ Wiki レイヤー
永続的なメモリを生のメモではなく、保守されたナレッジベースのように動作させたい場合は、 バンドルされたmemory-wiki Plugin を使用してください。決定論的なページ構造、
構造化された主張と証拠、矛盾と鮮度の追跡、生成されたダッシュボード、コンパイル済みの
ダイジェスト、Wiki ネイティブツール(wiki_status、
wiki_search、wiki_get、wiki_apply、
wiki_lint)を備えた Wiki Vault に、永続的な知識をコンパイルします。
memory-wiki はアクティブなメモリ Plugin を置き換えるものではありません。
想起、昇格、Dreaming は引き続きアクティブなメモリ Plugin が担います。
memory-wiki は、その隣に来歴情報を豊富に含むナレッジレイヤーを追加します。
メモリ Wiki
永続的なメモリを、主張、ダッシュボード、ブリッジモード、Obsidian に適した
ワークフローを備える、来歴情報が豊富な Wiki Vault にコンパイルします。
メモリの自動フラッシュ
Compactionによって会話が要約される前に、OpenClaw は 重要なコンテキストをメモリファイルに保存するようエージェントに促すサイレントターンを 実行します。これはデフォルトで有効です。無効にするにはagents.defaults.compaction.memoryFlush.enabled: false を設定します。
この整理用ターンをローカルモデルで実行するには、メモリフラッシュターンだけに
適用される正確なオーバーライドを設定します(アクティブなセッションのモデル
フォールバックチェーンは継承されません)。
Dreaming
Dreaming は、メモリ用の任意のバックグラウンド統合処理です。短期的な想起シグナルを 収集し、候補をスコアリングして、条件を満たす項目だけを長期メモリ (MEMORY.md)に昇格させます。
- オプトイン:デフォルトでは無効です。
- スケジュール実行:有効にすると、
memory-coreが完全な Dreaming スイープ用の定期 Cron ジョブを 1 つ自動管理します。 - しきい値あり:昇格には、スコア、想起頻度、クエリ多様性の ゲートを通過する必要があります。
- レビュー可能:フェーズの要約と日記エントリが、人間による
レビュー用に
DREAMS.mdに書き込まれます。
根拠に基づくバックフィルとライブ昇格
Dreaming システムには、関連する 2 つのレビューレーンがあります。- ライブ Dreaming は、
memory/.dreams/配下の短期 Dreaming ストアを使用します。通常のディープフェーズでは、これに基づいてMEMORY.mdへ昇格させる内容を決定します。 - 根拠に基づくバックフィル は、過去の
memory/YYYY-MM-DD.mdメモを独立した日次ファイルとして読み取り、構造化されたレビュー出力をDREAMS.mdに書き込みます。
MEMORY.md を手動で編集せずに
古いメモを再生し、システムが永続的と判断する内容を確認できます。
--stage-short-term フラグは、根拠に基づく永続的な候補を、通常のディープフェーズが
すでに使用しているものと同じ短期 Dreaming ストアにステージングします。候補を直接
昇格させることはありません。したがって、次のようになります。
DREAMS.mdは、人間向けのレビュー画面のままです。- 短期ストアは、機械向けのランキング画面のままです。
MEMORY.mdは、引き続きディープ昇格によってのみ書き込まれます。
CLI
関連情報
- メモリ検索: 検索パイプライン、プロバイダー、チューニング。
- 組み込みメモリエンジン: デフォルトの SQLite バックエンド。
- QMD メモリエンジン: 高度なローカルファーストのサイドカー。
- Honcho メモリ: AI ネイティブなセッション横断メモリ。
- Memory LanceDB: OpenAI 互換の埋め込みを使用する LanceDB バックエンドの Plugin。
- Memory Wiki: コンパイルされたナレッジ保管庫と Wiki ネイティブのツール。
- Dreaming: 短期的な想起から長期記憶へのバックグラウンド昇格。
- メモリ設定リファレンス: すべての設定項目。
- Compaction: Compaction とメモリの相互作用。
- Active Memory: 対話型チャットセッション向けのサブエージェントメモリ。