Fundamentals
Contesto
Il "contesto" è tutto ciò che OpenClaw invia al modello per una run. È limitato dalla finestra di contesto del modello (limite di token).
Modello mentale per principianti:
- Prompt di sistema (creato da OpenClaw): regole, strumenti, elenco di Skills, ora/runtime e file dell'area di lavoro iniettati.
- Cronologia della conversazione: i tuoi messaggi + i messaggi dell'assistente per questa sessione.
- Chiamate/risultati degli strumenti + allegati: output dei comandi, letture di file, immagini/audio, ecc.
Il contesto non è la stessa cosa della "memoria": la memoria può essere archiviata su disco e ricaricata in seguito; il contesto è ciò che si trova nella finestra corrente del modello.
Avvio rapido (ispezionare il contesto)
/status→ vista rapida "quanto è piena la mia finestra?" + impostazioni della sessione./context list→ cosa viene iniettato + dimensioni approssimative (per file + totali)./context detail→ analisi più approfondita: dimensioni per file, per schema degli strumenti, per voce Skill, dimensione del prompt di sistema e conteggi dei messaggi della trascrizione compattabili./context map→ immagine treemap in stile WinDirStat dei contributori al contesto tracciati per la sessione corrente./usage tokens→ aggiunge un piè di pagina con l'utilizzo per risposta alle risposte normali./compact→ riassume la cronologia più vecchia in una voce compatta per liberare spazio nella finestra.
Vedi anche: Comandi slash, Uso dei token e costi, Compaction.
Output di esempio
I valori variano in base a modello, provider, policy degli strumenti e contenuto dell'area di lavoro.
/context list
🧠 Context breakdownWorkspace: <workspaceDir>Bootstrap max/file: 12,000 charsSandbox: mode=non-main sandboxed=falseSystem prompt (run): 38,412 chars (~9,603 tok) (Project Context 23,901 chars (~5,976 tok)) Injected workspace files:- AGENTS.md: OK | raw 1,742 chars (~436 tok) | injected 1,742 chars (~436 tok)- SOUL.md: OK | raw 912 chars (~228 tok) | injected 912 chars (~228 tok)- TOOLS.md: TRUNCATED | raw 54,210 chars (~13,553 tok) | injected 20,962 chars (~5,241 tok)- IDENTITY.md: OK | raw 211 chars (~53 tok) | injected 211 chars (~53 tok)- USER.md: OK | raw 388 chars (~97 tok) | injected 388 chars (~97 tok)- HEARTBEAT.md: MISSING | raw 0 | injected 0- BOOTSTRAP.md: OK | raw 0 chars (~0 tok) | injected 0 chars (~0 tok) Skills list (system prompt text): 2,184 chars (~546 tok) (12 skills)Tools: read, edit, write, exec, process, browser, message, sessions_send, …Tool list (system prompt text): 1,032 chars (~258 tok)Tool schemas (JSON): 31,988 chars (~7,997 tok) (counts toward context; not shown as text)Tools: (same as above) Session tokens (cached): 14,250 total / ctx=32,000/context detail
🧠 Context breakdown (detailed)…Top skills (prompt entry size):- frontend-design: 412 chars (~103 tok)- oracle: 401 chars (~101 tok)… (+10 more skills) Top tools (schema size):- browser: 9,812 chars (~2,453 tok)- exec: 6,240 chars (~1,560 tok)… (+N more tools)/context map
Invia un'immagine generata dall'ultimo report di run memorizzato nella cache. Prima che un messaggio normale abbia prodotto un report di run nella sessione, /context map restituisce un messaggio di non disponibilità invece di renderizzare una stima. L'area dei rettangoli è proporzionale ai caratteri del prompt tracciati:
- file dell'area di lavoro iniettati
- testo del prompt di sistema di base
- voci del prompt delle Skill
- schemi JSON degli strumenti
/context list, /context detail e /context json possono comunque ispezionare una stima on-demand quando nessun report di run è memorizzato nella cache.
Cosa conta per la finestra di contesto
Conta tutto ciò che il modello riceve, incluso:
- Prompt di sistema (tutte le sezioni).
- Cronologia della conversazione.
- Chiamate degli strumenti + risultati degli strumenti.
- Allegati/trascrizioni (immagini/audio/file).
- Riepiloghi di Compaction e artefatti di pruning.
- "Wrapper" del provider o intestazioni nascoste (non visibili, ma comunque conteggiati).
Come OpenClaw costruisce il prompt di sistema
Il prompt di sistema è di proprietà di OpenClaw e viene ricostruito a ogni run. Include:
- Elenco degli strumenti + brevi descrizioni.
- Elenco delle Skills (solo metadati; vedi sotto).
- Posizione dell'area di lavoro.
- Ora (UTC + ora utente convertita se configurata).
- Metadati di runtime (host/OS/modello/thinking).
- File bootstrap dell'area di lavoro iniettati sotto Project Context.
Analisi completa: Prompt di sistema.
File dell'area di lavoro iniettati (Project Context)
Per impostazione predefinita, OpenClaw inietta un set fisso di file dell'area di lavoro (se presenti):
AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(solo prima run)
I file di grandi dimensioni vengono troncati per file usando agents.defaults.bootstrapMaxChars (predefinito 20000 caratteri). OpenClaw applica anche un limite totale di iniezione bootstrap tra i file con agents.defaults.bootstrapTotalMaxChars (predefinito 60000 caratteri). /context mostra le dimensioni grezze rispetto a iniettate e se si è verificato un troncamento.
Quando si verifica un troncamento, il runtime può iniettare un blocco di avviso nel prompt sotto Project Context. Configuralo con agents.defaults.bootstrapPromptTruncationWarning (off, once, always; predefinito always).
Skills: iniettate rispetto a caricate on-demand
Il prompt di sistema include un elenco delle Skills compatto (nome + descrizione + posizione). Questo elenco ha un overhead reale.
Le istruzioni delle Skill non sono incluse per impostazione predefinita. Il modello deve eseguire read del SKILL.md della Skill solo quando necessario.
Strumenti: ci sono due costi
Gli strumenti influenzano il contesto in due modi:
- Testo dell'elenco degli strumenti nel prompt di sistema (ciò che vedi come "Tooling").
- Schemi degli strumenti (JSON). Questi vengono inviati al modello affinché possa chiamare gli strumenti. Contano per il contesto anche se non li vedi come testo semplice.
/context detail analizza gli schemi degli strumenti più grandi, così puoi vedere cosa domina.
Comandi, direttive e "scorciatoie inline"
I comandi slash sono gestiti dal Gateway. Esistono alcuni comportamenti diversi:
- Comandi autonomi: un messaggio che è solo
/...viene eseguito come comando. - Direttive:
/think,/verbose,/trace,/reasoning,/elevated,/model,/queuevengono rimosse prima che il modello veda il messaggio.- I messaggi con sole direttive persistono le impostazioni della sessione.
- Le direttive inline in un messaggio normale agiscono come suggerimenti per singolo messaggio.
- Scorciatoie inline (solo mittenti nell'allowlist): certi token
/...dentro un messaggio normale possono essere eseguiti immediatamente (esempio: "hey /status") e vengono rimossi prima che il modello veda il testo rimanente.
Dettagli: Comandi slash.
Sessioni, Compaction e pruning (cosa persiste)
Ciò che persiste tra i messaggi dipende dal meccanismo:
- Cronologia normale persiste nella trascrizione della sessione finché non viene compattata/potata dalla policy.
- Compaction persiste un riepilogo nella trascrizione e mantiene intatti i messaggi recenti.
- Pruning elimina i vecchi risultati degli strumenti dal prompt in memoria per liberare spazio nella finestra di contesto, ma non riscrive la trascrizione della sessione: la cronologia completa resta comunque ispezionabile su disco.
Documentazione: Sessione, Compaction, Pruning della sessione.
Per impostazione predefinita, OpenClaw usa il motore di contesto integrato legacy per l'assemblaggio e la
Compaction. Se installi un plugin che fornisce kind: "context-engine" e
lo selezioni con plugins.slots.contextEngine, OpenClaw delega a quel
motore l'assemblaggio del contesto, /compact e i relativi hook del ciclo di vita del contesto dei subagent.
ownsCompaction: false non esegue il fallback automatico al motore
legacy; il motore attivo deve comunque implementare correttamente compact(). Vedi
Motore di contesto per l'interfaccia
pluggable completa, gli hook del ciclo di vita e la configurazione.
Cosa segnala effettivamente /context
/context preferisce l'ultimo report del prompt di sistema costruito dalla run quando disponibile:
System prompt (run)= acquisito dall'ultima run incorporata (capace di usare strumenti) e persistito nello store della sessione.System prompt (estimate)= calcolato al volo quando non esiste alcun report di run (o quando viene eseguito tramite un backend CLI che non genera il report).
In entrambi i casi, segnala dimensioni e principali contributori; non scarica l'intero prompt di sistema o gli schemi degli strumenti. In modalità dettagliata, confronta anche la trascrizione della sessione con lo stesso predicato dei messaggi di conversazione reale usato dalla Compaction, quindi è più facile distinguere un utilizzo elevato del prompt/cache dalla cronologia di conversazione compattabile.
Correlati
Iniezione di contesto personalizzata tramite plugin.
Riassumere conversazioni lunghe per mantenerle dentro la finestra del modello.
Come viene costruito il prompt di sistema e cosa inietta a ogni turno.
Il ciclo completo di esecuzione dell'agent dal messaggio in ingresso alla risposta finale.