自律型AIエージェントの台頭は、ソフトウェアシステムに新たなパラダイム、つまり**永続的な機械認知(persistent machine cognition)**をもたらした。ステートレスに動作する従来型のチャットボットとは異なり、OpenClaw のような最新のエージェントフレームワークは、継続的でコンテキスト認識的なAIワークフローを可能にする。この能力の中心にあるのが、OpenClaw のメモリシステムであり、エージェントがセッションをまたいで知識を保存・取得・進化させることを可能にする。
永続メモリはAIアシスタントを、短命な会話ツールから、意思決定を記憶し、嗜好を学習し、時間の経過とともにプロジェクトレベルの知識を維持できるステートフルなシステムへと変貌させる。実務上、これは開発者がエージェントとやり取りするたびに、コンテキストを繰り返し説明したり、ワークフローを再初期化したりする必要がなくなることを意味する(まだ開始方法や OpenClaw の設定に迷っている場合は、こちらのCometAPI で OpenClaw を設定する5分チュートリアルを参照)。
しかし、このアーキテクチャの転換は複雑なエンジニアリング上の課題ももたらす。
- メモリはどのように保存・取得されるのか?
- 開発者はどのようにメモリの挙動を制御できるのか?
- 永続的なエージェントメモリにはどのようなセキュリティ上の影響があるのか?
- LLM のコンテキストウィンドウを圧迫せずにメモリをどのようにスケールさせられるのか?
本記事では、アーキテクチャ、ストレージモデル、検索パイプライン、制御メカニズム、セキュリティ検討事項を含む、OpenClaw のメモリシステムに関する詳細な技術的考察を提供する。
OpenClaw とは?
OpenClaw は、オープンソースの、workspace-first なパーソナルAIアシスタントで、ユーザー自身のデバイス上で実行する。WhatsApp、Telegram、Slack、Discord などのチャットプラットフォームに接続し、Gateway コントロールプレーンを公開し、そして—本記事にとって極めて重要な点として—「記憶」をワークスペースディレクトリ内のプレーンファイルとして保持する。この設計により、メモリは透明で直接制御可能となる。メモリはモデル内部の隠れたデータベースではなく、エージェントのワークスペース内のファイルこそがソース・オブ・トゥルースである。
ステートレス vs ステートフルなAIシステム
従来の会話型AIシステムはステートレスモードで動作する。各インタラクションは独立して処理され、プロンプトで明示的に提供されない限り、過去のセッションを認識しない。
これには次のような制約がある。
- セッション間でコンテキストがリセットされる
- ユーザーは情報を繰り返し伝える必要がある
- 長期学習ができない
- ワークフローが持続しない
OpenClaw は、エージェントのワークスペースに直接保存される永続メモリを導入することで、この制約に対処する。
言語モデルのコンテキストウィンドウのみに頼る代わりに、OpenClaw は構造化ファイルとして保存されたローカルメモリ層を維持し、エージェントがそれを読み書きできるようにする。
これにより次のことが可能になる。
- セッションをまたいだコンテキストの継続
- 長期的な知識の保存
- パーソナライズされたAIアシスタント
- 長期間にわたるワークフロー自動化
その結果、OpenClaw はAIアシスタントをステートレスな応答器から知識を保持するエージェントへと移行させる。
メモリアーキテクチャ — 重要な4つのレイヤー
OpenClaw のランタイムは情報をレイヤーに整理している。これらのレイヤーを理解することが、エージェントが何を記憶し、何にアクセスできるかを制御する鍵となる。
1) ワークスペースのブートストラップファイル — 最も耐久的な中核
SOUL.md、AGENTS.md、IDENTITY.md、TOOLS.md、MEMORY.md といったファイルはワークスペースのルートにあり、ブートストラップ素材として扱われる。これらはセッション開始時にディスクから再読み込みされ、最も耐久的なメモリである。トークン圧縮を生き残り、一過性のセッション履歴ではなくディスクから各プロンプト組み立てに再投入される。長期にわたる事実(ユーザーの嗜好、法的制約、プロジェクトの決定事項)にはこれらのファイルを使用する。
2) 日次/セッションファイル — 短期〜中期のコンテキスト
OpenClaw は会話のトランスクリプトを収集し、セッションファイル(例えば memory/ フォルダ配下の日次ノート)に保存する。これらは直近のコンテキストやセッション継続に役立つが、エージェントのコンテキストウィンドウが大きくなりすぎた場合には、剪定や圧縮が可能である。多くのユーザーはアドホックな事実を記録するために memory/2026-03-10.md のような日次ノートを活用している。
3) LLM コンテキストウィンドウ — 一時的だが決定的
各ターンのプロンプトは、ブートストラップファイル、直近のセッション履歴、そして取得されたメモリ結果の組み合わせから構築される。このプロンプト内コンテキストこそが、LLM が回答を生成する際に実際に「目にする」ものだ。これは一時的(トークン予算によって制限)であり、各ターンで再構築される。エージェントに一貫した行動をとらせたい場合は、本質的な指示を一過性のメッセージだけでなく、ブートストラップファイルに入れておくこと。
4) セマンティックインデックス / メモリプラグイン — 高速な検索
過去のノートから関連内容を見つけられるように、OpenClaw はメモリプラグイン(デフォルト: memory-core)を使用し、Markdown ファイルや任意の外部ベクターストア(sqlite-vec、LanceDB、QMD など)に対するセマンティック検索を提供する。インデックスはファイルとは独立している。ファイルがソース・オブ・トゥルースであり、インデックスは検索を高速化する。プラグインを切り替えることで、バックエンドの挙動(埋め込みプロバイダ、検索アルゴリズム、永続化)を変更できる。
OpenClaw のメモリはどう機能するのか?
Gateway ベースのエージェントアーキテクチャ
OpenClaw は、複数コンポーネント間の通信をオーケストレーションするゲートウェイ中心のアーキテクチャを採用している。
コアコンポーネント:
| Component | Function |
|---|---|
| Gateway | 通信を管理する中核プロセス |
| Brain | LLM の推論エンジン |
| Hands | 実行レイヤー(シェル、ファイルシステム、ブラウザ) |
| Memory | 永続的な知識ストア |
| Channels | メッセージングインターフェース |
| Skills | 拡張可能な自動化モジュール |
このアーキテクチャにおいて、メモリはエージェント知識の長期ストレージ層として機能する。
ファイルとしてのメモリ(正本)
OpenClaw は、エージェントのワークスペース内にあるプレーンな Markdown ファイルをメモリモデルの中心に据えている。エージェントはこれらのファイルに対して読み書きを行い、それらが永続的で人間が編集可能なストアとなる。LLM はディスクに書き込まれたものだけを「記憶」する—一時的なセッションコンテキストは別物だ。代表的なファイルと作法は次のとおり。
MEMORY.md— 精選された長期耐久メモリ項目(決定事項、ユーザープロファイルの事実、永続的な嗜好など)。memory/YYYY-MM-DD.md— 追記専用の日次ログ(短期/日次メモリとして使用)。USER.md、SOUL.md、AGENTS.md— エージェントの性格や挙動に影響するその他のワークスペースファイル。
これらのファイルはエージェントのワークスペース(デフォルトは~/.openclaw/workspace)内にあり、いつでも読み取り・編集できる。
2つのアクセス経路: ファイルバック + インデックスバック
プレーンファイルは大規模なセマンティック検索には非効率なため、OpenClaw は Markdown のソースにインデックス(ベクターストア + 任意の BM25 テキストインデックス)を組み合わせる。エージェント向けの**memory_search** ツールはインデックスを用い、対象を絞った読取りにはファイル/行範囲を直接読む memory_get を用いる。埋め込み(ベクター)+ BM25(キーワード)からなるハイブリッドなインデックス手法により、セマンティックな想起と厳密一致の堅牢性を両立できる。典型的なインデックスの保存先は、ローカルのベクター検索拡張が施された SQLite ファイル(例: ~/.openclaw/agents/<agentId>/index.sqlite)である。
memory_search(query, topK)— メタデータ(パス、行範囲、スコア)付きで一致スニペットのランキングリストを返す。回答前に関連メモリを「まず検索」させたい場合に使用する。memory_get(path, startLine, endLine)— Markdown ファイルの生のスライスを返す。メモリの所在がすでに分かっている場合に使用する。
これらは組み込みのエージェントツールであり、Skills やカスタムコードからも必要に応じて呼び出せる。
ライフサイクル: write, index, recall, flush, compact
OpenClaw は明示的なメモリライフサイクルを実装している。
- Write — メモリに値するイベントが発生したとき(明示的な要求、記録された決定、または自動メモリフラッシュ)に、エージェントが Markdown ファイルへ書き込む。
- Index — ファイルウォッチャーとバッチジョブが、新規/変更ファイルを増分でベクター + BM25 ストアへインデックス化する。
- Recall — セッション中にエージェントが
memory_search(セマンティック)またはmemory_get(ターゲット)を呼び出す。 - Memory flush(圧縮前) — セッションのコンテキストがモデルのウィンドウ制限に近づくと、圧縮前に保存すべき内容をディスクへ書き出すためのサイレントなエージェントターンをトリガーする(設定可能)。
- Compaction — アクティブなセッションを小さく保つために、コンテキストを圧縮または要約する。メモリファイルは耐久的なフォールバックとなる。
チャンク化と埋め込みパイプライン(技術詳細)
ファイルがインデックス化される際にはチャンク化される(一般的なヒューリスティクス: 約 ~300–500 トークン/チャンク、オーバーラップあり)。その後、各チャンクは選択したプロバイダ(OpenAI、Gemini、ローカルの GGUF 埋め込みなど)によって埋め込みに変換される。得られたベクトルは、ソースメタデータ(ファイルパス、開始/終了行、タイムスタンプ)とともに保存され、検索に用いられる。検索はクエリの埋め込みを計算し、ベクトル空間で最近傍探索を行い、必要に応じて BM25 スコアとリランカーを組み合わせる。このハイブリッドアプローチは、言い換えられた内容に対するセマンティックな想起を維持しつつ、事実指向の問い合わせに対する精度を高める。
具体策: メモリを制御する方法(コマンド、ファイル、設定)
以下に、OpenClaw のメモリを観察・変更・制御するために、運用者や開発者が用いるべき実践的な手順を示す。例は標準的なローカルインストールを想定し、デフォルトのワークスペースは ~/.openclaw/workspace とする(agents.defaults.workspace で上書き可能)。
生のメモリファイルの確認とバックアップ
メモリは Markdown である。ワークスペース全体、または最低限 MEMORY.md と memory/ フォルダをコピーしてバックアップする。
シェル例:
# show workspace location (recommended)openclaw config get agents.defaults.workspace# copy memory files to a timestamped backupcp -r ~/.openclaw/workspace ~/.openclaw/workspace-backup-$(date +%F-%H%M)# or only memory files:cp ~/.openclaw/workspace/MEMORY.md ~/backups/opencaw-MEMORY-$(date +%F).mdcp -r ~/.openclaw/workspace/memory ~/backups/opencaw-memory-$(date +%F)/
ドキュメントとコミュニティガイドでは、エクスポート/バックアップとして MEMORY.md と memory/ をコピーすることが明確に推奨されている。
MEMORY.md を編集 — 長期的な事実を記述する推奨方法
安定した嗜好や事実は MEMORY.md に記述する。このファイルはセッション開始時に読み込まれ、コンテキストへ直接注入される。
MEMORY.md の例スニペット:
# MEMORY.md## User preferences- timezone: Asia/Tokyo- prefers_brief_responses: true- default_calendar: personal@gmail.com## Projects- acme-internal: deploy target Cloudflare Workers, main repo: github.com/org/acme
編集後、新しいセッションでのファイル読み取りに再起動は不要。ただし、プラグインのインデックスに依存する場合は再インデックスが必要になることがある(後述)。
プログラムからメモリへ書き込む(Node.js 例)
メモリはファイルであるため、簡単なスクリプトでメモリ項目を追記・作成できる。これは外部システムがエージェントのワークスペースに事実を記録したい場合に有用である。
// append-memory.js (Node.js)import {writeFileSync, appendFileSync} from 'fs';import {homedir} from 'os';import path from 'path';const ws = path.join(homedir(), '.openclaw', 'workspace');const mdPath = path.join(ws, 'memory', `${new Date().toISOString().slice(0,10)}.md`);// ensure folder exists and append a factappendFileSync(mdPath, `\n- ${new Date().toISOString()}: Completed deployment for project X\n`);console.log(`Wrote to ${mdPath}`);
ヒント: 書き込み前にワークスペースのパスを確認するには openclaw config get agents.defaults.workspace を使用する。
再インデックスとプラグイン制御
メモリファイルを変更し、セマンティック検索に依存している場合は、再インデックス(またはプラグインの自動インデクサの完了待ち)が必要。
- 有効なプラグインを確認:
openclaw config get plugins.slots.memory - 再インデックス(プラグイン依存—多くのプラグインは
openclaw memory reindexのような CLI を提供するか、Gateway の再起動を要する)
メモリプラグインを無効化(ファイルのみの挙動を強制)する設定例:
// ~/.openclaw/openclaw.json (partial){ "plugins": { "slots": { "memory": "none" } }}
プラグイン設定を変更したら、Gateway を再起動して設定を反映させる。
openclaw gateway restart
ドキュメントと設定リファレンスでは、メモリプラグイン管理のコントロールとして plugins.slots.memory と plugins.installs が示されている。
メモリバックエンドの切替 — 例: LanceDB プラグインの追加
デフォルトのメモリバックエンドを、よりスケールするベクターストアに置き換えるコミュニティプラグインが存在する。広く使われるコミュニティプラグインのパターン例:
# from your workspace rootcd ~/.openclaw/workspacegit clone https://github.com/win4r/memory-lancedb-pro.git plugins/memory-lancedb-procd plugins/memory-lancedb-pronpm install# then update openclaw.json to activate the 'memory-lancedb-pro' plugin# and restart gateway:openclaw gateway restart
プラグインの README や作者は、plugins.load.paths での絶対パス指定や、埋め込み API キーの環境変数指定を推奨している。
CLI によるメモリ検索とトラブルシューティング
OpenClaw は openclaw memory のような CLI ヘルパーを公開しており、セマンティックインデックスの検索や管理に利用できる。プラグイン固有の問題にも注意(例: QMD バックエンドのユーザーが、再設定を要するインデックス/検索の不整合を報告している)。結果が欠落する場合は、再インデックスを実施し、プラグインのログを確認する。
ファイルとしてのメモリ(正本)
OpenClaw は、エージェントのワークスペース内にあるプレーンな Markdown ファイルをメモリモデルの中心に据えている。エージェントはこれらのファイルに対して読み書きを行い、それらが永続的で人間が編集可能なストアとなる。LLM はディスクに書き込まれたものだけを「記憶」する—一時的なセッションコンテキストは別物だ。代表的なファイルと作法は次のとおり。
MEMORY.md— 精選された長期耐久メモリ項目(決定事項、ユーザープロファイルの事実、永続的な嗜好など)。memory/YYYY-MM-DD.md— 追記専用の日次ログ(短期/日次メモリとして使用)。USER.md、SOUL.md、AGENTS.md— エージェントの性格や挙動に影響するその他のワークスペースファイル。
これらのファイルはエージェントのワークスペース(デフォルトは~/.openclaw/workspace)内にあり、いつでも読み取り・編集できる。
結論
OpenClaw のメモリシステムは、AI アーキテクチャにおける根本的な変化を体現している。
一過性の会話ではなく、プラットフォームは開発者が制御可能な永続メモリ層を導入し、AI エージェントが時間の経過とともに知識を蓄積できるようにする。
その設計が重視するのは次の点である。
- ファイルベースストレージによる透明性
- 埋め込みベースの検索によるスケーラビリティ
- 設定による開発者コントロール
- プラグインによる拡張性
ただし、永続メモリは新たなエンジニアリングおよびセキュリティ上の課題ももたらすため、開発者は慎重に管理しなければならない。
自律型エージェントがより強力になり広く展開されるにつれ、OpenClaw のようなメモリシステムは、次世代の知的ソフトウェアシステムの中核コンポーネントになるだろう。
CometAPI は現在 openclaw と統合されている。Claude、Gemini、GPT-5 Series をサポートする API を探しているなら、CometAPI は openclaw を使う最良の選択であり、その API 価格は継続的にディスカウントされている。OpenClaw は最近 GPT-5.4 との互換性を更新し、ワークフローを最適化した。今では CometAPI の GPT-5.4 経由で OpenClaw を構成することもできる。
Ready to Go?→ 今すぐ OpenClaw にサインアップ !
