はじめに
AIエージェントフレームワークの世界で、2026年初頭に急速に普及したオープンソースプロジェクトが OpenClaw です。GitHubスター数が28万を超え、Claude・GPT・DeepSeekなど主要LLMと連携できる汎用エージェントランタイムとして、個人開発者から企業まで幅広く使われています。
2026年3月8日、その OpenClaw がバージョン v2026.3.7 をリリースしました。多数のコミットと大量のバグ修正を含む大規模アップデートで、中核となる新機能が ContextEngine です。これまでコアにハードコードされていたコンテキスト管理ロジックをプラグイン化する仕組みで、「強力なツール」から「真のプラットフォーム」への転換点と評されています。
本記事では、公開情報をもとにContextEngineの設計思想・ライフサイクルフック・lossless-clawプラグインの導入方法・カスタムプラグイン作成の手順を整理します。
この記事で学べること
- OpenClaw v2026.3.7 の変更点と ContextEngine の概要
- ContextEngine のライフサイクルフック 7種の役割
- 公式プラグイン lossless-claw の仕組みと導入手順
- カスタム ContextEngine プラグインの実装パターン
- モデル自動ルーティング(フォールバック)の設定方法
対象読者
- OpenClaw を導入済み、または検討中のエンジニア
- AIエージェントのコンテキスト管理に課題を感じている方
- プラグインアーキテクチャによるエージェント拡張に興味がある方
前提環境
- Node.js v22.x 以上
- OpenClaw v2026.3.7 以上
- Signal / Telegram / Discord のいずれか(インターフェース用)
TL;DR
- OpenClaw v2026.3.7 の目玉は ContextEngine — コンテキスト管理戦略をプラグインとして差し替えられる仕組み
- 7つのライフサイクルフック(bootstrap〜onSubagentEnded)で、コア変更なしにあらゆる管理戦略を実装可能
- 公式プラグイン lossless-claw は DAG ベースのサマリーで全メッセージを損失なく保持し、OOLONG ベンチマークで Claude Code(同モデル)を上回るスコアを記録
- GPT-5.4 正式サポートおよびモデル自動フォールバック機能も同時追加
OpenClaw とは
OpenClaw は、オーストリアの開発者 Peter Steinberger が作成したオープンソースの自律型 AI エージェントフレームワークです。ローカルで動作するエージェントが LLM(Claude、GPT、DeepSeek など)と連携し、Signal・Telegram・Discord・WhatsApp などのメッセージングサービスをインターフェースとして使える設計になっています。
OpenClaw の特徴を一言で表すなら、「LLM に接続された、メッセージング駆動のアクションランタイム」です。単なるチャットボットではなく、ファイル操作・Web検索・外部APIコール・サブエージェントの生成など、タスクを実際に実行するエージェントとして機能します。
[ユーザー] → Signal / Telegram / Discord
↓
OpenClaw ランタイム(ローカル)
↓
LLM (Claude / GPT-5.4 / DeepSeek)
↓
MCP サーバー / プラグイン / ツール
2026年1月に急速に普及し、GitHubのスター数は28万超(2026年3月時点)に達しています。
v2026.3.7 の変更概要
公開されている変更情報をもとに、主な更新点を整理します。
| カテゴリ | 変更内容 |
|---|---|
| 新機能 | ContextEngine プラグインスロット |
| 新機能 | lossless-claw プラグイン(DAGベースコンテキスト管理) |
| 新機能 | GPT-5.4 正式サポート |
| 新機能 | メモリのホットスワップ |
| 改善 | モデル自動フォールバック・ルーティング強化 |
| 改善 | Discord 統合の接続フリーズバグ修正 |
| 改善 | Telegram のトピックレベルエージェント分離 |
| 修正 | 多数のバグ修正 |
ContextEngine とは
従来の問題
v2026.3.7 以前の OpenClaw では、コンテキスト管理(コンパクション、アセンブリなど)がコアにハードコードされていました。これにより、次の問題が生じていました。
- RAG パイプラインや独自のサマリー戦略をプラグインとして実装できない
- コンテキスト管理を変えるにはコア自体を fork する必要があった
- コアの変更が他のプラグインに予期しない影響を与えるリスクがあった
ContextEngine の設計思想
ContextEngine は、この問題を解決するための プラグインインターフェース です。コンテキスト管理の「どのように行うか」をコアロジックから切り離し、開発者が独自の戦略を差し込めるようにしています。
OpenClaw Core
└── ContextEngine スロット(1つのプラグインを登録可能)
├── LegacyContextEngine(デフォルト: 既存動作を保持)
├── lossless-claw(DAGベース: 公式プラグイン)
└── Your Custom Plugin(独自実装)
ContextEngine プラグインを設定しない場合、挙動は v2026.3.7 以前と完全に同一です。既存のワークフローへの影響はありません。
ライフサイクルフック詳解
ContextEngine は 7つのライフサイクルフックを通じて、コンテキスト管理のあらゆる段階に介入できます。
| フック名 | タイミング | 主な用途 |
|---|---|---|
bootstrap |
エージェント初期化時 | SQLite DB 作成、RAG インデックス初期化 |
ingest |
新しいメッセージ・情報注入時 | メッセージの永続化、埋め込み生成 |
assemble |
最終プロンプト構築時 | コンテキストウィンドウの組み立て |
compact |
コンテキスト圧縮・トリミング時 | サマリー生成、古いメッセージの処理 |
afterTurn |
会話ターン完了後 | 会話履歴の後処理、メタデータ更新 |
prepareSubagentSpawn |
サブエージェント生成前 | サブエージェントへのコンテキスト引き継ぎ |
onSubagentEnded |
サブエージェント終了後 | 結果の統合、親コンテキストへの反映 |
これらのフックを組み合わせることで、「高度なRAGパイプライン」「積極的なサマリー戦略」「ベクターDB との連携」など、あらゆるコンテキスト戦略を実装できます。
公式プラグイン: lossless-claw
従来のスライディングウィンドウの限界
OpenClaw のデフォルトのコンテキスト管理は、トークン上限に達した際に古いメッセージを切り捨てる スライディングウィンドウ方式 です。この方式では、会話の初期に交わした重要な情報が失われるリスクがあります。
lossless-claw の仕組み
lossless-claw は、GitHub の Martian-Engineering/lossless-claw で公開されているオープンソースプラグインです。DAG(有向非巡回グラフ)ベースのサマリーシステムを採用し、すべてのメッセージを保持しながらアクティブなコンテキストをモデルのトークン上限内に収めます。
処理フローは以下の通りです。
- 永続化: 全メッセージを SQLite データベースに会話単位で保存
- チャンク要約: 古いメッセージのまとまりを LLM でサマリー生成
- DAG 昇格: サマリーが蓄積すると上位ノードへ集約(ツリー状に要約が深まる)
- アセンブリ: 各ターンでサマリーと直近のメッセージを組み合わせてコンテキスト構築
-
検索ツール: エージェントが
lcm_grep・lcm_describe・lcm_expandで過去の詳細を参照可能
導入手順
openclaw plugins install @martian-engineering/lossless-claw
~/.openclaw/config.yaml に以下を追加します。
contextEngine:
plugin: lossless-claw
config:
dbPath: ~/.openclaw/lcm.sqlite
chunkSize: 20 # サマリー生成するメッセージ数
summaryModel: claude-sonnet-4-6 # サマリー生成に使うモデル
ベンチマーク結果
lossless-claw の GitHub および関連ブログによると、OOLONG ベンチマーク(長いコンテキストの理解を評価)での比較で、lossless-claw を使用した OpenClaw が同じモデルを使用した Claude Code を上回るスコアを記録したとされています。コンテキストが長くなるほどスコア差が広がる傾向があると説明されています。
モデル自動ルーティング
v2026.3.7 では、プライマリモデルがレート制限またはオーバーロードになった際に、自動でセカンダリプロバイダーへフォールバックする仕組みが強化されました。
~/.openclaw/config.yaml の設定例は次の通りです。
modelRouting:
primary:
provider: anthropic
model: claude-sonnet-4-6
fallbacks:
- provider: openai
model: gpt-5.4
- provider: openai
model: gpt-5.3-codex-spark
retryDelayMs: 2000
maxRetries: 3
プライマリが応答しない場合、fallbacks の順にフォールバックします。モデルごとに応答形式が異なる場合でも、OpenClaw が内部で正規化するため、エージェントのロジックを変更する必要はありません。
カスタム ContextEngine プラグインの実装
独自のコンテキスト管理戦略を実装したい場合、ContextEngine インターフェースに準拠したプラグインを作成します。
最小実装例
// my-context-plugin.js
export default {
name: 'my-context-plugin',
async bootstrap({ session, config }) {
// 初期化処理: DB 接続、インデックス構築など
console.log('ContextEngine initialized for session:', session.id);
},
async ingest({ message, session }) {
// 新メッセージを受け取ったタイミングで呼ばれる
// 例: ベクターDB への埋め込み保存
await vectorDB.upsert(session.id, message);
},
async assemble({ recentMessages, session, tokenLimit }) {
// モデルに渡すコンテキストを組み立てて返す
const retrieved = await vectorDB.search(session.id, { limit: 10 });
return [...retrieved, ...recentMessages];
},
async compact({ messages, session }) {
// コンテキストがトークン上限に近づいたときの圧縮処理
return summarize(messages);
},
};
プラグインを config.yaml に登録します。
contextEngine:
plugin: ./my-context-plugin.js
注意点
-
assembleが返すメッセージ配列がモデルに渡されます。トークン数の管理はプラグイン責任です -
prepareSubagentSpawnとonSubagentEndedを実装することで、サブエージェント間のコンテキスト引き継ぎを制御できます - 未実装のフックはスキップされます(全フック実装は任意)
まとめ
OpenClaw v2026.3.7 の ContextEngine は、エージェントフレームワークのコンテキスト管理をプラグイン化するという大きなアーキテクチャシフトです。要点を整理します。
- ContextEngine によりコンテキスト管理をコア変更なしに差し替え可能になった
- 7つのライフサイクルフックで RAG・サマリー・サブエージェント連携など多様な戦略に対応
- lossless-claw プラグインは DAG ベースで全メッセージを保持し、OOLONG ベンチマークで Claude Code を上回るスコアを記録
- モデル自動フォールバックで本番運用の安定性が向上
- GPT-5.4 正式サポートにより最新モデルとの連携も容易に
今後は ContextEngine を活用した専門領域特化型のプラグインエコシステムが形成されることが期待されます。ベクターDB 連携・グラフ型メモリ・ドメイン固有のサマリー戦略など、コミュニティから多様なプラグインが登場するでしょう。



