📚 この記事は「OpenClaw 完全攻略シリーズ」の Episode 8 です。
AIアシスタントの最大の弱点は記憶の不連続性です。セッションが終われば、それまでの会話・決定・コンテキストはすべて消えてしまいます。
OpenClawはこの問題をファイルファースト哲学で解決しています。メモリをMarkdownファイルとして永続化し、セッション横断で一貫した知識を維持する仕組みです。
本記事では、OpenClawのメモリシステムの全体像から、実践的な運用テクニックまでを詳しく解説します。
OpenClawのメモリシステム概要

ファイルファースト哲学 — Markdownが記憶の源泉
OpenClawのメモリ管理は、一般的なAIプロダクトとは根本的に異なります。
多くのAIサービスでは、メモリはベクトルデータベースに保存され、ユーザーからは不透明な存在です。何が記憶されているかを確認・編集するのは困難です。
OpenClawでは、メモリはプレーンテキストのMarkdownファイルとして保存されます。
| 特徴 | 一般的なAI | OpenClaw |
|---|---|---|
| 保存形式 | ベクトルDB | Markdownファイル |
| 可視性 | ブラックボックス | 完全に透明 |
| 編集 | API経由 | テキストエディタで直接 |
| バックアップ | プロバイダ依存 | Git管理可能 |
| 移植性 | ベンダーロック | 汎用テキスト |
この設計により、ユーザーは自分のAIが何を知っているかを完全にコントロールできます。
2層構造(日次ログ+キュレーションメモリ)
OpenClawのメモリは2層構造で管理されます。
- 日次ログ (
memory/YYYY-MM-DD.md) — その日に起きたことの生ログ - キュレーションメモリ (
MEMORY.md) — 日次ログから抽出した重要情報
人間の記憶に例えると、日次ログは「日記」、MEMORY.mdは「長期記憶」に相当します。
MEMORY.mdの効果的な運用法
何を書くべきか — 判断基準
MEMORY.mdに書くべき情報と、書くべきでない情報の基準です。
✅ 書くべき情報:
- 重要な意思決定とその理由
- ユーザーの好み・スタイル
- プロジェクトの背景・コンテキスト
- 繰り返し使う情報(APIキーの場所、設定値など)
- 学んだ教訓やベストプラクティス
❌ 書くべきでない情報:
- 一時的なタスクの進捗(日次ログに記録)
- 生のAPIレスポンスやログ
- 機密情報(パスワード、トークン)
- 容易に検索できる一般知識
セキュリティ考慮(メインセッション限定ロード)
MEMORY.mdには個人的な情報が含まれるため、OpenClawはセキュリティ面でも配慮しています。
# AGENTS.mdの設定例
## Memory
- **If in MAIN SESSION**: Also read `MEMORY.md`
- **If in shared contexts** (Discord, group chats): Do NOT load MEMORY.md
この設定により、グループチャットやDiscordサーバーでMEMORY.mdの内容が漏洩するリスクを防ぎます。SES案件で複数のチャンネルを使い分ける場合に特に重要です。
日次ログ(memory/YYYY-MM-DD.md)の管理
自動生成とアペンド運用
日次ログは、セッション中の重要なイベントをAGENTが自動的に記録するファイルです。
# 2026-03-03
## タスク
- [ ] ブログ記事7本の公開
- [x] GA4レポートの確認
## 決定事項
- 記事のdescriptionは40-53文字(日本語)を目安にする
- OG画像はgen-og-images.mjsで自動生成
## メモ
- validate-article.shのdescription長チェックはbashのバイト数カウントに基づく
定期的な棚卸しとMEMORY.mdへの昇格
日次ログは時間とともに蓄積されます。定期的に(週1回程度)棚卸しを行い、重要な情報をMEMORY.mdに昇格させましょう。
棚卸しの手順:
- 過去1週間の日次ログを読み返す
- 繰り返し出現するパターンや学びを抽出
- MEMORY.mdに追記
- 古い日次ログは削除せず保持(検索用)
コンテキストウィンドウ管理テクニック
Pre-Compaction Memory Flush
AIのコンテキストウィンドウには上限があります。長いセッションでは、重要な情報が圧縮(コンパクション)により失われるリスクがあります。
Pre-Compaction Memory Flushとは、コンパクションが発生する前に重要情報をファイルに退避するテクニックです。
# AGENTS.mdの設定例
## Pre-Compaction
セッションが長くなったら、以下の情報を memory/YYYY-MM-DD.md に書き出してください:
- 現在のタスクの進捗状況
- 未完了の作業リスト
- 重要な中間結果
Head/Tail保存とステージド要約
コンテキストウィンドウの管理戦略として、以下のアプローチが有効です。
- Head保存 — セッション開始時の指示・コンテキストを常に保持
- Tail保存 — 直近の会話のみを詳細に保持
- 中間部の要約 — 中間の会話は要約に圧縮
OpenClawでは、AGENTS.mdやSOUL.mdが「Head」として常にコンテキストに含まれるため、AIの基本的な振る舞いは一貫して維持されます。
コンテキストウィンドウガード
コンテキストの使用量を監視し、閾値を超えたら自動的にメモリフラッシュを実行する仕組みです。
# HEARTBEAT.mdの設定例
## コンテキスト管理
- セッション長が20ターンを超えたら中間結果をファイルに書き出す
- 重要な決定事項は即座にmemory/に記録する
ハイブリッド検索の設定と活用
ベクトル検索+キーワード検索
OpenClawのメモリ検索は、ベクトル検索(意味的類似性)とキーワード検索(完全一致)を組み合わせたハイブリッド検索です。
例えば「GA4のレポート設定」を検索すると:
- ベクトル検索 — 「アナリティクスの設定」「アクセス解析」なども候補に
- キーワード検索 — 「GA4」を含むファイルを正確にマッチ
この組み合わせにより、表現のゆれに対応しつつ、正確な情報も取得できます。
用途別のウェイト調整
OpenClawの設定で、ベクトル検索とキーワード検索のウェイトを調整できます。
- 技術文書が多い場合 — キーワード検索のウェイトを高く(コマンド名や設定値の正確な検索)
- ナラティブな記録が多い場合 — ベクトル検索のウェイトを高く(文脈の理解)
メモリのバックアップとバージョン管理
OpenClawのメモリファイルはプレーンテキストのため、Gitで簡単にバージョン管理できます。
# ワークスペースのメモリをGit管理
cd ~/.openclaw/workspace
git init
git add MEMORY.md memory/
git commit -m "memory: daily backup $(date +%Y-%m-%d)"
自動バックアップ(cron設定例):
# 毎日23:00にメモリをコミット
0 23 * * * cd ~/.openclaw/workspace && git add -A && git commit -m "auto: daily memory backup" && git push
SES案件の切り替え時にも、ワークスペースごとメモリを保存・復元できるため、案件間の知識移転がスムーズです。
まとめ
OpenClawのメモリ管理は、ファイルファースト哲学に基づく透明で制御可能な仕組みです。
- 2層構造(日次ログ + MEMORY.md)で短期記憶と長期記憶を分離
- MEMORY.mdには重要な決定・好み・教訓を記録し、機密情報は含めない
- Pre-Compaction Memory Flushでコンテキスト圧縮による情報損失を防ぐ
- ハイブリッド検索で意味的検索とキーワード検索を組み合わせ
- Gitによるバージョン管理でバックアップと案件間の知識移転を実現
メモリ管理を適切に運用すれば、OpenClawはセッションを跨いで一貫した知識を持つ真のAIパートナーになります。
OpenClaw 完全攻略シリーズの他の記事もチェック:
- OpenClaw入門ガイド — 基本的な使い方
- OpenClawスキル開発 — カスタムスキルの作り方
- OpenClawマルチエージェント設計 — 複数エージェントの運用
- OpenClawエラーハンドリング — トラブルシューティング