Context Engine
Eine Context Engine steuert, wie OpenClaw für jede Ausführung Modellkontext aufbaut. Sie entscheidet, welche Nachrichten einbezogen werden, wie älterer Verlauf zusammengefasst wird und wie Kontext über Subagent-Grenzen hinweg verwaltet wird. OpenClaw wird mit einer integriertenlegacy-Engine ausgeliefert. Plugins können
alternative Engines registrieren, die den aktiven Lebenszyklus der Context Engine ersetzen.
Schnellstart
Prüfen, welche Engine aktiv ist:Installation eines Context-Engine-Plugins
Context-Engine-Plugins werden wie jedes andere OpenClaw-Plugin installiert. Installieren Sie es zuerst und wählen Sie dann die Engine im Slot aus:contextEngine auf "legacy" (oder
entfernen Sie den Schlüssel ganz — "legacy" ist der Standard).
So funktioniert es
Jedes Mal, wenn OpenClaw einen Modell-Prompt ausführt, ist die Context Engine an vier Lebenszyklus-Punkten beteiligt:- Ingest — wird aufgerufen, wenn eine neue Nachricht zur Sitzung hinzugefügt wird. Die Engine kann die Nachricht in ihrem eigenen Datenspeicher speichern oder indizieren.
- Assemble — wird vor jeder Modellausführung aufgerufen. Die Engine gibt eine geordnete
Menge von Nachrichten zurück (und optional ein
systemPromptAddition), die innerhalb des Token-Budgets liegen. - Compact — wird aufgerufen, wenn das Kontextfenster voll ist oder wenn der Benutzer
/compactausführt. Die Engine fasst älteren Verlauf zusammen, um Speicherplatz freizugeben. - After turn — wird aufgerufen, nachdem eine Ausführung abgeschlossen ist. Die Engine kann Status speichern, Hintergrundkompaktierung auslösen oder Indizes aktualisieren.
Subagent-Lebenszyklus (optional)
OpenClaw ruft derzeit einen Hook für den Subagent-Lebenszyklus auf:- onSubagentEnded — Aufräumen, wenn eine Subagent-Sitzung abgeschlossen wird oder bereinigt wird.
prepareSubagentSpawn ist Teil der Schnittstelle für zukünftige Nutzung, aber
die Laufzeit ruft ihn noch nicht auf.
Ergänzung des System-Prompts
Die Methodeassemble kann einen String systemPromptAddition zurückgeben. OpenClaw
stellt diesen dem System-Prompt für die Ausführung voran. So können Engines dynamische
Hinweise zum Abruf, Retrieval-Anweisungen oder kontextabhängige Hinweise einfügen,
ohne statische Workspace-Dateien zu erfordern.
Die Legacy-Engine
Die integriertelegacy-Engine bewahrt das ursprüngliche Verhalten von OpenClaw:
- Ingest: no-op (der Sitzungsmanager übernimmt direkt die Persistierung der Nachrichten).
- Assemble: Durchleitung (die vorhandene Pipeline sanitize → validate → limit in der Laufzeit übernimmt die Kontextzusammenstellung).
- Compact: delegiert an die integrierte Zusammenfassungs-Kompaktierung, die eine einzelne Zusammenfassung älterer Nachrichten erstellt und aktuelle Nachrichten intakt hält.
- After turn: no-op.
systemPromptAddition bereit.
Wenn plugins.slots.contextEngine nicht gesetzt ist (oder auf "legacy" gesetzt ist), wird diese
Engine automatisch verwendet.
Plugin-Engines
Ein Plugin kann über die Plugin-API eine Context Engine registrieren:Die Schnittstelle ContextEngine
Erforderliche Member:| Member | Art | Zweck |
|---|---|---|
info | Property | Engine-ID, Name, Version und ob sie Kompaktierung besitzt |
ingest(params) | Method | Eine einzelne Nachricht speichern |
assemble(params) | Method | Kontext für eine Modellausführung erstellen (gibt AssembleResult zurück) |
compact(params) | Method | Kontext zusammenfassen/reduzieren |
assemble gibt ein AssembleResult zurück mit:
messages— die geordneten Nachrichten, die an das Modell gesendet werden.estimatedTokens(erforderlich,number) — die Schätzung der Engine für die Gesamtzahl der Tokens im zusammengestellten Kontext. OpenClaw verwendet dies für Entscheidungen über Kompaktierungsschwellen und für Diagnoseberichte.systemPromptAddition(optional,string) — wird dem System-Prompt vorangestellt.
| Member | Art | Zweck |
|---|---|---|
bootstrap(params) | Method | Engine-Status für eine Sitzung initialisieren. Wird einmal aufgerufen, wenn die Engine eine Sitzung zum ersten Mal sieht (z. B. Verlauf importieren). |
ingestBatch(params) | Method | Eine abgeschlossene Ausführung als Batch aufnehmen. Wird nach Abschluss einer Ausführung aufgerufen, mit allen Nachrichten dieser Ausführung auf einmal. |
afterTurn(params) | Method | Arbeit nach der Ausführung (Status speichern, Hintergrundkompaktierung auslösen). |
prepareSubagentSpawn(params) | Method | Gemeinsamen Status für eine untergeordnete Sitzung vorbereiten. |
onSubagentEnded(params) | Method | Aufräumen, nachdem ein Subagent beendet wurde. |
dispose() | Method | Ressourcen freigeben. Wird beim Herunterfahren des Gateway oder beim Neuladen von Plugins aufgerufen — nicht pro Sitzung. |
ownsCompaction
ownsCompaction steuert, ob die integrierte In-Attempt-Autokompaktierung von Pi
für die Ausführung aktiviert bleibt:
true— die Engine besitzt das Kompaktierungsverhalten. OpenClaw deaktiviert die integrierte Autokompaktierung von Pi für diese Ausführung, und die Implementierungcompact()der Engine ist verantwortlich für/compact, Overflow-Recovery-Kompaktierung und jede proaktive Kompaktierung, die sie inafterTurn()ausführen möchte.falseoder nicht gesetzt — die integrierte Autokompaktierung von Pi kann während der Prompt- Ausführung weiterhin laufen, aber die Methodecompact()der aktiven Engine wird weiterhin für/compactund Overflow-Recovery aufgerufen.
ownsCompaction: false bedeutet nicht, dass OpenClaw automatisch auf
den Kompaktierungspfad der Legacy-Engine zurückfällt.
Das bedeutet, dass es zwei gültige Plugin-Muster gibt:
- Besitzender Modus — implementieren Sie Ihren eigenen Kompaktierungsalgorithmus und setzen Sie
ownsCompaction: true. - Delegierender Modus — setzen Sie
ownsCompaction: falseund lassen Siecompact()delegateCompactionToRuntime(...)ausopenclaw/plugin-sdk/coreaufrufen, um das integrierte Kompaktierungsverhalten von OpenClaw zu verwenden.
compact() ist für eine aktive, nicht besitzende Engine unsicher, da es
den normalen Pfad für /compact und Overflow-Recovery-Kompaktierung für diesen
Engine-Slot deaktiviert.
Konfigurationsreferenz
kind: "context-engine" können weiterhin geladen werden und ihren Registrierungscode
ausführen; plugins.slots.contextEngine wählt nur aus, welche registrierte Engine-ID
OpenClaw auflöst, wenn eine Context Engine benötigt wird.
Beziehung zu Kompaktierung und Speicher
- Kompaktierung ist eine Aufgabe der Context Engine. Die Legacy-Engine delegiert an die integrierte Zusammenfassung von OpenClaw. Plugin-Engines können beliebige Kompaktierungsstrategien implementieren (DAG-Zusammenfassungen, Vektor-Retrieval usw.).
- Memory-Plugins (
plugins.slots.memory) sind von Context Engines getrennt. Memory-Plugins stellen Suche/Retrieval bereit; Context Engines steuern, was das Modell sieht. Sie können zusammenarbeiten — eine Context Engine könnte Daten aus einem Memory-Plugin während der Zusammenstellung verwenden. - Sitzungsbereinigung (Trimmen alter Tool-Ergebnisse im Speicher) läuft weiterhin, unabhängig davon, welche Context Engine aktiv ist.
Tipps
- Verwenden Sie
openclaw doctor, um zu prüfen, ob Ihre Engine korrekt geladen wird. - Wenn Sie Engines wechseln, laufen vorhandene Sitzungen mit ihrem aktuellen Verlauf weiter. Die neue Engine übernimmt zukünftige Ausführungen.
- Engine-Fehler werden protokolliert und in der Diagnose angezeigt. Wenn eine Plugin-Engine
sich nicht registrieren lässt oder die ausgewählte Engine-ID nicht aufgelöst werden kann, fällt OpenClaw
nicht automatisch zurück; Ausführungen schlagen fehl, bis Sie das Plugin reparieren oder
plugins.slots.contextEnginewieder auf"legacy"setzen. - Für die Entwicklung verwenden Sie
openclaw plugins install -l ./my-engine, um ein lokales Plugin-Verzeichnis zu verknüpfen, ohne es zu kopieren.
Verwandt
- Context — wie Kontext für Agent-Turns aufgebaut wird
- Plugin Architecture — Registrierung von Context-Engine-Plugins
- Compaction — Zusammenfassen langer Unterhaltungen