Concepts 导读

Context Engine 决定模型每次看到什么历史消息

Context Engine 控制每次模型调用时哪些消息被保留、哪些被压缩,以及跨子代理的上下文如何管理。先通过 `openclaw doctor` 检查当前引擎,再安装插件并配置 `contextEngine` 槽位。最容易出错的是:安装后必须重启网关,且引擎 ID 必须与插件注册的 ID 完全一致。

先讲这一页到底在解决什么

Context Engine 决定模型每次看到什么历史消息

Context Engine 控制每次模型调用时哪些消息被保留、哪些被压缩,以及跨子代理的上下文如何管理。先通过 `openclaw doctor` 检查当前引擎,再安装插件并配置 `contextEngine` 槽位。最容易出错的是:安装后必须重启网关,且引擎 ID 必须与插件注册的 ID 完全一致。

原文共 14 节,先看 Start Here 路径:/concepts/context-engine 查看官方原文

第一站

🎒 它管的不是“记忆本身”,而是“这次出门到底带哪几样东西”

所以别把 context engine 误会成单纯数据库。它更像发车前的装车主管。

📥

Ingest

新消息一进来,它先决定要怎么收进自己的仓库或索引里。

🧺

Assemble

真正开跑前,它把这轮该带的消息按顺序摆出来,装进模型背包。

✂️

Compact

包太满时,它负责把旧故事压短,腾出空间。

🧾

After turn

一轮结束后,它还能顺手存状态、更新索引、做后台收尾。

第二站

🧩 换引擎这件事,本质上就是“先装新总管,再把总管席位换给它”

官方默认总管叫 legacy。你想换人,就先把新插件装进来。

openclaw plugins install @martian-engineering/lossless-claw

像先把新的打包主管招进公司。

plugins.slots.contextEngine

这格像“总管座位牌”。把它改成新引擎 id,才算正式换岗。

entries.{plugin}.enabled

这像给新总管开工牌。没 enabled,就只是人来了但没上岗。

🔄 重启 Gateway

换完人记得重启,相当于重新宣布“今天起由这个总管值班”。

第三站

systemPromptAddition 像总管塞进开场白的一张临时便签

它不是改静态文件,而是每轮临时多贴一句“今天特别注意这个”。

动态提醒

比如回忆线索、检索提示、当前上下文特别注意点,都可以从这里塞进去。

onSubagentEnded

这像小工干完活后,总管回来做收尾清场。

openclaw doctor

这句像去值班室看一眼,现在到底是哪位总管在岗。

🎈 最后记一句

Context engine 不是新模型,也不是新记忆库,它是“谁来打包上下文”的总调度。