OpenClaw v2026.3.7 ContextEngine完全ガイド:アップグレードからカスタムプラグイン開発まで
OpenClawのAgentが会話の途中で突然「記憶喪失」になり、5分前に話した内容を忘れてしまう。これはたまに起こるバグではなく、長時間会話のコンテキスト管理における根本的な問題です。v2026.3.7で導入されたContextEngineのプラグイン対応アーキテクチャにより、コンテキストの圧縮方法と組み立て方法を初めて自分でコントロールできるようになりました。本記事では、アップグレードから設定、初めてのカスタムプラグイン開発まで、ClawJackedセキュリティ脆弱性の修正も含めて解説します。
TL;DR
- ContextEngineはv2026.3.7最大の目玉機能:プラグイン対応のコンテキスト管理アーキテクチャ、7つのライフサイクルHooksを提供
- プラグイン未インストール=動作変更ゼロ、完全な後方互換性。安心してアップグレード可能
- lossless-clawは現時点で最も成熟したContextEngineプラグイン。DAGベースのロスレスコンテキスト圧縮を実現
- ClawJackedセキュリティ脆弱性は旧バージョンに影響。v2026.3.7へのアップグレードで修正
- GPT-5.4およびGemini Flash 3.1モデルサポートを追加
ContextEngineが解決する問題
OpenClawで長時間タスクを実行した経験があれば、こんな場面に遭遇したことがあるはずです。30分時点のAgentの返答が、5分時点の議論のポイントを完全に無視している。モデルが悪いのではなく、コンテキスト圧縮メカニズムが原因です。
旧バージョンのOpenClawのcontext compactionはハードコードされた「非可逆圧縮」でした。会話がトークン上限に達すると、システムは古いメッセージを直接破棄するか大雑把に要約し、重要な会話の詳細や時系列が失われていました。さらに厄介なことに、この圧縮ロジックはコアコードに組み込まれており、開発者がカスタマイズする手段がありませんでした。
実際に使ってみると、2つの具体的な問題が発生します:
- Agentドリフト:長時間実行後、Agentが現在のメッセージではなく前のメッセージに応答し始め、会話が完全にずれる
- メモリブラックホール:リセット後にcontextが消失し、historyが切り詰められ、これまでの作業成果が消える
ContextEngineの設計思想はシンプルです。コンテキスト管理の決定権をコアコードから開発者に移す。プラグイン対応のインターフェースを通じて、独自の圧縮戦略や組み立てロジックを登録したり、デフォルトの動作を完全に置き換えることができます。
ContextEngineのアーキテクチャとライフサイクル
ContextEngineはスロットベースのレジストリ+設定駆動の解決アーキテクチャを採用しています。簡単に言えば、設定ファイルで使用するプラグインを指定すると、システムが自動的にコンテキスト管理作業を委任します。
コアとなるのは7つのライフサイクルHooksで、コンテキストの作成から破棄までの全プロセスをカバーします:
| Hook | トリガータイミング | 用途 |
|---|---|---|
bootstrap | エンジン初期化時 | 永続化状態のロード、DB接続の確立 |
ingest | 新メッセージ到着時 | 前処理、分類、重要度のフラグ付け |
assemble | プロンプト組み立て前 | 最終プロンプトに何を含めるか決定 |
compact | トークン上限接近時 | 古い会話の圧縮または要約 |
afterTurn | 各会話ターン終了後 | 後処理、統計更新、一時データのクリーンアップ |
prepareSubagentSpawn | サブエージェント起動前 | サブエージェント用の隔離されたcontextスコープを準備 |
onSubagentEnded | サブエージェント完了後 | サブエージェントの出力を回収、メインcontextにマージ |
実務的なアドバイス:ほとんどのユースケースでは、最初の4つのコアHooks(bootstrap、ingest、assemble、compact)の実装だけで十分です。サブエージェント関連の2つのHooksは、隔離されたメモリブロックを構築する必要がある場合にのみ使用し、AsyncLocalStorageによるスコープ付きサブエージェントランタイムで実現されています。
プラグイン未インストールの場合、システムは自動的にLegacyContextEngineラッパーをロードし、旧バージョンの全動作を維持して、動作変更ゼロを保証します。
アップグレードとContextEngine有効化の実践手順
全体のプロセスは約5分です。v2026.2.26より前のバージョンを使用中であれば、今回のアップグレードでClawJackedセキュリティ脆弱性も同時に修正されます。アップグレードしない理由はありません。
Step 1:設定ファイルのバックアップ
cp -r ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak
cp -r ~/.openclaw/credentials/ ~/.openclaw/credentials.bak/
Step 2:アップグレードの実行
CLIの内蔵コマンドを推奨:
openclaw update
特定バージョンを指定する場合:
openclaw update --tag 2026.3.7
npmでも可能:
npm i -g openclaw@2026.3.7
Step 3:ヘルスチェック
openclaw doctor # マイグレーションと修復を自動実行
openclaw health # サービスの正常動作を確認
Breaking Changeに注意:
gateway.auth.tokenとgateway.auth.passwordの両方を設定している場合、アップグレード前に設定ファイルでgateway.auth.modeをtokenまたはpasswordに明示的に設定する必要があります。設定しないと起動に失敗します。
Step 4:ContextEngineプラグインのインストール
openclaw plugins install lossless-claw
インストーラーが自動的に設定ファイルのplugins.slots.contextEngineを"lossless-claw"に設定します。
Step 5:再起動と検証
openclaw gateway restart
再起動後、lossless-clawがバックグラウンドで自動的に動作します。プラグインを使うかまだ決めていない場合は、Step 4をスキップしてください。システムは旧バージョンと完全に同じ動作をします。
カスタムプラグイン開発とlossless-clawの実践
lossless-clawの仕組み
lossless-clawは現時点で最も成熟したContextEngineプラグインで、Martian Engineeringによって開発されています。コアコンセプトは、DAG(有向非巡回グラフ)ツリー構造を使ってバックグラウンドで古いメッセージを継続的に要約しながら、すべての元メッセージをSQLiteデータベースに保持することです。
AIエージェントが詳細を振り返る必要があるとき、要約を元の会話に積極的に「展開」できます。プロジェクトドキュメントによると、有効化後はContextが3万〜10万トークンの安全範囲内で安定し、記憶喪失の問題がなくなります。
必要環境:Node.js 22+、設定済みのLLMプロバイダー(OpenAI、Anthropicなど)。
パフォーマンスチューニング
lossless-clawはいくつかの重要な環境変数を提供しています:
# contextが75%に達した時点で早期に圧縮をトリガー(デフォルト100%)
LCM_CONTEXT_THRESHOLD=0.75
# 圧縮用モデルの指定(デフォルトはメインシステムの設定を継承)
LCM_SUMMARY_MODEL=openai/gpt-5.4
# プロバイダーの指定
LCM_SUMMARY_PROVIDER=openai
実際に使ってみると、thresholdを0.75に下げることで、AI応答生成のための余裕を確保し、圧縮過程での情報損失を減らすことができます。
lossless-clawからカスタムプラグインを学ぶ
独自のContextEngineプラグインを書いてみたいですか?lossless-clawのソースコードとGitHub Discussion #22251から始めるのが最短ルートです。
主な手順:
- プラグインタイプの宣言:プラグイン設定に
kind: "context-engine"を追加 - Hooksの実装:最低限、4つのコアHooks(
bootstrap、ingest、assemble、compact)を実装 - プラグインの登録:
plugins.slots.contextEngine設定項目でプラグイン名を指定
// プラグイン構造の例(簡略版)
export default {
kind: "context-engine",
hooks: {
bootstrap: async (ctx) => { /* ストレージレイヤーの初期化 */ },
ingest: async (ctx, message) => { /* 受信メッセージの処理 */ },
assemble: async (ctx) => { /* 最終プロンプトの組み立て */ },
compact: async (ctx) => { /* 圧縮ロジック */ },
}
}
セキュリティアップデート:ClawJacked脆弱性と修正
v2026.2.26より前のバージョンを使用している場合、機能アップグレード以上に、セキュリティ問題への早急な対応が必要です。
ClawJackedはOasis Securityによって発見された高リスクの脆弱性です。攻撃方法は、悪意のあるウェブサイトがJavaScriptを使ってlocalhostへのWebSocket接続を開き、Gatewayのローカル接続に対するレート制限免除の設計上の欠陥を悪用して、毎秒数百回の速度で管理者パスワードをブルートフォースするというものです。
成功すると、攻撃者は完全な制御権を取得します:
- APIキーの窃取
- プライベートメッセージの読み取り(メッセージアプリ、カレンダー)
- 接続されたデバイスでの任意のShellコマンドの実行
この全プロセスはユーザーにとって完全に不可視です。BleepingComputerの報道によると、攻撃成功後、攻撃者はユーザーの確認なしに自動的に信頼済みデバイスとして登録されます。
修正方法:v2026.2.26以降のバージョンにアップグレードしてください。アップグレードするなら、v2026.3.7まで一気に上げて、機能とセキュリティを一度に手に入れるのがおすすめです。
まとめ
ContextEngineは、OpenClawのコンテキスト管理を「受動的に受け入れる」から「能動的にコントロールする」に変えました。長時間会話の記憶喪失問題を解決したい、特定のユースケースに合わせた圧縮戦略が必要、あるいは単にClawJackedセキュリティ脆弱性を修正したいなど、どんな理由であれ、v2026.3.7へのアップグレードは今最もやるべきことです。
OpenClawを初めて使う方は、まず完全セットアップチュートリアルで基本を押さえてください。既存ユーザーの方は、openclaw updateから始めて、lossless-clawをインストールしてロスレスコンテキスト管理を体験し、そこからカスタムプラグイン開発の可能性を探ってみてください。
FAQ
v2026.3.7にアップグレードすると既存のAgentが壊れませんか?
基本的に後方互換性があります。ContextEngineプラグインを有効にしない限り、システムは自動的にLegacyContextEngineを使用し、旧バージョンと同じ動作をします。唯一の注意点:gateway.auth.tokenとgateway.auth.passwordの両方を設定している場合、アップグレード前にgateway.auth.modeをtokenまたはpasswordに明示的に設定する必要があります。設定しないと起動に失敗します。
ContextEngineはGPT-5.4とGemini Flash 3.1に対応していますが、モデル切り替えに設定変更は必要ですか?
v2026.3.7ではデフォルトのモデルエイリアスが自動的にopenai/gpt-5.4とgemini-3.1プレビューに更新されるため、手動変更は不要です。lossless-clawなどのContextEngineプラグインはメインシステムのモデル設定をそのまま引き継ぎます。バックグラウンド圧縮タスクに別のモデルを指定したい場合のみ、LCM_SUMMARY_MODEL環境変数を設定してください。
ContextEngineプラグインを一切インストールしなければ、v2026.3.7の動作は旧バージョンと完全に同じですか?
はい、完全に同じです。ContextEngineプラグインが未インストール・未設定の場合、システムは内蔵のLegacyContextEngineモジュールをデフォルトで使用し、旧バージョンのコンテキスト組み立て・圧縮ロジックをそのまま維持します。動作の変更はゼロです。まずアップグレードして、プラグインを有効にするかどうかは後から決められます。


