Skip to main content

System prompt

WednesdayAI assembles the agent’s system prompt from a set of named sections at run time. The default prompt is comprehensive; you can slim it down with a preset, toggle individual sections, inject custom content, and control which project context files are included. All configuration is under agents.defaults.systemPrompt (shared across agents) or agents.<agentId>.systemPrompt (per-agent override). Changes take effect when the gateway restarts. Restart: systemctl --user restart openclaw-gateway.

Presets

The fastest way to change the prompt’s size and scope is a preset:

Per-agent override

Named agents can override the shared default. The per-agent config merges over agents.defaults.systemPrompt:

Section toggles

Individual sections can be turned off or customised without changing the preset. Use the sections map with the section name as the key:

Section catalogue

Mode type key:

Project context files

These files are read from the agent workspace directory and injected into the system prompt: File mode values: Default per-file limit: 20 000 characters. Hard ceiling on total prompt source reads: 8 MiB. Missing optional files are silently skipped. Leave HEARTBEAT.md empty (or absent) to skip heartbeat API calls. To change a file’s mode, use the projectContext.files config:

Prompt cache

The prompt is split into a stable (cached) region and a volatile region at build time. The cache boundary controls where the split happens:
"auto" lets the runtime choose the optimal cache boundary for the current provider. Set "off" to disable prompt caching entirely (increases token cost, may help debugging).

Injecting content from a plugin

Plugin authors can inject content into the system prompt at run time via the before_prompt_build lifecycle hook — without touching admin config. See Hooks for the hook API; the return value accepts systemPrompt (appended after the built sections) and prependContext (inserted before the user turn).