Shareuhack | OpenClaw v2026.3.7 ContextEngine 完整指南:從升級到自訂插件開發
OpenClaw v2026.3.7 ContextEngine 完整指南:從升級到自訂插件開發

OpenClaw v2026.3.7 ContextEngine 完整指南:從升級到自訂插件開發

March 10, 2026

OpenClaw v2026.3.7 ContextEngine 完整指南:從升級到自訂插件開發

你的 OpenClaw Agent 跑到一半突然「失憶」,忘記五分鐘前討論的內容?這不是偶發 bug,而是長對話上下文管理的根本問題。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 跑長時間任務,應該遇過這個情境:Agent 在第 30 分鐘的回覆完全忽略了第 5 分鐘的討論重點。這不是模型笨,而是上下文壓縮機制在搞鬼。

舊版 OpenClaw 的 context compaction 是硬編碼的「有損壓縮」。當對話達到 token 上限時,系統直接丟棄舊訊息或粗略總結,關鍵的對話細節和時序就這樣消失了。更麻煩的是,這種壓縮邏輯寫死在核心程式碼裡,開發者完全無法客製化。

根據實測,這導致兩個具體問題:

  1. Agent 漂移:長時間運行後,Agent 開始回應上一條訊息而非當前訊息,對話完全錯位
  2. 記憶體黑洞:重置後 context 丟失、history 被截斷,之前的工作成果蒸發

ContextEngine 的設計哲學很直接:把上下文管理的決定權從核心程式碼交給開發者。透過可插拔介面,你可以註冊自己的壓縮策略、組裝邏輯,甚至完全取代預設行為。

ContextEngine 架構與生命週期

ContextEngine 採用 Slot-based registry + config-driven resolution 架構。簡單說:你在設定檔指定要用哪個插件,系統就自動把上下文管理工作委派給它。

核心是 7 個生命週期 Hooks,涵蓋上下文從建立到銷毀的完整過程:

Hook觸發時機用途
bootstrap引擎初始化時載入持久化狀態、建立 DB 連線
ingest新訊息進入時預處理、分類、標記重要性
assemble組裝 prompt 前決定哪些內容送進最終 prompt
compacttoken 接近上限時壓縮或摘要舊對話
afterTurn每輪對話結束後後處理、更新統計、清理暫存
prepareSubagentSpawn子代理啟動前為子代理準備隔離的 context scope
onSubagentEnded子代理結束後回收子代理產出,合併回主 context

實務建議:大多數場景只需實作前四個核心 Hooks(bootstrap、ingest、assemble、compact)。子代理相關的兩個 Hooks 只在你需要建立隔離記憶區塊時才用到,底層透過 AsyncLocalStorage 實現 scoped subagent runtime。

沒裝插件時,系統自動載入 LegacyContextEngine wrapper,保留舊版所有行為,確保零行為變動。

升級與啟用 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.tokengateway.auth.password,升級前必須在設定檔中將 gateway.auth.mode 明確設為 tokenpassword,否則會啟動失敗。

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 萬 Token 的安全範圍內,不再有失憶問題。

環境需求: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 開始是最快的路徑。

關鍵步驟:

  1. 宣告插件類型:在插件設定中加入 kind: "context-engine"
  2. 實作 Hooks:至少實作 bootstrapingestassemblecompact 四個核心 Hooks
  3. 註冊插件:透過 plugins.slots.contextEngine 設定項指定你的插件名稱
// 插件結構範例(簡化版)
export default {
  kind: "context-engine",
  hooks: {
    bootstrap: async (ctx) => { /* 初始化你的儲存層 */ },
    ingest: async (ctx, message) => { /* 處理新訊息 */ },
    assemble: async (ctx) => { /* 組裝最終 prompt */ },
    compact: async (ctx) => { /* 你的壓縮邏輯 */ },
  }
}

安全升級:ClawJacked 漏洞與修復

如果你還在用 v2026.2.26 之前的版本,除了功能升級,安全問題更需要立即處理。

ClawJacked 是由 Oasis Security 發現的高危險性漏洞。攻擊方式:惡意網站透過 JavaScript 開啟連向你本機 localhost 的 WebSocket 連線,利用 Gateway 對 localhost 豁免速率限制的設計缺陷,以每秒數百次的速度暴力破解管理員密碼。

成功後,攻擊者取得完整控制權:

  • 竊取 API 金鑰
  • 讀取私人訊息(messaging apps、calendars)
  • 對連接的裝置執行任意 Shell 指令

整個過程用戶完全無感知。根據 BleepingComputer 報導,攻擊者成功後還會自動註冊為信任設備,無需用戶確認。

修復方式:升級到 v2026.2.26 以上版本。如果你要升級,不如直接跳到 v2026.3.7,功能和安全一次到位。

結論

ContextEngine 讓 OpenClaw 的上下文管理從「被動接受」變成「主動掌控」。不管你是想解決長對話失憶問題、需要為特定場景客製壓縮策略,還是單純想修掉 ClawJacked 安全漏洞,升級到 v2026.3.7 都是現在最該做的事。

如果你是第一次接觸 OpenClaw,可以先看我們的 OpenClaw 完整安裝教學打好基礎。已經在用的開發者,從 openclaw update 開始,裝上 lossless-claw 體驗無損上下文管理,再逐步探索自訂插件開發的可能性。

FAQ

升級到 v2026.3.7 會不會破壞我現有的 Agent?

大致向後相容。未啟用 ContextEngine 插件時,系統自動使用 LegacyContextEngine,行為與舊版完全相同。唯一需注意的 Breaking Change:若你同時設定了 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 模組,保留舊版原有的上下文組裝與壓縮邏輯,零行為變動。你可以先安心升級,之後再決定要不要啟用插件。

Copyright @ Shareuhack 2026. All Rights Reserved.

About Us | Privacy Policy | Terms and Conditions