Un motore di contesto controlla il modo in cui OpenClaw costruisce il contesto del modello per ogni esecuzione: quali messaggi includere, come riassumere la cronologia più vecchia e come gestire il contesto oltre i confini dei subagent. OpenClaw include un motoreDocumentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
legacy integrato e lo usa per impostazione predefinita: la maggior parte degli utenti non ha mai bisogno di cambiarlo. Installa e seleziona un motore Plugin solo quando vuoi un comportamento diverso di assemblaggio, Compaction o richiamo tra sessioni.
Avvio rapido
Installa un motore Plugin
I Plugin del motore di contesto vengono installati come qualsiasi altro Plugin di OpenClaw.
- Da npm
- Da un percorso locale
Come funziona
Ogni volta che OpenClaw esegue un prompt del modello, il motore di contesto partecipa in quattro punti del ciclo di vita:1. Acquisizione
1. Acquisizione
Chiamato quando un nuovo messaggio viene aggiunto alla sessione. Il motore può archiviare o indicizzare il messaggio nel proprio archivio dati.
2. Assemblaggio
2. Assemblaggio
Chiamato prima di ogni esecuzione del modello. Il motore restituisce un insieme ordinato di messaggi (e un
systemPromptAddition opzionale) che rientrano nel budget di token.3. Compaction
3. Compaction
Chiamato quando la finestra di contesto è piena, o quando l’utente esegue
/compact. Il motore riassume la cronologia più vecchia per liberare spazio.4. Dopo il turno
4. Dopo il turno
Chiamato al completamento di un’esecuzione. Il motore può rendere persistente lo stato, attivare la Compaction in background o aggiornare gli indici.
Ciclo di vita del subagent (opzionale)
OpenClaw chiama due hook opzionali del ciclo di vita dei subagent:Prepara lo stato di contesto condiviso prima dell’avvio di un’esecuzione figlia. L’hook riceve le chiavi di sessione padre/figlio,
contextMode (isolated o fork), gli id/file di transcript disponibili e un TTL opzionale. Se restituisce un handle di rollback, OpenClaw lo chiama quando lo spawn non riesce dopo che la preparazione è riuscita.Esegue la pulizia quando una sessione subagent viene completata o rimossa.
Aggiunta al prompt di sistema
Il metodoassemble può restituire una stringa systemPromptAddition. OpenClaw la antepone al prompt di sistema per l’esecuzione. Questo consente ai motori di inserire indicazioni dinamiche di richiamo, istruzioni di recupero o suggerimenti consapevoli del contesto senza richiedere file statici nel workspace.
Il motore legacy
Il motorelegacy integrato conserva il comportamento originale di OpenClaw:
- Acquisizione: nessuna operazione (il gestore della sessione gestisce direttamente la persistenza dei messaggi).
- Assemblaggio: pass-through (la pipeline esistente sanitize → validate → limit nel runtime gestisce l’assemblaggio del contesto).
- Compaction: delega alla Compaction di riepilogo integrata, che crea un singolo riepilogo dei messaggi più vecchi e mantiene intatti i messaggi recenti.
- Dopo il turno: nessuna operazione.
systemPromptAddition.
Quando plugins.slots.contextEngine non è impostato (o è impostato su "legacy"), questo motore viene usato automaticamente.
Motori Plugin
Un Plugin può registrare un motore di contesto usando l’API del Plugin:ctx include valori opzionali config, agentDir e workspaceDir
così i Plugin possono inizializzare lo stato per agente o per workspace prima che venga eseguito
il primo hook del ciclo di vita.
Quindi abilitalo nella configurazione:
L’interfaccia ContextEngine
Membri obbligatori:| Membro | Tipo | Scopo |
|---|---|---|
info | Proprietà | Id, nome, versione del motore e se possiede la Compaction |
ingest(params) | Metodo | Archivia un singolo messaggio |
assemble(params) | Metodo | Costruisce il contesto per un’esecuzione del modello (restituisce AssembleResult) |
compact(params) | Metodo | Riassume/riduce il contesto |
assemble restituisce un AssembleResult con:
I messaggi ordinati da inviare al modello.
La stima del motore del totale dei token nel contesto assemblato. OpenClaw usa questo valore per le decisioni sulle soglie di Compaction e per la diagnostica.
Anteposto al prompt di sistema.
Controlla quale stima dei token il runner usa per i precontrolli preventivi di overflow.
Il valore predefinito è
"assembled", il che significa che viene controllata solo la stima
del prompt assemblato: appropriato per motori che restituiscono un contesto
a finestra, autonomo. Impostalo su "preassembly_may_overflow" solo
quando la vista assemblata può nascondere un rischio di overflow nel
transcript sottostante; il runner allora usa il massimo tra la stima assemblata
e la stima della cronologia sessione pre-assemblaggio (non a finestra) quando decide
se effettuare preventivamente la Compaction. In entrambi i casi, i messaggi che restituisci sono
comunque quelli che il modello vede: promptAuthority influisce solo sul precontrollo.compact restituisce un CompactResult. Quando la Compaction ruota il transcript
attivo, result.sessionId e result.sessionFile identificano la sessione successiva
che il prossimo retry o turno deve usare.
Membri opzionali:
| Membro | Tipo | Scopo |
|---|---|---|
bootstrap(params) | Metodo | Inizializza lo stato del motore per una sessione. Chiamato una volta quando il motore vede una sessione per la prima volta (ad esempio, importa la cronologia). |
ingestBatch(params) | Metodo | Acquisisce un turno completato come batch. Chiamato dopo il completamento di un’esecuzione, con tutti i messaggi di quel turno insieme. |
afterTurn(params) | Metodo | Lavoro del ciclo di vita post-esecuzione (persistenza dello stato, attivazione della Compaction in background). |
prepareSubagentSpawn(params) | Metodo | Configura lo stato condiviso per una sessione figlia prima del suo avvio. |
onSubagentEnded(params) | Metodo | Esegue la pulizia dopo la conclusione di un subagent. |
dispose() | Metodo | Rilascia risorse. Chiamato durante lo spegnimento del Gateway o il reload del Plugin, non per sessione. |
ownsCompaction
ownsCompaction controlla se la Compaction automatica in-tentativo integrata di Pi resta abilitata per l’esecuzione:
ownsCompaction: true
ownsCompaction: true
Il motore possiede il comportamento di Compaction. OpenClaw disabilita la Compaction automatica integrata di Pi per quell’esecuzione, e l’implementazione
compact() del motore è responsabile di /compact, della Compaction di recupero da overflow e di qualsiasi Compaction proattiva che voglia eseguire in afterTurn(). OpenClaw può comunque eseguire la protezione da overflow pre-prompt; quando prevede che il transcript completo andrà in overflow, il percorso di recupero chiama compact() del motore attivo prima di inviare un altro prompt.ownsCompaction: false o non impostato
ownsCompaction: false o non impostato
La Compaction automatica integrata di Pi può comunque essere eseguita durante l’esecuzione del prompt, ma il metodo
compact() del motore attivo viene comunque chiamato per /compact e per il recupero da overflow.- Modalità proprietaria
- Modalità delegante
Implementa il tuo algoritmo di Compaction e imposta
ownsCompaction: true.compact() no-op non è sicuro per un motore attivo non proprietario perché disabilita il normale percorso di Compaction /compact e di recupero da overflow per quello slot motore.
Riferimento di configurazione
Lo slot è esclusivo in fase di esecuzione: viene risolto un solo motore di contesto registrato per una determinata esecuzione o operazione di Compaction. Altri Plugin
kind: "context-engine" abilitati possono comunque essere caricati ed eseguire il proprio codice di registrazione; plugins.slots.contextEngine seleziona solo quale id motore registrato OpenClaw risolve quando ha bisogno di un motore di contesto.Disinstallazione del Plugin: quando disinstalli il Plugin attualmente selezionato come
plugins.slots.contextEngine, OpenClaw ripristina lo slot al valore predefinito (legacy). Lo stesso comportamento di ripristino si applica a plugins.slots.memory. Non è richiesta alcuna modifica manuale della configurazione.Relazione con Compaction e memoria
Compaction
Compaction
Compaction è una responsabilità del motore di contesto. Il motore legacy delega alla riepilogazione integrata di OpenClaw. I motori Plugin possono implementare qualsiasi strategia di compaction (riepiloghi DAG, recupero vettoriale, ecc.).
Plugin di memoria
Plugin di memoria
I Plugin di memoria (
plugins.slots.memory) sono separati dai motori di contesto. I Plugin di memoria forniscono ricerca/recupero; i motori di contesto controllano ciò che vede il modello. Possono lavorare insieme: un motore di contesto potrebbe usare i dati dei Plugin di memoria durante l’assemblaggio. I motori Plugin che vogliono il percorso del prompt della memoria attiva dovrebbero preferire buildMemorySystemPromptAddition(...) da openclaw/plugin-sdk/core, che converte le sezioni del prompt della memoria attiva in un systemPromptAddition pronto da anteporre. Se un motore ha bisogno di un controllo di livello inferiore, può comunque recuperare le righe grezze da openclaw/plugin-sdk/memory-host-core tramite buildActiveMemoryPromptSection(...).Potatura della sessione
Potatura della sessione
Il trimming in memoria dei vecchi risultati degli strumenti viene comunque eseguito indipendentemente dal motore di contesto attivo.
Suggerimenti
- Usa
openclaw doctorper verificare che il tuo motore venga caricato correttamente. - Se cambi motore, le sessioni esistenti continuano con la loro cronologia corrente. Il nuovo motore subentra per le esecuzioni future.
- Gli errori del motore vengono registrati e mostrati nella diagnostica. Se un motore Plugin non riesce a registrarsi o l’id del motore selezionato non può essere risolto, OpenClaw non esegue automaticamente il fallback; le esecuzioni falliscono finché non correggi il Plugin o non riporti
plugins.slots.contextEnginea"legacy". - Per lo sviluppo, usa
openclaw plugins install -l ./my-engineper collegare una directory Plugin locale senza copiarla.
Correlati
- Compaction - riepilogo di conversazioni lunghe
- Contesto - come viene creato il contesto per i turni dell’agente
- Architettura dei Plugin - registrazione dei Plugin del motore di contesto
- Manifest del Plugin - campi del manifest del Plugin
- Plugin - panoramica dei Plugin