Technical reference
Architectuur van de agentruntime
OpenClaw beheert de ingebouwde agentruntime. Runtimecode bevindt zich onder src/agents/, model-/providertransport bevindt zich onder src/llm/ en contracten voor plugins worden beschikbaar gesteld via openclaw/plugin-sdk/*-barrels.
Runtime-indeling
| Pad | Beheert |
|---|---|
src/agents/embedded-agent-runner/ |
Ingebouwde poginglus (run.ts, run/), modelselectie en providernormalisatie (model*.ts), aanvraagparameters per provider (extra-params.*), Compaction en koppeling van transcript en sessie. |
src/agents/sessions/ |
Sessiepersistentie (session-manager.ts), resourcedetectie (package-manager.ts, resource-loader.ts), laden van extensions binnen de sessie, promptsjablonen, Skills, thema's en door de TUI ondersteunde toolrenderers (tools/). |
packages/agent-core/ |
Herbruikbare agentkern (@openclaw/agent-core): agentlus, harnastypen, berichten, Compaction-helpers, promptsjablonen, Skills en contracten voor sessieopslag. |
src/agents/runtime/ |
OpenClaw-facade die @openclaw/agent-core verbindt met de LLM-runtime van de plugin-SDK en deze opnieuw exporteert, samen met lokale proxyhulpprogramma's. |
src/agents/agent-tools*.ts |
Tooldefinities, parameterschema's, toolbeleid, adapters vóór/na toolaanroepen en bewerkingstools voor host/sandbox die door OpenClaw worden beheerd. |
src/agents/agent-hooks/ |
Ingebouwde runtimehooks: Compaction-beveiliging, Compaction-instructies, contextopschoning. |
src/agents/harness/ |
Harnasregister, selectiebeleid en levenscyclus voor de ingebouwde en door plugins geregistreerde harnassen. |
src/llm/ |
Model-/providerregister, transporthelpers en providerspecifieke streamimplementaties (src/llm/providers/). |
Grenzen
De kern roept de ingebouwde runtime aan via OpenClaw-modules en SDK-barrels; er zijn geen externe pakketten voor agentframeworks meer. Plugins gebruiken gedocumenteerde openclaw/plugin-sdk/*-toegangspunten en importeren geen interne onderdelen van src/**.
@earendil-works/pi-tui blijft een afhankelijkheid van derden: een toolkit voor terminalcomponenten die wordt gebruikt door de lokale TUI en toolrenderers voor sessies. Internalisering ervan zou een afzonderlijke vendoringinspanning zijn.
Manifesten
Resourcepakketten declareren OpenClaw-resources in package.json-metadata. Vermeldingen zijn bestandspaden of globs relatief ten opzichte van de pakketroot:
{ "openclaw": { "extensions": ["extensions/index.ts"], "skills": ["skills/*.md"], "prompts": ["prompts/*.md"], "themes": ["themes/*.json"] }}Resourcetypen die niet in een manifest staan, vallen terug op detectie van conventionele mappen extensions/, skills/, prompts/ en themes/.
Runtimeselectie
- De id van de ingebouwde runtime is
openclaw. De verouderde aliaspiwordt genormaliseerd naaropenclaw;codex-app-serverwordt genormaliseerd naarcodex. - Pluginharnassen registreren aanvullende runtime-id's (bijvoorbeeld
codex). - Runtimebeleid is model-/providergebonden
agentRuntime.id-configuratie (de modelvermelding heeft voorrang op de providervermelding). Niet ingesteld ofdefaultwordt omgezet naarauto. autoselecteert een geregistreerd pluginharnas dat de effectieve providerroute ondersteunt, en anders de ingebouwde OpenClaw-runtime. Alleen een provider- of modelvoorvoegsel selecteert nooit een harnas.- OpenAI mag
codexalleen impliciet selecteren voor een exacte officiële HTTPS-route voor Platform Responses of ChatGPT Responses zonder een zelf opgegeven aanvraagoverschrijving. Completions-adapters, aangepaste eindpunten en routes met zelf opgegeven aanvraaggedrag blijven opopenclaw; officiële HTTP-eindpunten met platte tekst worden geweigerd. Zie Impliciete OpenAI-agentruntime.
Generaties van modelruntimes
Bij het starten van de Gateway en bij publicatie van configuratie, plugins of authenticatie wordt per geconfigureerde agent één voorbereide modelruntimegeneratie gebouwd. Elke generatie beheert de gedetecteerde authenticatiesjabloon, het modelregister en de geprojecteerde modelcatalogus als één atomische momentopname. Agentuitvoeringen maken vanuit die momentopname afsplitsingen van veranderlijke authenticatie- en registeropslag; browse-, status-, Cron-, doctor-, TUI-, PDF- en afbeeldingspaden lezen de gepubliceerde catalogus in plaats van de bestandssysteemdetectie te herhalen.
Zelfstandige ingebedde runtimes publiceren dezelfde momentopnamestructuur op hun activeringsgrens. Een mislukte of verouderde generatie wordt nooit naast een nieuwere gedeeltelijke generatie aangeboden; de eigenaar van de levenscyclus moet eerst een volledige vervanging publiceren.