Fundamentals
Agentruntime
OpenClaw levert één ingebouwde agentruntime: een ingebouwde agentlus, toolkoppeling en promptopbouw, los van het delegeren van beurten aan een extern harnessproces. Elke geconfigureerde agent (zie Routering met meerdere agents voor het uitvoeren van meerdere agents) heeft een eigen werkruimte, bootstrapbestanden en sessieopslag. Deze pagina behandelt het runtimecontract: wat de werkruimte moet bevatten, welke bestanden worden geïnjecteerd en hoe sessies daarmee worden opgestart.
Werkruimte (vereist)
Elke agent gebruikt één werkruimtemap (agents.defaults.workspace, of
agents.entries.*.workspace per agent) als zijn enige werkmap (cwd)
voor tools en context.
Aanbevolen: gebruik openclaw setup om ~/.openclaw/openclaw.json aan te maken als deze ontbreekt en de werkruimtebestanden te initialiseren.
Volledige indeling van de werkruimte + back-uphandleiding: Agentwerkruimte
Als agents.defaults.sandbox is ingeschakeld, kunnen niet-hoofdsessies dit overschrijven met
werkruimten per sessie onder agents.defaults.sandbox.workspaceRoot (zie
Gateway-configuratie).
Bootstrapbestanden (geïnjecteerd)
In de werkruimte verwacht OpenClaw deze door de gebruiker bewerkbare bestanden:
| Bestand | Doel |
|---|---|
AGENTS.md |
Gebruiksinstructies + "geheugen" |
SOUL.md |
Persona, grenzen, toon |
TOOLS.md |
Door de gebruiker beheerde toolnotities en conventies |
IDENTITY.md |
Naam/sfeer/emoji van de agent |
USER.md |
Gebruikersprofiel + voorkeursaanspreekvorm |
HEARTBEAT.md |
Heartbeat-specifieke instructies |
BOOTSTRAP.md |
Eenmalig ritueel bij de eerste uitvoering (na voltooiing verwijderd) |
MEMORY.md |
Hoofdbestand voor langetermijngeheugen, indien aanwezig |
Tijdens de eerste beurt van een nieuwe sessie injecteert OpenClaw de inhoud van deze bestanden in de Projectcontext van de systeemprompt. MEMORY.md wordt alleen geïnjecteerd wanneer het in de hoofdmap van de werkruimte bestaat.
Lege bestanden worden overgeslagen. Grote bestanden worden ingekort en afgekapt met een markering, zodat prompts beknopt blijven (lees het bestand voor de volledige inhoud). Voor een ontbrekend bestand (behalve MEMORY.md) wordt in plaats daarvan één markeringsregel voor een "ontbrekend bestand" geïnjecteerd; openclaw setup maakt hiervoor een veilige standaardsjabloon.
BOOTSTRAP.md wordt alleen aangemaakt voor een volledig nieuwe werkruimte (waarin geen andere bootstrapbestanden aanwezig zijn). Zolang dit bestand in behandeling is, houdt OpenClaw het in de Projectcontext en voegt het bootstrapbegeleiding voor het eerste ritueel toe aan de systeemprompt, in plaats van het naar het gebruikersbericht te kopiëren. Als je het na voltooiing van het ritueel verwijdert, wordt het bij latere herstarts niet opnieuw aangemaakt.
Nadat een werkruimte is waargenomen, slaat OpenClaw de instellingsstatus en
attestatie ervan op in de gedeelde SQLite-database op
~/.openclaw/state/openclaw.sqlite. Als een onlangs geattesteerde werkruimte
verdwijnt of wordt gewist, weigert het opstartproces BOOTSTRAP.md stilzwijgend opnieuw te vullen;
herstel de werkruimte of voer een volledige onboardingreset uit, zodat de werkruimte en
de databasestatus ervan samen worden gewist.
Oudere releases gebruikten JSON-bestanden voor werkruimten en .attested-sidecarbestanden. De runtime leest
deze bestanden niet. Voer openclaw doctor --fix uit om ze te valideren, hun
status in SQLite te importeren en elke bron te verwijderen nadat de geïmporteerde rijen zijn geverifieerd.
Stel het volgende in om het aanmaken van bootstrapbestanden volledig uit te schakelen (voor vooraf gevulde werkruimten):
{ agents: { defaults: { skipBootstrap: true } } }Ingebouwde tools
Kerntools (lezen/uitvoeren/bewerken/schrijven en gerelateerde systeemtools) zijn altijd beschikbaar,
onder voorbehoud van het toolbeleid. apply_patch is standaard ingeschakeld voor OpenAI-modellen en wordt beheerst door
tools.exec.applyPatch (enabled, workspaceOnly, allowModels). TOOLS.md bepaalt niet welke tools bestaan; het is
een richtlijn voor hoe je wilt dat ze worden gebruikt.
Skills
OpenClaw laadt Skills vanaf deze locaties (hoogste prioriteit eerst):
- Werkruimte:
<workspace>/skills - Agent-Skills van het project:
<workspace>/.agents/skills - Persoonlijke agent-Skills:
~/.agents/skills - Beheerd/lokaal:
~/.openclaw/skills - Gebundeld (meegeleverd met de installatie)
- Extra mappen met Skills:
skills.load.extraDirs
Hoofdmappen van Skills kunnen gegroepeerde mappen bevatten, zoals
<workspace>/skills/personal/foo/SKILL.md; de Skill wordt nog steeds beschikbaar gesteld onder de
platte frontmatter-naam, bijvoorbeeld foo.
Skills kunnen worden beheerst door configuratie/omgevingsvariabelen (zie skills in Gateway-configuratie).
Runtimegrenzen
De ingebouwde agentruntime is eigendom van OpenClaw: modeldetectie, toolkoppeling, promptopbouw, sessiebeheer en kanaalbezorging delen één geïntegreerd runtimeoppervlak.
Sessies
Sessierijen worden opgeslagen in de SQLite-database per agent:
~/.openclaw/agents/<agentId>/agent/openclaw-agent.sqlite
JSONL-transcriptbestanden kunnen nog steeds onder
~/.openclaw/agents/<agentId>/sessions/ staan als invoer voor verouderde migraties, verwijderde of
geresette archieven, imports, exports en ondersteuningsartefacten. Actieve agentgeschiedenis wordt
samen met de sessierijen in SQLite opgeslagen. De sessie-ID is stabiel en wordt door
OpenClaw gekozen. OpenClaw leest geen sessiemappen van andere tools.
Bijsturen tijdens streamen
Binnenkomende prompts die tijdens een uitvoering arriveren, worden standaard naar de huidige uitvoering gestuurd. Bijsturing wordt geleverd nadat de huidige assistentbeurt klaar is met het uitvoeren van de toolaanroepen, vóór de volgende LLM-aanroep, en slaat resterende toolaanroepen uit het huidige assistentbericht niet langer over.
/queue steer is het standaardgedrag tijdens een actieve uitvoering. /queue followup en
/queue collect laten berichten wachten op een latere beurt in plaats van ze bij te sturen.
/queue interrupt breekt in plaats daarvan de actieve uitvoering af. Zie Wachtrij
en Bijsturingswachtrij voor het gedrag van wachtrijen en grenzen.
Blokstreaming verzendt voltooide assistentblokken zodra ze gereed zijn; dit is
standaard uitgeschakeld (agents.defaults.blockStreamingDefault: "off").
Stel de grens af via agents.defaults.blockStreamingBreak (text_end tegenover message_end; standaard text_end).
Beheer het opdelen in zachte blokken met agents.defaults.blockStreamingChunk (standaard
800-1200 tekens; geeft de voorkeur aan alinea-einden, daarna regeleinden; zinnen als laatste).
Voeg gestreamde fragmenten samen met agents.defaults.blockStreamingCoalesce om
spam van afzonderlijke regels te verminderen (samenvoeging op basis van inactiviteit vóór verzending). Voor andere kanalen dan Telegram is
expliciet *.streaming.block.enabled: true vereist om blokantwoorden in te schakelen (QQ Bot
streamt blokantwoorden juist, tenzij channels.qqbot.streaming.mode "off" is).
Uitgebreide toolsamenvattingen worden bij het starten van de tool gegenereerd (zonder debounce); de Control UI
streamt tooluitvoer via agentgebeurtenissen wanneer beschikbaar.
Meer informatie: Streamen + opdelen.
Modelverwijzingen
Modelverwijzingen in de configuratie (bijvoorbeeld agents.defaults.model en agents.defaults.models) worden geparseerd door ze te splitsen op de eerste /.
- Gebruik
provider/modelbij het configureren van modellen. - Als de model-ID zelf
/bevat (OpenRouter-stijl), neem dan het providerprefix op (voorbeeld:openrouter/moonshotai/kimi-k2). - Als je de provider weglaat, probeert OpenClaw eerst een alias, daarna een unieke overeenkomst met een geconfigureerde provider voor die exacte model-ID, en valt het pas daarna terug op de geconfigureerde standaardprovider. Als die provider het geconfigureerde standaardmodel niet langer aanbiedt, valt OpenClaw terug op het eerste geconfigureerde provider/model in plaats van een verouderde standaard van een verwijderde provider te tonen.
Configuratie (minimaal)
Stel minimaal het volgende in:
agents.defaults.workspacechannels.whatsapp.allowFrom(sterk aanbevolen)