OpenClaw crea un prompt di sistema personalizzato per ogni esecuzione dell’agente. Il prompt è di proprietà di OpenClaw e non usa il prompt predefinito di pi-coding-agent. Il prompt viene assemblato da OpenClaw e iniettato in ogni esecuzione dell’agente. L’assemblaggio del prompt ha tre livelli:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
buildAgentSystemPromptgenera il prompt dagli input espliciti. Deve restare un renderer puro e non deve leggere direttamente la configurazione globale.resolveAgentSystemPromptConfigrisolve le impostazioni del prompt basate sulla configurazione, come visualizzazione del proprietario, suggerimenti TTS, alias dei modelli, modalità di citazione della memoria e modalità di delega ai sotto-agenti per un agente specifico.- Gli adattatori di runtime (incorporato, CLI, anteprime comando/export, compaction) raccolgono fatti live come strumenti, stato della sandbox, capacità del canale, file di contesto e contributi al prompt del provider, quindi chiamano la facade del prompt configurata.
- sostituire un piccolo insieme di sezioni core con nome (
interaction_style,tool_call_style,execution_bias) - iniettare un prefisso stabile sopra il limite della cache del prompt
- iniettare un suffisso dinamico sotto il limite della cache del prompt
before_prompt_build per compatibilità o per modifiche del prompt davvero globali,
non per il normale comportamento del provider.
L’overlay della famiglia OpenAI GPT-5 mantiene ridotta la regola di esecuzione core e aggiunge
indicazioni specifiche del modello per ancoraggio della persona, output conciso, disciplina degli strumenti,
lookup parallelo, copertura degli elaborati, verifica, contesto mancante e
igiene dello strumento terminale.
Struttura
Il prompt è intenzionalmente compatto e usa sezioni fisse:- Strumenti: promemoria sulla fonte di verità dello strumento strutturato più indicazioni runtime sull’uso degli strumenti.
- Bias di esecuzione: indicazioni compatte di completamento: agire nel turno sulle richieste azionabili, continuare fino al completamento o al blocco, recuperare da risultati deboli degli strumenti, controllare live lo stato mutabile e verificare prima di finalizzare.
- Sicurezza: breve promemoria di guardrail per evitare comportamenti di ricerca del potere o aggiramento della supervisione.
- Skills (quando disponibili): spiega al modello come caricare istruzioni delle skill su richiesta.
- Controllo OpenClaw: dice al modello di preferire lo strumento
gatewayper configurazione/riavvio e di evitare di inventare comandi CLI. - Auto-aggiornamento OpenClaw: come ispezionare la configurazione in sicurezza con
config.schema.lookup, correggere la configurazione conconfig.patch, sostituire l’intera configurazione conconfig.applyed eseguireupdate.runsolo su richiesta esplicita dell’utente. Anche lo strumentogatewayriservato al proprietario rifiuta di riscriveretools.exec.ask/tools.exec.security, inclusi gli alias legacytools.bash.*che si normalizzano in quei percorsi exec protetti. - Workspace: directory di lavoro (
agents.defaults.workspace). - Documentazione: percorso locale dei docs/source di OpenClaw e quando leggerli.
- File del workspace (iniettati): indica che i file di bootstrap sono inclusi sotto.
- Sandbox (quando abilitata): indica runtime in sandbox, percorsi della sandbox e se è disponibile exec elevato.
- Data e ora correnti: solo fuso orario (stabile per la cache; l’orologio live proviene da
session_status). - Direttive di output dell’assistente: sintassi compatta per allegati, note vocali e tag di risposta.
- Heartbeat: prompt Heartbeat e comportamento di ack, quando gli heartbeat sono abilitati per l’agente predefinito.
- Runtime: host, OS, node, modello, radice del repository (quando rilevata), livello di pensiero (una riga).
- Ragionamento: livello di visibilità corrente + suggerimento per il toggle /reasoning.
- usa cron per follow-up futuri (
check back later, promemoria, lavoro ricorrente) invece di loop sleep diexec, trucchi di ritardoyieldMso polling ripetuto diprocess - usa
exec/processsolo per comandi che iniziano ora e continuano a girare in background - quando è abilitato il risveglio automatico al completamento, avvia il comando una volta e affidati al percorso di risveglio push-based quando emette output o fallisce
- usa
processper log, stato, input o intervento quando devi ispezionare un comando in esecuzione - se il compito è più grande, preferisci
sessions_spawn; il completamento del sotto-agente è push-based e viene annunciato automaticamente al richiedente - non eseguire polling di
subagents list/sessions_listin un loop solo per attendere il completamento
agents.defaults.subagents.delegationMode può rafforzare queste indicazioni. La
modalità predefinita suggest mantiene il suggerimento di base. prefer aggiunge una sezione
dedicata Delega ai sotto-agenti che dice all’agente principale di agire come coordinatore
reattivo e di inviare tramite sessions_spawn qualsiasi cosa più articolata di una risposta diretta.
Questo riguarda solo il prompt; la policy degli strumenti controlla comunque se
sessions_spawn è disponibile.
Quando lo strumento sperimentale update_plan è abilitato, Strumenti dice anche al
modello di usarlo solo per lavori multi-step non banali, mantenere esattamente uno
step in_progress ed evitare di ripetere l’intero piano dopo ogni aggiornamento.
I guardrail di sicurezza nel prompt di sistema sono consultivi. Guidano il comportamento del modello ma non applicano policy. Usa policy degli strumenti, approvazioni exec, sandboxing e allowlist dei canali per l’applicazione rigida; gli operatori possono disabilitarli per progettazione.
Sui canali con schede/pulsanti di approvazione nativi, il prompt runtime ora dice
all’agente di affidarsi prima a quell’interfaccia nativa di approvazione. Deve includere un comando manuale
/approve solo quando il risultato dello strumento dice che le approvazioni via chat non sono disponibili o
che l’approvazione manuale è l’unico percorso.
Modalità del prompt
OpenClaw può generare prompt di sistema più piccoli per i sotto-agenti. Il runtime imposta unapromptMode per ogni esecuzione (non una configurazione visibile all’utente):
full(predefinita): include tutte le sezioni sopra.minimal: usata per i sotto-agenti; omette Richiamo memoria, Auto-aggiornamento OpenClaw, Alias dei modelli, Identità utente, Direttive di output dell’assistente, Messaggistica, Risposte silenziose e Heartbeat. Strumenti, Sicurezza, Skills quando fornite, Workspace, Sandbox, Data e ora correnti (quando note), Runtime e contesto iniettato restano disponibili.none: restituisce solo la riga di identità di base.
promptMode=minimal, i prompt iniettati extra sono etichettati Contesto sotto-agente
invece di Contesto della chat di gruppo.
Per le esecuzioni di risposta automatica del canale, OpenClaw può omettere la sezione generica Risposte silenziose
quando il contesto della chat diretta/di gruppo include già il comportamento
NO_REPLY specifico della conversazione risolto. Questo evita di ripetere la meccanica dei token
sia nel prompt di sistema globale sia nel contesto del canale.
Snapshot del prompt
OpenClaw mantiene snapshot del prompt committed per il percorso felice del runtime Codex sottotest/fixtures/agents/prompt-snapshots/codex-runtime-happy-path/. Generano
parametri selezionati di thread/turno dell’app-server più uno stack ricostruito di livelli del prompt vincolato al modello
per turni diretti Telegram, di gruppo Discord e Heartbeat. Quello stack
include una fixture del prompt del modello Codex gpt-5.5 fissata generata dalla forma del catalogo/cache
dei modelli di Codex, il testo developer dei permessi del percorso felice Codex,
le istruzioni developer OpenClaw, le istruzioni di modalità collaborazione con scope sul turno
quando OpenClaw le fornisce, l’input del turno utente e riferimenti alle specifiche dinamiche degli strumenti.
Aggiorna la fixture fissata del prompt del modello Codex con
pnpm prompt:snapshots:sync-codex-model. Per impostazione predefinita, lo script cerca
la cache runtime di Codex in $CODEX_HOME/models_cache.json, poi in
~/.codex/models_cache.json, e solo dopo ricade sulla convenzione del checkout Codex
del maintainer in ~/code/codex/codex-rs/models-manager/models.json. Se
nessuna di queste fonti esiste, il comando termina senza modificare la fixture
committed. Passa --catalog <path> per aggiornare da uno specifico file models_cache.json
o models.json.
Questi snapshot non sono comunque una cattura grezza byte-per-byte della richiesta OpenAI. Codex
può aggiungere contesto del workspace di proprietà del runtime come AGENTS.md, contesto
dell’ambiente, memorie, istruzioni app/plugin e istruzioni integrate Default
di modalità collaborazione dentro il runtime Codex dopo che OpenClaw invia
i parametri di thread e turno.
Rigenerali con pnpm prompt:snapshots:gen e verifica la deriva con
pnpm prompt:snapshots:check. La CI esegue il controllo della deriva nello shard di confine
aggiuntivo così modifiche del prompt e aggiornamenti degli snapshot restano collegati alla stessa
PR.
Iniezione del bootstrap del workspace
I file di bootstrap vengono ridotti e aggiunti sotto Contesto del progetto così il modello vede contesto di identità e profilo senza dover effettuare letture esplicite:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.md(solo su workspace nuovissimi)MEMORY.mdquando presente
HEARTBEAT.md viene omesso nelle esecuzioni normali quando
gli heartbeat sono disabilitati per l’agente predefinito o
agents.defaults.heartbeat.includeSystemPromptSection è false. Mantieni concisi i file iniettati,
specialmente MEMORY.md. MEMORY.md è pensato per restare un
riepilogo a lungo termine curato; le note giornaliere dettagliate appartengono a memory/*.md dove
memory_search e memory_get possono recuperarle su richiesta. File MEMORY.md
troppo grandi aumentano l’uso del prompt e possono essere iniettati parzialmente a causa dei
limiti dei file di bootstrap sotto.
Quando una sessione gira sull’harness nativo Codex, Codex carica AGENTS.md
attraverso la propria scoperta dei documenti di progetto. OpenClaw risolve comunque i restanti
file di bootstrap e li inoltra come istruzioni di configurazione Codex, così SOUL.md,
TOOLS.md, IDENTITY.md, USER.md, HEARTBEAT.md, BOOTSTRAP.md e
MEMORY.md mantengono lo stesso ruolo di contesto del workspace senza duplicare
AGENTS.md.
I file giornalieri
memory/*.md non fanno parte del normale Contesto del progetto di bootstrap. Nei turni ordinari sono accessibili su richiesta tramite gli strumenti memory_search e memory_get, quindi non contano contro la finestra di contesto a meno che il modello non li legga esplicitamente. I turni bare /new e /reset sono l’eccezione: il runtime può anteporre la memoria giornaliera recente come blocco di contesto di avvio una tantum per quel primo turno.agents.defaults.bootstrapMaxChars (predefinito: 12000). Il contenuto bootstrap totale iniettato
tra i file è limitato da agents.defaults.bootstrapTotalMaxChars
(predefinito: 60000). I file mancanti iniettano un breve marker di file mancante. Quando avviene il troncamento,
OpenClaw può iniettare un avviso conciso nel prompt di sistema; controllalo con
agents.defaults.bootstrapPromptTruncationWarning (off, once, always;
predefinito: once). I conteggi grezzi/iniettati dettagliati restano nella diagnostica come
/context, /status, doctor e log.
Per i file di memoria, il troncamento non è perdita di dati: il file resta intatto su disco,
ma il modello vede solo la copia iniettata accorciata finché non legge o cerca
direttamente la memoria. Se MEMORY.md viene troncato ripetutamente, distillalo in un
riepilogo durevole più breve e sposta la cronologia dettagliata in memory/*.md, oppure
aumenta intenzionalmente i limiti di bootstrap.
Le sessioni dei sotto-agenti iniettano solo AGENTS.md e TOOLS.md (gli altri file di bootstrap
vengono filtrati per mantenere piccolo il contesto del sotto-agente).
Gli hook interni possono intercettare questo passaggio tramite agent:bootstrap per modificare o sostituire
i file di bootstrap iniettati (per esempio sostituendo SOUL.md con una persona alternativa).
Se vuoi rendere il tono dell’agente meno generico, inizia con
Guida alla personalità SOUL.md.
Per ispezionare quanto contribuisce ogni file iniettato (grezzo rispetto a iniettato, troncamento, più overhead dello schema degli strumenti), usa /context list o /context detail. Vedi Contesto.
Gestione del tempo
Il prompt di sistema include una sezione dedicata Data e ora correnti quando il fuso orario dell’utente è noto. Per mantenere il prompt stabile nella cache, ora include solo il fuso orario (nessun orologio dinamico o formato dell’ora). Usasession_status quando l’agente ha bisogno dell’ora corrente; la scheda di stato
include una riga con timestamp. Lo stesso strumento può opzionalmente impostare un override
del modello per sessione (model=default lo cancella).
Configura con:
agents.defaults.userTimezoneagents.defaults.timeFormat(auto|12|24)
Skills
Quando esistono Skills idonee, OpenClaw inietta un elenco compatto delle Skills disponibili (formatSkillsForPrompt) che include il percorso del file per ogni skill. Il
prompt istruisce il modello a usare read per caricare lo SKILL.md nella posizione
indicata (workspace, gestita o inclusa nel pacchetto). Se nessuna Skills è idonea, la
sezione Skills viene omessa.
L’idoneità include i gate dei metadati della skill, i controlli sull’ambiente/configurazione di runtime
e l’allowlist effettiva delle skill dell’agente quando agents.defaults.skills o
agents.list[].skills è configurato.
Le skill incluse in un Plugin sono idonee solo quando il Plugin proprietario è abilitato.
Questo permette ai Plugin di strumenti di esporre guide operative più approfondite senza incorporare
tutta quella guida direttamente in ogni descrizione dello strumento.
- Valore predefinito globale:
skills.limits.maxSkillsPromptChars - Override per agente:
agents.list[].skillsLimits.maxSkillsPromptChars
agents.defaults.contextLimits.*agents.list[].contextLimits.*
memory_get, i risultati degli strumenti live e gli aggiornamenti di AGENTS.md dopo la Compaction.
Documentazione
Il prompt di sistema include una sezione Documentazione. Quando la documentazione locale è disponibile, essa punta alla directory locale della documentazione di OpenClaw (docs/ in un checkout Git o la documentazione inclusa
nel pacchetto npm). Se la documentazione locale non è disponibile, ripiega su
https://docs.openclaw.ai.
La stessa sezione include anche la posizione del sorgente di OpenClaw. I checkout Git espongono la radice locale
del sorgente così l’agente può ispezionare direttamente il codice. Le installazioni da pacchetto includono l’URL
del sorgente GitHub e dicono all’agente di esaminare lì il sorgente ogni volta che la documentazione è incompleta o
obsoleta. Il prompt segnala anche il mirror pubblico della documentazione, il Discord della community e ClawHub
(https://clawhub.ai) per la scoperta delle skill. Dice al modello di
consultare prima la documentazione per comportamento, comandi, configurazione o architettura di OpenClaw, e di
eseguire openclaw status autonomamente quando possibile (chiedendo all’utente solo quando non ha accesso).
Per la configurazione in particolare, indirizza gli agenti all’azione dello strumento gateway
config.schema.lookup per documentazione e vincoli esatti a livello di campo, poi a
docs/gateway/configuration.md e docs/gateway/configuration-reference.md
per una guida più ampia.