chore(i18n): refresh nl translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-06 11:30:24 +00:00
parent 6669058528
commit dc166cc4e3
7 changed files with 923 additions and 992 deletions

View File

@ -1,24 +1,24 @@
---
read_when:
- Je wilt Gateway-plugins of compatibele bundels installeren of beheren
- Je wilt Plugin-laadfouten debuggen
- Je wilt fouten bij het laden van plugins debuggen
sidebarTitle: Plugins
summary: CLI-referentie voor `openclaw plugins` (lijst, installeren, marketplace, verwijderen, inschakelen/uitschakelen, doctor)
summary: CLI-referentie voor `openclaw plugins` (list, install, marketplace, uninstall, enable/disable, doctor)
title: Plugins
x-i18n:
generated_at: "2026-05-06T09:06:20Z"
generated_at: "2026-05-06T11:28:05Z"
model: gpt-5.5
provider: openai
source_hash: e584092c6cdaf87681aef2ed106c299e3bab0552305b669c66b05deb61bf25ce
source_hash: c888d3fc8de0e25edc1c38f679d522a4e75cb09d986702451e29418d70a939f2
source_path: cli/plugins.md
workflow: 16
---
Beheer Gateway-plugins, hookpakketten en compatibele bundels.
Beheer Gateway-plugins, hook-packs en compatibele bundels.
<CardGroup cols={2}>
<Card title="Plugin system" href="/nl/tools/plugin">
Handleiding voor eindgebruikers voor het installeren, inschakelen en oplossen van problemen met plugins.
<Card title="Pluginsysteem" href="/nl/tools/plugin">
Eindgebruikershandleiding voor het installeren, inschakelen en oplossen van problemen met plugins.
</Card>
<Card title="Plugins beheren" href="/nl/plugins/manage-plugins">
Snelle voorbeelden voor installeren, weergeven, bijwerken, verwijderen en publiceren.
@ -30,7 +30,7 @@ Beheer Gateway-plugins, hookpakketten en compatibele bundels.
Manifestvelden en configuratieschema.
</Card>
<Card title="Beveiliging" href="/nl/gateway/security">
Beveiligingsverharding voor plugin-installaties.
Beveiligingshardening voor plugin-installaties.
</Card>
</CardGroup>
@ -62,16 +62,16 @@ openclaw plugins marketplace list <marketplace>
openclaw plugins marketplace list <marketplace> --json
```
Voor onderzoek naar een trage installatie, inspectie, verwijdering of registry-verversing voert u de
Voor onderzoek naar trage installatie, inspectie, verwijdering of registerverversing voer je de
opdracht uit met `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`. De trace schrijft fasetimings
naar stderr en houdt JSON-uitvoer parseerbaar. Zie [Foutopsporing](/nl/help/debugging#plugin-lifecycle-trace).
<Note>
Gebundelde plugins worden met OpenClaw meegeleverd. Sommige zijn standaard ingeschakeld (bijvoorbeeld gebundelde modelproviders, gebundelde spraakproviders en de gebundelde browserplugin); andere vereisen `plugins enable`.
Gebundelde plugins worden met OpenClaw meegeleverd. Sommige zijn standaard ingeschakeld (bijvoorbeeld gebundelde modelproviders, gebundelde spraakproviders en de gebundelde browser-plugin); andere vereisen `plugins enable`.
Native OpenClaw-plugins moeten `openclaw.plugin.json` leveren met een inline JSON Schema (`configSchema`, ook als dit leeg is). Compatibele bundels gebruiken in plaats daarvan hun eigen bundelmanifests.
Native OpenClaw-plugins moeten `openclaw.plugin.json` meeleveren met een inline JSON Schema (`configSchema`, zelfs als dit leeg is). Compatibele bundels gebruiken in plaats daarvan hun eigen bundelmanifesten.
`plugins list` toont `Format: openclaw` of `Format: bundle`. Uitgebreide list/info-uitvoer toont ook het bundelsubtype (`codex`, `claude` of `cursor`) plus gedetecteerde bundelmogelijkheden.
`plugins list` toont `Format: openclaw` of `Format: bundle`. Uitvoer van uitgebreide lijst/info toont ook het bundelsubtype (`codex`, `claude` of `cursor`) plus gedetecteerde bundelcapaciteiten.
</Note>
### Installeren
@ -94,17 +94,17 @@ openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo
```
<Warning>
Kale pakketnamen worden tijdens de lanceringsovergang standaard vanuit npm geïnstalleerd. Gebruik `clawhub:<package>` voor ClawHub. Behandel plugin-installaties als het uitvoeren van code. Geef de voorkeur aan vastgepinde versies.
Kale pakketnamen installeren standaard vanuit npm tijdens de lanceringsovergang. Gebruik `clawhub:<package>` voor ClawHub. Behandel plugin-installaties alsof je code uitvoert. Geef de voorkeur aan vastgepinde versies.
</Warning>
`plugins search` bevraagt ClawHub op installeerbare plugin-pakketten en drukt
installatieklare pakketnamen af. Het zoekt code-plugin- en bundle-plugin-pakketten,
geen Skills. Gebruik `openclaw skills search` voor ClawHub Skills.
`plugins search` doorzoekt ClawHub naar installeerbare plugin-pakketten en toont
pakketnamen die klaar zijn voor installatie. Het zoekt naar code-plugin- en bundel-plugin-pakketten,
niet naar skills. Gebruik `openclaw skills search` voor ClawHub-skills.
<Note>
ClawHub is het primaire distributie- en ontdekkingsoppervlak voor de meeste plugins. Npm
blijft een ondersteunde fallback en direct-installatiepad. Plugin-pakketten van OpenClaw
onder `@openclaw/*` worden weer op npm gepubliceerd; zie de huidige lijst
blijft een ondersteunde fallback en route voor directe installatie. Plugin-pakketten van OpenClaw
`@openclaw/*` worden weer op npm gepubliceerd; zie de huidige lijst
op [npmjs.com/org/openclaw](https://www.npmjs.com/org/openclaw) of de
[plugin-inventaris](/nl/plugins/plugin-inventory). Stabiele installaties gebruiken `latest`.
Installaties en updates via het bètakanaal geven de voorkeur aan de npm `beta` dist-tag wanneer die tag
@ -112,56 +112,56 @@ beschikbaar is, en vallen daarna terug op `latest`.
</Note>
<AccordionGroup>
<Accordion title="Config-includes en herstel van ongeldige configuratie">
Als uw sectie `plugins` wordt ondersteund door een enkelbestand-`$include`, schrijven `plugins install/update/enable/disable/uninstall` door naar dat opgenomen bestand en laten ze `openclaw.json` ongemoeid. Root-includes, include-arrays en includes met sibling-overrides falen gesloten in plaats van af te vlakken. Zie [Config-includes](/nl/gateway/configuration) voor de ondersteunde vormen.
<Accordion title="Configuratie-includes en herstel van ongeldige configuratie">
Als je `plugins`-sectie wordt ondersteund door een enkelbestand `$include`, schrijven `plugins install/update/enable/disable/uninstall` door naar dat opgenomen bestand en laten ze `openclaw.json` ongemoeid. Root-includes, include-arrays en includes met naastliggende overschrijvingen falen gesloten in plaats van te flattenen. Zie [Configuratie-includes](/nl/gateway/configuration) voor de ondersteunde vormen.
Als de configuratie ongeldig is tijdens installatie, faalt `plugins install` normaal gesproken gesloten en vertelt het u eerst `openclaw doctor --fix` uit te voeren. Tijdens het opstarten en hot reload van de Gateway faalt ongeldige plugin-configuratie gesloten zoals elke andere ongeldige configuratie; `openclaw doctor --fix` kan de ongeldige plugin-vermelding in quarantaine plaatsen. De enige gedocumenteerde uitzondering tijdens installatie is een smal herstelpad voor gebundelde plugins voor plugins die expliciet kiezen voor `openclaw.install.allowInvalidConfigRecovery`.
Als de configuratie tijdens installatie ongeldig is, faalt `plugins install` normaal gesproken gesloten en zegt het dat je eerst `openclaw doctor --fix` moet uitvoeren. Tijdens Gateway-opstart en hot reload faalt ongeldige plugin-configuratie gesloten zoals elke andere ongeldige configuratie; `openclaw doctor --fix` kan de ongeldige plugin-vermelding in quarantaine plaatsen. De enige gedocumenteerde uitzondering tijdens installatie is een smal herstelpad voor gebundelde plugins voor plugins die expliciet kiezen voor `openclaw.install.allowInvalidConfigRecovery`.
</Accordion>
<Accordion title="--force en opnieuw installeren versus bijwerken">
`--force` hergebruikt het bestaande installatiedoel en overschrijft een al geïnstalleerde plugin of hookpakket ter plekke. Gebruik dit wanneer u opzettelijk dezelfde id opnieuw installeert vanaf een nieuw lokaal pad, archief, ClawHub-pakket of npm-artefact. Voor routine-upgrades van een al gevolgde npm-plugin geeft u de voorkeur aan `openclaw plugins update <id-or-npm-spec>`.
`--force` hergebruikt het bestaande installatiedoel en overschrijft een reeds geïnstalleerde plugin of hook-pack ter plekke. Gebruik dit wanneer je opzettelijk dezelfde id opnieuw installeert vanuit een nieuw lokaal pad, archief, ClawHub-pakket of npm-artefact. Voor routinematige upgrades van een al gevolgde npm-plugin geef je de voorkeur aan `openclaw plugins update <id-or-npm-spec>`.
Als u `plugins install` uitvoert voor een plugin-id die al is geïnstalleerd, stopt OpenClaw en verwijst het u naar `plugins update <id-or-npm-spec>` voor een normale upgrade, of naar `plugins install <package> --force` wanneer u de huidige installatie echt vanuit een andere bron wilt overschrijven.
Als je `plugins install` uitvoert voor een plugin-id die al is geïnstalleerd, stopt OpenClaw en wijst het je op `plugins update <id-or-npm-spec>` voor een normale upgrade, of op `plugins install <package> --force` wanneer je de huidige installatie echt vanuit een andere bron wilt overschrijven.
</Accordion>
<Accordion title="--pin-bereik">
`--pin` is alleen van toepassing op npm-installaties. Het wordt niet ondersteund met `git:`-installaties; gebruik een expliciete git-ref zoals `git:github.com/acme/plugin@v1.2.3` wanneer u een vastgepinde bron wilt. Het wordt niet ondersteund met `--marketplace`, omdat marketplace-installaties marketplace-bronmetadata bewaren in plaats van een npm-spec.
<Accordion title="Bereik van --pin">
`--pin` geldt alleen voor npm-installaties. Het wordt niet ondersteund met `git:`-installaties; gebruik een expliciete git-ref zoals `git:github.com/acme/plugin@v1.2.3` wanneer je een vastgepinde bron wilt. Het wordt niet ondersteund met `--marketplace`, omdat marketplace-installaties marketplace-bronmetadata bewaren in plaats van een npm-specificatie.
</Accordion>
<Accordion title="--dangerously-force-unsafe-install">
`--dangerously-force-unsafe-install` is een noodoptie voor fout-positieven in de ingebouwde scanner voor gevaarlijke code. Hiermee kan de installatie doorgaan, zelfs wanneer de ingebouwde scanner `critical`-bevindingen meldt, maar het omzeilt **niet** de beleidsblokkades van de plugin-`before_install`-hook en omzeilt **niet** scanfouten.
`--dangerously-force-unsafe-install` is een noodoptie voor fout-positieven in de ingebouwde scanner voor gevaarlijke code. Hiermee kan de installatie doorgaan zelfs wanneer de ingebouwde scanner `critical`-bevindingen meldt, maar dit omzeilt **niet** beleidsblokkades van plugin-`before_install`-hooks en omzeilt **niet** scanfouten.
Deze CLI-vlag is van toepassing op install-/updateflows voor plugins. Gateway-ondersteunde installaties van Skill-afhankelijkheden gebruiken de overeenkomende aanvraag-override `dangerouslyForceUnsafeInstall`, terwijl `openclaw skills install` een aparte download-/installatieflow voor ClawHub Skills blijft.
Deze CLI-vlag geldt voor plugin-installatie- en updateflows. Gateway-gestuurde skill-afhankelijkheidsinstallaties gebruiken de bijbehorende `dangerouslyForceUnsafeInstall`-request-override, terwijl `openclaw skills install` een afzonderlijke download-/installatieflow voor ClawHub-skills blijft.
Als een plugin die u op ClawHub hebt gepubliceerd wordt geblokkeerd door een registryscan, gebruik dan de uitgeverstappen in [ClawHub](/nl/tools/clawhub).
Als een plugin die je op ClawHub hebt gepubliceerd wordt geblokkeerd door een registerscan, gebruik dan de uitgeversstappen in [ClawHub](/nl/tools/clawhub).
</Accordion>
<Accordion title="Hookpakketten en npm-specs">
`plugins install` is ook het installatieoppervlak voor hookpakketten die `openclaw.hooks` in `package.json` beschikbaar maken. Gebruik `openclaw hooks` voor gefilterde hookzichtbaarheid en inschakeling per hook, niet voor pakketinstallatie.
<Accordion title="Hook-packs en npm-specificaties">
`plugins install` is ook het installatieoppervlak voor hook-packs die `openclaw.hooks` in `package.json` blootstellen. Gebruik `openclaw hooks` voor gefilterde hook-zichtbaarheid en inschakeling per hook, niet voor pakketinstallatie.
Npm-specs zijn **alleen registry** (pakketnaam + optionele **exacte versie** of **dist-tag**). Git-/URL-/bestandsspecs en semver-bereiken worden geweigerd. Afhankelijkheidsinstallaties worden projectlokaal uitgevoerd met `--ignore-scripts` voor veiligheid, zelfs wanneer uw shell globale npm-installatie-instellingen heeft.
Npm-specificaties zijn **alleen-register** (pakketnaam + optionele **exacte versie** of **dist-tag**). Git-/URL-/bestandsspecificaties en semver-bereiken worden geweigerd. Afhankelijkheidsinstallaties worden projectlokaal uitgevoerd met `--ignore-scripts` voor veiligheid, zelfs wanneer je shell globale npm-installatie-instellingen heeft. Beheerde npm-roots voor plugins erven de npm-`overrides` op pakketniveau van OpenClaw, zodat hostbeveiligingspins ook gelden voor gehesen plugin-afhankelijkheden.
Gebruik `npm:<package>` wanneer u npm-resolutie expliciet wilt maken. Kale pakketspecs installeren tijdens de lanceringsovergang ook rechtstreeks vanuit npm.
Gebruik `npm:<package>` wanneer je npm-resolutie expliciet wilt maken. Kale pakketspecificaties installeren tijdens de lanceringsovergang ook rechtstreeks vanuit npm.
Kale specs en `@latest` blijven op het stabiele spoor. OpenClaw-correctieversies met datumstempel, zoals `2026.5.3-1`, zijn stabiele releases voor deze controle. Als npm een van die versies naar een prerelease resolveert, stopt OpenClaw en vraagt het u expliciet in te stappen met een prerelease-tag zoals `@beta`/`@rc` of een exacte prereleaseversie zoals `@1.2.3-beta.4`.
Kale specificaties en `@latest` blijven op het stabiele spoor. OpenClaw-correctieversies met datumstempel zoals `2026.5.3-1` zijn stabiele releases voor deze controle. Als npm een van die twee naar een prerelease resolveert, stopt OpenClaw en vraagt het je expliciet te kiezen met een prerelease-tag zoals `@beta`/`@rc` of een exacte prereleaseversie zoals `@1.2.3-beta.4`.
Als een kale installatiespec overeenkomt met een officiële plugin-id (bijvoorbeeld `diffs`), installeert OpenClaw de catalogusvermelding rechtstreeks. Gebruik een expliciete scoped spec (bijvoorbeeld `@scope/diffs`) om een npm-pakket met dezelfde naam te installeren.
Als een kale installatiespecificatie overeenkomt met een officiële plugin-id (bijvoorbeeld `diffs`), installeert OpenClaw de catalogusvermelding rechtstreeks. Gebruik een expliciete scoped specificatie (bijvoorbeeld `@scope/diffs`) om een npm-pakket met dezelfde naam te installeren.
</Accordion>
<Accordion title="Git-repository's">
Gebruik `git:<repo>` om rechtstreeks vanuit een git-repository te installeren. Ondersteunde vormen omvatten `git:github.com/owner/repo`, `git:owner/repo`, volledige `https://`-, `ssh://`-, `git://`-, `file://`- en `git@host:owner/repo.git`-clone-URL's. Voeg `@<ref>` of `#<ref>` toe om vóór installatie een branch, tag of commit uit te checken.
Gebruik `git:<repo>` om rechtstreeks vanuit een git-repository te installeren. Ondersteunde vormen zijn onder andere `git:github.com/owner/repo`, `git:owner/repo`, volledige `https://`-, `ssh://`-, `git://`-, `file://`- en `git@host:owner/repo.git`-clone-URL's. Voeg `@<ref>` of `#<ref>` toe om een branch, tag of commit uit te checken vóór installatie.
Git-installaties clonen naar een tijdelijke map, checken de gevraagde ref uit wanneer die aanwezig is, en gebruiken daarna de normale installer voor plugin-mappen. Dat betekent dat manifestvalidatie, scannen op gevaarlijke code, installatiewerk van pakketmanagers en installatierecords zich gedragen zoals bij npm-installaties. Vastgelegde git-installaties bevatten de bron-URL/ref plus de opgeloste commit, zodat `openclaw plugins update` de bron later opnieuw kan resolven.
Git-installaties clonen naar een tijdelijke directory, checken de gevraagde ref uit wanneer aanwezig en gebruiken daarna het normale installatieprogramma voor plugin-directories. Dat betekent dat manifestvalidatie, scanning op gevaarlijke code, installatiewerk van pakketbeheerders en installatierecords zich gedragen zoals bij npm-installaties. Opgenomen git-installaties bevatten de bron-URL/ref plus de opgeloste commit, zodat `openclaw plugins update` de bron later opnieuw kan resolven.
Gebruik na installatie vanuit git `openclaw plugins inspect <id> --runtime --json` om runtime-registraties zoals gateway-methoden en CLI-opdrachten te verifiëren. Als de plugin een CLI-root heeft geregistreerd met `api.registerCli`, voer die opdracht dan rechtstreeks uit via de OpenClaw-root-CLI, bijvoorbeeld `openclaw demo-plugin ping`.
</Accordion>
<Accordion title="Archieven">
Ondersteunde archieven: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Native OpenClaw-pluginarchieven moeten een geldig `openclaw.plugin.json` bevatten in de uitgepakte plugin-root; archieven die alleen `package.json` bevatten, worden geweigerd voordat OpenClaw installatierecords schrijft.
Ondersteunde archieven: `.zip`, `.tgz`, `.tar.gz`, `.tar`. Native OpenClaw-pluginarchieven moeten een geldige `openclaw.plugin.json` bevatten in de uitgepakte plugin-root; archieven die alleen `package.json` bevatten, worden geweigerd voordat OpenClaw installatierecords schrijft.
Gebruik `npm-pack:<path.tgz>` wanneer het bestand een npm-pack-tarball is en u
hetzelfde beheerde npm-root-installatiepad wilt testen dat door registry-installaties wordt gebruikt,
inclusief verificatie van `package-lock.json`, scannen van gehoste afhankelijkheden en
npm-installatierecords. Gewone archiefpaden worden nog steeds als lokale archieven geïnstalleerd
Gebruik `npm-pack:<path.tgz>` wanneer het bestand een npm-pack-tarball is en je
hetzelfde beheerde npm-root-installatiepad wilt testen dat door registerinstallaties wordt gebruikt,
inclusief verificatie van `package-lock.json`, scanning van gehesen afhankelijkheden en
npm-installatierecords. Gewone archiefpaden installeren nog steeds als lokale archieven
onder de plugin-extensieroot.
Claude-marketplace-installaties worden ook ondersteund.
@ -176,32 +176,32 @@ openclaw plugins install clawhub:openclaw-codex-app-server
openclaw plugins install clawhub:openclaw-codex-app-server@1.2.3
```
Kale npm-veilige plugin-specs worden tijdens de lanceringsovergang standaard vanuit npm geïnstalleerd:
Kale npm-veilige plugin-specificaties installeren tijdens de lanceringsovergang standaard vanuit npm:
```bash
openclaw plugins install openclaw-codex-app-server
```
Gebruik `npm:` om alleen-npm-resolutie expliciet te maken:
Gebruik `npm:` om npm-only-resolutie expliciet te maken:
```bash
openclaw plugins install npm:openclaw-codex-app-server
openclaw plugins install npm:@scope/plugin-name@1.0.1
```
OpenClaw controleert vóór installatie de geadverteerde plugin-API / minimale gateway-compatibiliteit. Wanneer de geselecteerde ClawHub-versie een ClawPack-artefact publiceert, downloadt OpenClaw de geversioneerde npm-pack `.tgz`, verifieert het de ClawHub-digestheader en de artefactdigest, en installeert het dit vervolgens via het normale archiefpad. Oudere ClawHub-versies zonder ClawPack-metadata installeren nog steeds via het legacy verificatiepad voor pakketarchieven. Vastgelegde installaties bewaren hun ClawHub-bronmetadata, artefactsoort, npm-integriteit, npm-shasum, tarballnaam en ClawPack-digestfeiten voor latere updates.
Ongeversioneerde ClawHub-installaties bewaren een ongeversioneerde vastgelegde spec zodat `openclaw plugins update` nieuwere ClawHub-releases kan volgen; expliciete versie- of tagselectoren zoals `clawhub:pkg@1.2.3` en `clawhub:pkg@beta` blijven vastgepind aan die selector.
OpenClaw controleert de geadverteerde plugin-API / minimale gateway-compatibiliteit vóór installatie. Wanneer de geselecteerde ClawHub-versie een ClawPack-artefact publiceert, downloadt OpenClaw de geversioneerde npm-pack `.tgz`, verifieert het de ClawHub-digest-header en de artefact-digest, en installeert het dit vervolgens via het normale archiefpad. Oudere ClawHub-versies zonder ClawPack-metadata installeren nog steeds via het legacy verificatiepad voor pakketarchieven. Opgenomen installaties bewaren hun ClawHub-bronmetadata, artefactsoort, npm-integriteit, npm-shasum, tarballnaam en ClawPack-digestfeiten voor latere updates.
Ongeversioneerde ClawHub-installaties bewaren een ongeversioneerde opgenomen specificatie zodat `openclaw plugins update` nieuwere ClawHub-releases kan volgen; expliciete versie- of tagselectors zoals `clawhub:pkg@1.2.3` en `clawhub:pkg@beta` blijven vastgepind op die selector.
#### Marketplace-stenografie
Gebruik de stenografie `plugin@marketplace` wanneer de marketplace-naam bestaat in Claude's lokale registry-cache op `~/.claude/plugins/known_marketplaces.json`:
Gebruik de stenografie `plugin@marketplace` wanneer de marketplace-naam bestaat in Claude's lokale registercache op `~/.claude/plugins/known_marketplaces.json`:
```bash
openclaw plugins marketplace list <marketplace-name>
openclaw plugins install <plugin-name>@<marketplace-name>
```
Gebruik `--marketplace` wanneer u de marketplace-bron expliciet wilt doorgeven:
Gebruik `--marketplace` wanneer je de marketplace-bron expliciet wilt doorgeven:
```bash
openclaw plugins install <plugin-name> --marketplace <marketplace-name>
@ -211,16 +211,16 @@ openclaw plugins install <plugin-name> --marketplace ./my-marketplace
```
<Tabs>
<Tab title="Marketplacebronnen">
- een bekende Claude-marketplacenaam uit `~/.claude/plugins/known_marketplaces.json`
- een lokale marketplaceroot of `marketplace.json`-pad
<Tab title="Marketplace sources">
- een bij Claude bekende marketplace-naam uit `~/.claude/plugins/known_marketplaces.json`
- een lokale marketplace-root of `marketplace.json`-pad
- een GitHub-repoverkorting zoals `owner/repo`
- een GitHub-repo-URL zoals `https://github.com/owner/repo`
- een git-URL
</Tab>
<Tab title="Regels voor externe marketplaces">
Voor externe marketplaces die vanuit GitHub of git worden geladen, moeten pluginvermeldingen binnen de gekloonde marketplace-repo blijven. OpenClaw accepteert relatieve padbronnen uit die repo en weigert HTTP(S)-, absolute-pad-, git-, GitHub- en andere niet-pad-pluginbronnen uit externe manifests.
<Tab title="Remote marketplace rules">
Voor externe marketplaces die vanuit GitHub of git worden geladen, moeten plugin-vermeldingen binnen de gekloonde marketplace-repo blijven. OpenClaw accepteert relatieve padbronnen uit die repo en weigert HTTP(S), absolute paden, git, GitHub en andere niet-pad-pluginbronnen uit externe manifests.
</Tab>
</Tabs>
@ -232,7 +232,7 @@ Voor lokale paden en archieven detecteert OpenClaw automatisch:
- Cursor-compatibele bundels (`.cursor-plugin/plugin.json`)
<Note>
Compatibele bundels worden geïnstalleerd in de normale pluginroot en doen mee aan dezelfde list/info/enable/disable-flow. Momenteel worden bundel-Skills, Claude command-skills, Claude `settings.json`-standaarden, Claude `.lsp.json` / door het manifest gedeclareerde `lspServers`-standaarden, Cursor command-skills en compatibele Codex-hookmappen ondersteund; andere gedetecteerde bundelmogelijkheden worden getoond in diagnostiek/info, maar zijn nog niet gekoppeld aan runtime-uitvoering.
Compatibele bundels worden in de normale plugin-root geïnstalleerd en nemen deel aan dezelfde list/info/enable/disable-flow. Momenteel worden bundle-skills, Claude command-skills, standaardwaarden voor Claude `settings.json`, standaardwaarden voor Claude `.lsp.json` / via manifest gedeclareerde `lspServers`, Cursor command-skills en compatibele Codex hook-mappen ondersteund; andere gedetecteerde bundle-mogelijkheden worden weergegeven in diagnostics/info, maar zijn nog niet gekoppeld aan runtime-uitvoering.
</Note>
### Lijst
@ -251,39 +251,39 @@ openclaw plugins search <query> --json
Toon alleen ingeschakelde plugins.
</ParamField>
<ParamField path="--verbose" type="boolean">
Schakel van de tabelweergave over naar detailregels per plugin met metadata voor bron/oorsprong/versie/activering.
Schakel over van de tabelweergave naar detailregels per plugin met metadata over bron/oorsprong/versie/activering.
</ParamField>
<ParamField path="--json" type="boolean">
Machineleesbare inventaris plus registerdiagnostiek en installatiestatus van pakketafhankelijkheden.
Machineleesbare inventaris plus registry-diagnostiek en installatiestatus van pakketafhankelijkheden.
</ParamField>
<Note>
`plugins list` leest eerst het opgeslagen lokale pluginregister, met een alleen-uit-manifest-afgeleide fallback wanneer het register ontbreekt of ongeldig is. Dit is nuttig om te controleren of een plugin is geïnstalleerd, ingeschakeld en zichtbaar is voor koude opstartplanning, maar het is geen live runtime-probe van een Gateway-proces dat al draait. Herstart na het wijzigen van plugincode, inschakeling, hookbeleid of `plugins.load.paths` de Gateway die het kanaal bedient voordat je verwacht dat nieuwe `register(api)`-code of hooks worden uitgevoerd. Controleer bij externe/containerimplementaties dat je het daadwerkelijke `openclaw gateway run`-child herstart, niet alleen een wrapperproces.
`plugins list` leest eerst de opgeslagen lokale plugin-registry, met een alleen-uit-manifest afgeleide fallback wanneer de registry ontbreekt of ongeldig is. Dit is nuttig om te controleren of een plugin is geïnstalleerd, ingeschakeld en zichtbaar is voor planning bij koude start, maar het is geen live runtime-probe van een al actief Gateway-proces. Start na het wijzigen van plugin-code, inschakeling, hook-beleid of `plugins.load.paths` de Gateway opnieuw die het kanaal bedient voordat je verwacht dat nieuwe `register(api)`-code of hooks worden uitgevoerd. Controleer bij externe/container-deployments dat je het werkelijke onderliggende `openclaw gateway run`-proces opnieuw start, niet alleen een wrapper-proces.
`plugins list --json` bevat voor elke plugin de `dependencyStatus` uit `package.json`
`plugins list --json` bevat de `dependencyStatus` van elke plugin uit `package.json`
`dependencies` en `optionalDependencies`. OpenClaw controleert of die pakketnamen
aanwezig zijn langs het normale Node `node_modules`-opzoekpad van de plugin; het
importeert geen plugin-runtimecode, voert geen pakketbeheerder uit en herstelt geen
ontbrekende afhankelijkheden.
importeert geen runtime-code van plugins, voert geen pakketbeheerder uit en repareert
ontbrekende afhankelijkheden niet.
</Note>
`plugins search` is een externe ClawHub-cataloguslookup. Het inspecteert geen lokale
status, wijzigt geen config, installeert geen pakketten en laadt geen plugin-runtimecode. Zoekresultaten bevatten de ClawHub-pakketnaam, familie, kanaal, versie, samenvatting en
een installatiehint zoals `openclaw plugins install clawhub:<package>`.
status, wijzigt geen configuratie, installeert geen pakketten en laadt geen runtime-code van plugins. Zoekresultaten bevatten de ClawHub-pakketnaam, familie, kanaal, versie, samenvatting en
een installatietip zoals `openclaw plugins install clawhub:<package>`.
Voor werk aan gebundelde plugins binnen een verpakte Docker-image, bind-mount je de plugin
bronmap over het overeenkomende verpakte bronpad, zoals
`/app/extensions/synology-chat`. OpenClaw ontdekt die gemounte bron-overlay
voor `/app/dist/extensions/synology-chat`; een gewoon gekopieerde bronmap
Voor werk aan meegeleverde plugins binnen een verpakte Docker-image kun je de plugin-bronmap
als bind-mount koppelen over het bijbehorende verpakte bronpad, zoals
`/app/extensions/synology-chat`. OpenClaw ontdekt die gekoppelde bron-overlay
vóór `/app/dist/extensions/synology-chat`; een gewone gekopieerde bronmap
blijft inert, zodat normale verpakte installaties nog steeds de gecompileerde dist gebruiken.
Voor runtime-hookdebugging:
Voor runtime-hook-debugging:
- `openclaw plugins inspect <id> --runtime --json` toont geregistreerde hooks en diagnostiek uit een inspectiepassage met geladen module. Runtime-inspectie installeert nooit afhankelijkheden; gebruik `openclaw doctor --fix` om verouderde afhankelijkheidsstatus op te schonen of ontbrekende downloadbare plugins te herstellen waarnaar in de config wordt verwezen.
- `openclaw plugins inspect <id> --runtime --json` toont geregistreerde hooks en diagnostiek van een inspectiepass waarbij de module is geladen. Runtime-inspectie installeert nooit afhankelijkheden; gebruik `openclaw doctor --fix` om legacy-afhankelijkheidsstatus op te schonen of ontbrekende downloadbare plugins te herstellen waarnaar in config wordt verwezen.
- `openclaw gateway status --deep --require-rpc` bevestigt de bereikbare Gateway, service-/proceshints, het configpad en de RPC-gezondheid.
- Niet-gebundelde conversatiehooks (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) vereisen `plugins.entries.<id>.hooks.allowConversationAccess=true`.
- Niet-meegeleverde gesprekshooks (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) vereisen `plugins.entries.<id>.hooks.allowConversationAccess=true`.
Gebruik `--link` om te voorkomen dat een lokale map wordt gekopieerd (voegt toe aan `plugins.load.paths`):
Gebruik `--link` om het kopiëren van een lokale map te vermijden (voegt toe aan `plugins.load.paths`):
```bash
openclaw plugins install -l ./my-plugin
@ -292,14 +292,14 @@ openclaw plugins install -l ./my-plugin
<Note>
`--force` wordt niet ondersteund met `--link`, omdat gekoppelde installaties het bronpad hergebruiken in plaats van over een beheerd installatiedoel heen te kopiëren.
Gebruik `--pin` bij npm-installaties om de opgeloste exacte spec (`name@version`) op te slaan in de beheerde pluginindex, terwijl het standaardgedrag ongepind blijft.
Gebruik `--pin` bij npm-installaties om de opgeloste exacte specificatie (`name@version`) op te slaan in de beheerde plugin-index, terwijl het standaardgedrag ongepind blijft.
</Note>
### Pluginindex
### Plugin-index
Installatiemetadata van plugins is machinebeheerde status, geen gebruikersconfig. Installaties en updates schrijven deze naar `plugins/installs.json` onder de actieve OpenClaw-statusmap. De top-level `installRecords`-map is de duurzame bron van installatiemetadata, inclusief records voor defecte of ontbrekende pluginmanifests. De `plugins`-array is de uit manifests afgeleide koude registercache. Het bestand bevat een waarschuwing om het niet te bewerken en wordt gebruikt door `openclaw plugins update`, verwijderen, diagnostiek en het koude pluginregister.
Installatiemetadata van plugins is machinebeheerde status, geen gebruikersconfiguratie. Installaties en updates schrijven dit naar `plugins/installs.json` onder de actieve OpenClaw-statusmap. De top-level `installRecords`-map is de duurzame bron van installatiemetadata, inclusief records voor kapotte of ontbrekende plugin-manifests. De `plugins`-array is de uit manifests afgeleide koude registry-cache. Het bestand bevat een waarschuwing om het niet te bewerken en wordt gebruikt door `openclaw plugins update`, uninstall, diagnostiek en de koude plugin-registry.
Wanneer OpenClaw meegeleverde verouderde `plugins.installs`-records in config ziet, verplaatst het die naar de pluginindex en verwijdert het de configsleutel; als een van beide schrijfacties mislukt, blijven de configrecords behouden zodat de installatiemetadata niet verloren gaat.
Wanneer OpenClaw meegeleverde legacy `plugins.installs`-records in config ziet, verplaatst het die naar de plugin-index en verwijdert het de configsleutel; als een van beide schrijfacties mislukt, blijven de configrecords behouden zodat de installatiemetadata niet verloren gaat.
### Verwijderen
@ -309,10 +309,10 @@ openclaw plugins uninstall <id> --dry-run
openclaw plugins uninstall <id> --keep-files
```
`uninstall` verwijdert pluginrecords uit `plugins.entries`, de opgeslagen pluginindex, plugin-allow/deny-listvermeldingen en gekoppelde `plugins.load.paths`-vermeldingen waar van toepassing. Tenzij `--keep-files` is ingesteld, verwijdert uninstall ook de gevolgde beheerde installatiemap wanneer die zich binnen de pluginextensionsroot van OpenClaw bevindt. Voor active-memory-plugins wordt de geheugensleuf teruggezet naar `memory-core`.
`uninstall` verwijdert pluginrecords uit `plugins.entries`, de opgeslagen plugin-index, plugin-allow-/denylist-vermeldingen en gekoppelde `plugins.load.paths`-vermeldingen waar van toepassing. Tenzij `--keep-files` is ingesteld, verwijdert uninstall ook de gevolgde beheerde installatiemap wanneer die zich binnen de plugin-extensieroot van OpenClaw bevindt. Voor active-memory-plugins wordt het geheugenslot teruggezet naar `memory-core`.
<Note>
`--keep-config` wordt ondersteund als verouderd alias voor `--keep-files`.
`--keep-config` wordt ondersteund als verouderde alias voor `--keep-files`.
</Note>
### Bijwerken
@ -325,29 +325,29 @@ openclaw plugins update @openclaw/voice-call
openclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-install
```
Updates gelden voor gevolgde plugininstallaties in de beheerde pluginindex en gevolgde hook-packinstallaties in `hooks.internal.installs`.
Updates gelden voor gevolgde plugin-installaties in de beheerde plugin-index en gevolgde hook-pack-installaties in `hooks.internal.installs`.
<AccordionGroup>
<Accordion title="Plugin-id versus npm-spec oplossen">
Wanneer je een plugin-id doorgeeft, hergebruikt OpenClaw de vastgelegde installatiespec voor die plugin. Dat betekent dat eerder opgeslagen dist-tags zoals `@beta` en exact gepinde versies ook bij latere `update <id>`-runs worden gebruikt.
<Accordion title="Resolving plugin id vs npm spec">
Wanneer je een plugin-id doorgeeft, hergebruikt OpenClaw de vastgelegde installatiespecificatie voor die plugin. Dat betekent dat eerder opgeslagen dist-tags zoals `@beta` en exacte gepinde versies ook bij latere `update <id>`-runs gebruikt blijven worden.
Voor npm-installaties kun je ook een expliciete npm-pakketspec met een dist-tag of exacte versie doorgeven. OpenClaw herleidt die pakketnaam naar het gevolgde pluginrecord, werkt die geïnstalleerde plugin bij en legt de nieuwe npm-spec vast voor toekomstige updates op basis van id.
Voor npm-installaties kun je ook een expliciete npm-pakketspecificatie met een dist-tag of exacte versie doorgeven. OpenClaw lost die pakketnaam terug op naar het gevolgde pluginrecord, werkt die geïnstalleerde plugin bij en legt de nieuwe npm-specificatie vast voor toekomstige updates op basis van id.
Het doorgeven van de npm-pakketnaam zonder versie of tag wordt ook herleid naar het gevolgde pluginrecord. Gebruik dit wanneer een plugin op een exacte versie was gepind en je die terug wilt verplaatsen naar de standaardreleasereeks van het register.
Het doorgeven van de npm-pakketnaam zonder versie of tag wordt ook terug opgelost naar het gevolgde pluginrecord. Gebruik dit wanneer een plugin op een exacte versie was gepind en je die wilt terugzetten naar de standaard releaselijn van de registry.
</Accordion>
<Accordion title="Updates voor het bètakanaal">
`openclaw plugins update` hergebruikt de gevolgde pluginspec tenzij je een nieuwe spec doorgeeft. `openclaw update` kent daarnaast het actieve OpenClaw-updatekanaal: op het bètakanaal proberen npm- en ClawHub-pluginrecords uit de standaardreeks eerst `@beta` en vallen daarna terug op de vastgelegde standaard-/latest-spec als er geen pluginbètarelease bestaat. Exacte versies en expliciete tags blijven gepind op die selector.
<Accordion title="Beta channel updates">
`openclaw plugins update` hergebruikt de gevolgde pluginspecificatie tenzij je een nieuwe specificatie doorgeeft. `openclaw update` kent daarnaast het actieve OpenClaw-updatekanaal: op het bètakanaal proberen npm- en ClawHub-pluginrecords op de standaardlijn eerst `@beta` en vallen daarna terug op de vastgelegde standaard-/latest-specificatie als er geen bèta-release van de plugin bestaat. Exacte versies en expliciete tags blijven gepind aan die selector.
</Accordion>
<Accordion title="Versiecontroles en integriteitsdrift">
Vóór een live npm-update controleert OpenClaw de geïnstalleerde pakketversie aan de hand van de npm-registermetadata. Als de geïnstalleerde versie en vastgelegde artifactidentiteit al overeenkomen met het opgeloste doel, wordt de update overgeslagen zonder te downloaden, opnieuw te installeren of `openclaw.json` te herschrijven.
<Accordion title="Version checks and integrity drift">
Vóór een live npm-update controleert OpenClaw de geïnstalleerde pakketversie tegen de metadata van de npm-registry. Als de geïnstalleerde versie en vastgelegde artifact-identiteit al overeenkomen met het opgeloste doel, wordt de update overgeslagen zonder te downloaden, opnieuw te installeren of `openclaw.json` te herschrijven.
Wanneer er een opgeslagen integriteitshash bestaat en de opgehaalde artifacthash verandert, behandelt OpenClaw dat als npm-artifactdrift. De interactieve opdracht `openclaw plugins update` toont de verwachte en werkelijke hashes en vraagt om bevestiging voordat wordt doorgegaan. Niet-interactieve updatehelpers falen gesloten tenzij de aanroeper een expliciet voortzettingsbeleid opgeeft.
Wanneer een opgeslagen integriteitshash bestaat en de opgehaalde artifact-hash verandert, behandelt OpenClaw dat als npm-artifactdrift. De interactieve opdracht `openclaw plugins update` drukt de verwachte en werkelijke hashes af en vraagt om bevestiging voordat wordt doorgegaan. Niet-interactieve updatehelpers falen gesloten tenzij de aanroeper een expliciet vervolgbeleid opgeeft.
</Accordion>
<Accordion title="--dangerously-force-unsafe-install bij update">
`--dangerously-force-unsafe-install` is ook beschikbaar bij `plugins update` als noodoverride voor fout-positieven van de ingebouwde dangerous-code-scan tijdens pluginupdates. Het omzeilt nog steeds geen plugin-`before_install`-beleidsblokkades of blokkering door scanfouten, en het geldt alleen voor pluginupdates, niet voor hook-packupdates.
<Accordion title="--dangerously-force-unsafe-install on update">
`--dangerously-force-unsafe-install` is ook beschikbaar op `plugins update` als break-glass-override voor false positives van de ingebouwde scan op gevaarlijke code tijdens plugin-updates. Het omzeilt nog steeds geen plugin-`before_install`-beleidsblokkades of blokkades door scanfouten, en het geldt alleen voor plugin-updates, niet voor hook-pack-updates.
</Accordion>
</AccordionGroup>
@ -359,21 +359,21 @@ openclaw plugins inspect <id> --runtime
openclaw plugins inspect <id> --json
```
Inspect toont identiteit, laadstatus, bron, manifestmogelijkheden, beleidsvlaggen, diagnostiek, installatiemetadata, bundelmogelijkheden en eventuele gedetecteerde MCP- of LSP-serverondersteuning zonder standaard plugin-runtime te importeren. Voeg `--runtime` toe om de pluginmodule te laden en geregistreerde hooks, tools, opdrachten, services, gatewaymethoden en HTTP-routes op te nemen. Runtime-inspectie rapporteert ontbrekende pluginafhankelijkheden direct; installaties en reparaties blijven in `openclaw plugins install`, `openclaw plugins update` en `openclaw doctor --fix`.
Inspect toont identiteit, laadstatus, bron, manifestmogelijkheden, beleidsvlaggen, diagnostiek, installatiemetadata, bundle-mogelijkheden en alle gedetecteerde ondersteuning voor MCP- of LSP-servers zonder standaard runtime van plugins te importeren. Voeg `--runtime` toe om de plugin-module te laden en geregistreerde hooks, tools, opdrachten, services, gateway-methoden en HTTP-routes op te nemen. Runtime-inspectie rapporteert ontbrekende plugin-afhankelijkheden rechtstreeks; installaties en reparaties blijven in `openclaw plugins install`, `openclaw plugins update` en `openclaw doctor --fix`.
CLI-opdrachten die eigendom zijn van plugins worden geïnstalleerd als root-`openclaw`-opdrachtgroepen. Nadat `inspect --runtime` een opdracht onder `cliCommands` toont, voer je die uit als `openclaw <command> ...`; bijvoorbeeld een plugin die `demo-git` registreert, kan worden gecontroleerd met `openclaw demo-git ping`.
CLI-opdrachten die eigendom zijn van plugins worden geïnstalleerd als root-`openclaw`-opdrachtgroepen. Nadat `inspect --runtime` een opdracht onder `cliCommands` toont, voer je die uit als `openclaw <command> ...`; een plugin die bijvoorbeeld `demo-git` registreert, kan worden gecontroleerd met `openclaw demo-git ping`.
Elke plugin wordt geclassificeerd op basis van wat deze daadwerkelijk tijdens runtime registreert:
Elke plugin wordt geclassificeerd op basis van wat die daadwerkelijk bij runtime registreert:
- **plain-capability** — één mogelijkheidstype (bijv. een provider-only-plugin)
- **hybrid-capability** — meerdere mogelijkheidstypen (bijv. tekst + spraak + afbeeldingen)
- **plain-capability** — één type mogelijkheid (bijv. een provider-only-plugin)
- **hybrid-capability** — meerdere typen mogelijkheden (bijv. tekst + spraak + afbeeldingen)
- **hook-only** — alleen hooks, geen mogelijkheden of oppervlakken
- **non-capability** — tools/opdrachten/services maar geen mogelijkheden
Zie [Pluginvormen](/nl/plugins/architecture#plugin-shapes) voor meer over het capabilitymodel.
Zie [Plugin-vormen](/nl/plugins/architecture#plugin-shapes) voor meer over het capability-model.
<Note>
De vlag `--json` geeft een machineleesbaar rapport dat geschikt is voor scripts en audits. `inspect --all` rendert een vlootbrede tabel met vorm, mogelijkheidstypen, compatibiliteitsmeldingen, bundelmogelijkheden en hook-samenvattingskolommen. `info` is een alias voor `inspect`.
De vlag `--json` voert een machineleesbaar rapport uit dat geschikt is voor scripts en audits. `inspect --all` rendert een vlootbrede tabel met kolommen voor vorm, capability-soorten, compatibiliteitsmeldingen, bundle-mogelijkheden en hook-samenvatting. `info` is een alias voor `inspect`.
</Note>
### Doctor
@ -382,13 +382,13 @@ De vlag `--json` geeft een machineleesbaar rapport dat geschikt is voor scripts
openclaw plugins doctor
```
`doctor` rapporteert laadfouten van plugins, manifest-/ontdekkingsdiagnostiek en compatibiliteitsmeldingen. Wanneer alles schoon is, wordt `No plugin issues detected.` afgedrukt.
`doctor` rapporteert laadfouten van plugins, manifest-/discovery-diagnostiek en compatibiliteitsmeldingen. Wanneer alles schoon is, wordt `No plugin issues detected.` afgedrukt.
Als een geconfigureerde plugin op schijf aanwezig is maar wordt geblokkeerd door de padveiligheidscontroles van de loader, behoudt configvalidatie de pluginvermelding en rapporteert deze als `present but blocked`. Los de voorafgaande diagnostiek voor de geblokkeerde plugin op, zoals padeigendom of world-writable-rechten, in plaats van de config `plugins.entries.<id>` of `plugins.allow` te verwijderen.
Als een geconfigureerde plugin op schijf aanwezig is maar door de padveiligheidscontroles van de loader wordt geblokkeerd, behoudt configvalidatie de plugin-vermelding en rapporteert die als `present but blocked`. Los de voorafgaande diagnose voor geblokkeerde plugins op, zoals padeigendom of world-writable permissies, in plaats van de config `plugins.entries.<id>` of `plugins.allow` te verwijderen.
Voor modulevormfouten zoals ontbrekende `register`/`activate`-exports, voer je opnieuw uit met `OPENCLAW_PLUGIN_LOAD_DEBUG=1` om een compacte exportsvormsamenvatting in de diagnostische uitvoer op te nemen.
Voor modulevormfouten zoals ontbrekende `register`/`activate`-exports voer je opnieuw uit met `OPENCLAW_PLUGIN_LOAD_DEBUG=1` om een compacte exportvormsamenvatting in de diagnostische uitvoer op te nemen.
### Register
### Registry
```bash
openclaw plugins registry
@ -396,24 +396,24 @@ openclaw plugins registry --refresh
openclaw plugins registry --json
```
Het lokale Plugin-register is het persistente koude leesmodel van OpenClaw voor de identiteit van geïnstalleerde Plugins, activering, bronmetadata en eigenaarschap van bijdragen. Normaal opstarten, opzoeken van provider-eigenaars, classificatie van kanaalconfiguratie en Plugin-inventaris kunnen het lezen zonder Plugin-runtime-modules te importeren.
Het lokale Plugin-register is het gepersisteerde koude leesmodel van OpenClaw voor geïnstalleerde Plugin-identiteit, inschakelstatus, bronmetadata en eigenaarschap van bijdragen. Normaal opstarten, opzoeken van provider-eigenaars, classificatie van kanaalconfiguratie en Plugin-inventaris kunnen het lezen zonder Plugin-runtime-modules te importeren.
Gebruik `plugins registry` om te controleren of het persistente register aanwezig, actueel of verouderd is. Gebruik `--refresh` om het opnieuw op te bouwen vanuit de persistente Plugin-index, het configuratiebeleid en manifest-/pakketmetadata. Dit is een herstelpad, geen runtime-activeringspad.
Gebruik `plugins registry` om te controleren of het gepersisteerde register aanwezig, actueel of verouderd is. Gebruik `--refresh` om het opnieuw op te bouwen op basis van de gepersisteerde Plugin-index, het configuratiebeleid en manifest-/pakketmetadata. Dit is een herstelpad, geen runtime-activeringspad.
`openclaw doctor --fix` herstelt ook registergerelateerde beheerde npm-afwijkingen: als een verweesd of hersteld `@openclaw/*`-pakket onder de beheerde Plugin-npm-root een gebundelde Plugin overschaduwt, verwijdert doctor dat verouderde pakket en bouwt het register opnieuw op zodat het opstarten valideert tegen het gebundelde manifest.
`openclaw doctor --fix` herstelt ook door beheerde npm veroorzaakte drift rond het register: als een verweesd of hersteld `@openclaw/*`-pakket onder de beheerde Plugin-npm-root een gebundelde Plugin overschaduwt, verwijdert doctor dat verouderde pakket en bouwt het register opnieuw op zodat opstarten wordt gevalideerd tegen het gebundelde manifest.
<Warning>
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` is een verouderde noodschakelaar voor compatibiliteit bij leesfouten in het register. Geef de voorkeur aan `plugins registry --refresh` of `openclaw doctor --fix`; de env-fallback is alleen bedoeld voor noodherstel van het opstarten terwijl de migratie wordt uitgerold.
`OPENCLAW_DISABLE_PERSISTED_PLUGIN_REGISTRY=1` is een verouderde break-glass-compatibiliteitsschakelaar voor leesfouten in het register. Geef de voorkeur aan `plugins registry --refresh` of `openclaw doctor --fix`; de env-fallback is alleen bedoeld voor noodherstel van het opstarten terwijl de migratie wordt uitgerold.
</Warning>
### Marketplace
### Marktplaats
```bash
openclaw plugins marketplace list <source>
openclaw plugins marketplace list <source> --json
```
De Marketplace-lijst accepteert een lokaal Marketplace-pad, een `marketplace.json`-pad, een GitHub-afkorting zoals `owner/repo`, een GitHub-repo-URL of een git-URL. `--json` toont het opgeloste bronlabel plus het geparseerde Marketplace-manifest en de Plugin-vermeldingen.
De marktplaatslijst accepteert een lokaal marktplaatspad, een `marketplace.json`-pad, een GitHub-afkorting zoals `owner/repo`, een GitHub-repo-URL of een git-URL. `--json` drukt het opgeloste bronlabel af, plus het geparsete marktplaatsmanifest en de Plugin-vermeldingen.
## Gerelateerd

View File

@ -2,50 +2,55 @@
read_when:
- Loguitvoer of -indelingen wijzigen
- CLI- of Gateway-uitvoer debuggen
summary: Logoppervlakken, bestandslogs, WS-logstijlen en consoleopmaak
title: Gateway-logregistratie
summary: Logoppervlakken, bestandslogs, WS-logstijlen en console-opmaak
title: Gateway-logboekregistratie
x-i18n:
generated_at: "2026-05-06T09:14:00Z"
generated_at: "2026-05-06T11:28:00Z"
model: gpt-5.5
provider: openai
source_hash: 078b4196ef1c5af5f7f0a4253f704d90d474a3ff668ec555559cab56cbcb15c6
source_hash: 16bce5763754d13f855a46777b4c3cc7a7c966e35e0cd08a15f359fd22623bcb
source_path: gateway/logging.md
workflow: 16
---
# Logging
# Logregistratie
Voor een gebruikersgericht overzicht (CLI + Control-UI + configuratie), zie [/logging](/nl/logging).
Voor een gebruikersgerichte overzichtspagina (CLI + Control UI + configuratie), zie [/logging](/nl/logging).
OpenClaw heeft twee log-"oppervlakken":
- **Console-uitvoer** (wat je ziet in de terminal / Debug-UI).
- **Console-uitvoer** (wat je in de terminal / Debug UI ziet).
- **Bestandslogs** (JSON-regels) geschreven door de Gateway-logger.
Bij het opstarten logt de Gateway het opgeloste standaardmodel voor de agent samen met de
Bij het opstarten logt de Gateway het opgeloste standaard-agentmodel samen met de
modusstandaarden die nieuwe sessies beinvloeden, bijvoorbeeld:
```text
agent model: openai-codex/gpt-5.5 (thinking=medium, fast=on)
```
`thinking` komt uit de standaardagent, modelparameters of globale agentstandaard;
`thinking` komt uit de standaardagent, modelparameters of de globale agentstandaard;
wanneer dit niet is ingesteld, toont de opstartsamenvatting `medium`. `fast` komt uit de
standaardagent of de modelparameters `fastMode`.
standaardagent of model-`fastMode`-parameters.
## Bestandsgebaseerde logger
- Het standaard roterende logbestand staat onder `/tmp/openclaw/` (een bestand per dag): `openclaw-YYYY-MM-DD.log`
- Het standaard rollende logbestand staat onder `/tmp/openclaw/` (een bestand per dag): `openclaw-YYYY-MM-DD.log`
- De datum gebruikt de lokale tijdzone van de Gateway-host.
- Actieve logbestanden roteren bij `logging.maxFileBytes` (standaard: 100 MB), waarbij
maximaal vijf genummerde archieven worden bewaard en daarna verder wordt geschreven naar een nieuw actief bestand.
maximaal vijf genummerde archieven worden bewaard en er verder naar een nieuw actief bestand wordt geschreven.
- Het pad en niveau van het logbestand kunnen worden geconfigureerd via `~/.openclaw/openclaw.json`:
- `logging.file`
- `logging.level`
De bestandsindeling is een JSON-object per regel.
Het tabblad Logs in de Control-UI volgt dit bestand via de Gateway (`logs.tail`).
Talk, realtime spraak en beheerde-kamer-codepaden gebruiken de gedeelde bestandslogger voor
begrensde levenscyclusrecords. Deze records zijn bedoeld voor operationele foutopsporing
en OTLP-logexport; transcripttekst, audiopayloads, beurt-id's, oproep-id's en
provider-item-id's worden niet naar het logrecord gekopieerd.
Het tabblad Logs in de Control UI volgt dit bestand via de Gateway (`logs.tail`).
De CLI kan hetzelfde doen:
```bash
@ -55,11 +60,12 @@ openclaw logs --follow
**Uitgebreid versus logniveaus**
- **Bestandslogs** worden uitsluitend beheerd door `logging.level`.
- `--verbose` beinvloedt alleen de **console-uitgebreidheid** (en WS-logstijl); het verhoogt **niet**
- `--verbose` beinvloedt alleen **console-uitgebreidheid** (en WS-logstijl); het verhoogt **niet**
het logniveau van bestanden.
- Stel `logging.level` in op `debug` of `trace` om details die alleen in uitgebreide modus beschikbaar zijn in bestandslogs vast te leggen.
- Trace-logging bevat ook diagnostische timingsamenvattingen voor geselecteerde hot paths,
zoals voorbereiding van de Plugin-toolfactory. Zie
- Om details die alleen in uitgebreide uitvoer staan in bestandslogs vast te leggen, stel je `logging.level` in op `debug` of
`trace`.
- Trace-logregistratie bevat ook diagnostische timingsamenvattingen voor geselecteerde hot paths,
zoals de voorbereiding van Plugin-tool-factories. Zie
[/tools/plugin#slow-plugin-tool-setup](/nl/tools/plugin#slow-plugin-tool-setup).
## Consolevastlegging
@ -67,7 +73,7 @@ openclaw logs --follow
De CLI legt `console.log/info/warn/error/debug/trace` vast en schrijft deze naar bestandslogs,
terwijl ze nog steeds naar stdout/stderr worden afgedrukt.
Je kunt de uitgebreidheid van de console onafhankelijk afstemmen via:
Je kunt console-uitgebreidheid onafhankelijk afstemmen via:
- `logging.consoleLevel` (standaard `info`)
- `logging.consoleStyle` (`pretty` | `compact` | `json`)
@ -75,30 +81,30 @@ Je kunt de uitgebreidheid van de console onafhankelijk afstemmen via:
## Redactie
OpenClaw kan gevoelige tokens maskeren voordat log- of transcriptuitvoer het
proces verlaat. Dit redactiebeleid voor logging wordt toegepast op console-, bestandslog-, OTLP
logrecord- en sessietranscript-tekstuitgangen, zodat overeenkomende geheime waarden worden
proces verlaat. Dit redactiebeleid voor logregistratie wordt toegepast op console-, bestandslog-, OTLP-
logrecord- en sessietranscripttekst-sinks, zodat overeenkomende geheime waarden worden
gemaskeerd voordat JSONL-regels of berichten naar schijf worden geschreven.
- `logging.redactSensitive`: `off` | `tools` (standaard: `tools`)
- `logging.redactPatterns`: array van regex-strings (overschrijft standaarden)
- Gebruik ruwe regex-strings (automatisch `gi`), of `/pattern/flags` als je aangepaste flags nodig hebt.
- Overeenkomsten worden gemaskeerd door de eerste 6 + laatste 4 tekens te behouden (lengte >= 18), anders `***`.
- Standaarden dekken gangbare sleuteltoewijzingen, CLI-flags, JSON-velden, bearer-headers, PEM-blokken, populaire tokenprefixen en veldnamen voor betaalgegevens zoals kaartnummer, CVC/CVV, gedeeld betalingstoken en betaalreferentie.
- Standaarden dekken veelvoorkomende key-toewijzingen, CLI-flags, JSON-velden, bearer-headers, PEM-blokken, populaire tokenprefixen en veldnamen voor betaalgegevens zoals kaartnummer, CVC/CVV, gedeeld betalingstoken en betaalcredential.
Sommige veiligheidsgrenzen redigeren altijd, ongeacht `logging.redactSensitive`.
Dat omvat Control-UI tool-call-events, uitvoer van de tool `sessions_history`,
exports voor diagnostische ondersteuning, providerfoutobservaties, weergave van exec-goedkeuringsopdrachten
Dit omvat Control UI-tool-call-events, `sessions_history`-tooluitvoer,
diagnostische supportexports, providerfoutobservaties, weergave van exec-goedkeuringscommando's
en Gateway WebSocket-protocollogs. Deze oppervlakken kunnen nog steeds
`logging.redactPatterns` gebruiken als aanvullende patronen, maar `redactSensitive: "off"`
zorgt er niet voor dat ze ruwe geheimen uitsturen.
zorgt er niet voor dat ze ruwe geheimen uitstoten.
## Gateway WebSocket-logs
De Gateway drukt WebSocket-protocollogs af in twee modi:
De Gateway drukt WebSocket-protocollogs in twee modi af:
- **Normale modus (geen `--verbose`)**: alleen "interessante" RPC-resultaten worden afgedrukt:
- fouten (`ok=false`)
- trage aanroepen (standaarddrempel: `>= 50ms`)
- trage oproepen (standaarddrempel: `>= 50ms`)
- parsefouten
- **Uitgebreide modus (`--verbose`)**: drukt al het WS-verzoek-/antwoordverkeer af.
@ -124,27 +130,27 @@ openclaw gateway --verbose --ws-log compact
openclaw gateway --verbose --ws-log full
```
## Consoleopmaak (subsysteemlogging)
## Console-opmaak (subsystem-logregistratie)
De consoleformatter is **TTY-bewust** en drukt consistente, voorafgefixte regels af.
Subsysteemloggers houden uitvoer gegroepeerd en scanbaar.
De consoleformatter is **TTY-bewust** en drukt consistente regels met prefix af.
Subsystemloggers houden uitvoer gegroepeerd en scanbaar.
Gedrag:
- **Subsysteemprefixen** op elke regel (bijv. `[gateway]`, `[canvas]`, `[tailscale]`)
- **Subsysteemkleuren** (stabiel per subsysteem) plus niveaukleuring
- **Kleur wanneer uitvoer een TTY is of de omgeving eruitziet als een rijke terminal** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), respecteert `NO_COLOR`
- **Verkorte subsysteemprefixen**: verwijdert voorloop `gateway/` + `channels/`, behoudt laatste 2 segmenten (bijv. `whatsapp/outbound`)
- **Sub-loggers per subsysteem** (automatische prefix + gestructureerd veld `{ subsystem }`)
- **`logRaw()`** voor QR-/UX-uitvoer (geen prefix, geen opmaak)
- **Subsystemprefixen** op elke regel (bijv. `[gateway]`, `[canvas]`, `[tailscale]`)
- **Subsystemkleuren** (stabiel per subsystem) plus niveaukleuring
- **Kleur wanneer uitvoer een TTY is of de omgeving lijkt op een rijke terminal** (`TERM`/`COLORTERM`/`TERM_PROGRAM`), respecteert `NO_COLOR`
- **Verkorte subsystemprefixen**: laat voorloop-`gateway/` + `channels/` vallen, behoudt laatste 2 segmenten (bijv. `whatsapp/outbound`)
- **Subloggers per subsystem** (automatische prefix + gestructureerd veld `{ subsystem }`)
- **`logRaw()`** voor QR/UX-uitvoer (geen prefix, geen opmaak)
- **Consolestijlen** (bijv. `pretty | compact | json`)
- **Consolelogniveau** los van bestandslogniveau (bestand behoudt volledige details wanneer `logging.level` is ingesteld op `debug`/`trace`)
- **WhatsApp-berichtinhoud** wordt gelogd op `debug` (gebruik `--verbose` om die te zien)
- **WhatsApp-berichtinhouden** worden gelogd op `debug` (gebruik `--verbose` om ze te zien)
Dit houdt bestaande bestandslogs stabiel terwijl interactieve uitvoer scanbaar wordt.
## Gerelateerd
- [Logging](/nl/logging)
- [Logregistratie](/nl/logging)
- [OpenTelemetry-export](/nl/gateway/opentelemetry)
- [Diagnostiekexport](/nl/gateway/diagnostics)
- [Diagnostische export](/nl/gateway/diagnostics)

View File

@ -1,39 +1,40 @@
---
read_when:
- Je wilt OpenClaw-modelgebruik, berichtenstroom of sessiestatistieken naar een OpenTelemetry-collector sturen
- Je koppelt traceringen, metriekgegevens of logboeken aan Grafana, Datadog, Honeycomb, New Relic, Tempo of een andere OTLP-backend
- Je hebt de exacte namen van metrieken, span-namen of attribuutstructuren nodig om dashboards of waarschuwingen te bouwen
summary: Exporteer OpenClaw-diagnostiek naar elke OpenTelemetry-collector via de diagnostics-otel Plugin (OTLP/HTTP)
- Je wilt OpenClaw-modelgebruik, berichtstromen of sessiemetrieken naar een OpenTelemetry-collector sturen
- Je koppelt traces, metrieken of logs aan Grafana, Datadog, Honeycomb, New Relic, Tempo of een andere OTLP-backend
- Je hebt de exacte namen van metrieken, namen van spans of attribuutstructuren nodig om dashboards of waarschuwingen te bouwen
summary: Exporteer OpenClaw-diagnostiek naar elke OpenTelemetry-collector via de diagnostics-otel-Plugin (OTLP/HTTP)
title: OpenTelemetry-export
x-i18n:
generated_at: "2026-05-06T09:15:08Z"
generated_at: "2026-05-06T11:28:14Z"
model: gpt-5.5
provider: openai
source_hash: 2d52e5072fcdb097a3dce36a13d9470cea8c169d2af49998cd727814013c411e
source_hash: b09453a4a1592d2698de6340e5f006ef16edfd8e86132285c48865d468d20ab6
source_path: gateway/opentelemetry.md
workflow: 16
---
OpenClaw exporteert diagnostiek via de officiële `diagnostics-otel`-plugin
met **OTLP/HTTP (protobuf)**. Elke collector of backend die OTLP/HTTP accepteert
werkt zonder codewijzigingen. Zie [Logboekregistratie](/nl/logging) voor lokale bestandslogs en hoe je ze leest.
OpenClaw exporteert diagnostiek via de officiële `diagnostics-otel` plugin
met **OTLP/HTTP (protobuf)**. Elke collector of backend die OTLP/HTTP
accepteert, werkt zonder codewijzigingen. Zie
[Logging](/nl/logging) voor lokale bestandslogs en hoe je ze leest.
## Hoe het samenwerkt
## Hoe het samenhangt
- **Diagnostische gebeurtenissen** zijn gestructureerde, procesinterne records die worden uitgezonden door de
Gateway en gebundelde plugins voor modelruns, berichtstromen, sessies, wachtrijen,
- **Diagnostiek-events** zijn gestructureerde records binnen het proces die worden uitgezonden door de
Gateway en gebundelde plugins voor modelruns, berichtstroom, sessies, wachtrijen
en exec.
- De **`diagnostics-otel`-plugin** abonneert zich op die gebeurtenissen en exporteert ze als
OpenTelemetry-**metrics**, **traces** en **logs** via OTLP/HTTP.
- **Provider-aanroepen** ontvangen een W3C `traceparent`-header van OpenClaw's
vertrouwde spancontext voor modelaanroepen wanneer het providertransport aangepaste
- De **`diagnostics-otel` plugin** abonneert zich op die events en exporteert ze als
OpenTelemetry **metrics**, **traces** en **logs** via OTLP/HTTP.
- **Providercalls** ontvangen een W3C `traceparent`-header van OpenClaw's
vertrouwde spancontext voor modelcalls wanneer het providertransport aangepaste
headers accepteert. Door plugins uitgezonden tracecontext wordt niet doorgegeven.
- Exporters worden alleen gekoppeld wanneer zowel het diagnostiekoppervlak als de plugin zijn
ingeschakeld, zodat de procesinterne kosten standaard vrijwel nul blijven.
- Exporters worden alleen gekoppeld wanneer zowel het diagnostiekoppervlak als de plugin
zijn ingeschakeld, zodat de kosten binnen het proces standaard bijna nul blijven.
## Snelstart
## Snel starten
Installeer voor pakketinstallaties eerst de plugin:
Installeer bij pakketinstallaties eerst de plugin:
```bash
openclaw plugins install clawhub:@openclaw/diagnostics-otel
@ -64,7 +65,7 @@ openclaw plugins install clawhub:@openclaw/diagnostics-otel
}
```
Je kunt de plugin ook inschakelen vanuit de CLI:
Je kunt de plugin ook inschakelen via de CLI:
```bash
openclaw plugins enable diagnostics-otel
@ -76,11 +77,11 @@ openclaw plugins enable diagnostics-otel
## Geëxporteerde signalen
| Signaal | Wat erin terechtkomt |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
| **Metrics** | Counters en histogrammen voor tokengebruik, kosten, runduur, berichtstroom, wachtrijlanes, sessiestatus, exec en geheugendruk. |
| **Traces** | Spans voor modelgebruik, modelaanroepen, harness-levenscyclus, tooluitvoering, exec, webhook-/berichtverwerking, contextopbouw en toollussen. |
| **Logs** | Gestructureerde `logging.file`-records die via OTLP worden geëxporteerd wanneer `diagnostics.otel.logs` is ingeschakeld. |
| Signaal | Wat erin terechtkomt |
| ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Metrics** | Counters en histogrammen voor tokengebruik, kosten, run-duur, berichtstroom, Talk-events, wachtrijlanes, sessiestatus/-herstel, exec en geheugendruk. |
| **Traces** | Spans voor modelgebruik, modelcalls, harness-lifecycle, tooluitvoering, exec, webhook-/berichtverwerking, contextopbouw en toollussen. |
| **Logs** | Gestructureerde `logging.file`-records die via OTLP worden geëxporteerd wanneer `diagnostics.otel.logs` is ingeschakeld. |
Schakel `traces`, `metrics` en `logs` onafhankelijk van elkaar in of uit. Alle drie staan standaard aan
wanneer `diagnostics.otel.enabled` true is.
@ -97,14 +98,14 @@ wanneer `diagnostics.otel.enabled` true is.
tracesEndpoint: "http://otel-collector:4318/v1/traces",
metricsEndpoint: "http://otel-collector:4318/v1/metrics",
logsEndpoint: "http://otel-collector:4318/v1/logs",
protocol: "http/protobuf", // grpc wordt genegeerd
protocol: "http/protobuf", // grpc is ignored
serviceName: "openclaw-gateway",
headers: { "x-collector-token": "..." },
traces: true,
metrics: true,
logs: true,
sampleRate: 0.2, // root-span sampler, 0.0..1.0
flushIntervalMs: 60000, // metric-exportinterval (min 1000ms)
flushIntervalMs: 60000, // metric export interval (min 1000ms)
captureContent: {
enabled: false,
inputMessages: false,
@ -120,36 +121,39 @@ wanneer `diagnostics.otel.enabled` true is.
### Omgevingsvariabelen
| Variabele | Doel |
| ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Overschrijft `diagnostics.otel.endpoint`. Als de waarde al `/v1/traces`, `/v1/metrics` of `/v1/logs` bevat, wordt die ongewijzigd gebruikt. |
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` / `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Signaalspecifieke endpoint-overschrijvingen die worden gebruikt wanneer de overeenkomende configuratiesleutel `diagnostics.otel.*Endpoint` niet is ingesteld. Signaalspecifieke configuratie wint van signaalspecifieke env, die wint van het gedeelde endpoint. |
| `OTEL_SERVICE_NAME` | Overschrijft `diagnostics.otel.serviceName`. |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Overschrijft het wireprotocol; alleen `http/protobuf` wordt vandaag gehonoreerd. |
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Stel in op `gen_ai_latest_experimental` om het nieuwste experimentele GenAI-spanattribuut (`gen_ai.provider.name`) uit te zenden in plaats van het verouderde `gen_ai.system`. GenAI-metrics gebruiken altijd begrensde semantische attributen met lage cardinaliteit. |
| `OPENCLAW_OTEL_PRELOADED` | Stel in op `1` wanneer een andere preload of hostproces de globale OpenTelemetry SDK al heeft geregistreerd. De plugin slaat dan zijn eigen NodeSDK-levenscyclus over, maar koppelt nog steeds diagnostische listeners en respecteert `traces`/`metrics`/`logs`. |
| Variabele | Doel |
| ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `OTEL_EXPORTER_OTLP_ENDPOINT` | Overschrijft `diagnostics.otel.endpoint`. Als de waarde al `/v1/traces`, `/v1/metrics` of `/v1/logs` bevat, wordt deze ongewijzigd gebruikt. |
| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` / `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` / `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` | Signaalspecifieke endpoint-overschrijvingen die worden gebruikt wanneer de bijbehorende configuratiesleutel `diagnostics.otel.*Endpoint` niet is ingesteld. Signaalspecifieke configuratie wint van signaalspecifieke env, die wint van het gedeelde endpoint. |
| `OTEL_SERVICE_NAME` | Overschrijft `diagnostics.otel.serviceName`. |
| `OTEL_EXPORTER_OTLP_PROTOCOL` | Overschrijft het wire-protocol (vandaag wordt alleen `http/protobuf` gehonoreerd). |
| `OTEL_SEMCONV_STABILITY_OPT_IN` | Stel in op `gen_ai_latest_experimental` om het nieuwste experimentele GenAI-spanattribuut (`gen_ai.provider.name`) uit te zenden in plaats van de verouderde `gen_ai.system`. GenAI-metrics gebruiken altijd begrensde semantische attributen met lage cardinaliteit. |
| `OPENCLAW_OTEL_PRELOADED` | Stel in op `1` wanneer een andere preload of hostproces de globale OpenTelemetry SDK al heeft geregistreerd. De plugin slaat dan zijn eigen NodeSDK-lifecycle over, maar koppelt nog steeds diagnostieklisteners en respecteert `traces`/`metrics`/`logs`. |
## Privacy en inhoud vastleggen
## Privacy en contentopname
Ruwe model-/toolinhoud wordt standaard **niet** geëxporteerd. Spans bevatten begrensde
Ruwe model-/toolcontent wordt standaard **niet** geëxporteerd. Spans bevatten begrensde
identifiers (kanaal, provider, model, foutcategorie, request-id's met alleen hash)
en bevatten nooit prompttekst, antwoordtekst, toolinvoer, tooluitvoer of
en bevatten nooit prompttekst, antwoordtekst, toolinputs, tooloutputs of
sessiesleutels.
Talk-metrics exporteren alleen begrensde eventmetadata zoals modus, transport,
provider en eventtype. Ze bevatten geen transcripties, audiopayloads,
sessie-id's, turn-id's, call-id's, room-id's of handoff-tokens.
Uitgaande modelrequests kunnen een W3C `traceparent`-header bevatten. Die header wordt
alleen gegenereerd vanuit OpenClaw-eigen diagnostische tracecontext voor de actieve modelaanroep.
Bestaande door de aanroeper geleverde `traceparent`-headers worden vervangen, zodat plugins of
aangepaste provideropties geen cross-service trace-afstamming kunnen vervalsen.
alleen gegenereerd uit door OpenClaw beheerde diagnostische tracecontext voor de actieve modelcall.
Bestaande door de caller aangeleverde `traceparent`-headers worden vervangen, zodat plugins of
aangepaste provideropties geen cross-service trace-afkomst kunnen spoofen.
Stel `diagnostics.otel.captureContent.*` alleen in op `true` wanneer je collector en
retentiebeleid zijn goedgekeurd voor prompt-, antwoord-, tool- of systeemprompttekst.
retentiebeleid zijn goedgekeurd voor prompt-, antwoord-, tool- of system-prompttekst.
Elke subsleutel is afzonderlijk opt-in:
- `inputMessages` - inhoud van gebruikersprompts.
- `outputMessages` - inhoud van modelantwoorden.
- `toolInputs` - payloads van toolargumenten.
- `toolOutputs` - payloads van toolresultaten.
- `systemPrompt` - samengestelde systeem-/developerprompt.
- `inputMessages` - inhoud van gebruikersprompt.
- `outputMessages` - inhoud van modelantwoord.
- `toolInputs` - payloads met toolargumenten.
- `toolOutputs` - payloads met toolresultaten.
- `systemPrompt` - samengestelde system-/developerprompt.
Wanneer een subsleutel is ingeschakeld, krijgen model- en toolspans alleen voor die klasse begrensde, geredigeerde
`openclaw.content.*`-attributen.
@ -157,19 +161,19 @@ Wanneer een subsleutel is ingeschakeld, krijgen model- en toolspans alleen voor
## Sampling en flushen
- **Traces:** `diagnostics.otel.sampleRate` (alleen root-span, `0.0` laat alles vallen,
`1.0` bewaart alles).
`1.0` behoudt alles).
- **Metrics:** `diagnostics.otel.flushIntervalMs` (minimum `1000`).
- **Logs:** OTLP-logs respecteren `logging.level` (bestandslogniveau). Ze gebruiken het
redactietraject voor diagnostische logrecords, niet console-opmaak. Installaties met hoog volume
moeten de voorkeur geven aan sampling/filtering in de OTLP-collector boven lokale sampling.
- **Bestandslogcorrelatie:** JSONL-bestandslogs bevatten top-level `traceId`,
`spanId`, `parentSpanId` en `traceFlags` wanneer de logaanroep een geldige
redactiepad voor diagnostische logrecords, niet consoleformattering. Installaties met hoog volume
moeten OTLP-collector-sampling/filtering verkiezen boven lokale sampling.
- **Correlatie met bestandslogs:** JSONL-bestandslogs bevatten top-level `traceId`,
`spanId`, `parentSpanId` en `traceFlags` wanneer de logcall een geldige
diagnostische tracecontext bevat, waardoor logprocessors lokale logregels kunnen koppelen aan
geëxporteerde spans.
- **Requestcorrelatie:** Gateway-HTTP-requests en WebSocket-frames maken een
intern request-tracebereik. Logs en diagnostische gebeurtenissen binnen dat bereik
erven standaard de request-trace, terwijl agentrun- en modelaanroepspans worden
gemaakt als children zodat provider-`traceparent`-headers op dezelfde trace blijven.
interne request-tracescope aan. Logs en diagnostiek-events binnen die scope
erven standaard de requesttrace, terwijl agent-run- en modelcall-spans worden
aangemaakt als children zodat provider-`traceparent`-headers op dezelfde trace blijven.
## Geëxporteerde metrics
@ -179,12 +183,12 @@ Wanneer een subsleutel is ingeschakeld, krijgen model- en toolspans alleen voor
- `openclaw.cost.usd` (counter, attrs: `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
- `openclaw.run.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
- `openclaw.context.tokens` (histogram, attrs: `openclaw.context`, `openclaw.channel`, `openclaw.provider`, `openclaw.model`)
- `gen_ai.client.token.usage` (histogram, GenAI semantic-conventions metric, attrs: `gen_ai.token.type` = `input`/`output`, `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`)
- `gen_ai.client.operation.duration` (histogram, seconden, GenAI semantic-conventions metric, attrs: `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`, optioneel `error.type`)
- `gen_ai.client.token.usage` (histogram, GenAI-semantic-conventions-metric, attrs: `gen_ai.token.type` = `input`/`output`, `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`)
- `gen_ai.client.operation.duration` (histogram, seconden, GenAI-semantic-conventions-metric, attrs: `gen_ai.provider.name`, `gen_ai.operation.name`, `gen_ai.request.model`, optioneel `error.type`)
- `openclaw.model_call.duration_ms` (histogram, attrs: `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`, plus `openclaw.errorCategory` en `openclaw.failureKind` bij geclassificeerde fouten)
- `openclaw.model_call.request_bytes` (histogram, UTF-8-bytegrootte van de uiteindelijke modelrequestpayload; geen ruwe payloadinhoud)
- `openclaw.model_call.response_bytes` (histogram, UTF-8-bytegrootte van gestreamde modelantwoordgebeurtenissen; geen ruwe antwoordinhoud)
- `openclaw.model_call.time_to_first_byte_ms` (histogram, verstreken tijd vóór de eerste gestreamde antwoordgebeurtenis)
- `openclaw.model_call.request_bytes` (histogram, UTF-8-bytegrootte van de uiteindelijke payload voor het modelrequest; geen ruwe payloadcontent)
- `openclaw.model_call.response_bytes` (histogram, UTF-8-bytegrootte van gestreamde modelresponse-events; geen ruwe responsecontent)
- `openclaw.model_call.time_to_first_byte_ms` (histogram, verstreken tijd vóór het eerste gestreamde response-event)
### Berichtstroom
@ -197,66 +201,55 @@ Wanneer een subsleutel is ingeschakeld, krijgen model- en toolspans alleen voor
- `openclaw.message.delivery.started` (counter, attrs: `openclaw.channel`, `openclaw.delivery.kind`)
- `openclaw.message.delivery.duration_ms` (histogram, attrs: `openclaw.channel`, `openclaw.delivery.kind`, `openclaw.outcome`, `openclaw.errorCategory`)
### Talk
- `openclaw.talk.event` (counter, attrs: `openclaw.talk.event_type`, `openclaw.talk.mode`, `openclaw.talk.transport`, `openclaw.talk.brain`, `openclaw.talk.provider`)
- `openclaw.talk.event.duration_ms` (histogram, attrs: hetzelfde als `openclaw.talk.event`; uitgezonden wanneer een Talk-event duur rapporteert)
- `openclaw.talk.audio.bytes` (histogram, attrs: hetzelfde als `openclaw.talk.event`; uitgezonden voor Talk-audioframe-events die bytelengte rapporteren)
### Wachtrijen en sessies
- `openclaw.queue.lane.enqueue` (counter, attrs: `openclaw.lane`)
- `openclaw.queue.lane.dequeue` (counter, attrs: `openclaw.lane`)
- `openclaw.queue.depth` (histogram, attrs: `openclaw.lane` of `openclaw.channel=heartbeat`)
- `openclaw.queue.wait_ms` (histogram, attrs: `openclaw.lane`)
- `openclaw.session.state` (counter, attrs: `openclaw.state`, `openclaw.reason`)
- `openclaw.session.stuck` (counter, attrs: `openclaw.state`; alleen uitgezonden voor verouderde sessieboekhouding zonder actief werk)
- `openclaw.session.stuck_age_ms` (histogram, attrs: `openclaw.state`; alleen uitgezonden voor verouderde sessieboekhouding zonder actief werk)
- `openclaw.run.attempt` (counter, attrs: `openclaw.attempt`)
- `openclaw.queue.lane.enqueue` (teller, attributen: `openclaw.lane`)
- `openclaw.queue.lane.dequeue` (teller, attributen: `openclaw.lane`)
- `openclaw.queue.depth` (histogram, attributen: `openclaw.lane` of `openclaw.channel=heartbeat`)
- `openclaw.queue.wait_ms` (histogram, attributen: `openclaw.lane`)
- `openclaw.session.state` (teller, attributen: `openclaw.state`, `openclaw.reason`)
- `openclaw.session.stuck` (teller, attributen: `openclaw.state`; alleen uitgezonden voor verouderde sessieboekhouding zonder actief werk)
- `openclaw.session.stuck_age_ms` (histogram, attributen: `openclaw.state`; alleen uitgezonden voor verouderde sessieboekhouding zonder actief werk)
- `openclaw.session.recovery.requested` (teller, attributen: `openclaw.state`, `openclaw.action`, `openclaw.active_work_kind`, `openclaw.reason`)
- `openclaw.session.recovery.completed` (teller, attributen: `openclaw.state`, `openclaw.action`, `openclaw.status`, `openclaw.active_work_kind`, `openclaw.reason`)
- `openclaw.session.recovery.age_ms` (histogram, attributen: hetzelfde als de bijbehorende herstelteller)
- `openclaw.run.attempt` (teller, attributen: `openclaw.attempt`)
### Telemetrie voor sessieliveness
### Telemetrie voor sessie-levendheid
`diagnostics.stuckSessionWarnMs` is de leeftijdsdrempel zonder voortgang voor diagnostiek van
sessieliveness. Een `processing`-sessie veroudert niet richting deze drempel
zolang OpenClaw reply-, tool-, status-, block- of ACP-runtimevoortgang observeert.
Typing-keepalives worden niet als voortgang geteld, zodat een stil model of harness
nog steeds kan worden gedetecteerd.
`diagnostics.stuckSessionWarnMs` is de leeftijdsdrempel zonder voortgang voor sessie-levendheidsdiagnostiek. Een `processing`-sessie veroudert niet richting deze drempel zolang OpenClaw voortgang observeert in antwoorden, tools, status, blokken of de ACP-runtime. Typing-keepalives tellen niet als voortgang, zodat een stil model of harnas nog steeds kan worden gedetecteerd.
OpenClaw classificeert sessies op basis van het werk dat het nog kan observeren:
- `session.long_running`: actief ingesloten werk, modelaanroepen of toolaanroepen
maken nog steeds voortgang.
- `session.stalled`: er is actief werk, maar de actieve run heeft geen recente
voortgang gemeld. Vastgelopen ingesloten runs blijven eerst alleen-observeren
en gaan daarna naar abort-drain na `diagnostics.stuckSessionAbortMs` zonder
voortgang, zodat wachtrijbeurten achter de lane kunnen worden hervat. Wanneer
niet ingesteld, valt de afbreekdrempel terug op het veiligere verlengde venster
van minimaal 10 minuten en 5x `diagnostics.stuckSessionWarnMs`.
- `session.stuck`: verouderde sessieboekhouding zonder actief werk. Dit geeft de
getroffen sessielane onmiddellijk vrij.
- `session.long_running`: actief ingebed werk, modelaanroepen of toolaanroepen maken nog steeds voortgang.
- `session.stalled`: actief werk bestaat, maar de actieve run heeft geen recente voortgang gerapporteerd. Vastgelopen ingebedde runs blijven eerst alleen-observeren en gaan daarna na `diagnostics.stuckSessionAbortMs` zonder voortgang naar abort-drain, zodat wachtrijbeurten achter de lane kunnen worden hervat. Wanneer niet ingesteld, gebruikt de afbreekdrempel standaard het veiligere uitgebreide venster van minstens 10 minuten en 5x `diagnostics.stuckSessionWarnMs`.
- `session.stuck`: verouderde sessieboekhouding zonder actief werk. Dit geeft de betrokken sessie-lane onmiddellijk vrij.
Herstel verstuurt gestructureerde gebeurtenissen `session.recovery.requested` en
`session.recovery.completed`. Diagnostische sessiestatus wordt pas als inactief
gemarkeerd na een muterende hersteluitkomst (`aborted` of `released`) en alleen
als dezelfde verwerkingsgeneratie nog steeds actueel is.
Herstel zendt gestructureerde `session.recovery.requested`- en `session.recovery.completed`-gebeurtenissen uit. De diagnostische sessiestatus wordt pas als inactief gemarkeerd na een muterende hersteluitkomst (`aborted` of `released`) en alleen als dezelfde verwerkingsgeneratie nog steeds actueel is.
Alleen `session.stuck` verstuurt de teller `openclaw.session.stuck`, het
histogram `openclaw.session.stuck_age_ms` en de span `openclaw.session.stuck`.
Herhaalde `session.stuck`-diagnostiek gebruikt back-off zolang de sessie
ongewijzigd blijft, dus dashboards moeten waarschuwen bij aanhoudende toenames
in plaats van bij elke Heartbeat-tick. Zie voor de configuratieknop en
standaardwaarden de
[Configuratiereferentie](/nl/gateway/configuration-reference#diagnostics).
Alleen `session.stuck` zendt de teller `openclaw.session.stuck`, het histogram `openclaw.session.stuck_age_ms` en de span `openclaw.session.stuck` uit. Herhaalde `session.stuck`-diagnostiek gebruikt back-off zolang de sessie ongewijzigd blijft, dus dashboards moeten waarschuwen op aanhoudende stijgingen in plaats van op elke heartbeat-tick. Zie voor de configuratieknop en standaardwaarden de [Configuratiereferentie](/nl/gateway/configuration-reference#diagnostics).
### Harness-levenscyclus
### Levenscyclus van het harnas
- `openclaw.harness.duration_ms` (histogram, attrs: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` bij fouten)
- `openclaw.harness.duration_ms` (histogram, attributen: `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.harness.phase` bij fouten)
### Exec
- `openclaw.exec.duration_ms` (histogram, attrs: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
- `openclaw.exec.duration_ms` (histogram, attributen: `openclaw.exec.target`, `openclaw.exec.mode`, `openclaw.outcome`, `openclaw.failureKind`)
### Interne diagnostiek (geheugen en tool-loop)
### Interne diagnostiek (geheugen en tool-lus)
- `openclaw.memory.heap_used_bytes` (histogram, attrs: `openclaw.memory.kind`)
- `openclaw.memory.heap_used_bytes` (histogram, attributen: `openclaw.memory.kind`)
- `openclaw.memory.rss_bytes` (histogram)
- `openclaw.memory.pressure` (teller, attrs: `openclaw.memory.level`)
- `openclaw.tool.loop.iterations` (teller, attrs: `openclaw.toolName`, `openclaw.outcome`)
- `openclaw.tool.loop.duration_ms` (histogram, attrs: `openclaw.toolName`, `openclaw.outcome`)
- `openclaw.memory.pressure` (teller, attributen: `openclaw.memory.level`)
- `openclaw.tool.loop.iterations` (teller, attributen: `openclaw.toolName`, `openclaw.outcome`)
- `openclaw.tool.loop.duration_ms` (histogram, attributen: `openclaw.toolName`, `openclaw.outcome`)
## Geëxporteerde spans
@ -272,7 +265,7 @@ standaardwaarden de
- `gen_ai.request.model`, `gen_ai.operation.name`, `openclaw.provider`, `openclaw.model`, `openclaw.api`, `openclaw.transport`
- `openclaw.errorCategory` en optioneel `openclaw.failureKind` bij fouten
- `openclaw.model_call.request_bytes`, `openclaw.model_call.response_bytes`, `openclaw.model_call.time_to_first_byte_ms`
- `openclaw.provider.request_id_hash` (begrensde SHA-gebaseerde hash van de aanvraag-id van de upstream provider; ruwe id's worden niet geëxporteerd)
- `openclaw.provider.request_id_hash` (begrensde op SHA gebaseerde hash van de request-id van de upstream-provider; ruwe id's worden niet geëxporteerd)
- `openclaw.harness.run`
- `openclaw.harness.id`, `openclaw.harness.plugin`, `openclaw.outcome`, `openclaw.provider`, `openclaw.model`, `openclaw.channel`
- Bij voltooiing: `openclaw.harness.result_classification`, `openclaw.harness.yield_detected`, `openclaw.harness.items.started`, `openclaw.harness.items.completed`, `openclaw.harness.items.active`
@ -294,26 +287,19 @@ standaardwaarden de
- `openclaw.context.assembled`
- `openclaw.prompt.size`, `openclaw.history.size`, `openclaw.context.tokens`, `openclaw.errorCategory` (geen prompt-, geschiedenis-, antwoord- of sessiesleutelinhoud)
- `openclaw.tool.loop`
- `openclaw.toolName`, `openclaw.outcome`, `openclaw.iterations`, `openclaw.errorCategory` (geen loop-berichten, params of tooluitvoer)
- `openclaw.toolName`, `openclaw.outcome`, `openclaw.iterations`, `openclaw.errorCategory` (geen lusberichten, params of tooluitvoer)
- `openclaw.memory.pressure`
- `openclaw.memory.level`, `openclaw.memory.heap_used_bytes`, `openclaw.memory.rss_bytes`
Wanneer inhoudsvastlegging expliciet is ingeschakeld, kunnen model- en
tool-spans ook begrensde, geredigeerde `openclaw.content.*`-attributen bevatten
voor de specifieke inhoudsklassen waarvoor je hebt gekozen.
Wanneer inhoudsvastlegging expliciet is ingeschakeld, kunnen model- en tool-spans ook begrensde, geredigeerde `openclaw.content.*`-attributen bevatten voor de specifieke inhoudsklassen waarvoor je hebt gekozen.
## Catalogus met diagnostische gebeurtenissen
## Catalogus van diagnostische gebeurtenissen
De onderstaande gebeurtenissen ondersteunen de metrics en spans hierboven.
Plugins kunnen zich er ook direct op abonneren zonder OTLP-export.
De onderstaande gebeurtenissen ondersteunen de metrics en spans hierboven. Plugins kunnen zich er ook rechtstreeks op abonneren zonder OTLP-export.
**Modelgebruik**
- `model.usage` - tokens, kosten, duur, context, provider/model/channel,
sessie-id's. `usage` is provider-/beurtboekhouding voor kosten en telemetrie;
`context.used` is de huidige prompt-/contextsnapshot en kan lager zijn dan
provider `usage.total` wanneer gecachte input of tool-loop-aanroepen betrokken
zijn.
- `model.usage` - tokens, kosten, duur, context, provider/model/kanaal, sessie-id's. `usage` is provider-/turn-boekhouding voor kosten en telemetrie; `context.used` is de huidige prompt-/contextsnapshot en kan lager zijn dan provider `usage.total` wanneer gecachte input of tool-lusaanroepen betrokken zijn.
**Berichtenstroom**
@ -328,25 +314,17 @@ Plugins kunnen zich er ook direct op abonneren zonder OTLP-export.
- `run.attempt` / `run.progress`
- `diagnostic.heartbeat` (geaggregeerde tellers: webhooks/wachtrij/sessie)
**Harness-levenscyclus**
**Levenscyclus van het harnas**
- `harness.run.started` / `harness.run.completed` / `harness.run.error` -
levenscyclus per run voor de agent-harness. Bevat `harnessId`, optioneel
`pluginId`, provider/model/channel en run-id. Voltooiing voegt
`durationMs`, `outcome`, optioneel `resultClassification`, `yieldDetected`
en `itemLifecycle`-aantallen toe. Fouten voegen `phase`
(`prepare`/`start`/`send`/`resolve`/`cleanup`), `errorCategory` en
optioneel `cleanupFailed` toe.
- `harness.run.started` / `harness.run.completed` / `harness.run.error` - levenscyclus per run voor het agentharnas. Bevat `harnessId`, optioneel `pluginId`, provider/model/kanaal en run-id. Voltooiing voegt `durationMs`, `outcome`, optioneel `resultClassification`, `yieldDetected` en `itemLifecycle`-aantallen toe. Fouten voegen `phase` (`prepare`/`start`/`send`/`resolve`/`cleanup`), `errorCategory` en optioneel `cleanupFailed` toe.
**Exec**
- `exec.process.completed` - terminale uitkomst, duur, doel, modus, afsluitcode
en soort fout. Opdrachttekst en werkmappen worden niet opgenomen.
- `exec.process.completed` - terminale uitkomst, duur, doel, modus, exitcode en foutsoort. Commandotekst en werkmappen worden niet opgenomen.
## Zonder exporter
Je kunt diagnostische gebeurtenissen beschikbaar houden voor Plugins of
aangepaste sinks zonder `diagnostics-otel` uit te voeren:
Je kunt diagnostische gebeurtenissen beschikbaar houden voor Plugins of aangepaste sinks zonder `diagnostics-otel` uit te voeren:
```json5
{
@ -354,9 +332,7 @@ aangepaste sinks zonder `diagnostics-otel` uit te voeren:
}
```
Gebruik diagnostische vlaggen voor gerichte debuguitvoer zonder
`logging.level` te verhogen. Vlaggen zijn hoofdletterongevoelig en ondersteunen
wildcards (bijv. `telegram.*` of `*`):
Gebruik diagnostische flags voor gerichte debuguitvoer zonder `logging.level` te verhogen. Flags zijn hoofdletterongevoelig en ondersteunen jokertekens (bijv. `telegram.*` of `*`):
```json5
{
@ -370,9 +346,7 @@ Of als een eenmalige env-override:
OPENCLAW_DIAGNOSTICS=telegram.http,telegram.payload openclaw gateway
```
Vlaguitvoer gaat naar het standaardlogbestand (`logging.file`) en wordt nog
steeds geredigeerd door `logging.redactSensitive`. Volledige gids:
[Diagnostische vlaggen](/nl/diagnostics/flags).
Flaguitvoer gaat naar het standaardlogbestand (`logging.file`) en wordt nog steeds geredigeerd door `logging.redactSensitive`. Volledige handleiding: [Diagnostische flags](/nl/diagnostics/flags).
## Uitschakelen
@ -382,13 +356,12 @@ steeds geredigeerd door `logging.redactSensitive`. Volledige gids:
}
```
Je kunt `diagnostics-otel` ook uit `plugins.allow` laten, of
`openclaw plugins disable diagnostics-otel` uitvoeren.
Je kunt `diagnostics-otel` ook buiten `plugins.allow` laten, of `openclaw plugins disable diagnostics-otel` uitvoeren.
## Gerelateerd
- [Logging](/nl/logging) - bestandslogs, console-uitvoer, CLI-tailing en het tabblad Logs in de Control UI
- [Interne Gateway-logging](/nl/gateway/logging) - WS-logstijlen, subsystem-prefixen en consolevastlegging
- [Diagnostische vlaggen](/nl/diagnostics/flags) - gerichte debuglogvlaggen
- [Diagnostische export](/nl/gateway/diagnostics) - supportbundeltool voor operators (los van OTEL-export)
- [Configuratiereferentie](/nl/gateway/configuration-reference#diagnostics) - volledige referentie voor `diagnostics.*`-velden
- [Interne Gateway-logging](/nl/gateway/logging) - WS-logstijlen, subsysteemprefixen en consolevastlegging
- [Diagnostische flags](/nl/diagnostics/flags) - gerichte debuglogflags
- [Diagnostische export](/nl/gateway/diagnostics) - operator-tool voor ondersteuningsbundels (los van OTEL-export)
- [Configuratiereferentie](/nl/gateway/configuration-reference#diagnostics) - volledige veldreferentie voor `diagnostics.*`

View File

@ -1,21 +1,21 @@
---
read_when:
- Je wilt dat Prometheus, Grafana, VictoriaMetrics of een andere scraper OpenClaw Gateway-metrics verzamelt
- Je hebt de Prometheus-metrieknamen en het labelbeleid nodig voor dashboards of waarschuwingen
- Je wilt metrics zonder een OpenTelemetry-collector te draaien
- Je hebt de Prometheus-metricnamen en het labelbeleid nodig voor dashboards of waarschuwingen
- Je wilt metrieken zonder een OpenTelemetry-collector te draaien
sidebarTitle: Prometheus
summary: Stel OpenClaw-diagnostiek beschikbaar als Prometheus-tekstmetrieken via de diagnostics-prometheus Plugin
summary: Stel OpenClaw-diagnostiek beschikbaar als Prometheus-tekstmetrieken via de diagnostics-prometheus-plugin
title: Prometheus-metrieken
x-i18n:
generated_at: "2026-05-02T20:44:21Z"
generated_at: "2026-05-06T11:28:10Z"
model: gpt-5.5
provider: openai
source_hash: 49df17348c5b63c4b5f3c05f3378d43764e5de985135ad30c1e74ef607e0dd37
source_hash: 864e2a343266d84baaaaca9d8e494359198a3b43e8663ec8dcfcd4e2e4c6c004
source_path: gateway/prometheus.md
workflow: 16
---
OpenClaw kan diagnostische metrics beschikbaar maken via de officiële `diagnostics-prometheus` Plugin. Deze luistert naar vertrouwde interne diagnostics en rendert een Prometheus-teksteindpunt op:
OpenClaw kan diagnostische metrics beschikbaar maken via de officiële `diagnostics-prometheus`-plugin. Deze luistert naar vertrouwde interne diagnostiek en geeft een Prometheus-teksteindpunt weer op:
```text
GET /api/diagnostics/prometheus
@ -24,7 +24,7 @@ GET /api/diagnostics/prometheus
Het contenttype is `text/plain; version=0.0.4; charset=utf-8`, de standaard Prometheus-expositie-indeling.
<Warning>
De route gebruikt Gateway-authenticatie (operatorbereik). Stel deze niet bloot als openbaar, niet-geauthenticeerd `/metrics`-eindpunt. Scrape deze via hetzelfde authenticatiepad dat je gebruikt voor andere operator-API's.
De route gebruikt Gateway-authenticatie (operator-scope). Stel deze niet beschikbaar als openbaar, niet-geverifieerd `/metrics`-eindpunt. Scrape deze via hetzelfde authenticatiepad dat je gebruikt voor andere operator-API's.
</Warning>
Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie [OpenTelemetry-export](/nl/gateway/opentelemetry).
@ -32,14 +32,14 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie
## Snel aan de slag
<Steps>
<Step title="Installeer de Plugin">
<Step title="Installeer de plugin">
```bash
openclaw plugins install clawhub:@openclaw/diagnostics-prometheus
```
</Step>
<Step title="Schakel de Plugin in">
<Step title="Schakel de plugin in">
<Tabs>
<Tab title="Config">
<Tab title="Configuratie">
```json5
{
plugins: {
@ -62,10 +62,10 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie
</Tabs>
</Step>
<Step title="Herstart de Gateway">
De HTTP-route wordt geregistreerd bij het opstarten van de Plugin, dus laad opnieuw na het inschakelen.
De HTTP-route wordt geregistreerd bij het starten van de plugin, dus laad opnieuw na het inschakelen.
</Step>
<Step title="Scrape de beschermde route">
Stuur dezelfde gateway-authenticatie die je operatorclients gebruiken:
<Step title="Scrape de beveiligde route">
Stuur dezelfde gateway-authenticatie mee die je operator-clients gebruiken:
```bash
curl -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \
@ -89,7 +89,7 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie
</Steps>
<Note>
`diagnostics.enabled: true` is vereist. Zonder deze instelling registreert de Plugin nog steeds de HTTP-route, maar stromen er geen diagnostische events naar de exporter, waardoor de response leeg is.
`diagnostics.enabled: true` is vereist. Zonder deze instelling registreert de plugin nog steeds de HTTP-route, maar stromen er geen diagnostische gebeurtenissen naar de exporter, waardoor de respons leeg is.
</Note>
## Geëxporteerde metrics
@ -109,12 +109,18 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie
| `openclaw_harness_run_duration_seconds` | histogram | `channel`, `error_category`, `harness`, `model`, `outcome`, `phase`, `plugin`, `provider` |
| `openclaw_message_processed_total` | counter | `channel`, `outcome`, `reason` |
| `openclaw_message_processed_duration_seconds` | histogram | `channel`, `outcome`, `reason` |
| `openclaw_message_delivery_started_total` | counter | `channel`, `delivery_kind` |
| `openclaw_message_delivery_total` | counter | `channel`, `delivery_kind`, `error_category`, `outcome` |
| `openclaw_message_delivery_duration_seconds` | histogram | `channel`, `delivery_kind`, `error_category`, `outcome` |
| `openclaw_talk_event_total` | counter | `brain`, `event_type`, `mode`, `provider`, `transport` |
| `openclaw_talk_event_duration_seconds` | histogram | `brain`, `event_type`, `mode`, `provider`, `transport` |
| `openclaw_talk_audio_bytes` | histogram | `brain`, `event_type`, `mode`, `provider`, `transport` |
| `openclaw_queue_lane_size` | gauge | `lane` |
| `openclaw_queue_lane_wait_seconds` | histogram | `lane` |
| `openclaw_session_state_total` | counter | `reason`, `state` |
| `openclaw_session_queue_depth` | gauge | `state` |
| `openclaw_session_recovery_total` | counter | `action`, `active_work_kind`, `state`, `status` |
| `openclaw_session_recovery_age_seconds` | histogram | `action`, `active_work_kind`, `state`, `status` |
| `openclaw_memory_bytes` | gauge | `kind` |
| `openclaw_memory_rss_bytes` | histogram | geen |
| `openclaw_memory_pressure_total` | counter | `level`, `reason` |
@ -125,21 +131,22 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie
<AccordionGroup>
<Accordion title="Begrensde labels met lage cardinaliteit">
Prometheus-labels blijven begrensd en hebben lage cardinaliteit. De exporter emitteert geen ruwe diagnostische identifiers zoals `runId`, `sessionKey`, `sessionId`, `callId`, `toolCallId`, bericht-ID's, chat-ID's of provider-request-ID's.
Prometheus-labels blijven begrensd en hebben lage cardinaliteit. De exporter geeft geen onbewerkte diagnostische identifiers weer, zoals `runId`, `sessionKey`, `sessionId`, `callId`, `toolCallId`, bericht-ID's, chat-ID's of provider-request-ID's.
Labelwaarden worden geredigeerd en moeten voldoen aan OpenClaw's tekenbeleid voor lage cardinaliteit. Waarden die niet aan het beleid voldoen, worden vervangen door `unknown`, `other` of `none`, afhankelijk van de metric.
</Accordion>
<Accordion title="Serielimiet en overflow-boekhouding">
De exporter beperkt behouden tijdreeksen in het geheugen tot **2048** series in totaal voor counters, gauges en histograms samen. Nieuwe series boven die limiet worden gedropt, en `openclaw_prometheus_series_dropped_total` wordt telkens met één verhoogd.
<Accordion title="Limiet voor reeksen en overflow-boekhouding">
De exporteur beperkt bewaarde tijdreeksen in het geheugen tot **2048** reeksen in totaal voor counters, gauges en histogrammen samen. Nieuwe reeksen boven die limiet worden verwijderd, en `openclaw_prometheus_series_dropped_total` wordt telkens met één verhoogd.
Houd deze counter in de gaten als hard signaal dat een upstream-attribuut waarden met hoge cardinaliteit lekt. De exporter verhoogt de limiet nooit automatisch; als deze oploopt, los dan de bron op in plaats van de limiet uit te schakelen.
Houd deze counter in de gaten als duidelijk signaal dat een bovenliggend attribuut waarden met hoge cardinaliteit lekt. De exporteur verhoogt de limiet nooit automatisch; als deze oploopt, los dan de bron op in plaats van de limiet uit te schakelen.
</Accordion>
<Accordion title="Wat nooit in Prometheus-output verschijnt">
- prompttekst, responstekst, toolinputs, tooloutputs, systeemprompts
- ruwe provider-request-ID's (alleen begrensde hashes, waar van toepassing, op spans — nooit op metrics)
- sessiesleutels en sessie-ID's
<Accordion title="Wat nooit in Prometheus-uitvoer verschijnt">
- prompttekst, antwoordtekst, toolinvoer, tooluitvoer, systeemprompts
- Talk-transcripten, audio-payloads, oproep-id's, ruimte-id's, overdrachtstokens, beurt-id's en ruwe sessie-id's
- ruwe provider-aanvraag-id's (alleen begrensde hashes, waar van toepassing, op spans — nooit op metrics)
- sessiesleutels en sessie-id's
- hostnamen, bestandspaden, geheime waarden
</Accordion>
@ -172,54 +179,54 @@ increase(openclaw_prometheus_series_dropped_total[15m]) > 0
```
<Tip>
Geef de voorkeur aan `gen_ai_client_token_usage` voor dashboards over providers heen: dit volgt de semantische conventies van OpenTelemetry GenAI en is consistent met metrics van GenAI-services buiten OpenClaw.
Gebruik bij voorkeur `gen_ai_client_token_usage` voor dashboards over meerdere providers: deze volgt de semantische conventies van OpenTelemetry GenAI en is consistent met metrics van GenAI-services buiten OpenClaw.
</Tip>
## Kiezen tussen Prometheus- en OpenTelemetry-export
OpenClaw ondersteunt beide oppervlakken onafhankelijk. Je kunt een van beide gebruiken, allebei of geen van beide.
OpenClaw ondersteunt beide oppervlakken onafhankelijk. Je kunt een van beide, beide of geen van beide gebruiken.
<Tabs>
<Tab title="diagnostics-prometheus">
- **Pull**-model: Prometheus scrapt `/api/diagnostics/prometheus`.
- Geen externe collector vereist.
- Geauthenticeerd via normale Gateway-authenticatie.
- Het oppervlak is alleen metrics (geen traces of logs).
- Het meest geschikt voor stacks die al gestandaardiseerd zijn op Prometheus + Grafana.
- Oppervlak is alleen metrics (geen traces of logs).
- Beste keuze voor stacks die al zijn gestandaardiseerd op Prometheus + Grafana.
</Tab>
<Tab title="diagnostics-otel">
- **Push**-model: OpenClaw stuurt OTLP/HTTP naar een collector of OTLP-compatibele backend.
- Het oppervlak omvat metrics, traces en logs.
- Slaat een brug naar Prometheus via een OpenTelemetry Collector (`prometheus`- of `prometheusremotewrite`-exporter) wanneer je beide nodig hebt.
- **Push**-model: OpenClaw verzendt OTLP/HTTP naar een collector of OTLP-compatibele backend.
- Oppervlak bevat metrics, traces en logs.
- Verbindt met Prometheus via een OpenTelemetry Collector (`prometheus`- of `prometheusremotewrite`-exporteur) wanneer je beide nodig hebt.
- Zie [OpenTelemetry-export](/nl/gateway/opentelemetry) voor de volledige catalogus.
</Tab>
</Tabs>
## Problemen oplossen
## Probleemoplossing
<AccordionGroup>
<Accordion title="Lege responsebody">
- Controleer `diagnostics.enabled: true` in de config.
<Accordion title="Lege antwoordbody">
- Controleer `diagnostics.enabled: true` in de configuratie.
- Bevestig dat de Plugin is ingeschakeld en geladen met `openclaw plugins list --enabled`.
- Genereer wat verkeer; counters en histograms emitten pas regels na minstens één event.
- Genereer wat verkeer; counters en histogrammen geven pas regels uit na minstens één gebeurtenis.
</Accordion>
<Accordion title="401 / unauthorized">
Het eindpunt vereist het Gateway-operatorbereik (`auth: "gateway"` met `gatewayRuntimeScopeSurface: "trusted-operator"`). Gebruik hetzelfde token of wachtwoord dat Prometheus gebruikt voor elke andere Gateway-operatorroute. Er is geen openbare, niet-geauthenticeerde modus.
<Accordion title="401 / niet geautoriseerd">
Het endpoint vereist de operatorscope van de Gateway (`auth: "gateway"` met `gatewayRuntimeScopeSurface: "trusted-operator"`). Gebruik hetzelfde token of wachtwoord dat Prometheus gebruikt voor elke andere operatorroute van de Gateway. Er is geen openbare niet-geauthenticeerde modus.
</Accordion>
<Accordion title="`openclaw_prometheus_series_dropped_total` loopt op">
Een nieuw attribuut overschrijdt de limiet van **2048** series. Inspecteer recente metrics op een onverwacht label met hoge cardinaliteit en los dit op bij de bron. De exporter dropt bewust nieuwe series in plaats van labels stilzwijgend te herschrijven.
Een nieuw attribuut overschrijdt de limiet van **2048** reeksen. Inspecteer recente metrics op een label met onverwacht hoge cardinaliteit en los dit op bij de bron. De exporteur verwijdert nieuwe reeksen bewust in plaats van labels stilzwijgend te herschrijven.
</Accordion>
<Accordion title="Prometheus toont verouderde series na een herstart">
De Plugin houdt status alleen in geheugen bij. Na een Gateway-herstart worden counters teruggezet naar nul en beginnen gauges opnieuw bij hun volgende gerapporteerde waarde. Gebruik PromQL `rate()` en `increase()` om resets netjes af te handelen.
<Accordion title="Prometheus toont verouderde reeksen na een herstart">
De Plugin bewaart status alleen in het geheugen. Na een herstart van de Gateway worden counters teruggezet naar nul en starten gauges opnieuw bij hun volgende gerapporteerde waarde. Gebruik PromQL `rate()` en `increase()` om resets netjes af te handelen.
</Accordion>
</AccordionGroup>
## Gerelateerd
- [Diagnostics-export](/nl/gateway/diagnostics) — lokale diagnostics-zip voor supportbundels
- [Health en readiness](/nl/gateway/health) — `/healthz`- en `/readyz`-probes
- [Diagnostiekexport](/nl/gateway/diagnostics) — lokale diagnostiek-zip voor ondersteuningsbundels
- [Status en gereedheid](/nl/gateway/health) — `/healthz`- en `/readyz`-probes
- [Logging](/nl/logging) — bestandsgebaseerde logging
- [OpenTelemetry-export](/nl/gateway/opentelemetry) — OTLP-push voor traces, metrics en logs
- [OpenTelemetry-export](/nl/gateway/opentelemetry) — OTLP-push voor traces, metrieken en logs

View File

@ -1,15 +1,15 @@
---
read_when:
- Je hebt een beginnersvriendelijk overzicht van OpenClaw-logging nodig
- Je wilt logniveaus, indelingen of maskering configureren
- Je bent een probleem aan het oplossen en moet snel logs vinden
- Je hebt een beginnersvriendelijk overzicht van OpenClaw-logboekregistratie nodig
- Je wilt logniveaus, indelingen of afscherming configureren
- U lost problemen op en moet snel logbestanden vinden
summary: Bestandslogs, console-uitvoer, CLI-tailing en het tabblad Logs van de Control UI
title: Logregistratie
x-i18n:
generated_at: "2026-05-06T09:21:11Z"
generated_at: "2026-05-06T11:28:11Z"
model: gpt-5.5
provider: openai
source_hash: abcdfeb0f9fbd13715762a1829198d0285738855c50f2ee531cab1e989d936b1
source_hash: 218f68c5111b6de01dc14707dad132d15d5e78c8e906af8a5416e618807663ac
source_path: logging.md
workflow: 16
---
@ -17,9 +17,9 @@ x-i18n:
OpenClaw heeft twee hoofdoppervlakken voor logs:
- **Bestandslogs** (JSON-regels) geschreven door de Gateway.
- **Console-uitvoer** getoond in terminals en de Gateway Debug UI.
- **Console-uitvoer** weergegeven in terminals en de Gateway Debug UI.
Het tabblad **Logs** van de Control UI volgt de bestandslog van de gateway. Deze pagina legt uit waar
Het tabblad **Logs** van de Control UI volgt het gateway-bestandslog. Deze pagina legt uit waar
logs staan, hoe je ze leest en hoe je logniveaus en -indelingen configureert.
## Waar logs staan
@ -32,7 +32,7 @@ De datum gebruikt de lokale tijdzone van de gateway-host.
Elk bestand roteert wanneer het `logging.maxFileBytes` bereikt (standaard: 100 MB).
OpenClaw bewaart maximaal vijf genummerde archieven naast het actieve bestand, zoals
`openclaw-YYYY-MM-DD.1.log`, en blijft schrijven naar een nieuw actief logbestand in plaats van
`openclaw-YYYY-MM-DD.1.log`, en blijft schrijven naar een nieuw actief log in plaats van
diagnostiek te onderdrukken.
Je kunt dit overschrijven in `~/.openclaw/openclaw.json`:
@ -57,35 +57,34 @@ openclaw logs --follow
Nuttige huidige opties:
- `--local-time`: timestamps weergeven in je lokale tijdzone
- `--local-time`: geef tijdstempels weer in je lokale tijdzone
- `--url <url>` / `--token <token>` / `--timeout <ms>`: standaard Gateway RPC-vlaggen
- `--expect-final`: agent-ondersteunde RPC-vlag voor wachten op definitieve respons (hier geaccepteerd via de gedeelde clientlaag)
- `--expect-final`: wachtvlag voor agent-ondersteunde definitieve RPC-reactie (hier geaccepteerd via de gedeelde clientlaag)
Uitvoermodi:
- **TTY-sessies**: nette, gekleurde, gestructureerde logregels.
- **TTY-sessies**: fraaie, gekleurde, gestructureerde logregels.
- **Niet-TTY-sessies**: platte tekst.
- `--json`: regelgescheiden JSON (één loggebeurtenis per regel).
- `--plain`: platte tekst afdwingen in TTY-sessies.
- `--no-color`: ANSI-kleuren uitschakelen.
- `--json`: regelgescheiden JSON (een loggebeurtenis per regel).
- `--plain`: forceer platte tekst in TTY-sessies.
- `--no-color`: schakel ANSI-kleuren uit.
Wanneer je een expliciete `--url` doorgeeft, past de CLI configuratie- of
omgevingsreferenties niet automatisch toe; voeg zelf `--token` toe als de doel-Gateway
Wanneer je een expliciete `--url` doorgeeft, past de CLI niet automatisch configuratie- of
omgevingsreferenties toe; voeg zelf `--token` toe als de doel-Gateway
authenticatie vereist.
In JSON-modus geeft de CLI objecten met een `type`-tag uit:
- `meta`: streammetadata (bestand, cursor, grootte)
- `log`: geparseerde loginvoer
- `log`: geparseerde logvermelding
- `notice`: hints voor afkapping / rotatie
- `raw`: ongeparseerde logregel
- `raw`: niet-geparseerde logregel
Als de impliciete local loopback Gateway om koppeling vraagt, sluit tijdens verbinden,
of een timeout krijgt voordat `logs.tail` antwoordt, valt `openclaw logs` automatisch terug op de
geconfigureerde Gateway-bestandslog. Expliciete `--url`-doelen gebruiken deze
fallback niet.
Als de impliciete local loopback Gateway om koppeling vraagt, sluit tijdens het verbinden,
of een time-out krijgt voordat `logs.tail` antwoordt, valt `openclaw logs` automatisch terug op het
geconfigureerde Gateway-bestandslog. Expliciete `--url`-doelen gebruiken deze fallback niet.
Als de Gateway onbereikbaar is, toont de CLI een korte hint om dit uit te voeren:
Als de Gateway onbereikbaar is, geeft de CLI een korte hint om dit uit te voeren:
```bash
openclaw doctor
@ -94,11 +93,11 @@ openclaw doctor
### Control UI (web)
Het tabblad **Logs** van de Control UI volgt hetzelfde bestand met `logs.tail`.
Zie [Control UI](/nl/web/control-ui) om te zien hoe je het opent.
Zie [Control UI](/nl/web/control-ui) voor hoe je het opent.
### Alleen kanaallogs
Gebruik dit om kanaalactiviteit (WhatsApp/Telegram/enz.) te filteren:
Om kanaalactiviteit (WhatsApp/Telegram/enzovoort) te filteren, gebruik je:
```bash
openclaw channels logs --channel whatsapp
@ -108,37 +107,42 @@ openclaw channels logs --channel whatsapp
### Bestandslogs (JSONL)
Elke regel in het logbestand is een JSON-object. De CLI en Control UI parsen deze
invoer om gestructureerde uitvoer weer te geven (tijd, niveau, subsysteem, bericht).
Elke regel in het logbestand is een JSON-object. De CLI en Control UI parseren deze
vermeldingen om gestructureerde uitvoer weer te geven (tijd, niveau, subsysteem, bericht).
JSONL-records van bestandslogs bevatten ook machinefilterbare velden op topniveau wanneer
Bestandslogrecords in JSONL bevatten ook machine-filterbare velden op topniveau wanneer
beschikbaar:
- `hostname`: hostnaam van de gateway.
- `message`: afgeplatte logberichttekst voor volledige-tekstzoekopdrachten.
- `message`: afgeplatte logberichttekst voor zoeken in volledige tekst.
- `agent_id`: actieve agent-id wanneer de logaanroep agentcontext bevat.
- `session_id`: actieve sessie-id/sleutel wanneer de logaanroep sessiecontext bevat.
- `session_id`: actieve sessie-id/-sleutel wanneer de logaanroep sessiecontext bevat.
- `channel`: actief kanaal wanneer de logaanroep kanaalcontext bevat.
OpenClaw behoudt de oorspronkelijke gestructureerde logargumenten naast deze velden
OpenClaw behoudt de oorspronkelijke gestructureerde logargumenten naast deze velden,
zodat bestaande parsers die genummerde tslog-argumentsleutels lezen blijven werken.
Talk-, realtime-spraak- en beheerde-ruimteactiviteit verzendt begrensde lifecycle-logrecords
via dezelfde bestandslogpipeline. Deze records bevatten gebeurtenistype,
modus, transport, provider en metingen voor grootte/timing wanneer beschikbaar, maar laten
transcripttekst, audio-payloads, turn-id's, call-id's en provider-item-id's weg.
### Console-uitvoer
Consolelogs zijn **TTY-bewust** en opgemaakt voor leesbaarheid:
Consolelogs zijn **TTY-bewust** en geformatteerd voor leesbaarheid:
- Subsysteemprefixen (bijv. `gateway/channels/whatsapp`)
- Niveaukleuren (info/warn/error)
- Niveaukleuring (info/warn/error)
- Optionele compacte of JSON-modus
Console-opmaak wordt beheerd door `logging.consoleStyle`.
Consoleformattering wordt beheerd door `logging.consoleStyle`.
### Gateway WebSocket-logs
`openclaw gateway` heeft ook WebSocket-protocollogging voor RPC-verkeer:
- normale modus: alleen interessante resultaten (fouten, parsefouten, langzame aanroepen)
- `--verbose`: al het aanvraag-/antwoordverkeer
- normale modus: alleen interessante resultaten (fouten, parsefouten, trage aanroepen)
- `--verbose`: al het request/response-verkeer
- `--ws-log auto|compact|full`: kies de uitgebreide weergavestijl
- `--compact`: alias voor `--ws-log compact`
@ -170,9 +174,9 @@ Alle loggingconfiguratie staat onder `logging` in `~/.openclaw/openclaw.json`.
### Logniveaus
- `logging.level`: niveau voor **bestandslogs** (JSONL).
- `logging.consoleLevel`: uitgebreidheidsniveau voor **console**.
- `logging.consoleLevel`: uitgebreidheidsniveau voor de **console**.
Je kunt beide overschrijven via de omgevingsvariabele **`OPENCLAW_LOG_LEVEL`** (bijv. `OPENCLAW_LOG_LEVEL=debug`). De omgevingsvariabele heeft voorrang op het configuratiebestand, zodat je de uitgebreidheid voor één run kunt verhogen zonder `openclaw.json` te bewerken. Je kunt ook de globale CLI-optie **`--log-level <level>`** doorgeven (bijvoorbeeld `openclaw --log-level debug gateway run`), die de omgevingsvariabele voor die opdracht overschrijft.
Je kunt beide overschrijven via de omgevingsvariabele **`OPENCLAW_LOG_LEVEL`** (bijv. `OPENCLAW_LOG_LEVEL=debug`). De env-var heeft voorrang op het configuratiebestand, zodat je de uitgebreidheid voor één run kunt verhogen zonder `openclaw.json` te bewerken. Je kunt ook de globale CLI-optie **`--log-level <level>`** doorgeven (bijvoorbeeld `openclaw --log-level debug gateway run`), die de omgevingsvariabele voor die opdracht overschrijft.
`--verbose` beïnvloedt alleen console-uitvoer en WS-loguitgebreidheid; het verandert
bestandslogniveaus niet.
@ -181,85 +185,88 @@ bestandslogniveaus niet.
Bestandslogs zijn JSONL. Wanneer een logaanroep een geldige diagnostische tracecontext bevat,
schrijft OpenClaw de tracevelden als JSON-sleutels op topniveau (`traceId`, `spanId`,
`parentSpanId`, `traceFlags`) zodat externe logprocessors de regel kunnen correleren
met OTEL-spans en `traceparent`-propagatie van providers.
`parentSpanId`, `traceFlags`), zodat externe logprocessors de regel kunnen correleren
met OTEL-spans en provider-`traceparent`-propagatie.
Gateway HTTP-aanvragen en Gateway WebSocket-frames stellen een interne request
trace-scope vast. Logs en diagnostische gebeurtenissen die binnen die asynchrone scope worden uitgegeven erven
Gateway HTTP-requests en Gateway WebSocket-frames stellen een interne request-tracescope in.
Logs en diagnostische gebeurtenissen die binnen die async-scope worden uitgegeven erven
de request-trace wanneer ze geen expliciete tracecontext doorgeven. Agent-run- en
modelaanroeptraces worden kinderen van de actieve request-trace, zodat lokale logs,
diagnostische snapshots, OTEL-spans en vertrouwde provider-`traceparent`-headers kunnen
worden samengevoegd via `traceId` zonder ruwe aanvraag- of modelinhoud te loggen.
model-call-traces worden kinderen van de actieve request-trace, zodat lokale logs,
diagnostische snapshots, OTEL-spans en vertrouwde provider-`traceparent`-headers
met `traceId` kunnen worden samengevoegd zonder ruwe request- of modelinhoud te loggen.
Talk-lifecycle-logrecords stromen ook naar OTLP-logs wanneer OpenTelemetry-logexport
is ingeschakeld, met dezelfde begrensde attributen als bestandslogs.
### Grootte en timing van modelaanroepen
Diagnostiek van modelaanroepen registreert begrensde metingen van aanvraag/antwoord zonder
ruwe prompt- of antwoordinhoud vast te leggen:
Diagnostiek van modelaanroepen registreert begrensde request/response-metingen zonder
ruwe prompt- of reactie-inhoud vast te leggen:
- `requestPayloadBytes`: UTF-8-bytegrootte van de uiteindelijke payload van de modelaanvraag
- `responseStreamBytes`: UTF-8-bytegrootte van gestreamde modelantwoordgebeurtenissen
- `timeToFirstByteMs`: verstreken tijd vóór de eerste gestreamde antwoordgebeurtenis
- `requestPayloadBytes`: UTF-8-bytegrootte van de uiteindelijke request-payload voor het model
- `responseStreamBytes`: UTF-8-bytegrootte van gestreamde modelresponse-gebeurtenissen
- `timeToFirstByteMs`: verstreken tijd tot de eerste gestreamde response-gebeurtenis
- `durationMs`: totale duur van de modelaanroep
Deze velden zijn beschikbaar voor diagnostische snapshots, plugin hooks voor modelaanroepen en
OTEL-spans/metrieken voor modelaanroepen wanneer diagnostiekexport is ingeschakeld.
Deze velden zijn beschikbaar voor diagnostische snapshots, Plugin-hooks voor modelaanroepen en
OTEL-spans/-metingen voor modelaanroepen wanneer diagnostiekexport is ingeschakeld.
### Consolestijlen
`logging.consoleStyle`:
- `pretty`: gebruiksvriendelijk, gekleurd, met timestamps.
- `compact`: compactere uitvoer (het beste voor lange sessies).
- `pretty`: mensvriendelijk, gekleurd, met tijdstempels.
- `compact`: strakkere uitvoer (het best voor lange sessies).
- `json`: JSON per regel (voor logprocessors).
### Redactie
OpenClaw kan gevoelige tokens redigeren voordat ze terechtkomen in console-uitvoer, bestandslogs,
OTLP-logrecords, opgeslagen tekst van sessietranscripten of tool-
gebeurtenispayloads van de Control UI (startargumenten van tools, gedeeltelijke/definitieve resultaatpayloads, afgeleide
OpenClaw kan gevoelige tokens redigeren voordat ze in console-uitvoer, bestandslogs,
OTLP-logrecords, opgeslagen sessietranscripttekst of toolgebeurtenis-payloads van de Control UI
terechtkomen (tool-startargumenten, gedeeltelijke/definitieve resultaatpayloads, afgeleide
exec-uitvoer en patchsamenvattingen):
- `logging.redactSensitive`: `off` | `tools` (standaard: `tools`)
- `logging.redactPatterns`: lijst met regex-strings om de standaardset te overschrijven. Aangepaste patronen worden toegepast boven op de ingebouwde standaarden voor toolpayloads van de Control UI, dus het toevoegen van een patroon verzwakt nooit de redactie van waarden die al door de standaarden worden afgevangen.
- `logging.redactPatterns`: lijst met regexstrings om de standaardset te overschrijven. Aangepaste patronen worden bovenop de ingebouwde standaarden voor toolpayloads van de Control UI toegepast, dus een patroon toevoegen verzwakt nooit de redactie van waarden die al door de standaarden worden afgevangen.
Bestandslogs en sessietranscripten blijven JSONL, maar overeenkomende geheime waarden worden
gemaskeerd voordat de regel of het bericht naar schijf wordt geschreven. Redactie is best-effort:
het wordt toegepast op berichtinhoud met tekst en logstrings, niet op elk
identifier- of binair payloadveld.
ze is van toepassing op tekstdragende berichtinhoud en logstrings, niet op elk
identificatie- of binaire-payloadveld.
De ingebouwde standaarden dekken veelvoorkomende API-referenties en veldnamen voor betalingsreferenties
zoals kaartnummer, CVC/CVV, gedeeld betalingstoken en betalingsreferentie
De ingebouwde standaarden dekken veelvoorkomende API-referenties en veldnamen voor
betalingsreferenties, zoals kaartnummer, CVC/CVV, gedeeld betalingstoken en betalingsreferentie
wanneer ze verschijnen als JSON-velden, URL-parameters, CLI-vlaggen of toewijzingen.
`logging.redactSensitive: "off"` schakelt alleen dit algemene log-/transcript-
beleid uit. OpenClaw redigeert nog steeds safety-boundary-payloads die kunnen worden getoond aan UI-
clients, supportbundels, diagnostiekwaarnemers, goedkeuringsprompts of agent-
tools. Voorbeelden zijn toolaanroepgebeurtenissen van de Control UI, `sessions_history`-uitvoer,
diagnostische supportexports, providerfoutobservaties, weergave van exec-goedkeuringsopdrachten
`logging.redactSensitive: "off"` schakelt alleen dit algemene log/transcriptbeleid uit.
OpenClaw redigeert nog steeds payloads aan veiligheidsgrenzen die kunnen worden getoond aan UI-
clients, supportbundels, diagnostiekwaarnemers, goedkeuringsprompts of agenttools.
Voorbeelden zijn tool-call-gebeurtenissen van de Control UI, `sessions_history`-uitvoer,
diagnostische supportexports, provider-foutobservaties, weergave van exec-goedkeuringsopdrachten
en Gateway WebSocket-protocollogs. Aangepaste `logging.redactPatterns`
kunnen op die oppervlakken nog steeds projectspecifieke patronen toevoegen.
kunnen nog steeds projectspecifieke patronen toevoegen op die oppervlakken.
## Diagnostiek en OpenTelemetry
Diagnostiek bestaat uit gestructureerde, machineleesbare gebeurtenissen voor modelruns en
berichtstroomtelemetrie (webhooks, wachtrijen, sessiestatus). Ze vervangen logs **niet**
ze voeden metrieken, traces en exporters. Gebeurtenissen worden in-process uitgegeven,
of je ze nu exporteert of niet.
telemetrie van berichtstromen (webhooks, wachtrijvorming, sessiestatus). Ze vervangen logs **niet**:
ze voeden metrics, traces en exporters. Gebeurtenissen worden in-process uitgegeven, ongeacht
of je ze exporteert.
Twee aangrenzende oppervlakken:
- **OpenTelemetry-export** — stuur metrieken, traces en logs via OTLP/HTTP naar
- **OpenTelemetry-export** — stuur metrics, traces en logs via OTLP/HTTP naar
elke OpenTelemetry-compatibele collector of backend (Grafana, Datadog,
Honeycomb, New Relic, Tempo, enz.). Volledige configuratie, signaalcatalogus,
metriek-/spannamen, omgevingsvariabelen en privacymodel staan op een speciale pagina:
Honeycomb, New Relic, Tempo, enzovoort). Volledige configuratie, signaalcatalogus,
namen van metrics/spans, env-vars en privacymodel staan op een aparte pagina:
[OpenTelemetry-export](/nl/gateway/opentelemetry).
- **Diagnostiekvlaggen** — gerichte debuglogvlaggen die extra logs naar
- **Diagnostiekvlaggen** — gerichte debug-logvlaggen die extra logs naar
`logging.file` routeren zonder `logging.level` te verhogen. Vlaggen zijn hoofdletterongevoelig
en ondersteunen wildcards (`telegram.*`, `*`). Configureer onder `diagnostics.flags`
of via de env-override `OPENCLAW_DIAGNOSTICS=...`. Volledige gids:
[Diagnostiekvlaggen](/nl/diagnostics/flags).
Om diagnostiekgebeurtenissen in te schakelen voor plugins of aangepaste sinks zonder OTLP-export:
Om diagnostische gebeurtenissen in te schakelen voor plugins of aangepaste sinks zonder OTLP-export:
```json5
{
@ -267,18 +274,18 @@ Om diagnostiekgebeurtenissen in te schakelen voor plugins of aangepaste sinks zo
}
```
Zie [OpenTelemetry-export](/nl/gateway/opentelemetry) voor OTLP-export naar een collector.
Voor OTLP-export naar een collector, zie [OpenTelemetry-export](/nl/gateway/opentelemetry).
## Tips voor probleemoplossing
- **Gateway niet bereikbaar?** Voer eerst `openclaw doctor` uit.
- **Logs leeg?** Controleer of de Gateway draait en schrijft naar het bestandspad
in `logging.file`.
- **Meer details nodig?** Stel `logging.level` in op `debug` of `trace` en probeer opnieuw.
- **Meer detail nodig?** Stel `logging.level` in op `debug` of `trace` en probeer opnieuw.
## Gerelateerd
- [OpenTelemetry-export](/nl/gateway/opentelemetry) — OTLP/HTTP-export, metriek-/spancatalogus, privacymodel
- [Diagnostiekvlaggen](/nl/diagnostics/flags) — gerichte debuglogvlaggen
- [Interne werking van Gateway-logging](/nl/gateway/logging) — WS-logstijlen, subsysteemprefixen en console-opname
- [OpenTelemetry-export](/nl/gateway/opentelemetry) — OTLP/HTTP-export, metric/span-catalogus, privacymodel
- [Diagnostiekvlaggen](/nl/diagnostics/flags) — gerichte debug-logvlaggen
- [Interne Gateway-logging](/nl/gateway/logging) — WS-logstijlen, subsysteemprefixen en consolevastlegging
- [Configuratiereferentie](/nl/gateway/configuration-reference#diagnostics) — volledige veldreferentie voor `diagnostics.*`

View File

@ -3,40 +3,40 @@ read_when:
- Zoeken naar definities van openbare releasekanalen
- Releasevalidatie of pakketacceptatie uitvoeren
- Op zoek naar versienaamgeving en cadans
summary: Releasesporen, operatorchecklist, validatieboxen, versienaamgeving en cadans
summary: Releasebanen, operatorchecklist, validatieboxen, versienaamgeving en cadans
title: Releasebeleid
x-i18n:
generated_at: "2026-05-05T06:19:05Z"
generated_at: "2026-05-06T11:28:13Z"
model: gpt-5.5
provider: openai
source_hash: 9980265c30c6a6571db5512749ec173cca79ac70494fd09968add793be9717a5
source_hash: d3b9f4875496d7278ba18a8b5cb2735fb870cf32254bfc1fd819e4f233db489e
source_path: reference/RELEASING.md
workflow: 16
---
OpenClaw heeft drie publieke releasekanalen:
OpenClaw heeft drie openbare releasekanalen:
- stable: getagde releases die standaard naar npm `beta` publiceren, of naar npm `latest` wanneer dit expliciet wordt gevraagd
- stable: getagde releases die standaard naar npm `beta` publiceren, of naar npm `latest` wanneer dat expliciet wordt gevraagd
- beta: prerelease-tags die naar npm `beta` publiceren
- dev: de bewegende kop van `main`
- dev: de bewegende head van `main`
## Versienaamgeving
- Stabiele releaseversie: `YYYY.M.D`
- Versie van stabiele release: `YYYY.M.D`
- Git-tag: `vYYYY.M.D`
- Stabiele correctiereleaseversie: `YYYY.M.D-N`
- Versie van stabiele correctierelease: `YYYY.M.D-N`
- Git-tag: `vYYYY.M.D-N`
- Beta-prereleaseversie: `YYYY.M.D-beta.N`
- Versie van beta-prerelease: `YYYY.M.D-beta.N`
- Git-tag: `vYYYY.M.D-beta.N`
- Voeg geen voorloopnul toe aan maand of dag
- Gebruik geen voorloopnul voor maand of dag
- `latest` betekent de huidige gepromote stabiele npm-release
- `beta` betekent het huidige beta-installatiedoel
- Stabiele en stabiele correctiereleases publiceren standaard naar npm `beta`; release-operators kunnen expliciet `latest` targeten, of later een gecontroleerde beta-build promoten
- Stabiele en stabiele correctiereleases publiceren standaard naar npm `beta`; releasebeheerders kunnen expliciet `latest` als doel kiezen, of later een gecontroleerde beta-build promoveren
- Elke stabiele OpenClaw-release levert het npm-pakket en de macOS-app samen;
beta-releases valideren en publiceren normaal eerst het npm-/pakketpad, met
mac-app bouwen/ondertekenen/notariseren gereserveerd voor stable tenzij dit expliciet wordt gevraagd
beta-releases valideren en publiceren normaal eerst het npm-/pakketpad, waarbij
het bouwen/ondertekenen/notariseren van de mac-app voor stable is gereserveerd tenzij expliciet gevraagd
## Releaseritme
## Releasecadans
- Releases gaan eerst via beta
- Stable volgt pas nadat de nieuwste beta is gevalideerd
@ -45,20 +45,20 @@ OpenClaw heeft drie publieke releasekanalen:
ontwikkeling op `main` niet blokkeren
- Als een beta-tag is gepusht of gepubliceerd en een fix nodig heeft, maken maintainers
de volgende `-beta.N`-tag in plaats van de oude beta-tag te verwijderen of opnieuw te maken
- Gedetailleerde releaseprocedure, goedkeuringen, credentials en herstelnotities zijn
- Gedetailleerde releaseprocedure, goedkeuringen, referenties en herstelnotities zijn
alleen voor maintainers
## Checklist voor release-operators
## Checklist voor releasebeheerders
Deze checklist is de publieke vorm van de releaseflow. Privécredentials,
ondertekening, notarisatie, dist-tag-herstel en details voor noodrollback blijven in
de release-runbook die alleen voor maintainers is.
Deze checklist is de openbare vorm van de releaseflow. Privé-referenties,
ondertekening, notarisatie, herstel van dist-tags en details voor noodrollback blijven in
het release-runbook dat alleen voor maintainers is.
1. Begin vanaf de huidige `main`: haal de nieuwste wijzigingen op, bevestig dat de doelcommit is gepusht,
en bevestig dat de huidige `main`-CI groen genoeg is om er een branch van te maken.
en bevestig dat de huidige `main`-CI groen genoeg is om daarvan te branchen.
2. Herschrijf de bovenste sectie van `CHANGELOG.md` vanuit echte commitgeschiedenis met
`/changelog`, houd items gebruikersgericht, commit dit, push het, en rebase/pull
nogmaals voordat je een branch maakt.
`/changelog`, houd vermeldingen gebruikersgericht, commit dit, push dit, en rebase/pull
nog een keer voordat je brancht.
3. Controleer releasecompatibiliteitsrecords in
`src/plugins/compat/registry.ts` en
`src/commands/doctor/shared/deprecation-compat.ts`. Verwijder verlopen
@ -66,82 +66,84 @@ de release-runbook die alleen voor maintainers is.
bewust wordt behouden.
4. Maak `release/YYYY.M.D` vanaf de huidige `main`; doe normaal releasewerk niet
rechtstreeks op `main`.
5. Verhoog elke vereiste versielocatie voor de bedoelde tag, voer
5. Verhoog elke vereiste versielocatie voor de beoogde tag, voer
`pnpm plugins:sync` uit zodat publiceerbare Plugin-pakketten de releaseversie
en compatibiliteitsmetadata delen, en voer daarna de lokale deterministische preflight uit:
`pnpm check:test-types`, `pnpm check:architecture`,
`pnpm build && pnpm ui:build`, `pnpm plugins:sync:check`, en
`pnpm release:check`.
6. Voer `OpenClaw NPM Release` uit met `preflight_only=true`. Voordat er een tag bestaat,
is een volledige SHA van 40 tekens van de releasebranch toegestaan voor validatie-only
is een volledige release-branch-SHA van 40 tekens toegestaan voor validatie-alleen
preflight. Bewaar de succesvolle `preflight_run_id`.
7. Start alle pre-releasetests met `Full Release Validation` voor de
releasebranch, tag of volledige commit-SHA. Dit is het enige handmatige startpunt
voor de vier grote releasetestboxen: Vitest, Docker, QA Lab en Package.
7. Start alle prereleasetests met `Full Release Validation` voor de
releasebranch, tag of volledige commit-SHA. Dit is het enige handmatige toegangspunt
voor de vier grote release-testboxen: Vitest, Docker, QA Lab en Package.
8. Als validatie faalt, fix dit op de releasebranch en voer opnieuw het kleinste gefaalde
bestand, kanaal, workflowjob, pakketprofiel, provider of model-allowlist uit dat
de fix bewijst. Voer de volledige paraplu alleen opnieuw uit wanneer het gewijzigde oppervlak
eerder bewijs verouderd maakt.
9. Voor beta: tag `vYYYY.M.D-beta.N`, en voer daarna `OpenClaw Release Publish` uit vanaf
de bijbehorende `release/YYYY.M.D`-branch. Dit verifieert `pnpm plugins:sync:check`,
publiceert eerst alle publiceerbare Plugin-pakketten naar npm, publiceert dezelfde
set daarna naar ClawHub als ClawPack npm-pack-tarballs, en promoot vervolgens het
voorbereide OpenClaw npm-preflightartefact met de bijbehorende dist-tag. Voer na
publicatie post-publish package
acceptance uit tegen het gepubliceerde `openclaw@YYYY.M.D-beta.N`- of
`openclaw@beta`-pakket. Als een gepushte of gepubliceerde prerelease een fix nodig heeft,
maak dan het volgende bijbehorende prerelease-nummer; verwijder of herschrijf de oude
bestand, de kleinste lane, workflowtaak, pakketprofiel, provider of model-allowlist uit die
de fix bewijst. Voer de volledige umbrella alleen opnieuw uit wanneer het gewijzigde oppervlak
eerder bewijs achterhaald maakt.
9. Voor beta: tag `vYYYY.M.D-beta.N` en voer daarna `OpenClaw Release Publish` uit vanaf
de overeenkomende `release/YYYY.M.D`-branch. Dit verifieert `pnpm plugins:sync:check`,
dispatcht alle publiceerbare Plugin-pakketten parallel naar npm en dezelfde set naar
ClawHub, en promoveert daarna het voorbereide OpenClaw npm-preflightartefact
met de overeenkomende dist-tag zodra publicatie van Plugin-pakketten naar npm slaagt.
Publicatie naar ClawHub kan nog lopen terwijl OpenClaw naar npm publiceert, maar de
release-publicatieworkflow eindigt pas nadat beide Plugin-publicatiepaden en
het OpenClaw npm-publicatiepad succesvol zijn voltooid. Voer na publicatie
de post-publicatiepakketacceptatie uit tegen het gepubliceerde
`openclaw@YYYY.M.D-beta.N`- of `openclaw@beta`-pakket. Als een gepushte of gepubliceerde prerelease een fix nodig heeft,
maak dan het volgende overeenkomende prereleasenummer; verwijder of herschrijf de oude
prerelease niet.
10. Voor stable: ga alleen verder nadat de gecontroleerde beta of release candidate het
vereiste validatiebewijs heeft. Stabiele npm-publicatie loopt ook via
`OpenClaw Release Publish`, waarbij het succesvolle preflightartefact via
`preflight_run_id` wordt hergebruikt; gereedheid voor een stabiele macOS-release vereist ook de
verpakte `.zip`, `.dmg`, `.dSYM.zip`, en bijgewerkte `appcast.xml` op `main`.
11. Voer na publicatie de npm-post-publishverificatie uit, optioneel standalone
published-npm Telegram E2E wanneer je post-publish kanaalbewijs nodig hebt,
dist-tag-promotie wanneer nodig, GitHub-release-/prerelease-notities uit de
volledige bijbehorende `CHANGELOG.md`-sectie, en de stappen voor de releaseaankondiging.
10. Voor stable: ga alleen verder nadat de gecontroleerde beta of release candidate over het
vereiste validatiebewijs beschikt. Stable-publicatie naar npm verloopt ook via
`OpenClaw Release Publish`, waarbij het succesvolle preflightartefact wordt hergebruikt via
`preflight_run_id`; gereedheid voor een stabiele macOS-release vereist ook de
verpakte `.zip`, `.dmg`, `.dSYM.zip` en bijgewerkte `appcast.xml` op `main`.
11. Voer na publicatie de npm-post-publicatieverifier uit, optioneel de zelfstandige
gepubliceerde-npm Telegram E2E wanneer je kanaalbewijs na publicatie nodig hebt,
dist-tagpromotie wanneer nodig, GitHub-release-/prereleasenotities vanuit de
volledige overeenkomende `CHANGELOG.md`-sectie, en de stappen voor de releaseaankondiging.
## Releasepreflight
## Release-preflight
- Voer `pnpm check:test-types` uit voor de release-preflight, zodat test-TypeScript
- Voer `pnpm check:test-types` uit vóór de release-preflight, zodat test-TypeScript
gedekt blijft buiten de snellere lokale `pnpm check`-gate
- Voer `pnpm check:architecture` uit voor de release-preflight, zodat de bredere
importcyclus- en architectuurgrenscontroles groen zijn buiten de snellere lokale gate
- Voer `pnpm build && pnpm ui:build` uit voor `pnpm release:check`, zodat de verwachte
`dist/*`-releaseartefacten en Control UI-bundel bestaan voor de
pakketvalidatiestap
- Voer `pnpm plugins:sync` uit na de rootversieverhoging en voor het taggen. Dit
werkt publiceerbare versies van pluginpakketten, OpenClaw peer/API-compatibiliteitsmetadata,
buildmetadata en plugin-changelogstubs bij zodat ze overeenkomen met de core
releaseversie. `pnpm plugins:sync:check` is de niet-mutatieve releaseguard;
de publicatieworkflow faalt voordat een registry-mutatie plaatsvindt als deze stap is
- Voer `pnpm check:architecture` uit vóór de release-preflight, zodat de bredere
controles op importcycli en architectuurgrenzen groen zijn buiten de snellere lokale gate
- Voer `pnpm build && pnpm ui:build` uit vóór `pnpm release:check`, zodat de verwachte
`dist/*`-releaseartefacten en de Control UI-bundel bestaan voor de
pack-validatiestap
- Voer `pnpm plugins:sync` uit na de root-versiebump en vóór het taggen. Het
werkt publiceerbare versies van Plugin-pakketten, OpenClaw peer/API-compatibiliteitsmetadata,
buildmetadata en Plugin-changelogstubs bij zodat ze overeenkomen met de core
releaseversie. `pnpm plugins:sync:check` is de niet-muterenede releasewacht;
de publicatieworkflow faalt vóór enige registry-mutatie als deze stap is
vergeten.
- Voer de handmatige workflow `Full Release Validation` uit voor releasegoedkeuring om
alle pre-release-testboxen vanuit één entrypoint te starten. Deze accepteert een branch,
tag of volledige commit-SHA, dispatcht handmatig `CI`, en dispatcht
- Voer de handmatige `Full Release Validation`-workflow uit vóór releasegoedkeuring om
alle pre-release testboxes vanuit één entrypoint te starten. Deze accepteert een branch,
tag of volledige commit-SHA, dispatcht handmatige `CI`, en dispatcht
`OpenClaw Release Checks` voor installatiesmoke, pakketacceptatie, cross-OS
pakketcontroles, QA Lab-pariteit, Matrix- en Telegram-lanes. Stabiele/standaardruns
houden uitputtende live/E2E- en Docker-releasepad-soak achter
houden uitgebreide live/E2E- en Docker release-path soak achter
`run_release_soak=true`; `release_profile=full` forceert soak. Met
`release_profile=full` en `rerun_group=all` voert dit ook pakket-Telegram
E2E uit tegen het artefact `release-package-under-test` uit releasechecks.
Geef `npm_telegram_package_spec` op na publiceren wanneer dezelfde
`release_profile=full` en `rerun_group=all` voert deze ook pakket-Telegram
E2E uit tegen het `release-package-under-test`-artefact uit releasecontroles.
Geef `npm_telegram_package_spec` op na publicatie wanneer dezelfde
Telegram E2E ook het gepubliceerde npm-pakket moet bewijzen. Geef
`package_acceptance_package_spec` op na publiceren wanneer Package Acceptance
zijn pakket/update-matrix moet uitvoeren tegen het geleverde npm-pakket in plaats
van het op SHA gebouwde artefact. Geef
`evidence_package_spec` op wanneer het private bewijsrapport moet bewijzen dat de
`package_acceptance_package_spec` op na publicatie wanneer Package Acceptance
zijn pakket/update-matrix moet uitvoeren tegen het verzonden npm-pakket in plaats
van het uit SHA gebouwde artefact. Geef
`evidence_package_spec` op wanneer het privé-bewijsrapport moet aantonen dat de
validatie overeenkomt met een gepubliceerd npm-pakket zonder Telegram E2E te forceren.
Voorbeeld:
`gh workflow run full-release-validation.yml --ref main -f ref=release/YYYY.M.D`
- Voer de handmatige workflow `Package Acceptance` uit wanneer je side-channel-bewijs
- Voer de handmatige `Package Acceptance`-workflow uit wanneer je side-channel-bewijs
wilt voor een pakketkandidaat terwijl releasewerk doorgaat. Gebruik `source=npm` voor
`openclaw@beta`, `openclaw@latest` of een exacte releaseversie; `source=ref`
om een vertrouwde `package_ref`-branch/tag/SHA te packen met de huidige
`workflow_ref`-harnas; `source=url` voor een HTTPS-tarball met een vereiste
`workflow_ref`-harness; `source=url` voor een HTTPS-tarball met een vereiste
SHA-256; of `source=artifact` voor een tarball die door een andere GitHub
Actions-run is geüpload. De workflow herleidt de kandidaat naar
Actions-run is geüpload. De workflow herleidt de kandidaat tot
`package-under-test`, hergebruikt de Docker E2E-releasescheduler tegen die
tarball, en kan Telegram QA tegen dezelfde tarball uitvoeren met
`telegram_mode=mock-openai` of `telegram_mode=live-frontier`. Wanneer de
@ -149,130 +151,129 @@ de release-runbook die alleen voor maintainers is.
pakketartefact de kandidaat en selecteert `published_upgrade_survivor_baseline`
de gepubliceerde baseline. `update-restart-auth` gebruikt het kandidaatpakket als
zowel de geïnstalleerde CLI als het package-under-test, zodat het het managed
restart-pad van de updateopdracht van de kandidaat oefent.
restart-pad van de updateopdracht van de kandidaat test.
Voorbeeld: `gh workflow run package-acceptance.yml --ref main -f workflow_ref=main -f source=npm -f package_spec=openclaw@beta -f suite_profile=product -f published_upgrade_survivor_baseline=openclaw@2026.4.26 -f telegram_mode=mock-openai`
Veelgebruikte profielen:
- `smoke`: install/channel/agent, gatewaynetwerk en config-herlaadlanes
- `package`: artefact-native pakket/update/restart/plugin-lanes zonder OpenWebUI of live ClawHub
- `smoke`: install/channel/agent-, Gateway-netwerk- en config-herlaadlanes
- `package`: artefact-native pakket/update/herstart/Plugin-lanes zonder OpenWebUI of live ClawHub
- `product`: pakketprofiel plus MCP-kanalen, cron/subagent-opruiming,
OpenAI-webzoekopdracht en OpenWebUI
- `full`: Docker-releasepadchunks met OpenWebUI
OpenAI-webzoekfunctie en OpenWebUI
- `full`: Docker release-path-chunks met OpenWebUI
- `custom`: exacte `docker_lanes`-selectie voor een gerichte rerun
- Voer de handmatige workflow `CI` direct uit wanneer je alleen volledige normale CI-
dekking voor de releasekandidaat nodig hebt. Handmatige CI-dispatches omzeilen changed
scoping en forceren de Linux Node-shards, gebundelde-pluginshards, channel-
contracten, Node 22-compatibiliteit, `check`, `check-additional`, buildsmoke,
docscontroles, Python-skills, Windows, macOS, Android en Control UI i18n
- Voer de handmatige `CI`-workflow rechtstreeks uit wanneer je alleen volledige normale CI
dekking nodig hebt voor de releasekandidaat. Handmatige CI-dispatches omzeilen changed
scoping en forceren de Linux Node-shards, gebundelde-Plugin-shards, channel
contracts, Node 22-compatibiliteit, `check`, `check-additional`, build smoke,
docs-controles, Python Skills, Windows, macOS, Android en Control UI i18n
lanes.
Voorbeeld: `gh workflow run ci.yml --ref release/YYYY.M.D`
- Voer `pnpm qa:otel:smoke` uit bij het valideren van releasetelemetrie. Dit oefent
QA-lab via een lokale OTLP/HTTP-receiver en verifieert de geëxporteerde trace-
spannamen, begrensde attributen en content-/identifier-redactie zonder
- Voer `pnpm qa:otel:smoke` uit bij het valideren van releasetelemetrie. Het oefent
QA-lab via een lokale OTLP/HTTP-ontvanger en verifieert de geëxporteerde trace
span-namen, begrensde attributen en redactie van inhoud/identificatoren zonder
Opik, Langfuse of een andere externe collector te vereisen.
- Voer `pnpm release:check` uit voor elke getagde release
- Voer `OpenClaw Release Publish` uit voor de mutatieve publicatiereeks nadat de
tag bestaat. Dispatch deze vanuit `release/YYYY.M.D` (of `main` bij het publiceren van een
tag die vanaf main bereikbaar is), geef de releasetag en geslaagde OpenClaw npm
`preflight_run_id` door, en behoud het standaardbereik voor pluginpublicatie
- Voer `pnpm release:check` uit vóór elke getagde release
- Voer `OpenClaw Release Publish` uit voor de muterende publicatiereeks nadat de
tag bestaat. Dispatch deze vanaf `release/YYYY.M.D` (of `main` wanneer je een
vanaf main bereikbare tag publiceert), geef de releasetag en succesvolle OpenClaw npm
`preflight_run_id` door, en behoud de standaard Plugin-publicatiescope
`all-publishable`, tenzij je doelbewust een gerichte reparatie uitvoert. De
workflow serialiseert plugin npm-publicatie, plugin ClawHub-publicatie en OpenClaw
npm-publicatie, zodat het corepakket niet wordt gepubliceerd vóór zijn geëxternaliseerde
workflow serialiseert Plugin npm publish, Plugin ClawHub publish en OpenClaw
npm publish, zodat het corepakket niet wordt gepubliceerd vóór de geëxternaliseerde
plugins.
- Releasechecks draaien nu in een aparte handmatige workflow:
- Releasecontroles draaien nu in een aparte handmatige workflow:
`OpenClaw Release Checks`
- `OpenClaw Release Checks` voert ook de QA Lab mock-pariteitslane uit plus het snelle
- `OpenClaw Release Checks` draait ook de QA Lab mock parity-lane plus het snelle
live Matrix-profiel en de Telegram QA-lane vóór releasegoedkeuring. De live
lanes gebruiken de `qa-live-shared`-omgeving; Telegram gebruikt ook Convex CI-
credentialleases. Voer de handmatige workflow `QA-Lab - All Lanes` uit met
`matrix_profile=all` en `matrix_shards=true` wanneer je volledige Matrix-
lanes gebruiken de `qa-live-shared`-omgeving; Telegram gebruikt ook Convex CI
credential-leases. Voer de handmatige `QA-Lab - All Lanes`-workflow uit met
`matrix_profile=all` en `matrix_shards=true` wanneer je volledige Matrix
transport-, media- en E2EE-inventaris parallel wilt.
- Cross-OS-installatie- en upgraderuntimevalidatie maakt deel uit van openbare
`OpenClaw Release Checks` en `Full Release Validation`, die de
herbruikbare workflow
`.github/workflows/openclaw-cross-os-release-checks-reusable.yml` direct aanroepen
- Deze splitsing is bewust: houd het echte npm-releasepad kort,
deterministisch en artefactgericht, terwijl tragere livechecks in hun
eigen lane blijven zodat ze publiceren niet vertragen of blokkeren
- Releasechecks met geheimen moeten worden gedispatcht via `Full Release
Validation` of vanuit de `main`/release-workflowref, zodat workflowlogica en
- Cross-OS installatie- en upgrade-runtimevalidatie is onderdeel van publieke
`OpenClaw Release Checks` en `Full Release Validation`, die de herbruikbare workflow
`.github/workflows/openclaw-cross-os-release-checks-reusable.yml` rechtstreeks aanroepen
- Deze splitsing is opzettelijk: houd het echte npm-releasepad kort,
deterministisch en artefactgericht, terwijl langzamere livecontroles in hun
eigen lane blijven zodat ze publicatie niet vertragen of blokkeren
- Secret-dragende releasecontroles moeten worden gedispatcht via `Full Release
Validation` of vanuit de `main`/release-workflowref zodat workflowlogica en
secrets gecontroleerd blijven
- `OpenClaw Release Checks` accepteert een branch, tag of volledige commit-SHA zolang
de herleide commit bereikbaar is vanaf een OpenClaw-branch of releasetag
- De validation-only preflight van `OpenClaw NPM Release` accepteert ook de huidige
volledige workflow-branch-commit-SHA van 40 tekens zonder een gepushte tag te vereisen
- `OpenClaw NPM Release` validation-only preflight accepteert ook de huidige
volledige 40-teken workflow-branch commit-SHA zonder een gepushte tag te vereisen
- Dat SHA-pad is alleen voor validatie en kan niet worden gepromoveerd naar een echte publicatie
- In SHA-modus synthetiseert de workflow `v<package.json version>` alleen voor de
pakketmetadatacontrole; echt publiceren vereist nog steeds een echte releasetag
- Beide workflows houden het echte publicatie- en promotiepad op GitHub-gehoste
runners, terwijl het niet-mutatieve validatiepad de grotere
pakketmetadata-controle; echte publicatie vereist nog steeds een echte releasetag
- Beide workflows houden het echte publicatie- en promotiepad op GitHub-hosted
runners, terwijl het niet-muterende validatiepad de grotere
Blacksmith Linux-runners kan gebruiken
- Die workflow voert
- Die workflow draait
`OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cache`
uit met zowel `OPENAI_API_KEY` als `ANTHROPIC_API_KEY` workflowsecrets
- npm-releasepreflight wacht niet langer op de aparte releasecheckslane
met zowel `OPENAI_API_KEY` als `ANTHROPIC_API_KEY` workflowsecrets
- npm-releasepreflight wacht niet langer op de aparte releasecontroles-lane
- Voer `RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts`
(of de overeenkomende beta-/correctietag) uit vóór goedkeuring
(of de overeenkomende beta/correction-tag) uit vóór goedkeuring
- Voer na npm-publicatie
`node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D`
(of de overeenkomende beta-/correctieversie) uit om het gepubliceerde registry-
installatiepad te verifiëren in een verse tijdelijke prefix
(of de overeenkomende beta/correction-versie) uit om het gepubliceerde registry
installatiepad in een verse tijdelijke prefix te verifiëren
- Voer na een betapublicatie `OPENCLAW_NPM_TELEGRAM_PACKAGE_SPEC=openclaw@YYYY.M.D-beta.N OPENCLAW_NPM_TELEGRAM_CREDENTIAL_SOURCE=convex OPENCLAW_NPM_TELEGRAM_CREDENTIAL_ROLE=ci pnpm test:docker:npm-telegram-live`
uit om installed-package-onboarding, Telegram-configuratie en echte Telegram E2E
tegen het gepubliceerde npm-pakket te verifiëren met de gedeelde geleasete Telegram-
credentialpool. Lokale eenmalige maintainer-runs mogen de Convex-variabelen weglaten en de drie
`OPENCLAW_QA_TELEGRAM_*` env-credentials direct doorgeven.
- Gebruik `pnpm release:beta-smoke -- --beta betaN` om de volledige post-publish beta-smoke vanaf een maintainer-machine uit te voeren. De helper voert Parallels npm update/fresh-target-validatie uit, dispatcht `NPM Telegram Beta E2E`, pollt de exacte workflowrun, downloadt het artefact en print het Telegram-rapport.
uit om installed-package onboarding, Telegram-installatie en echte Telegram E2E
tegen het gepubliceerde npm-pakket te verifiëren met de gedeelde leased Telegram credential
pool. Lokale maintainer-eenmalige runs mogen de Convex-vars weglaten en de drie
`OPENCLAW_QA_TELEGRAM_*` env-credentials rechtstreeks doorgeven.
- Om de volledige post-publish beta smoke vanaf een maintainer-machine te draaien, gebruik `pnpm release:beta-smoke -- --beta betaN`. De helper draait Parallels npm update/fresh-target-validatie, dispatcht `NPM Telegram Beta E2E`, pollt de exacte workflow-run, downloadt het artefact en print het Telegram-rapport.
- Maintainers kunnen dezelfde post-publish-controle vanuit GitHub Actions uitvoeren via de
handmatige workflow `NPM Telegram Beta E2E`. Deze is bewust alleen handmatig en
handmatige `NPM Telegram Beta E2E`-workflow. Deze is bewust alleen handmatig en
draait niet bij elke merge.
- Maintainer-releaseautomatisering gebruikt nu preflight-dan-promote:
- echte npm-publicatie moet slagen met een succesvolle npm `preflight_run_id`
- Maintainer-releaseautomatisering gebruikt nu preflight-then-promote:
- echte npm-publicatie moet een succesvolle npm `preflight_run_id` hebben
- de echte npm-publicatie moet worden gedispatcht vanaf dezelfde `main`- of
`release/YYYY.M.D`-branch als de succesvolle preflightrun
`release/YYYY.M.D`-branch als de succesvolle preflight-run
- stabiele npm-releases gebruiken standaard `beta`
- stabiele npm-publicatie kan expliciet `latest` targeten via workflowinput
- stabiele npm-publicatie kan expliciet op `latest` mikken via workflowinput
- token-gebaseerde npm dist-tag-mutatie bevindt zich nu in
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
voor beveiliging, omdat `npm dist-tag add` nog steeds `NPM_TOKEN` nodig heeft terwijl de
openbare repo OIDC-only publicatie behoudt
- openbare `macOS Release` is alleen voor validatie; wanneer een tag alleen op een
releasebranch bestaat maar de workflow vanaf `main` wordt gedispatcht, stel
publieke repo OIDC-only publicatie behoudt
- publieke `macOS Release` is alleen validatie; wanneer een tag alleen op een
releasebranch staat maar de workflow vanaf `main` wordt gedispatcht, stel
`public_release_branch=release/YYYY.M.D` in
- echte private mac-publicatie moet succesvolle private mac
- echte privé mac-publicatie moet succesvolle privé mac
`preflight_run_id` en `validate_run_id` hebben
- de echte publicatiepaden promoveren voorbereide artefacten in plaats van ze
opnieuw te bouwen
- Voor stabiele correctiereleases zoals `YYYY.M.D-N` controleert de post-publish-verifier
ook hetzelfde temp-prefix-upgradepad van `YYYY.M.D` naar `YYYY.M.D-N`,
- de echte publicatiepaden promoveren voorbereide artefacten in plaats van
ze opnieuw te bouwen
- Voor stabiele correctiereleases zoals `YYYY.M.D-N` controleert de post-publish verifier
ook hetzelfde temp-prefix upgradepad van `YYYY.M.D` naar `YYYY.M.D-N`,
zodat releasecorrecties oudere globale installaties niet stilzwijgend op de
basis-stabiele payload kunnen laten staan
basisstabiele payload kunnen laten staan
- npm-releasepreflight faalt gesloten tenzij de tarball zowel
`dist/control-ui/index.html` als een niet-lege `dist/control-ui/assets/`-payload bevat,
zodat we niet opnieuw een leeg browserdashboard leveren
- Post-publish-verificatie controleert ook dat gepubliceerde plugin-entrypoints en
`dist/control-ui/index.html` als een niet-lege `dist/control-ui/assets/` payload bevat,
zodat we niet opnieuw een leeg browserdashboard verzenden
- Post-publish-verificatie controleert ook dat gepubliceerde Plugin-entrypoints en
pakketmetadata aanwezig zijn in de geïnstalleerde registry-layout. Een release die
ontbrekende plugin-runtimepayloads levert, faalt de postpublish-verifier en
kan niet worden gepromoveerd naar `latest`.
- `pnpm test:install:smoke` handhaaft ook het npm pack `unpackedSize`-budget op
de kandidaat-updatetarball, zodat installer-e2e onbedoelde pakketgroei opvangt
voordat het releasepublicatiepad
- Als het releasewerk CI-planning, extensie-timingmanifests of
extensietestmatrices heeft geraakt, regenereer en review dan de planner-owned
`plugin-prerelease-extension-shard`-matrixoutputs uit
`.github/workflows/plugin-prerelease.yml` vóór goedkeuring, zodat releasenotities geen
ontbrekende Plugin-runtimepayloads verzendt faalt de postpublish verifier en
kan niet naar `latest` worden gepromoveerd.
- `pnpm test:install:smoke` dwingt ook het npm pack `unpackedSize`-budget af op
de kandidaat-updatetarball, zodat installer-e2e onbedoelde pack-bloat opvangt
vóór het release-publicatiepad
- Als het releasewerk CI-planning, extensietimingmanifests of
extensietestmatrices raakte, regenereer en review dan de door de planner beheerde
`plugin-prerelease-extension-shard` matrix-outputs uit
`.github/workflows/plugin-prerelease.yml` vóór goedkeuring, zodat releasenotes geen
verouderde CI-layout beschrijven
- Stabiele macOS-releasegereedheid omvat ook de updater-oppervlakken:
- de GitHub-release moet uiteindelijk de verpakte `.zip`, `.dmg` en `.dSYM.zip` bevatten
- `appcast.xml` op `main` moet na publicatie naar de nieuwe stabiele zip verwijzen
- de verpakte app moet een niet-debug-bundle-id, een niet-lege Sparkle-feed-
URL en een `CFBundleVersion` op of boven de canonieke Sparkle-buildfloor
voor die releaseversie behouden
- Gereedheid voor stabiele macOS-release omvat ook de updater-oppervlakken:
- de GitHub-release moet eindigen met de verpakte `.zip`, `.dmg` en `.dSYM.zip`
- `appcast.xml` op `main` moet na publicatie naar de nieuwe stabiele zip wijzen
- de verpakte app moet een niet-debug bundle-id behouden, een niet-lege Sparkle-feed
URL, en een `CFBundleVersion` op of boven de canonieke Sparkle-buildvloer
voor die releaseversie
## Release-testboxen
## Release testboxes
`Full Release Validation` is hoe operators alle pre-release-tests vanuit
één entrypoint starten. Gebruik voor een pinned commit-bewijs op een snel bewegende branch de
helper, zodat elke childworkflow draait vanaf een tijdelijke branch die is vastgezet op de target-
`Full Release Validation` is hoe operators alle pre-release tests vanuit één
entrypoint starten. Voor bewijs van een gepinde commit op een snel bewegende branch gebruik je de
helper zodat elke child-workflow draait vanaf een tijdelijke branch die is vastgezet op de doel-
SHA:
```bash
@ -280,11 +281,11 @@ pnpm ci:full-release --sha <full-sha>
```
De helper pusht `release-ci/<sha>-...`, dispatcht `Full Release Validation`
vanaf die branch met `ref=<sha>`, verifieert dat elke childworkflow `headSha`
overeenkomt met de target en verwijdert daarna de tijdelijke branch. Dit voorkomt dat je per ongeluk
een nieuwere `main`-childrun bewijst.
vanaf die branch met `ref=<sha>`, verifieert dat elke child-workflow `headSha`
overeenkomt met het doel, en verwijdert daarna de tijdelijke branch. Dit voorkomt dat je per ongeluk een
nieuwere `main` child-run bewijst.
Voor validatie van releasebranches of tags voer je dit uit vanaf de vertrouwde `main`-workflow-
Voor validatie van een releasebranch of tag draai je dit vanaf de vertrouwde `main` workflow-
ref en geef je de releasebranch of tag door als `ref`:
```bash
@ -297,52 +298,52 @@ gh workflow run full-release-validation.yml \
-f evidence_package_spec=openclaw@YYYY.M.D-beta.N
```
De workflow lost de doel-ref op, dispatcht handmatig `CI` met
`target_ref=<release-ref>`, dispatcht `OpenClaw Release Checks`, bereidt een
bovenliggend `release-package-under-test`-artefact voor voor pakketgerichte checks, en
dispatcht standalone pakket-Telegram-E2E wanneer `release_profile=full` met
De workflow lost de doel-ref op, start handmatige `CI` met
`target_ref=<release-ref>`, start `OpenClaw Release Checks`, bereidt een
bovenliggend `release-package-under-test`-artifact voor pakketgerichte controles voor, en
start zelfstandige pakket-Telegram-E2E wanneer `release_profile=full` is met
`rerun_group=all` of wanneer `npm_telegram_package_spec` is ingesteld. `OpenClaw Release
Checks` waaiert daarna uit naar installatiesmoke, cross-OS-releasechecks, live/E2E Docker
Checks` waaiert daarna uit naar installatierooktests, cross-OS-releasecontroles, live/E2E-Docker
release-paddekking wanneer soak is ingeschakeld, Package Acceptance met Telegram
pakket-QA, QA Lab-pariteit, live Matrix en live Telegram. Een volledige run is alleen acceptabel wanneer de
samenvatting van `Full Release Validation`
`normal_ci` en `release_checks` als geslaagd toont. In full/all-modus moet de
`npm_telegram`-child ook geslaagd zijn; buiten full/all wordt deze overgeslagen,
`Full Release Validation`-
samenvatting `normal_ci` en `release_checks` als geslaagd toont. In full/all-modus
moet de `npm_telegram`-child ook geslaagd zijn; buiten full/all wordt deze overgeslagen,
tenzij een gepubliceerde `npm_telegram_package_spec` is opgegeven. De uiteindelijke
verificatiesamenvatting bevat tabellen met traagste jobs voor elke child-run, zodat de release
manager het huidige kritieke pad kan zien zonder logs te downloaden.
verificatiesamenvatting bevat tabellen met traagste jobs voor elke child-run, zodat de releasemanager
het huidige kritieke pad kan zien zonder logs te downloaden.
Zie [Volledige releasevalidatie](/nl/reference/full-release-validation) voor de
complete fasematrix, exacte workflowjobnamen, verschillen tussen stabiel en volledig profiel,
artefacten en gerichte rerun-handles.
Child-workflows worden gedispatcht vanaf de vertrouwde ref die `Full Release
complete fasematrix, exacte workflow-jobnamen, verschillen tussen stabiel en volledig profiel,
artifacts en gerichte rerun-handles.
Child-workflows worden gestart vanaf de vertrouwde ref die `Full Release
Validation` uitvoert, normaal `--ref main`, zelfs wanneer de doel-`ref` naar een
oudere releasebranch of tag wijst. Er is geen aparte Full Release Validation
oudere releasetak of tag wijst. Er is geen aparte Full Release Validation
workflow-ref-invoer; kies de vertrouwde harness door de workflow-run-ref te kiezen.
Gebruik geen `--ref main -f ref=<sha>` voor exact commitbewijs op bewegende `main`;
Gebruik `--ref main -f ref=<sha>` niet voor exact commitbewijs op bewegende `main`;
ruwe commit-SHA's kunnen geen workflow-dispatch-refs zijn, dus gebruik
`pnpm ci:full-release --sha <sha>` om de vastgepinde tijdelijke branch te maken.
`pnpm ci:full-release --sha <sha>` om de vastgezette tijdelijke tak te maken.
Gebruik `release_profile` om live/provider-breedte te selecteren:
- `minimum`: snelste release-kritieke live OpenAI/core- en Docker-pad
- `minimum`: snelste release-kritieke OpenAI/core live- en Docker-pad
- `stable`: minimum plus stabiele provider/backend-dekking voor releasegoedkeuring
- `full`: stable plus brede adviserende provider/media-dekking
Gebruik `run_release_soak=true` met `stable` wanneer de releaseblokkerende lanes
groen zijn en je de uitputtende live/E2E-, Docker release-pad- en
Gebruik `run_release_soak=true` met `stable` wanneer de release-blokkerende lanes
groen zijn en je de uitputtende live/E2E-, Docker-releasepad- en
begrensde gepubliceerde upgrade-survivor-sweep wilt vóór promotie. Die sweep dekt
de nieuwste vier stabiele pakketten plus vastgepinde `2026.4.23`- en `2026.5.2`-
baselines plus oudere `2026.4.15`-dekking, waarbij dubbele baselines zijn verwijderd en
elke baseline in een eigen Docker-runnerjob wordt geshard. `full` impliceert
de nieuwste vier stabiele pakketten plus vastgezette `2026.4.23`- en `2026.5.2`-
baselines plus oudere `2026.4.15`-dekking, met dubbele baselines verwijderd en
elke baseline verdeeld in een eigen Docker-runner-job. `full` impliceert
`run_release_soak=true`.
`OpenClaw Release Checks` gebruikt de vertrouwde workflow-ref om de doel-ref
eenmalig op te lossen als `release-package-under-test` en hergebruikt dat artefact in cross-OS,
Package Acceptance en release-pad-Docker-checks wanneer soak draait. Dit houdt
eenmaal als `release-package-under-test` op te lossen en hergebruikt dat artifact in cross-OS,
Package Acceptance en release-pad-Docker-controles wanneer soak draait. Dit houdt
alle pakketgerichte boxes op dezelfde bytes en voorkomt herhaalde pakketbuilds.
De cross-OS OpenAI-installatiesmoke gebruikt `OPENCLAW_CROSS_OS_OPENAI_MODEL` wanneer de
De cross-OS OpenAI-installatierooktest gebruikt `OPENCLAW_CROSS_OS_OPENAI_MODEL` wanneer de
repo/org-variabele is ingesteld, anders `openai/gpt-5.4`, omdat deze lane
pakketinstallatie, onboarding, Gateway-opstart en één live agentbeurt bewijst
pakketinstallatie, onboarding, Gateway-start en één live agentbeurt bewijst
in plaats van het traagste standaardmodel te benchmarken. De bredere live provider-
matrix blijft de plek voor modelspecifieke dekking.
@ -378,42 +379,42 @@ gh workflow run full-release-validation.yml \
Gebruik de volledige umbrella niet als eerste rerun na een gerichte fix. Als één box
faalt, gebruik dan de mislukte child-workflow, job, Docker-lane, pakketprofiel, model-
provider of QA-lane voor het volgende bewijs. Voer de volledige umbrella pas opnieuw uit wanneer
provider of QA-lane voor het volgende bewijs. Run de volledige umbrella pas opnieuw wanneer
de fix gedeelde release-orchestratie heeft gewijzigd of eerder all-box-bewijs
verouderd heeft gemaakt. De uiteindelijke verifier van de umbrella controleert de vastgelegde child-workflow-run-
ids opnieuw, dus nadat een child-workflow succesvol opnieuw is uitgevoerd, voer alleen de mislukte
bovenliggende job `Verify full validation` opnieuw uit.
verouderd heeft gemaakt. De uiteindelijke verifier van de umbrella controleert de geregistreerde child-workflow-run-
ids opnieuw, dus nadat een child-workflow succesvol opnieuw is uitgevoerd, rerun alleen de mislukte
bovenliggende `Verify full validation`-job.
Geef voor begrensd herstel `rerun_group` door aan de umbrella. `all` is de echte
releasecandidate-run, `ci` voert alleen de normale CI-child uit, `plugin-prerelease`
voert alleen de release-only plugin-child uit, `release-checks` voert elke release-
voert alleen de release-only Plugin-child uit, `release-checks` voert elke release-
box uit, en de smallere releasegroepen zijn `install-smoke`, `cross-os`,
`live-e2e`, `package`, `qa`, `qa-parity`, `qa-live` en `npm-telegram`.
Gerichte `npm-telegram`-reruns vereisen `npm_telegram_package_spec`; full/all-runs
met `release_profile=full` gebruiken het pakketartefact van release-checks. Gerichte
met `release_profile=full` gebruiken het release-checks-pakketartifact. Gerichte
cross-OS-reruns kunnen `cross_os_suite_filter=windows/packaged-upgrade` of
een ander OS/suite-filter toevoegen. QA-releasecheckfouten zijn adviserend; een QA-only-
een ander OS/suite-filter toevoegen. QA-release-check-fouten zijn adviserend; een QA-only-
fout blokkeert releasevalidatie niet.
### Vitest
De Vitest-box is de handmatige `CI`-child-workflow. Handmatige CI omzeilt bewust
changed-scoping en forceert de normale testgraaf voor de releasecandidate:
Linux Node-shards, gebundelde-plugin-shards, kanaalcontracten, Node 22-
compatibiliteit, `check`, `check-additional`, buildsmoke, docs-checks, Python
skills, Windows, macOS, Android en Control UI-i18n.
changed-scoping en forceert de normale testgrafiek voor de releasecandidate:
Linux Node-shards, bundled-Plugin-shards, kanaalcontracten, Node 22-
compatibiliteit, `check`, `check-additional`, buildrooktest, docscontroles, Python-
Skills, Windows, macOS, Android en Control UI i18n.
Gebruik deze box om de vraag te beantwoorden: "is de source tree geslaagd voor de volledige normale testsuite?"
Dit is niet hetzelfde als release-pad-productvalidatie. Bewijs om te bewaren:
Gebruik deze box om te beantwoorden: "is de bronboom geslaagd voor de volledige normale testsuite?"
Dit is niet hetzelfde als productvalidatie van het releasepad. Bewijs om te bewaren:
- samenvatting van `Full Release Validation` met de URL van de gedispatchte `CI`-run
- `Full Release Validation`-samenvatting met de gestarte `CI`-run-URL
- `CI`-run groen op de exacte doel-SHA
- namen van mislukte of trage shards uit de CI-jobs bij het onderzoeken van regressies
- Vitest-timingartefacten zoals `.artifacts/vitest-shard-timings.json` wanneer
- mislukte of trage shardnamen uit de CI-jobs bij het onderzoeken van regressies
- Vitest-timingartifacts zoals `.artifacts/vitest-shard-timings.json` wanneer
een run prestatieanalyse nodig heeft
Voer handmatige CI alleen direct uit wanneer de release deterministische normale CI nodig heeft maar
niet de Docker-, QA Lab-, live-, cross-OS- of pakketboxes:
Run handmatige CI direct alleen wanneer de release deterministische normale CI nodig heeft maar
niet de Docker-, QA Lab-, live-, cross-OS- of pakket-boxes:
```bash
gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
@ -421,17 +422,17 @@ gh workflow run ci.yml --ref main -f target_ref=release/YYYY.M.D
### Docker
De Docker-box leeft in `OpenClaw Release Checks` via
`openclaw-live-and-e2e-checks-reusable.yml`, plus de release-modus
De Docker-box bevindt zich in `OpenClaw Release Checks` via
`openclaw-live-and-e2e-checks-reusable.yml`, plus de release-mode
`install-smoke`-workflow. Deze valideert de releasecandidate via verpakte
Docker-omgevingen in plaats van alleen source-level tests.
Docker-omgevingen in plaats van alleen tests op bronniveau.
Release-Docker-dekking omvat:
- volledige installatiesmoke met de langzame Bun global install-smoke ingeschakeld
- voorbereiding/hergebruik van root-Dockerfile-smoke-image per doel-SHA, met QR-,
root/Gateway- en installer/Bun-smokejobs als aparte install-smoke-
shards
- volledige installatierooktest met de trage Bun globale installatierooktest ingeschakeld
- root-Dockerfile-rooktestimagevoorbereiding/hergebruik per doel-SHA, met QR-,
root/Gateway- en installer/Bun-rooktestjobs die als afzonderlijke install-smoke-
shards draaien
- repository-E2E-lanes
- release-pad-Docker-chunks: `core`, `package-update-openai`,
`package-update-anthropic`, `package-update-core`, `plugins-runtime-plugins`,
@ -440,43 +441,43 @@ Release-Docker-dekking omvat:
`plugins-runtime-install-c`, `plugins-runtime-install-d`,
`plugins-runtime-install-e`, `plugins-runtime-install-f`,
`plugins-runtime-install-g` en `plugins-runtime-install-h`
- OpenWebUI-dekking binnen de chunk `plugins-runtime-services` wanneer gevraagd
- gesplitste gebundelde-plugin-install/uninstall-lanes
- OpenWebUI-dekking binnen de `plugins-runtime-services`-chunk wanneer gevraagd
- gesplitste bundled-Plugin-install/uninstall-lanes
`bundled-plugin-install-uninstall-0` tot en met
`bundled-plugin-install-uninstall-23`
- live/E2E-provider-suites en Docker-live-modeldekking wanneer releasechecks
- live/E2E-provider-suites en Docker live-modeldekking wanneer releasecontroles
live-suites bevatten
Gebruik Docker-artefacten voordat je opnieuw uitvoert. De release-pad-scheduler uploadt
Gebruik Docker-artifacts voordat je opnieuw runt. De release-padplanner uploadt
`.artifacts/docker-tests/` met lane-logs, `summary.json`, `failures.json`,
fasetimings, scheduler-plan-JSON en rerun-commando's. Gebruik voor gericht herstel
fasetimings, plannerplan-JSON en rerun-commando's. Gebruik voor gericht herstel
`docker_lanes=<lane[,lane]>` op de herbruikbare live/E2E-workflow in plaats van
alle releasechunks opnieuw uit te voeren. Gegenereerde rerun-commando's bevatten eerdere
alle releasechunks opnieuw te runnen. Gegenereerde rerun-commando's bevatten eerdere
`package_artifact_run_id` en voorbereide Docker-image-invoer wanneer beschikbaar, zodat een
mislukte lane dezelfde tarball en GHCR-images kan hergebruiken.
### QA Lab
De QA Lab-box maakt ook deel uit van `OpenClaw Release Checks`. Het is de agentische
gedrags- en kanaalniveau-releasegate, los van Vitest en Docker-
De QA Lab-box maakt ook deel uit van `OpenClaw Release Checks`. Het is de agentic
gedrags- en kanaalreleasegate, gescheiden van Vitest- en Docker-
pakketmechanica.
Release-QA Lab-dekking omvat:
- mock-parity-lane die de OpenAI-candidate-lane vergelijkt met de Opus 4.6-
baseline met behulp van het agentische parity pack
- snel live Matrix-QA-profiel met de omgeving `qa-live-shared`
- mock-pariteitslane die de OpenAI-candidatelane vergelijkt met de Opus 4.6-
baseline met behulp van het agentic parity pack
- snel live Matrix-QA-profiel met de `qa-live-shared`-omgeving
- live Telegram-QA-lane met Convex CI-credentialleases
- `pnpm qa:otel:smoke` wanneer releasetelemetrie expliciet lokaal bewijs nodig heeft
Gebruik deze box om de vraag te beantwoorden: "gedraagt de release zich correct in QA-scenario's en
live kanaalstromen?" Bewaar de artefact-URL's voor parity-, Matrix- en Telegram-
Gebruik deze box om te beantwoorden: "gedraagt de release zich correct in QA-scenario's en
live kanaalstromen?" Bewaar de artifact-URL's voor pariteit-, Matrix- en Telegram-
lanes bij het goedkeuren van de release. Volledige Matrix-dekking blijft beschikbaar als een
handmatige gesharde QA-Lab-run in plaats van de standaard release-kritieke lane.
### Pakket
De pakketbox is de installable-product-gate. Deze wordt ondersteund door
De Pakket-box is de gate voor het installeerbare product. Deze wordt ondersteund door
`Package Acceptance` en de resolver
`scripts/resolve-openclaw-package-candidate.mjs`. De resolver normaliseert een
candidate naar de `package-under-test`-tarball die door Docker E2E wordt gebruikt, valideert
@ -487,45 +488,45 @@ Ondersteunde candidate-bronnen:
- `source=npm`: `openclaw@beta`, `openclaw@latest` of een exacte OpenClaw-release-
versie
- `source=ref`: pack een vertrouwde `package_ref`-branch, tag of volledige commit-SHA
- `source=ref`: pack een vertrouwde `package_ref`-tak, tag of volledige commit-SHA
met de geselecteerde `workflow_ref`-harness
- `source=url`: download een HTTPS-`.tgz` met vereiste `package_sha256`
- `source=artifact`: hergebruik een `.tgz` dat door een andere GitHub Actions-run is geüpload
- `source=artifact`: hergebruik een `.tgz` geüpload door een andere GitHub Actions-run
`OpenClaw Release Checks` voert Package Acceptance uit met `source=artifact`, het
voorbereide releasepakketartefact, `suite_profile=custom`,
voorbereide releasepakketartifact, `suite_profile=custom`,
`docker_lanes=doctor-switch update-channel-switch upgrade-survivor published-upgrade-survivor update-restart-auth plugins-offline plugin-update`,
`telegram_mode=mock-openai`. Package Acceptance houdt migratie, update,
configured-auth-update-restart, cleanup van verouderde plugin-afhankelijkheden, offline plugin-
fixtures, plugin-update en Telegram-pakket-QA tegen dezelfde opgeloste
tarball. Blokkerende releasechecks gebruiken de standaard nieuwste gepubliceerde pakket-
geconfigureerde-auth update restart, cleanup van oude Plugin-afhankelijkheden, offline Plugin-
fixtures, Plugin-update en Telegram-pakket-QA tegen dezelfde opgeloste
tarball. Blokkerende releasecontroles gebruiken de standaard nieuwste gepubliceerde pakket-
baseline; `run_release_soak=true` of
`release_profile=full` breidt uit naar elke stabiele npm-gepubliceerde baseline van
`2026.4.23` tot en met `latest` plus reported-issue-fixtures. Gebruik
`2026.4.23` tot en met `latest` plus gemelde-issue-fixtures. Gebruik
Package Acceptance met `source=npm` voor een al verzonden candidate, of
`source=ref`/`source=artifact` voor een SHA-onderbouwde lokale npm-tarball vóór
publicatie. Het is de GitHub-native
vervanging voor het grootste deel van de pakket/update-dekking die eerder
Parallels vereiste. Cross-OS-releasechecks blijven belangrijk voor OS-specifieke onboarding,
installer- en platformgedrag, maar pakket/update-productvalidatie moet
Package Acceptance verkiezen.
vervanging voor de meeste pakket/update-dekking die eerder Parallels vereiste.
Cross-OS-releasecontroles blijven belangrijk voor OS-specifieke onboarding,
installer- en platformgedrag, maar pakket/update-productvalidatie zou
Package Acceptance moeten verkiezen.
De canonieke checklist voor update- en pluginvalidatie is
[Updates en plugins testen](/nl/help/testing-updates-plugins). Gebruik deze bij het
bepalen welke lokale, Docker-, Package Acceptance- of releasecheck-lane een
plugin-install/update, doctor-cleanup of gepubliceerde-pakketmigratiewijziging bewijst.
De canonieke checklist voor update- en Plugin-validatie is
[Updates en plugins testen](/nl/help/testing-updates-plugins). Gebruik deze wanneer je
bepaalt welke lokale, Docker-, Package Acceptance- of release-check-lane een
Plugin-install/update, doctor-cleanup of gepubliceerde-pakketmigratiewijziging bewijst.
Uitputtende gepubliceerde update-migratie vanaf elk stabiel `2026.4.23+`-pakket is
een aparte handmatige `Update Migration`-workflow, geen onderdeel van Full Release CI.
De soepelheid voor oudere pakketacceptatie is bewust in de tijd begrensd. Pakketten tot en met
`2026.4.25` mogen het compatibiliteitspad gebruiken voor metadatagaten die al naar
npm zijn gepubliceerd: private QA-inventarisvermeldingen die ontbreken in de tarball, ontbrekende
`gateway install --wrapper`, ontbrekende patchbestanden in de uit de tarball afgeleide git-fixture,
ontbrekende blijvend opgeslagen `update.channel`, oudere Plugin-installatierecordlocaties,
ontbrekende blijvend opgeslagen marketplace-installatierecords en migratie van configmetadata
Legacy coulance in packageacceptatie is bewust tijdelijk begrensd. Pakketten tot en met
`2026.4.25` mogen het compatibiliteitspad gebruiken voor metadatahiaten die al
naar npm zijn gepubliceerd: privé-QA-inventarisitems die ontbreken in de tarball, ontbrekende
`gateway install --wrapper`, ontbrekende patchbestanden in de uit de tarball afgeleide git-
fixture, ontbrekende blijvende `update.channel`, legacy install-recordlocaties voor Plugins,
ontbrekende persistentie van marketplace-install-records en migratie van configmetadata
tijdens `plugins update`. Het gepubliceerde pakket `2026.4.26` mag waarschuwen
voor lokale buildmetadatastempelbestanden die al zijn verzonden. Latere pakketten
moeten voldoen aan de moderne pakketcontracten; diezelfde gaten laten releasevalidatie
voor lokale buildmetadata-stempelbestanden die al waren meegeleverd. Latere pakketten
moeten voldoen aan de moderne pakketcontracten; diezelfde hiaten laten releasevalidatie
mislukken.
Gebruik bredere Package Acceptance-profielen wanneer de releasevraag gaat over een
@ -541,37 +542,37 @@ gh workflow run package-acceptance.yml \
-f published_upgrade_survivor_baseline=openclaw@2026.4.26
```
Algemene pakketprofielen:
Veelgebruikte pakketprofielen:
- `smoke`: snelle pakketinstallatie-/kanaal-/agent-, Gateway-netwerk- en config
herlaadlanen
- `package`: install/update/restart/Plugin-pakketcontracten zonder live
ClawHub; dit is de standaard voor releasecontroles
- `smoke`: snelle lanes voor pakketinstallatie/kanaal/agent, Gateway-netwerk en config
herladen
- `package`: contracten voor installatie/update/herstart/Plugin-pakket zonder live
ClawHub; dit is de standaard voor releasechecks
- `product`: `package` plus MCP-kanalen, cron-/subagent-opruiming, OpenAI-web
search en OpenWebUI
- `full`: Docker-releasepadsegmenten met OpenWebUI
- `custom`: exacte `docker_lanes`-lijst voor gerichte herhalingen
zoeken en OpenWebUI
- `full`: Docker-releasepadchunks met OpenWebUI
- `custom`: exacte lijst met `docker_lanes` voor gerichte reruns
Voor Telegram-bewijs van een pakketkandidaat schakel je `telegram_mode=mock-openai` of
Schakel voor pakketkandidaatbewijs met Telegram `telegram_mode=mock-openai` of
`telegram_mode=live-frontier` in op Package Acceptance. De workflow geeft de
opgeloste `package-under-test`-tarball door aan de Telegram-laan; de zelfstandige
opgeloste `package-under-test`-tarball door aan de Telegram-lane; de zelfstandige
Telegram-workflow accepteert nog steeds een gepubliceerde npm-specificatie voor controles na publicatie.
## Automatisering voor releasepublicatie
`OpenClaw Release Publish` is het normale muterende publicatie-ingangspunt. Het
`OpenClaw Release Publish` is het normale muterende entrypoint voor publicatie. Het
orkestreert de trusted-publisher-workflows in de volgorde die de release nodig heeft:
1. Check de releasetag uit en los de commit-SHA op.
1. Check de release-tag uit en bepaal de commit-SHA.
2. Controleer of de tag bereikbaar is vanaf `main` of `release/*`.
3. Voer `pnpm plugins:sync:check` uit.
4. Dispatch `Plugin NPM Release` met `publish_scope=all-publishable` en
`ref=<release-sha>`.
5. Dispatch `Plugin ClawHub Release` met dezelfde scope en SHA.
6. Dispatch `OpenClaw NPM Release` met de releasetag, npm-dist-tag en
6. Dispatch `OpenClaw NPM Release` met de release-tag, npm dist-tag en
opgeslagen `preflight_run_id`.
Voorbeeld voor bètapublicatie:
Voorbeeld voor bèta-publicatie:
```bash
gh workflow run openclaw-release-publish.yml \
@ -591,7 +592,7 @@ gh workflow run openclaw-release-publish.yml \
-f npm_dist_tag=beta
```
Stabiele promotie rechtstreeks naar `latest` is expliciet:
Stabiele promotie direct naar `latest` is expliciet:
```bash
gh workflow run openclaw-release-publish.yml \
@ -601,51 +602,51 @@ gh workflow run openclaw-release-publish.yml \
-f npm_dist_tag=latest
```
Gebruik de onderliggende workflows `Plugin NPM Release` en `Plugin ClawHub Release`
alleen voor gericht herstel- of herpublicatiewerk. Geef voor een geselecteerd Plugin-herstel
Gebruik de lager-niveau workflows `Plugin NPM Release` en `Plugin ClawHub Release`
alleen voor gericht herstel- of herpublicatiewerk. Geef voor een geselecteerde Plugin-reparatie
`plugin_publish_scope=selected` en `plugins=@openclaw/name` door aan
`OpenClaw Release Publish`, of dispatch de onderliggende workflow rechtstreeks wanneer het
`OpenClaw Release Publish`, of dispatch de child-workflow rechtstreeks wanneer het
OpenClaw-pakket niet gepubliceerd mag worden.
## NPM-workflowinvoer
`OpenClaw NPM Release` accepteert deze door operators beheerde invoer:
`OpenClaw NPM Release` accepteert deze door operators beheerde invoerwaarden:
- `tag`: vereiste releasetag zoals `v2026.4.2`, `v2026.4.2-1` of
- `tag`: vereiste release-tag zoals `v2026.4.2`, `v2026.4.2-1` of
`v2026.4.2-beta.1`; wanneer `preflight_only=true`, mag dit ook de huidige
volledige 40-tekens workflow-branch commit-SHA zijn voor alleen-validatiepreflight
- `preflight_only`: `true` voor alleen validatie/build/pakket, `false` voor het
volledige 40-tekens lange workflow-branch-commit-SHA zijn voor een preflight die alleen valideert
- `preflight_only`: `true` alleen voor validatie/build/pakket, `false` voor het
echte publicatiepad
- `preflight_run_id`: vereist op het echte publicatiepad zodat de workflow de
voorbereide tarball uit de geslaagde preflightrun hergebruikt
voorbereide tarball uit de geslaagde preflight-run hergebruikt
- `npm_dist_tag`: npm-doeltag voor het publicatiepad; standaard `beta`
`OpenClaw Release Publish` accepteert deze door operators beheerde invoer:
`OpenClaw Release Publish` accepteert deze door operators beheerde invoerwaarden:
- `tag`: vereiste releasetag; moet al bestaan
- `preflight_run_id`: succesvolle `OpenClaw NPM Release`-preflightrun-id;
- `tag`: vereiste release-tag; moet al bestaan
- `preflight_run_id`: geslaagde `OpenClaw NPM Release` preflight-run-id;
vereist wanneer `publish_openclaw_npm=true`
- `npm_dist_tag`: npm-doeltag voor het OpenClaw-pakket
- `plugin_publish_scope`: standaard `all-publishable`; gebruik `selected` alleen
voor gericht herstelwerk
- `plugins`: door komma's gescheiden `@openclaw/*`-pakketnamen wanneer
`plugin_publish_scope=selected`
- `publish_openclaw_npm`: standaard `true`; zet op `false` alleen wanneer je de
workflow gebruikt als orchestrator voor Plugin-only herstel
- `publish_openclaw_npm`: standaard `true`; zet op `false` alleen wanneer de
workflow wordt gebruikt als reparatie-orchestrator voor alleen Plugins
`OpenClaw Release Checks` accepteert deze door operators beheerde invoer:
`OpenClaw Release Checks` accepteert deze door operators beheerde invoerwaarden:
- `ref`: branch, tag of volledige commit-SHA om te valideren. Controles met secrets
- `ref`: branch, tag of volledige commit-SHA om te valideren. Checks met secrets
vereisen dat de opgeloste commit bereikbaar is vanaf een OpenClaw-branch of
releasetag.
- `run_release_soak`: kies voor uitputtende live/E2E-, Docker-releasepad- en
all-since upgrade-survivor-soak op stabiele/standaard releasecontroles. Dit wordt
afgedwongen door `release_profile=full`.
release-tag.
- `run_release_soak`: kies voor uitputtende live/E2E, Docker-releasepad en
all-since upgrade-survivor soak op stabiele/standaard releasechecks. Dit wordt geforceerd
ingeschakeld door `release_profile=full`.
Regels:
- Stabiele en correctietags mogen publiceren naar `beta` of `latest`
- Bèta-prereleasetags mogen alleen publiceren naar `beta`
- Stabiele en correctietags mogen naar `beta` of `latest` publiceren
- Bèta-prerelease-tags mogen alleen naar `beta` publiceren
- Voor `OpenClaw NPM Release` is invoer met volledige commit-SHA alleen toegestaan wanneer
`preflight_only=true`
- `OpenClaw Release Checks` en `Full Release Validation` zijn altijd
@ -655,39 +656,39 @@ Regels:
## Stabiele npm-releasereeks
Wanneer je een stabiele npm-release maakt:
Bij het maken van een stabiele npm-release:
1. Voer `OpenClaw NPM Release` uit met `preflight_only=true`
- Voordat er een tag bestaat, mag je de huidige volledige workflow-branch commit
SHA gebruiken voor een alleen-validatie dry-run van de preflightworkflow
2. Kies `npm_dist_tag=beta` voor de normale beta-first-flow, of `latest` alleen
wanneer je bewust rechtstreeks stabiel wilt publiceren
3. Voer `Full Release Validation` uit op de releasebranch, releasetag of volledige
commit-SHA wanneer je normale CI plus live promptcache, Docker, QA Lab,
- Voordat er een tag bestaat, mag je de huidige volledige workflow-branch-commit
SHA gebruiken voor een validatie-only dry run van de preflight-workflow
2. Kies `npm_dist_tag=beta` voor de normale bèta-eerst-flow, of `latest` alleen
wanneer je bewust direct stabiel wilt publiceren
3. Voer `Full Release Validation` uit op de release-branch, release-tag of volledige
commit-SHA wanneer je normale CI plus live prompt cache, Docker, QA Lab,
Matrix en Telegram-dekking vanuit één handmatige workflow wilt
4. Als je bewust alleen de deterministische normale testgraph nodig hebt, voer dan de
4. Als je bewust alleen de deterministische normale testgraaf nodig hebt, voer dan in plaats daarvan de
handmatige `CI`-workflow uit op de release-ref
5. Sla de geslaagde `preflight_run_id` op
5. Bewaar de geslaagde `preflight_run_id`
6. Voer `OpenClaw Release Publish` uit met dezelfde `tag`, dezelfde `npm_dist_tag`
en de opgeslagen `preflight_run_id`; dit publiceert geëxternaliseerde Plugins naar npm
en ClawHub voordat het OpenClaw-npm-pakket wordt gepromoot
7. Als de release op `beta` is geland, gebruik dan de private
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`
en ClawHub voordat het OpenClaw-npm-pakket wordt gepromoveerd
7. Als de release op `beta` is geland, gebruik dan de privé
`openclaw/releases-private/.github/workflows/openclaw-npm-dist-tags.yml`-
workflow om die stabiele versie van `beta` naar `latest` te promoveren
8. Als de release bewust rechtstreeks naar `latest` is gepubliceerd en `beta`
onmiddellijk dezelfde stabiele build moet volgen, gebruik dan dezelfde private
8. Als de release bewust direct naar `latest` is gepubliceerd en `beta`
onmiddellijk dezelfde stabiele build moet volgen, gebruik dan dezelfde privé
workflow om beide dist-tags naar de stabiele versie te laten wijzen, of laat de geplande
self-healing-sync `beta` later verplaatsen
zelfherstellende sync `beta` later verplaatsen
De dist-tag-mutatie staat om veiligheidsredenen in de private repo, omdat deze nog steeds
`NPM_TOKEN` vereist, terwijl de publieke repo publicatie uitsluitend via OIDC houdt.
De dist-tagmutatie staat om veiligheidsredenen in de privérepo omdat deze nog steeds
`NPM_TOKEN` vereist, terwijl de publieke repo OIDC-only publicatie behoudt.
Dat houdt zowel het rechtstreekse publicatiepad als het beta-first-promotiepad
Dat houdt zowel het directe publicatiepad als het bèta-eerst promotiepad
gedocumenteerd en zichtbaar voor operators.
Als een maintainer moet terugvallen op lokale npm-authenticatie, voer dan alle 1Password
CLI-commando's (`op`) alleen uit binnen een toegewezen tmux-sessie. Roep `op` niet
rechtstreeks aan vanuit de hoofd-agent-shell; door het binnen tmux te houden, blijven prompts,
CLI (`op`)-commando's alleen uit binnen een dedicated tmux-sessie. Roep `op` niet
rechtstreeks aan vanuit de hoofd-agent-shell; door het binnen tmux te houden zijn prompts,
meldingen en OTP-afhandeling observeerbaar en worden herhaalde hostmeldingen voorkomen.
## Publieke referenties
@ -702,7 +703,7 @@ meldingen en OTP-afhandeling observeerbaar en worden herhaalde hostmeldingen voo
- [`scripts/package-mac-dist.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-dist.sh)
- [`scripts/make_appcast.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/make_appcast.sh)
Maintainers gebruiken de private releasedocumentatie in
Maintainers gebruiken de privé-releasedocumentatie in
[`openclaw/maintainers/release/README.md`](https://github.com/openclaw/maintainers/blob/main/release/README.md)
voor het daadwerkelijke runbook.

View File

@ -4,38 +4,38 @@ read_when:
- Plugin-detectie en laadregels begrijpen
- Werken met Codex/Claude-compatibele Plugin-bundels
sidebarTitle: Install and Configure
summary: Installeer, configureer en beheer OpenClaw-plugins
summary: OpenClaw-plugins installeren, configureren en beheren
title: Plugins
x-i18n:
generated_at: "2026-05-06T09:37:43Z"
generated_at: "2026-05-06T11:28:18Z"
model: gpt-5.5
provider: openai
source_hash: 0d68ad3cbd040d3f973d219cf273a792f11df382f6c4ccbf80c07acb0d26c658
source_hash: ad3000dbd6dd660f4dbab9a25c476e4c4e3fba0a9781ae344ea3cc147598d0b0
source_path: tools/plugin.md
workflow: 16
---
Plugins breiden OpenClaw uit met nieuwe mogelijkheden: kanalen, modelproviders,
agent-harnassen, tools, skills, spraak, realtime transcriptie, realtime
voice, mediabegrip, afbeeldingsgeneratie, videogeneratie, webfetch, web
search en meer. Sommige plugins zijn **core** (meegeleverd met OpenClaw), andere
zijn **extern**. De meeste externe plugins worden gepubliceerd en ontdekt via
[ClawHub](/nl/tools/clawhub). Npm blijft ondersteund voor directe installaties en voor een
tijdelijke set pluginpakketten die eigendom zijn van OpenClaw terwijl die migratie wordt afgerond.
spraak, mediabegrip, beeldgeneratie, videogeneratie, web fetch, web
search, en meer. Sommige plugins zijn **core** (meegeleverd met OpenClaw), andere
zijn **extern**. De meeste externe plugins worden gepubliceerd en gevonden via
[ClawHub](/nl/tools/clawhub). Npm blijft ondersteund voor rechtstreekse installaties en voor een
tijdelijke set pluginpakketten in eigendom van OpenClaw terwijl die migratie wordt afgerond.
## Snelstart
Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken en publiceren, zie
Voor voorbeelden voor kopiëren en plakken om te installeren, weer te geven, verwijderen, bijwerken en publiceren, zie
[Plugins beheren](/nl/plugins/manage-plugins).
<Steps>
<Step title="See what is loaded">
<Step title="Bekijk wat is geladen">
```bash
openclaw plugins list
```
</Step>
<Step title="Install a plugin">
<Step title="Installeer een plugin">
```bash
# Search ClawHub plugins
openclaw plugins search "calendar"
@ -57,7 +57,7 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e
</Step>
<Step title="Restart the Gateway">
<Step title="Herstart de Gateway">
```bash
openclaw gateway restart
```
@ -66,17 +66,17 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e
</Step>
<Step title="Chat-native management">
In een draaiende Gateway activeren eigenaar-only `/plugins enable` en `/plugins disable`
de configuratieherlader van de Gateway. De Gateway herlaadt plugin-runtime
oppervlakken binnen het proces, en nieuwe agentbeurten bouwen hun toollijst opnieuw op vanuit het
vernieuwde register. `/plugins install` wijzigt pluginbroncode, dus de
<Step title="Chat-native beheer">
In een actieve Gateway activeren `/plugins enable` en `/plugins disable`,
alleen voor de eigenaar, de config-herlader van de Gateway. De Gateway herlaadt plugin-runtime
oppervlakken in het proces, en nieuwe agentbeurten bouwen hun tool-lijst opnieuw op vanuit het
vernieuwde register. `/plugins install` wijzigt plugin-broncode, dus de
Gateway vraagt om een herstart in plaats van te doen alsof het huidige proces
reeds geïmporteerde modules veilig kan herladen.
al geïmporteerde modules veilig kan herladen.
</Step>
<Step title="Verify the plugin">
<Step title="Verifieer de plugin">
```bash
openclaw plugins inspect <plugin-id> --runtime --json
@ -84,14 +84,14 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e
openclaw <plugin-command> --help
```
Gebruik `--runtime` wanneer je geregistreerde tools, services, gateway
methods, hooks of CLI-opdrachten die eigendom zijn van de plugin moet bewijzen. Gewone `inspect` is een koude
Gebruik `--runtime` wanneer je geregistreerde tools, services, gateway-
methoden, hooks of CLI-commando's in eigendom van de plugin moet bewijzen. Gewoon `inspect` is een koude
manifest-/registercontrole en vermijdt bewust het importeren van plugin-runtime.
</Step>
</Steps>
Als je de voorkeur geeft aan chat-native beheer, schakel `commands.plugins: true` in en gebruik:
Als je chat-native controle verkiest, schakel dan `commands.plugins: true` in en gebruik:
```text
/plugin install clawhub:<package>
@ -101,38 +101,38 @@ Als je de voorkeur geeft aan chat-native beheer, schakel `commands.plugins: true
Het installatiepad gebruikt dezelfde resolver als de CLI: lokaal pad/archief, expliciet
`clawhub:<pkg>`, expliciet `npm:<pkg>`, expliciet `npm-pack:<path.tgz>`,
expliciet `git:<repo>`, of een kale pakketspecificatie via npm.
expliciet `git:<repo>`, of kale pakketspecificatie via npm.
Als configuratie ongeldig is, mislukt installatie normaal gesproken gesloten en verwijst naar
Als de configuratie ongeldig is, mislukt installatie normaal gesproken gesloten en verwijst die je naar
`openclaw doctor --fix`. De enige hersteluitzondering is een smal herinstallatiepad voor meegeleverde plugins
voor plugins die zich aanmelden voor
`openclaw.install.allowInvalidConfigRecovery`.
Tijdens het opstarten van de Gateway faalt ongeldige pluginconfiguratie gesloten zoals elke andere ongeldige
configuratie. Voer `openclaw doctor --fix` uit om de slechte pluginconfiguratie in quarantaine te plaatsen door
die pluginvermelding uit te schakelen en de ongeldige configuratiepayload te verwijderen; de normale
die pluginvermelding uit te schakelen en de ongeldige configuratiepayload ervan te verwijderen; de normale
configuratieback-up bewaart de vorige waarden.
Wanneer een kanaalconfiguratie verwijst naar een plugin die niet langer vindbaar is maar dezelfde
verouderde plugin-id in pluginconfiguratie of installatierecords blijft staan, logt Gateway startup
Wanneer een kanaalconfiguratie verwijst naar een plugin die niet meer vindbaar is maar dezelfde
verouderde plugin-id in pluginconfiguratie of installatierecords blijft staan, registreert Gateway-opstart
waarschuwingen en slaat dat kanaal over in plaats van elk ander kanaal te blokkeren.
Voer `openclaw doctor --fix` uit om de verouderde kanaal-/pluginvermeldingen te verwijderen; onbekende
kanaalsleutels zonder bewijs voor verouderde plugins blijven validatie laten mislukken zodat typefouten
kanaalsleutels zonder bewijs van een verouderde plugin blijven validatie mislukken zodat typefouten
zichtbaar blijven.
Als `plugins.enabled: false` is ingesteld, worden verouderde pluginverwijzingen als inert behandeld:
Gateway startup slaat pluginontdekking/laadwerk over en `openclaw doctor` behoudt
Gateway-opstart slaat werk voor pluginontdekking/-laden over en `openclaw doctor` behoudt
de uitgeschakelde pluginconfiguratie in plaats van die automatisch te verwijderen. Schakel plugins opnieuw in voordat
je doctor-opruiming uitvoert als je verouderde plugin-id's verwijderd wilt hebben.
je doctor-opruiming uitvoert als je verouderde plugin-id's wilt laten verwijderen.
Installatie van pluginafhankelijkheden gebeurt alleen tijdens expliciete installatie-/update- of
doctor-reparatiestromen. Gateway startup, configuratieherladen en runtime-inspectie
voeren geen package managers uit en repareren geen afhankelijkheidsbomen. Lokale plugins moeten hun afhankelijkheden al
Installatie van pluginafhankelijkheden gebeurt alleen tijdens expliciete installatie/update- of
doctor-herstelstromen. Gateway-opstart, config-herladen en runtime-inspectie voeren geen
pakketbeheerders uit en herstellen geen afhankelijkheidsbomen. Lokale plugins moeten hun afhankelijkheden al
geïnstalleerd hebben, terwijl npm-, git- en ClawHub-plugins worden
geïnstalleerd onder de beheerde pluginroots van OpenClaw. npm-afhankelijkheden kunnen worden gehesen
binnen OpenClaw's beheerde npm-root; installatie/update scant die beheerde root vóór
binnen OpenClaws beheerde npm-root; installatie/update scant die beheerde root vóór
vertrouwen en verwijderen verwijdert door npm beheerde pakketten via npm. Externe plugins
en aangepaste laadpaden moeten nog steeds worden geïnstalleerd via `openclaw plugins install`.
Gebruik `openclaw plugins list --json` om de statische `dependencyStatus` voor elke
zichtbare plugin te zien zonder runtimecode te importeren of afhankelijkheden te repareren.
Zie [Resolutie van pluginafhankelijkheden](/nl/plugins/dependency-resolution) voor de
zichtbare plugin te zien zonder runtimecode te importeren of afhankelijkheden te herstellen.
Zie [Afhankelijkheidsresolutie voor plugins](/nl/plugins/dependency-resolution) voor de
levenscyclus tijdens installatie.
### Geblokkeerd eigenaarschap van pluginpad
@ -141,76 +141,80 @@ Als plugindiagnostiek zegt
`blocked plugin candidate: suspicious ownership (... uid=1000, expected uid=0 or root)`
en configuratievalidatie volgt met `plugin present but blocked`, heeft OpenClaw
pluginbestanden gevonden die eigendom zijn van een andere Unix-gebruiker dan het proces dat ze laadt.
Laat de pluginconfiguratie staan; herstel het bestandssysteemeigenaarschap of voer
OpenClaw uit als dezelfde gebruiker die eigenaar is van de statusdirectory.
Laat de pluginconfiguratie staan; herstel het eigenaarschap van het bestandssysteem of voer
OpenClaw uit als dezelfde gebruiker die eigenaar is van de statusmap.
Voor Docker-installaties draait de officiële image als `node` (uid `1000`), dus de
host bind-mounted OpenClaw-configuratie- en werkruimtedirectories zouden normaal gesproken
host-bind-mounted OpenClaw-configuratie- en werkruimtemappen zouden normaal gesproken
eigendom moeten zijn van uid `1000`:
```bash
sudo chown -R 1000:1000 /path/to/openclaw-config /path/to/openclaw-workspace
```
Als je OpenClaw bewust als root uitvoert, herstel dan de beheerde pluginroot naar
root-eigenaarschap:
Als je OpenClaw bewust als root draait, herstel dan de beheerde pluginroot naar
root-eigenaarschap in plaats daarvan:
```bash
sudo chown -R root:root /path/to/openclaw-config/npm
```
Na het herstellen van eigenaarschap voer je `openclaw doctor --fix` opnieuw uit of
`openclaw plugins registry --refresh` zodat het opgeslagen pluginregister overeenkomt met
de herstelde bestanden.
Nadat je het eigenaarschap hebt hersteld, voer je `openclaw doctor --fix` of
`openclaw plugins registry --refresh` opnieuw uit zodat het vastgelegde pluginregister overeenkomt
met de herstelde bestanden.
Voor npm-installaties worden veranderlijke selectors zoals `latest` of een dist-tag vóór installatie
opgelost en daarna vastgezet op de exacte geverifieerde versie in OpenClaw's
Voor npm-installaties worden veranderlijke selectors zoals `latest` of een dist-tag opgelost
vóór installatie en daarna vastgepind op de exact geverifieerde versie in OpenClaws
beheerde npm-root. Nadat npm klaar is, verifieert OpenClaw dat de geïnstalleerde
`package-lock.json`-vermelding nog steeds overeenkomt met de opgeloste versie en integriteit. Als
npm andere pakketmetadata schrijft, mislukt de installatie en wordt het beheerde pakket
teruggedraaid in plaats van een ander pluginartefact te accepteren.
Beheerde npm-roots erven ook OpenClaws npm-`overrides` op pakketniveau, zodat
security-pins die de verpakte host beschermen ook gelden voor gehesen externe
pluginafhankelijkheden.
Bron-checkouts zijn pnpm-workspaces. Als je OpenClaw kloont om aan meegeleverde
Broncheckouts zijn pnpm-workspaces. Als je OpenClaw kloont om aan meegeleverde
plugins te werken, voer dan `pnpm install` uit; OpenClaw laadt meegeleverde plugins dan vanuit
`extensions/<id>` zodat wijzigingen en pakketlokale afhankelijkheden direct worden gebruikt.
Gewone npm-rootinstallaties zijn voor verpakte OpenClaw, niet voor ontwikkeling vanuit een bron-checkout.
`extensions/<id>` zodat bewerkingen en pakketlokale afhankelijkheden rechtstreeks worden gebruikt.
Gewone npm-rootinstallaties zijn bedoeld voor verpakte OpenClaw, niet voor ontwikkeling
in broncheckouts.
## Plugin-typen
## Plugintypen
OpenClaw herkent twee pluginformaten:
| Formaat | Hoe het werkt | Voorbeelden |
| Formaat | Hoe het werkt | Voorbeelden |
| ---------- | ------------------------------------------------------------------ | ------------------------------------------------------- |
| **Native** | `openclaw.plugin.json` + runtimemodule; voert in-process uit | Officiële plugins, community-npm-pakketten |
| **Bundle** | Codex/Claude/Cursor-compatibele indeling; gemapt naar OpenClaw-functies | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
| **Native** | `openclaw.plugin.json` + runtime-module; wordt in-proces uitgevoerd | Officiële plugins, community-npm-pakketten |
| **Bundle** | Codex/Claude/Cursor-compatibele indeling; toegewezen aan OpenClaw-functies | `.codex-plugin/`, `.claude-plugin/`, `.cursor-plugin/` |
Beide verschijnen onder `openclaw plugins list`. Zie [Plugin Bundles](/nl/plugins/bundles) voor bundledetails.
Beide verschijnen onder `openclaw plugins list`. Zie [Pluginbundels](/nl/plugins/bundles) voor bundeldetails.
Als je een native plugin schrijft, begin dan met [Plugins bouwen](/nl/plugins/building-plugins)
en het [Plugin SDK-overzicht](/nl/plugins/sdk-overview).
## Package-entrypoints
## Pakket-entrypoints
Native plugin-npm-pakketten moeten `openclaw.extensions` declareren in `package.json`.
Elke vermelding moet binnen de pakketdirectory blijven en naar een leesbaar
runtimebestand resolven, of naar een TypeScript-bronbestand met een afgeleide gebouwde JavaScript
Elke vermelding moet binnen de pakketmap blijven en oplossen naar een leesbaar
runtimebestand, of naar een TypeScript-bronbestand met een afgeleide gebouwde JavaScript-
peer zoals `src/index.ts` naar `dist/index.js`.
Verpakte installaties moeten die JavaScript-runtimeoutput meeleveren. De TypeScript
bronfallback is voor bron-checkouts en lokale ontwikkelpaden, niet voor
npm-pakketten die in OpenClaw's beheerde pluginroot zijn geïnstalleerd.
Verpakte installaties moeten die JavaScript-runtimeoutput meeleveren. De TypeScript-
bronfallback is bedoeld voor broncheckouts en lokale ontwikkelpaden, niet voor
npm-pakketten die zijn geïnstalleerd in OpenClaws beheerde pluginroot.
Als een waarschuwing voor een beheerd pakket zegt dat het `requires compiled runtime output for
TypeScript entry ...`, dan is het pakket gepubliceerd zonder de JavaScript-bestanden
die OpenClaw tijdens runtime nodig heeft. Dat is een pluginverpakkingsprobleem, geen lokaal configuratieprobleem.
Werk de plugin bij of installeer hem opnieuw nadat de uitgever gecompileerde
JavaScript opnieuw heeft gepubliceerd, of schakel die plugin uit/verwijder hem totdat er een gerepareerd pakket beschikbaar is.
TypeScript entry ...`, is het pakket gepubliceerd zonder de JavaScript-bestanden
die OpenClaw tijdens runtime nodig heeft. Dat is een pluginverpakkingsprobleem, geen lokaal configuratie-
probleem. Werk de plugin bij of installeer die opnieuw nadat de uitgever gecompileerde
JavaScript opnieuw heeft gepubliceerd, of schakel die plugin uit/verwijder die totdat een vast pakket beschikbaar is.
Gebruik `openclaw.runtimeExtensions` wanneer gepubliceerde runtimebestanden niet op
dezelfde paden staan als de bronvermeldingen. Indien aanwezig moet `runtimeExtensions` exact
dezelfde paden staan als de bronvermeldingen. Wanneer aanwezig, moet `runtimeExtensions` exact
één vermelding bevatten voor elke `extensions`-vermelding. Niet-overeenkomende lijsten laten installatie en
pluginontdekking mislukken in plaats van stil terug te vallen op bronpaden. Als je ook
`openclaw.setupEntry` publiceert, gebruik dan `openclaw.runtimeSetupEntry` voor de gebouwde
JavaScript peer; dat bestand is vereist wanneer gedeclareerd.
JavaScript-peer; dat bestand is vereist wanneer het is gedeclareerd.
```json
{
@ -227,16 +231,16 @@ JavaScript peer; dat bestand is vereist wanneer gedeclareerd.
### OpenClaw-eigen npm-pakketten tijdens migratie
ClawHub is het primaire distributiepad voor de meeste plugins. Huidige verpakte
OpenClaw-releases bundelen al veel officiële plugins, dus die hebben in normale setups geen
aparte npm-installaties nodig. Totdat elke plugin die eigendom is van OpenClaw
naar ClawHub is gemigreerd, levert OpenClaw nog steeds enkele `@openclaw/*`-pluginpakketten op
npm voor oudere/aangepaste installaties en directe npm-workflows.
OpenClaw-releases bundelen al veel officiële plugins, dus die hebben geen
afzonderlijke npm-installaties nodig in normale opstellingen. Totdat elke plugin in eigendom van OpenClaw is
gemigreerd naar ClawHub, levert OpenClaw nog steeds enkele `@openclaw/*`-pluginpakketten op
npm voor oudere/aangepaste installaties en rechtstreekse npm-workflows.
Als npm een `@openclaw/*`-pluginpakket als deprecated meldt, komt die pakketversie
uit een oudere externe pakketlijn. Gebruik de meegeleverde plugin uit
huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubliceerd.
| Plugin | Pakket | Docs |
| Plugin | Pakket | Documentatie |
| --------------- | -------------------------- | ------------------------------------------ |
| BlueBubbles | `@openclaw/bluebubbles` | [BlueBubbles](/nl/channels/bluebubbles) |
| Discord | `@openclaw/discord` | [Discord](/nl/channels/discord) |
@ -255,7 +259,7 @@ huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubli
### Core (meegeleverd met OpenClaw)
<AccordionGroup>
<Accordion title="Model providers (enabled by default)">
<Accordion title="Modelproviders (standaard ingeschakeld)">
`anthropic`, `byteplus`, `cloudflare-ai-gateway`, `github-copilot`, `google`,
`huggingface`, `kilocode`, `kimi-coding`, `minimax`, `mistral`, `qwen`,
`moonshot`, `nvidia`, `openai`, `opencode`, `opencode-go`, `openrouter`,
@ -263,12 +267,12 @@ huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubli
`vercel-ai-gateway`, `volcengine`, `xiaomi`, `zai`
</Accordion>
<Accordion title="Memory plugins">
<Accordion title="Geheugenplugins">
- `memory-core` - meegeleverde geheugenzoekfunctie (standaard via `plugins.slots.memory`)
- `memory-lancedb` - langetermijngeheugen ondersteund door LanceDB met automatische recall/capture (stel `plugins.slots.memory = "memory-lancedb"` in)
- `memory-lancedb` - langdurig geheugen met LanceDB-backend en automatische recall/capture (stel `plugins.slots.memory = "memory-lancedb"` in)
Zie [Memory LanceDB](/nl/plugins/memory-lancedb) voor OpenAI-compatibele
embeddingconfiguratie, Ollama-voorbeelden, ophaallimieten en probleemoplossing.
embeddingconfiguratie, Ollama-voorbeelden, recall-limieten en probleemoplossing.
</Accordion>
@ -277,13 +281,13 @@ huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubli
</Accordion>
<Accordion title="Overig">
- `browser` - gebundelde browserplugin voor de browsertool, de `openclaw browser` CLI, de Gateway-methode `browser.request`, de browserruntime en de standaard browserbesturingsservice (standaard ingeschakeld; schakel deze uit voordat je hem vervangt)
- `browser` - meegeleverde browserplugin voor de browsertool, `openclaw browser` CLI, de Gateway-methode `browser.request`, browserruntime en standaard browserbesturingsservice (standaard ingeschakeld; schakel uit voordat je deze vervangt)
- `copilot-proxy` - VS Code Copilot Proxy-brug (standaard uitgeschakeld)
</Accordion>
</AccordionGroup>
Op zoek naar plugins van derden? Zie [Community Plugins](/nl/plugins/community).
Op zoek naar plugins van derden? Zie [Communityplugins](/nl/plugins/community).
## Configuratie
@ -301,58 +305,58 @@ Op zoek naar plugins van derden? Zie [Community Plugins](/nl/plugins/community).
}
```
| Veld | Beschrijving |
| ------------------ | -------------------------------------------------------- |
| `enabled` | Hoofdschakelaar (standaard: `true`) |
| `allow` | Plugin-toestaanlijst (optioneel) |
| `bundledDiscovery` | Detectiemodus voor gebundelde plugins (standaard `allowlist`) |
| `deny` | Plugin-weigerlijst (optioneel; weigeren wint) |
| `load.paths` | Extra pluginbestanden/-mappen |
| Veld | Beschrijving |
| ------------------ | ---------------------------------------------------------- |
| `enabled` | Hoofdschakelaar (standaard: `true`) |
| `allow` | Plugin-toestaanlijst (optioneel) |
| `bundledDiscovery` | Detectiemodus voor meegeleverde plugins (standaard `allowlist`) |
| `deny` | Plugin-weigerlijst (optioneel; weigeren wint) |
| `load.paths` | Extra pluginbestanden/-mappen |
| `slots` | Exclusieve slotselectoren (bijv. `memory`, `contextEngine`) |
| `entries.\<id\>` | Schakelaars per plugin + configuratie |
| `entries.\<id\>` | Schakelaars + configuratie per plugin |
`plugins.allow` is exclusief. Wanneer deze niet leeg is, kunnen alleen vermelde plugins laden
of tools beschikbaar maken, zelfs als `tools.allow` `"*"` of een specifieke toolnaam
van een plugin bevat. Als een tool-toestaanlijst naar plugintools verwijst, voeg dan de eigenaars-plugin-id's
of tools aanbieden, zelfs als `tools.allow` `"*"` of een specifieke toolnaam
van een plugin bevat. Als een tool-toestaanlijst naar plugintools verwijst, voeg dan de eigenaar-plugin-id's
toe aan `plugins.allow` of verwijder `plugins.allow`; `openclaw doctor` waarschuwt voor deze
vorm.
`plugins.bundledDiscovery` is standaard `"allowlist"` voor nieuwe configuraties, zodat een
restrictieve `plugins.allow`-inventaris ook weggelaten gebundelde providerplugins blokkeert,
inclusief runtime-detectie van webzoekproviders. Doctor stempelt oudere
restrictieve toestaanlijstconfiguraties tijdens migratie met `"compat"`, zodat upgrades het
verouderde gedrag van gebundelde providers behouden totdat de operator voor de strengere modus kiest.
`plugins.bundledDiscovery` gebruikt standaard `"allowlist"` voor nieuwe configuraties, zodat een
beperkende `plugins.allow`-inventaris ook weggelaten meegeleverde providerplugins blokkeert,
inclusief detectie van runtime webzoekproviders. Doctor stempelt oudere
beperkende allowlist-configuraties tijdens migratie met `"compat"`, zodat upgrades het
oude gedrag van meegeleverde providers behouden totdat de operator voor de strengere modus kiest.
Een lege `plugins.allow` wordt nog steeds behandeld als niet ingesteld/open.
Configuratiewijzigingen via `/plugins enable` of `/plugins disable` activeren een
in-process herlaadactie van Gateway-plugins. Nieuwe agentbeurten bouwen hun toollijst opnieuw op vanuit
het vernieuwde pluginregister. Bronwijzigende bewerkingen zoals installeren,
bijwerken en verwijderen herstarten nog steeds het Gateway-proces, omdat reeds geïmporteerde
bijwerken en verwijderen herstarten nog steeds het Gateway-proces, omdat al geïmporteerde
pluginmodules niet veilig ter plekke kunnen worden vervangen.
`openclaw plugins list` is een lokale snapshot van het pluginregister/de configuratie. Een
`enabled` plugin daar betekent dat het opgeslagen register en de huidige configuratie toestaan dat de
plugin deelneemt. Het bewijst niet dat een al draaiende externe Gateway
opnieuw is geladen of herstart met dezelfde plugincode. Stuur bij VPS-/containeropstellingen
met wrapperprocessen herstarts of schrijfacties die herladen activeren naar het daadwerkelijke
`openclaw gateway run`-proces, of gebruik `openclaw gateway restart` tegen de
draaiende Gateway wanneer de herlaadactie een fout meldt.
`openclaw plugins list` is een lokale snapshot van pluginregister/configuratie. Een
`enabled` plugin daar betekent dat het opgeslagen register en de huidige configuratie de
plugin toestaan deel te nemen. Het bewijst niet dat een al draaiende externe Gateway
opnieuw is geladen of herstart met dezelfde plugincode. Op VPS-/containeropstellingen
met wrapperprocessen moet je herstarts of schrijfacties die een reload activeren naar het daadwerkelijke
`openclaw gateway run`-proces sturen, of `openclaw gateway restart` gebruiken tegen de
draaiende Gateway wanneer de reload een fout meldt.
<Accordion title="Plugin-statussen: uitgeschakeld vs ontbrekend vs ongeldig">
- **Uitgeschakeld**: plugin bestaat, maar activeringsregels hebben hem uitgezet. Configuratie blijft behouden.
- **Ontbrekend**: configuratie verwijst naar een plugin-id die de detectie niet heeft gevonden.
- **Ongeldig**: plugin bestaat, maar de configuratie komt niet overeen met het gedeclareerde schema. Gateway-start slaat alleen die plugin over; `openclaw doctor --fix` kan de ongeldige vermelding in quarantaine plaatsen door hem uit te schakelen en de configuratiepayload te verwijderen.
<Accordion title="Pluginstatussen: uitgeschakeld versus ontbrekend versus ongeldig">
- **Uitgeschakeld**: plugin bestaat, maar inschakelregels hebben deze uitgezet. Configuratie blijft behouden.
- **Ontbrekend**: configuratie verwijst naar een plugin-id die detectie niet heeft gevonden.
- **Ongeldig**: plugin bestaat, maar de configuratie komt niet overeen met het gedeclareerde schema. Gateway-start slaat alleen die plugin over; `openclaw doctor --fix` kan de ongeldige invoer in quarantaine plaatsen door deze uit te schakelen en de configuratiepayload te verwijderen.
</Accordion>
## Detectie en voorrang
## Detectie en prioriteit
OpenClaw scant naar plugins in deze volgorde (eerste overeenkomst wint):
OpenClaw scant in deze volgorde naar plugins (eerste match wint):
<Steps>
<Step title="Configuratiepaden">
`plugins.load.paths` - expliciete bestands- of mappaden. Paden die terugverwijzen
naar OpenClaw's eigen verpakte gebundelde pluginmappen worden genegeerd;
`plugins.load.paths` - expliciete bestands- of mappaden. Paden die terugwijzen
naar OpenClaw's eigen verpakte meegeleverde pluginmappen worden genegeerd;
voer `openclaw doctor --fix` uit om die verouderde aliassen te verwijderen.
</Step>
@ -364,65 +368,65 @@ OpenClaw scant naar plugins in deze volgorde (eerste overeenkomst wint):
`~/.openclaw/<plugin-root>/*.ts` en `~/.openclaw/<plugin-root>/*/index.ts`.
</Step>
<Step title="Gebundelde plugins">
<Step title="Meegeleverde plugins">
Meegeleverd met OpenClaw. Veel zijn standaard ingeschakeld (modelproviders, spraak).
Andere vereisen expliciete inschakeling.
</Step>
</Steps>
Verpakte installaties en Docker-images lossen gebundelde plugins normaal op vanuit de
gecompileerde `dist/extensions`-boom. Als een bronmap van een gebundelde plugin
wordt bind-mounted over het overeenkomende verpakte bronpad, bijvoorbeeld
`/app/extensions/synology-chat`, behandelt OpenClaw die gekoppelde bronmap
als een gebundelde bronoverlay en detecteert deze vóór de verpakte
`/app/dist/extensions/synology-chat`-bundel. Dit houdt maintainer-containerlussen
werkend zonder elke gebundelde plugin terug te schakelen naar TypeScript-bron.
Verpakte installaties en Docker-images lossen meegeleverde plugins normaal op vanuit de
gecompileerde `dist/extensions`-boom. Als een bronmap van een meegeleverde plugin
over het overeenkomende verpakte bronpad wordt bind-gemount, bijvoorbeeld
`/app/extensions/synology-chat`, behandelt OpenClaw die gemounte bronmap
als een meegeleverde bronoverlay en detecteert deze vóór de verpakte
`/app/dist/extensions/synology-chat`-bundel. Dit houdt containerloops voor maintainers
werkend zonder elke meegeleverde plugin terug te zetten naar TypeScript-bron.
Stel `OPENCLAW_DISABLE_BUNDLED_SOURCE_OVERLAYS=1` in om verpakte dist-bundels af te dwingen,
zelfs wanneer bronoverlay-mounts aanwezig zijn.
### Activeringsregels
### Inschakelregels
- `plugins.enabled: false` schakelt alle plugins uit en slaat plugin-detectie/laadwerk over
- `plugins.enabled: false` schakelt alle plugins uit en slaat plugindetectie/-laadwerk over
- `plugins.deny` wint altijd van allow
- `plugins.entries.\<id\>.enabled: false` schakelt die plugin uit
- Plugins afkomstig uit de workspace zijn **standaard uitgeschakeld** (moeten expliciet worden ingeschakeld)
- Gebundelde plugins volgen de ingebouwde standaard-aan-set, tenzij overschreven
- Exclusieve slots kunnen de geselecteerde plugin voor die slot geforceerd inschakelen
- Sommige gebundelde opt-in-plugins worden automatisch ingeschakeld wanneer de configuratie een
oppervlak noemt dat eigendom is van een plugin, zoals een providermodelreferentie, kanaalconfiguratie of harness-
- Meegeleverde plugins volgen de ingebouwde standaard-aan-set tenzij overschreven
- Exclusieve slots kunnen de geselecteerde plugin voor dat slot geforceerd inschakelen
- Sommige meegeleverde opt-in-plugins worden automatisch ingeschakeld wanneer configuratie een
oppervlak van de plugin noemt, zoals een providermodelreferentie, kanaalconfiguratie of harness
runtime
- Verouderde pluginconfiguratie blijft behouden zolang `plugins.enabled: false` actief is;
- Verouderde pluginconfiguratie blijft behouden terwijl `plugins.enabled: false` actief is;
schakel plugins opnieuw in voordat je doctor-opruiming uitvoert als je verouderde id's wilt verwijderen
- OpenAI-familie Codex-routes houden afzonderlijke plugingrenzen aan:
`openai-codex/*` hoort bij de OpenAI-plugin, terwijl de gebundelde Codex
app-serverplugin wordt geselecteerd door `agentRuntime.id: "codex"` of verouderde
- OpenAI-familie Codex-routes houden aparte plugingrenzen aan:
`openai-codex/*` hoort bij de OpenAI-plugin, terwijl de meegeleverde Codex
app-serverplugin wordt geselecteerd door `agentRuntime.id: "codex"` of oude
`codex/*`-modelreferenties
## Probleemoplossing voor runtimehooks
## Runtime-hooks oplossen
Als een plugin in `plugins list` verschijnt maar neveneffecten of hooks van `register(api)`
Als een plugin in `plugins list` verschijnt maar bijwerkingen of hooks van `register(api)`
niet worden uitgevoerd in live chatverkeer, controleer dan eerst dit:
- Voer `openclaw gateway status --deep --require-rpc` uit en bevestig dat de actieve
Gateway-URL, het profiel, het configuratiepad en het proces degene zijn die je bewerkt.
- Herstart de live Gateway na wijzigingen in plugininstallatie/configuratie/code. In wrapper-
containers kan PID 1 alleen een supervisor zijn; herstart of signaleer het onderliggende
- Herstart de live Gateway na wijzigingen aan plugininstallatie/configuratie/code. In wrapper-
containers kan PID 1 slechts een supervisor zijn; herstart of signaleer het onderliggende
`openclaw gateway run`-proces.
- Gebruik `openclaw plugins inspect <id> --runtime --json` om hookregistraties en
diagnostiek te bevestigen. Niet-gebundelde gesprekshooks zoals `llm_input`,
diagnostiek te bevestigen. Niet-meegeleverde conversatiehooks zoals `llm_input`,
`llm_output`, `before_agent_finalize` en `agent_end` hebben
`plugins.entries.<id>.hooks.allowConversationAccess=true` nodig.
- Geef voor modelwisseling de voorkeur aan `before_model_resolve`. Dit wordt uitgevoerd vóór model-
resolutie voor agentbeurten; `llm_output` wordt alleen uitgevoerd nadat een modelpoging
assistant-uitvoer produceert.
- Voor modelwisselingen geef je de voorkeur aan `before_model_resolve`. Deze draait vóór model-
resolutie voor agentbeurten; `llm_output` draait pas nadat een modelpoging
assistantuitvoer produceert.
- Gebruik voor bewijs van het effectieve sessiemodel `openclaw sessions` of de
Gateway-sessie/statusoppervlakken en start, bij het debuggen van providerpayloads, de
Gateway-sessie-/statusoppervlakken en start, bij het debuggen van providerpayloads, de
Gateway met `--raw-stream --raw-stream-path <path>`.
### Trage installatie van plugintools
### Trage setup van plugintools
Als agentbeurten lijken te blijven hangen tijdens het voorbereiden van tools, schakel trace-logging in en
controleer op timingregels voor plugintool-factories:
Als agentbeurten lijken te blijven hangen tijdens het voorbereiden van tools, schakel dan trace-logging in en
controleer op timingregels voor plugintoolfactory's:
```bash
openclaw config set logging.level trace
@ -435,28 +439,28 @@ Zoek naar:
[trace:plugin-tools] factory timings ...
```
De samenvatting vermeldt de totale factorytijd en de traagste plugintool-factories,
De samenvatting vermeldt de totale factorytijd en de traagste plugintoolfactory's,
inclusief plugin-id, gedeclareerde toolnamen, resultaatvorm en of de tool
optioneel is. Trage regels worden gepromoveerd tot waarschuwingen wanneer één factory
minstens 1 s duurt of de totale voorbereiding van plugintool-factories minstens 5 s duurt.
optioneel is. Trage regels worden gepromoveerd tot waarschuwingen wanneer een enkele factory
minstens 1s duurt of de totale voorbereiding van plugintoolfactory's minstens 5s duurt.
OpenClaw cachet succesvolle resultaten van plugintool-factories voor herhaalde resoluties
met dezelfde effectieve aanvraagcontext. De cachesleutel omvat de effectieve
OpenClaw cachet succesvolle resultaten van plugintoolfactory's voor herhaalde resoluties
met dezelfde effectieve aanvraagcontext. De cachesleutel bevat de effectieve
runtimeconfiguratie, workspace, agent-/sessie-id's, sandboxbeleid, browserinstellingen,
bezorgcontext, aanvrageridentiteit en eigendomsstatus, zodat factories die
afhangen van die vertrouwde velden opnieuw worden uitgevoerd wanneer de context wijzigt.
leveringscontext, aanvrageridentiteit en eigendomsstatus, zodat factory's die
van die vertrouwde velden afhangen opnieuw worden uitgevoerd wanneer de context verandert.
Als één plugin de timing domineert, inspecteer dan de runtimeregistraties:
Als één plugin de timing domineert, inspecteer dan de runtime-registraties:
```bash
openclaw plugins inspect <plugin-id> --runtime --json
```
Werk die plugin daarna bij, installeer hem opnieuw of schakel hem uit. Pluginauteurs moeten
duur laden van afhankelijkheden verplaatsen naar het uitvoeringspad van de tool in plaats van dit
Werk die plugin daarna bij, installeer deze opnieuw of schakel deze uit. Plugin-auteurs moeten
dure dependency-loading achter het pad voor tooluitvoering plaatsen in plaats van dit
binnen de toolfactory te doen.
### Dubbel kanaal- of tool-eigenaarschap
### Dubbel kanaal- of tooleigendom
Symptomen:
@ -464,18 +468,18 @@ Symptomen:
- `channel setup already registered: <channel-id> (<plugin-id>)`
- `plugin tool name conflict (<plugin-id>): <tool-name>`
Deze betekenen dat meer dan één ingeschakelde plugin hetzelfde kanaal,
installatieproces of dezelfde toolnaam probeert te bezitten. De meest voorkomende oorzaak is een externe kanaalplugin
die naast een gebundelde plugin is geïnstalleerd die nu dezelfde kanaal-id biedt.
Dit betekent dat meer dan één ingeschakelde plugin hetzelfde kanaal,
dezelfde setupflow of dezelfde toolnaam probeert te beheren. De meest voorkomende oorzaak is een externe kanaalplugin
die naast een meegeleverde plugin is geïnstalleerd die nu dezelfde kanaal-id aanbiedt.
Debugstappen:
- Voer `openclaw plugins list --enabled --verbose` uit om elke ingeschakelde plugin
en oorsprong te zien.
en herkomst te zien.
- Voer `openclaw plugins inspect <id> --runtime --json` uit voor elke verdachte plugin en
vergelijk `channels`, `channelConfigs`, `tools` en diagnostiek.
- Voer `openclaw plugins registry --refresh` uit na het installeren of verwijderen van
pluginpakketten, zodat opgeslagen metadata de huidige installatie weerspiegelt.
pluginpakketten, zodat opgeslagen metadata de huidige installatie weerspiegelen.
- Herstart de Gateway na installatie-, register- of configuratiewijzigingen.
Oplossingsopties:
@ -483,14 +487,13 @@ Oplossingsopties:
- Als één plugin bewust een andere vervangt voor dezelfde kanaal-id, moet de
voorkeursplugin `channelConfigs.<channel-id>.preferOver` declareren met
de plugin-id met lagere prioriteit. Zie [/plugins/manifest#replacing-another-channel-plugin](/nl/plugins/manifest#replacing-another-channel-plugin).
- Als het duplicaat per ongeluk is, schakel dan één kant uit met
`plugins.entries.<plugin-id>.enabled: false` of verwijder de verouderde plugin-
installatie.
- Als je beide plugins expliciet hebt ingeschakeld, behoudt OpenClaw dat verzoek en
meldt het conflict. Kies één eigenaar voor het kanaal of hernoem tools die eigendom zijn
van plugins, zodat het runtimeoppervlak ondubbelzinnig is.
- Als het duplicaat onbedoeld is, schakel dan één kant uit met
`plugins.entries.<plugin-id>.enabled: false` of verwijder de verouderde plugininstallatie.
- Als je beide plugins expliciet hebt ingeschakeld, respecteert OpenClaw dat verzoek en
meldt het conflict. Kies één eigenaar voor het kanaal of hernoem tools die eigendom zijn van de plugin,
zodat het runtime-oppervlak ondubbelzinnig is.
## Plugin-slots (exclusieve categorieën)
## Pluginslots (exclusieve categorieën)
Sommige categorieën zijn exclusief (slechts één tegelijk actief):
@ -507,7 +510,7 @@ Sommige categorieën zijn exclusief (slechts één tegelijk actief):
| Slot | Wat het beheert | Standaard |
| --------------- | --------------------- | ------------------- |
| `memory` | Active Memory-plugin | `memory-core` |
| `memory` | Actieve geheugenplugin | `memory-core` |
| `contextEngine` | Actieve contextengine | `legacy` (ingebouwd) |
## CLI-referentie
@ -558,84 +561,33 @@ openclaw plugins enable <id>
openclaw plugins disable <id>
```
Gebundelde plugins worden met OpenClaw meegeleverd. Veel zijn standaard ingeschakeld (bijvoorbeeld
gebundelde modelproviders, gebundelde spraakproviders en de gebundelde browser-
Plugin). Andere gebundelde plugins vereisen nog steeds `openclaw plugins enable <id>`.
Gebundelde plugins worden met OpenClaw meegeleverd. Veel ervan zijn standaard ingeschakeld (bijvoorbeeld gebundelde modelproviders, gebundelde spraakproviders en de gebundelde browserplugin). Andere gebundelde plugins hebben nog steeds `openclaw plugins enable <id>` nodig.
`--force` overschrijft een bestaande geinstalleerde Plugin of hookpack op zijn plaats. Gebruik
`openclaw plugins update <id-or-npm-spec>` voor routinematige upgrades van gevolgde npm-
plugins. Dit wordt niet ondersteund met `--link`, dat het bronpad hergebruikt in plaats
van over een beheerd installatiedoel heen te kopieren.
`--force` overschrijft een bestaande geinstalleerde plugin of hook-pack op zijn plek. Gebruik `openclaw plugins update <id-or-npm-spec>` voor reguliere upgrades van bijgehouden npm-plugins. Dit wordt niet ondersteund met `--link`, dat het bronpad hergebruikt in plaats van over een beheerd installatiedoel heen te kopieren.
Wanneer `plugins.allow` al is ingesteld, voegt `openclaw plugins install` de
geinstalleerde Plugin-id toe aan die allowlist voordat deze wordt ingeschakeld. Als dezelfde Plugin-id
aanwezig is in `plugins.deny`, verwijdert install die verouderde deny-vermelding zodat de
expliciete installatie direct laadbaar is na herstart.
Wanneer `plugins.allow` al is ingesteld, voegt `openclaw plugins install` de geinstalleerde plugin-id toe aan die toelatingslijst voordat deze wordt ingeschakeld. Als dezelfde plugin-id aanwezig is in `plugins.deny`, verwijdert install die verouderde deny-vermelding zodat de expliciete installatie direct na herstarten laadbaar is.
OpenClaw bewaart een persistente lokale Plugin-registry als cold-readmodel voor
Plugin-inventaris, eigenaarschap van bijdragen en opstartplanning. Installatie-, update-,
deinstallatie-, inschakel- en uitschakelflows vernieuwen die registry nadat de Plugin-
status is gewijzigd. Hetzelfde bestand `plugins/installs.json` bewaart duurzame installatiemetadata in
`installRecords` op topniveau en opnieuw opbouwbare manifestmetadata in `plugins`. Als
de registry ontbreekt, verouderd of ongeldig is, bouwt `openclaw plugins registry
--refresh` de manifestweergave opnieuw op vanuit installatierecords, configuratiebeleid en
manifest-/pakketmetadata zonder Plugin-runtimemodules te laden.
`openclaw plugins update <id-or-npm-spec>` is van toepassing op gevolgde installaties. Het doorgeven
van een npm-pakketspecificatie met een dist-tag of exacte versie herleidt de pakketnaam
terug naar het gevolgde Plugin-record en registreert de nieuwe specificatie voor toekomstige updates.
Het doorgeven van de pakketnaam zonder versie zet een exact vastgezette installatie terug naar
de standaard releaselijn van de registry. Als de geinstalleerde npm-Plugin al overeenkomt met
de opgeloste versie en geregistreerde artifact-identiteit, slaat OpenClaw de update over
zonder te downloaden, opnieuw te installeren of configuratie te herschrijven.
Wanneer `openclaw update` op het beta-kanaal draait, proberen standaardlijn-npm- en ClawHub-
Plugin-records eerst `@beta` en vallen ze terug op default/latest wanneer er geen Plugin-
beta-release bestaat. Exacte versies en expliciete tags blijven vastgezet.
OpenClaw bewaart een persistente lokale pluginregistratie als het koude leesmodel voor plugininventaris, eigendom van bijdragen en opstartplanning. Installatie-, update-, verwijderings-, inschakel- en uitschakelstromen vernieuwen die registratie nadat de pluginstatus is gewijzigd. Hetzelfde bestand `plugins/installs.json` bewaart duurzame installatiemetadata in `installRecords` op topniveau en opnieuw opbouwbare manifestmetadata in `plugins`. Als de registratie ontbreekt, verouderd of ongeldig is, bouwt `openclaw plugins registry --refresh` de manifestweergave opnieuw op uit installatierecords, configuratiebeleid en manifest-/pakketmetadata zonder runtime-modules van plugins te laden. `openclaw plugins update <id-or-npm-spec>` is van toepassing op bijgehouden installaties. Het doorgeven van een npm-pakketspecificatie met een dist-tag of exacte versie herleidt de pakketnaam terug naar het bijgehouden pluginrecord en registreert de nieuwe specificatie voor toekomstige updates. Het doorgeven van de pakketnaam zonder versie verplaatst een exact vastgezette installatie terug naar de standaard releaselijn van de registratie. Als de geinstalleerde npm-plugin al overeenkomt met de opgeloste versie en geregistreerde artefactidentiteit, slaat OpenClaw de update over zonder te downloaden, opnieuw te installeren of configuratie te herschrijven. Wanneer `openclaw update` op het betakanaal draait, proberen pluginrecords op de standaardlijn voor npm en ClawHub eerst `@beta` en vallen ze terug op standaard/latest wanneer er geen plugin-betarelease bestaat. Exacte versies en expliciete tags blijven vastgezet.
`--pin` is alleen voor npm. Het wordt niet ondersteund met `--marketplace`, omdat
marketplace-installaties marketplace-bronmetadata bewaren in plaats van een npm-specificatie.
`--pin` is alleen voor npm. Dit wordt niet ondersteund met `--marketplace`, omdat marketplace-installaties marketplace-bronmetadata bewaren in plaats van een npm-specificatie.
`--dangerously-force-unsafe-install` is een break-glass-override voor fout-positieven
van de ingebouwde scanner voor gevaarlijke code. Hiermee kunnen Plugin-installaties
en Plugin-updates doorgaan voorbij ingebouwde `critical`-bevindingen, maar het omzeilt nog steeds
geen Plugin-`before_install`-beleidsblokkades of blokkering door scanfouten.
Installatiescans negeren veelgebruikte testbestanden en mappen zoals `tests/`,
`__tests__/`, `*.test.*` en `*.spec.*` om blokkering door verpakte testmocks te voorkomen;
gedeclareerde Plugin-runtime-entrypoints worden nog steeds gescand, zelfs als ze een van
die namen gebruiken.
`--dangerously-force-unsafe-install` is een noodoverride voor fout-positieven van de ingebouwde scanner voor gevaarlijke code. Hiermee kunnen plugininstallaties en pluginupdates doorgaan voorbij ingebouwde `critical`-bevindingen, maar het omzeilt nog steeds geen plugin-`before_install`-beleidsblokkades of blokkering door scanfouten. Installatiescans negeren gangbare testbestanden en mappen zoals `tests/`, `__tests__/`, `*.test.*` en `*.spec.*` om te voorkomen dat verpakte testmocks worden geblokkeerd; gedeclareerde runtime-entrypoints van plugins worden nog steeds gescand, zelfs als ze een van die namen gebruiken.
Deze CLI-vlag is alleen van toepassing op Plugin-installatie-/updateflows. Gateway-ondersteunde Skills-
dependency-installaties gebruiken in plaats daarvan de overeenkomende `dangerouslyForceUnsafeInstall`-request-
override, terwijl `openclaw skills install` de afzonderlijke ClawHub-
download-/installatieflow voor Skills blijft.
Deze CLI-vlag is alleen van toepassing op install/update-stromen voor plugins. Door Gateway ondersteunde installaties van Skill-afhankelijkheden gebruiken in plaats daarvan de bijbehorende request-override `dangerouslyForceUnsafeInstall`, terwijl `openclaw skills install` de afzonderlijke download-/installatiestroom voor ClawHub-Skills blijft.
Als een Plugin die je op ClawHub hebt gepubliceerd verborgen is of door een scan wordt geblokkeerd, open dan het
ClawHub-dashboard of voer `clawhub package rescan <name>` uit om ClawHub te vragen
deze opnieuw te controleren. `--dangerously-force-unsafe-install` heeft alleen invloed op installaties op je eigen
machine; het vraagt ClawHub niet om de Plugin opnieuw te scannen of een geblokkeerde release
publiek te maken.
Als een plugin die je op ClawHub hebt gepubliceerd verborgen is of door een scan wordt geblokkeerd, open dan het ClawHub-dashboard of voer `clawhub package rescan <name>` uit om ClawHub te vragen deze opnieuw te controleren. `--dangerously-force-unsafe-install` heeft alleen invloed op installaties op je eigen machine; het vraagt ClawHub niet om de plugin opnieuw te scannen of een geblokkeerde release openbaar te maken.
Compatibele bundels nemen deel aan dezelfde Plugin-lijst-/inspectie-/inschakel-/uitschakel-
flow. Huidige runtime-ondersteuning omvat bundel-Skills, Claude-command-Skills,
Claude-standaardwaarden voor `settings.json`, Claude-standaardwaarden voor `.lsp.json` en in het manifest gedeclareerde
`lspServers`, Cursor-command-Skills en compatibele Codex-hook-
mappen.
Compatibele bundels nemen deel aan dezelfde pluginstroom voor list/inspect/enable/disable. De huidige runtime-ondersteuning omvat bundel-Skills, Claude command-Skills, standaardwaarden voor Claude `settings.json`, standaardwaarden voor Claude `.lsp.json` en via het manifest gedeclareerde `lspServers`, Cursor command-Skills en compatibele Codex-hookmappen.
`openclaw plugins inspect <id>` rapporteert ook gedetecteerde bundelmogelijkheden plus
ondersteunde of niet-ondersteunde MCP- en LSP-serververmeldingen voor bundelondersteunde plugins.
`openclaw plugins inspect <id>` rapporteert ook gedetecteerde bundelmogelijkheden plus ondersteunde of niet-ondersteunde MCP- en LSP-serververmeldingen voor bundelondersteunde plugins.
Marketplace-bronnen kunnen een bekende marketplace-naam van Claude zijn uit
`~/.claude/plugins/known_marketplaces.json`, een lokale marketplace-root of
`marketplace.json`-pad, een GitHub-afkorting zoals `owner/repo`, een GitHub-repo-
URL, of een git-URL. Voor externe marketplaces moeten Plugin-vermeldingen binnen de
gekloonde marketplace-repo blijven en alleen relatieve padbronnen gebruiken.
Marketplace-bronnen kunnen een bekende Claude-marketplacenaam uit `~/.claude/plugins/known_marketplaces.json` zijn, een lokale marketplace-root of `marketplace.json`-pad, een GitHub-afkorting zoals `owner/repo`, een GitHub-repo-URL of een git-URL. Voor externe marketplaces moeten pluginvermeldingen binnen de gekloonde marketplace-repo blijven en alleen relatieve padbronnen gebruiken.
Zie de [`openclaw plugins` CLI-referentie](/nl/cli/plugins) voor volledige details.
## Overzicht van de Plugin-API
Native plugins exporteren een entry-object dat `register(api)` beschikbaar maakt. Oudere
plugins kunnen nog steeds `activate(api)` gebruiken als legacy-alias, maar nieuwe plugins zouden
`register` moeten gebruiken.
Native plugins exporteren een entry-object dat `register(api)` beschikbaar stelt. Oudere plugins kunnen nog steeds `activate(api)` gebruiken als verouderde alias, maar nieuwe plugins moeten `register` gebruiken.
```typescript
export default definePluginEntry({
@ -655,75 +607,60 @@ export default definePluginEntry({
});
```
OpenClaw laadt het entry-object en roept `register(api)` aan tijdens Plugin-
activatie. De loader valt voor oudere plugins nog steeds terug op `activate(api)`,
maar gebundelde plugins en nieuwe externe plugins zouden `register` als het
publieke contract moeten behandelen.
OpenClaw laadt het entry-object en roept `register(api)` aan tijdens pluginactivatie. De loader valt nog steeds terug op `activate(api)` voor oudere plugins, maar gebundelde plugins en nieuwe externe plugins moeten `register` als het publieke contract behandelen.
`api.registrationMode` vertelt een Plugin waarom de entry wordt geladen:
`api.registrationMode` vertelt een plugin waarom de entry wordt geladen:
| Modus | Betekenis |
| --------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Runtime-activatie. Registreer tools, hooks, services, commands, routes en andere live neveneffecten. |
| `discovery` | Alleen-lezen capability-discovery. Registreer providers en metadata; vertrouwde Plugin-entrycode kan laden, maar sla live neveneffecten over. |
| `setup-only` | Laden van kanaalsetupmetadata via een lichtgewicht setup-entry. |
| `setup-runtime` | Laden van kanaalsetup waarvoor ook de runtime-entry nodig is. |
| `cli-metadata` | Alleen verzameling van CLI-commandmetadata. |
| Modus | Betekenis |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `full` | Runtime-activatie. Registreer tools, hooks, services, commando's, routes en andere live side effects. |
| `discovery` | Alleen-lezen ontdekking van mogelijkheden. Registreer providers en metadata; vertrouwde plugin-entrycode kan laden, maar sla live side effects over. |
| `setup-only` | Laden van kanaalsetupmetadata via een lichtgewicht setup-entry. |
| `setup-runtime` | Laden van kanaalsetup dat ook de runtime-entry nodig heeft. |
| `cli-metadata` | Alleen verzamelen van CLI-commandometadata. |
Plugin-entries die sockets, databases, achtergrondwerkers of langlevende
clients openen, zouden die neveneffecten moeten bewaken met `api.registrationMode === "full"`.
Discovery-loads worden afzonderlijk gecachet van activerende loads en vervangen
de draaiende Gateway-registry niet. Discovery is niet-activerend, niet importvrij:
OpenClaw kan de vertrouwde Plugin-entry of kanaal-Plugin-module evalueren om
de snapshot te bouwen. Houd moduletopniveaus lichtgewicht en vrij van neveneffecten, en verplaats
netwerkclients, subprocessen, listeners, credential-reads en service-opstart
achter full-runtime-paden.
Plugin-entry's die sockets, databases, background workers of langlevende clients openen, moeten die side effects afschermen met `api.registrationMode === "full"`. Discovery-loads worden afzonderlijk gecachet van activerende loads en vervangen de draaiende Gateway-registratie niet. Discovery activeert niet, maar is niet importvrij: OpenClaw kan de vertrouwde plugin-entry of kanaalpluginmodule evalueren om de snapshot op te bouwen. Houd module-topniveaus lichtgewicht en vrij van side effects, en verplaats netwerkclients, sub-processen, listeners, credential-reads en servicestartup achter full-runtime-paden.
Veelgebruikte registratiemethoden:
| Methode | Wat deze registreert |
| --------------------------------------- | ------------------------------ |
| `registerProvider` | Modelprovider (LLM) |
| `registerChannel` | Chatkanaal |
| `registerTool` | Agent-tool |
| `registerHook` / `on(...)` | Lifecycle-hooks |
| `registerSpeechProvider` | Tekst-naar-spraak / STT |
| `registerRealtimeTranscriptionProvider` | Streaming-STT |
| `registerRealtimeVoiceProvider` | Duplex realtime voice |
| `registerMediaUnderstandingProvider` | Beeld-/audioanalyse |
| `registerImageGenerationProvider` | Beeldgeneratie |
| `registerMusicGenerationProvider` | Muziekgeneratie |
| `registerVideoGenerationProvider` | Videogeneratie |
| `registerWebFetchProvider` | Webfetch-/scrapeprovider |
| `registerWebSearchProvider` | Webzoekopdracht |
| `registerHttpRoute` | HTTP-endpoint |
| `registerCommand` / `registerCli` | CLI-commands |
| `registerContextEngine` | Context-engine |
| `registerService` | Achtergrondservice |
| Methode | Wat deze registreert |
| --------------------------------------- | ------------------------------------ |
| `registerProvider` | Modelprovider (LLM) |
| `registerChannel` | Chatkanaal |
| `registerTool` | Agenttool |
| `registerHook` / `on(...)` | Lifecycle-hooks |
| `registerSpeechProvider` | Tekst-naar-spraak / STT |
| `registerRealtimeTranscriptionProvider` | Streaming-STT |
| `registerRealtimeVoiceProvider` | Duplex realtime spraak |
| `registerMediaUnderstandingProvider` | Afbeeldings-/audioanalyse |
| `registerImageGenerationProvider` | Afbeeldingsgeneratie |
| `registerMusicGenerationProvider` | Muziekgeneratie |
| `registerVideoGenerationProvider` | Videogeneratie |
| `registerWebFetchProvider` | Webfetch-/scrapeprovider |
| `registerWebSearchProvider` | Webzoekfunctie |
| `registerHttpRoute` | HTTP-endpoint |
| `registerCommand` / `registerCli` | CLI-commando's |
| `registerContextEngine` | Contextengine |
| `registerService` | Achtergrondservice |
Guardgedrag van hooks voor getypeerde lifecycle-hooks:
Guard-gedrag van hooks voor getypeerde lifecycle-hooks:
- `before_tool_call`: `{ block: true }` is terminaal; handlers met lagere prioriteit worden overgeslagen.
- `before_tool_call`: `{ block: false }` is een no-op en wist een eerdere blokkade niet.
- `before_tool_call`: `{ block: false }` is een no-op en wist geen eerdere blokkade.
- `before_install`: `{ block: true }` is terminaal; handlers met lagere prioriteit worden overgeslagen.
- `before_install`: `{ block: false }` is een no-op en wist een eerdere blokkade niet.
- `before_install`: `{ block: false }` is een no-op en wist geen eerdere blokkade.
- `message_sending`: `{ cancel: true }` is terminaal; handlers met lagere prioriteit worden overgeslagen.
- `message_sending`: `{ cancel: false }` is een no-op en wist een eerdere annulering niet.
- `message_sending`: `{ cancel: false }` is een no-op en wist geen eerdere annulering.
De native Codex-appserver koppelt Codex-native tool-events terug naar dit
hook-oppervlak. Plugins kunnen native Codex-tools blokkeren via `before_tool_call`,
resultaten observeren via `after_tool_call` en deelnemen aan Codex-
`PermissionRequest`-goedkeuringen. De bridge herschrijft Codex-native tool-
argumenten nog niet. De exacte grens van Codex-runtimeondersteuning staat in het
[Codex harness v1-ondersteuningscontract](/nl/plugins/codex-harness#v1-support-contract).
Native Codex app-server leidt Codex-native toolgebeurtenissen terug naar dit hookoppervlak. Plugins kunnen native Codex-tools blokkeren via `before_tool_call`, resultaten observeren via `after_tool_call` en deelnemen aan Codex-`PermissionRequest`-goedkeuringen. De bridge herschrijft Codex-native toolargumenten nog niet. De exacte grens voor Codex-runtimeondersteuning staat in het [ondersteuningscontract voor Codex harness v1](/nl/plugins/codex-harness#v1-support-contract).
Zie voor volledig getypeerd hookgedrag het [SDK-overzicht](/nl/plugins/sdk-overview#hook-decision-semantics).
Zie [SDK-overzicht](/nl/plugins/sdk-overview#hook-decision-semantics) voor volledig getypeerd hookgedrag.
## Gerelateerd
- [Plugins bouwen](/nl/plugins/building-plugins) - maak je eigen plugin
- [Pluginbundels](/nl/plugins/bundles) - compatibiliteit met Codex/Claude/Cursor-bundels
- [Pluginmanifest](/nl/plugins/manifest) - manifestschema
- [Plugin-bundels](/nl/plugins/bundles) - compatibiliteit met Codex/Claude/Cursor-bundels
- [Plugin-manifest](/nl/plugins/manifest) - manifestschema
- [Tools registreren](/nl/plugins/building-plugins#registering-agent-tools) - voeg agenttools toe in een plugin
- [Plugin-internals](/nl/plugins/architecture) - capabilitymodel en laadpipeline
- [Interne Plugin-werking](/nl/plugins/architecture) - capaciteitenmodel en laadpijplijn
- [Communityplugins](/nl/plugins/community) - vermeldingen van derden