Agent Bootstrap
This page explains the bootstrap substrate for the openboaAgent.
Use this page when you want to understand:
- where
AGENTS.md,SOUL.md, andMEMORY.mdare defined - why these files exist as files instead of only as hard-coded prompt text
- how bootstrap files become part of the system prompt
- how bootstrap differs from runtime artifacts
- how shared steering files are safely improved over time
What bootstrap means in openboa
The Agent runtime has two kinds of durable markdown around it:- bootstrap files
- durable steering and memory that belong to the Agent itself
- runtime artifacts
- generated state that belongs to one current session
- who is this Agent
- what stable posture should it keep
- what durable guidance should survive across sessions
- what is happening in this session right now
- what is the current shell state, outcome posture, or context pressure
Where bootstrap files are defined
The bootstrap file set is defined in bootstrap-files.ts. Seeding happens during Agent setup through setup.ts. Bootstrap prompt assembly happens through bootstrap.ts.Current bootstrap files
The current default set is:AGENTS.mdSOUL.mdTOOLS.mdIDENTITY.mdUSER.mdHEARTBEAT.mdBOOTSTRAP.mdMEMORY.md
Why these files exist as files
The purpose is not “more prompt files”. The purpose is to make durable Agent steering:- inspectable
- editable
- mounted into the runtime
- separable from live session state
- promotable through explicit shared-substrate workflows
Bootstrap assembly
Read this flow carefully:- the bootstrap substrate is seeded once for an Agent
- later wakes read the same files back
- the files become one machine-separable bootstrap section
- the harness then combines bootstrap, environment, and session-specific wake context
Prompt assembly order
The current bootstrap assembly order is:.openboa/system/base.prompt.openboa/system/agents/<agentId>.prompt- workspace bootstrap sections
<base-prompt><agent-prompt><workspace-bootstrap-section index="..."><openboa-bootstrap-system>
- environment posture
- current wake context
- retrieval or runtime hints
File-by-file purpose
AGENTS.md
The top-level operating brief for the Agent.
Use it to answer:
- what kind of worker this Agent is
- what it should optimize for
- how it should approach bounded work
SOUL.md
The posture file.
Use it for stable temperament and durable behavioral adjectives.
Its job is not detailed policy.
Its job is to keep the Agent’s durable tone and stance legible.
TOOLS.md
The durable tool-discipline file.
Use it for stable rules such as:
- prefer the narrowest tool
- confirm side effects through evidence
- do not assume external state changed without verification
IDENTITY.md
The stable identity anchor.
Use it for:
- agent id
- stable self-description
- durable runtime role wording
USER.md
The durable operator guidance file.
Use it for stable operator preferences that should survive across sessions.
It is not session chat history.
HEARTBEAT.md
The revisit-behavior file.
Use it for stable reminders about:
- what to do on wake
- how to resume bounded work
- when a later revisit is justified
BOOTSTRAP.md
The bootstrap-layer meta note.
Its job is transitional.
It explains that the workspace was seeded and can later be refined or narrowed.
MEMORY.md
The durable Agent-level memory file.
It is curated memory, not a transcript dump.
It exists so durable learnings and notes have a stable filesystem home that survives across sessions.
Why MEMORY.md belongs in bootstrap
MEMORY.md is bootstrap because it is Agent-level durable steering.
It is different from:
checkpoint.jsonsession-state.mdworking-buffer.md.openboa-runtime/*.json|md
MEMORY.md is durable substrate.
That is why learning promotion eventually lands there instead of only inside session-local state.
Bootstrap versus runtime artifacts
Bootstrap substrate includes:- identity
- posture
- durable operator guidance
- tool discipline
- durable memory
- shell posture
- permission posture
- outcome posture
- context pressure
- event and trace views
- current environment and mount contract
Safe editing model
Bootstrap files are shared substrate. That means the safe editing loop is:- stage from shared substrate into the writable session hand
- edit under
/workspace - compare with current substrate
- evaluate safety and promotion posture
- promote explicitly
What bootstrap is for
Use bootstrap when the guidance should:- survive across sessions
- define the Agent itself
- remain inspectable from the filesystem
- be stronger than one current wake
- stay separate from live runtime posture
- current shell output
- current checkpoint continuity
- session-local scratch notes
- one-off current execution hints
Reading order from here
If you are trying to understand the Agent layer itself:- read Agent
- read Agent Capabilities
- read this page
- read Agent Runtime
- read Agent Architecture