From dc166cc4e35b10214fd3216c2a86e1cae9bbb161 Mon Sep 17 00:00:00 2001 From: "openclaw-docs-i18n[bot]" Date: Wed, 6 May 2026 11:30:24 +0000 Subject: [PATCH] chore(i18n): refresh nl translations --- docs/nl/cli/plugins.md | 208 +++++------ docs/nl/gateway/logging.md | 82 ++-- docs/nl/gateway/opentelemetry.md | 255 ++++++------- docs/nl/gateway/prometheus.md | 89 +++-- docs/nl/logging.md | 169 +++++---- docs/nl/reference/RELEASING.md | 619 ++++++++++++++++--------------- docs/nl/tools/plugin.md | 493 +++++++++++------------- 7 files changed, 923 insertions(+), 992 deletions(-) diff --git a/docs/nl/cli/plugins.md b/docs/nl/cli/plugins.md index 1658a332b..11dbbeb85 100644 --- a/docs/nl/cli/plugins.md +++ b/docs/nl/cli/plugins.md @@ -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. - - Handleiding voor eindgebruikers voor het installeren, inschakelen en oplossen van problemen met plugins. + + Eindgebruikershandleiding voor het installeren, inschakelen en oplossen van problemen met plugins. Snelle voorbeelden voor installeren, weergeven, bijwerken, verwijderen en publiceren. @@ -30,7 +30,7 @@ Beheer Gateway-plugins, hookpakketten en compatibele bundels. Manifestvelden en configuratieschema. - Beveiligingsverharding voor plugin-installaties. + Beveiligingshardening voor plugin-installaties. @@ -62,16 +62,16 @@ openclaw plugins marketplace list openclaw plugins marketplace list --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). -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. ### Installeren @@ -94,17 +94,17 @@ openclaw plugins install --marketplace https://github.com// -Kale pakketnamen worden tijdens de lanceringsovergang standaard vanuit npm geïnstalleerd. Gebruik `clawhub:` 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:` voor ClawHub. Behandel plugin-installaties alsof je code uitvoert. Geef de voorkeur aan vastgepinde versies. -`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. 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`. - - 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. + + 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`. - `--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 `. + `--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 `. - Als u `plugins install` uitvoert voor een plugin-id die al is geïnstalleerd, stopt OpenClaw en verwijst het u naar `plugins update ` voor een normale upgrade, of naar `plugins install --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 ` voor een normale upgrade, of op `plugins install --force` wanneer je de huidige installatie echt vanuit een andere bron wilt overschrijven. - - `--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. + + `--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. - `--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). - - `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. + + `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:` wanneer u npm-resolutie expliciet wilt maken. Kale pakketspecs installeren tijdens de lanceringsovergang ook rechtstreeks vanuit npm. + Gebruik `npm:` 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. - Gebruik `git:` 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 `@` of `#` toe om vóór installatie een branch, tag of commit uit te checken. + Gebruik `git:` 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 `@` of `#` 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 --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`. - 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:` 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:` 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 openclaw plugins install @ ``` -Gebruik `--marketplace` wanneer u de marketplace-bron expliciet wilt doorgeven: +Gebruik `--marketplace` wanneer je de marketplace-bron expliciet wilt doorgeven: ```bash openclaw plugins install --marketplace @@ -211,16 +211,16 @@ openclaw plugins install --marketplace ./my-marketplace ``` - - - een bekende Claude-marketplacenaam uit `~/.claude/plugins/known_marketplaces.json` - - een lokale marketplaceroot of `marketplace.json`-pad + + - 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 - - 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. + + 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. @@ -232,7 +232,7 @@ Voor lokale paden en archieven detecteert OpenClaw automatisch: - Cursor-compatibele bundels (`.cursor-plugin/plugin.json`) -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. ### Lijst @@ -251,39 +251,39 @@ openclaw plugins search --json Toon alleen ingeschakelde plugins. - 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. - Machineleesbare inventaris plus registerdiagnostiek en installatiestatus van pakketafhankelijkheden. + Machineleesbare inventaris plus registry-diagnostiek en installatiestatus van pakketafhankelijkheden. -`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. `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:`. +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:`. -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 --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 --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..hooks.allowConversationAccess=true`. +- Niet-meegeleverde gesprekshooks (`llm_input`, `llm_output`, `before_agent_finalize`, `agent_end`) vereisen `plugins.entries..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 `--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. -### 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 --dry-run openclaw plugins uninstall --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`. -`--keep-config` wordt ondersteund als verouderd alias voor `--keep-files`. +`--keep-config` wordt ondersteund als verouderde alias voor `--keep-files`. ### 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`. - - 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 `-runs worden gebruikt. + + 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 `-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. - - `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. + + `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. - - 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. + + 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. - - `--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. + + `--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. @@ -359,21 +359,21 @@ openclaw plugins inspect --runtime openclaw plugins inspect --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 ...`; 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 ...`; 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. -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`. ### 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.` 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.` 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. -`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. -### Marketplace +### Marktplaats ```bash openclaw plugins marketplace list openclaw plugins marketplace list --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 diff --git a/docs/nl/gateway/logging.md b/docs/nl/gateway/logging.md index 45bbb1441..c23773ec2 100644 --- a/docs/nl/gateway/logging.md +++ b/docs/nl/gateway/logging.md @@ -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) diff --git a/docs/nl/gateway/opentelemetry.md b/docs/nl/gateway/opentelemetry.md index a820b6492..6b8a955e4 100644 --- a/docs/nl/gateway/opentelemetry.md +++ b/docs/nl/gateway/opentelemetry.md @@ -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.*` diff --git a/docs/nl/gateway/prometheus.md b/docs/nl/gateway/prometheus.md index 6c1fcb97f..95addfde5 100644 --- a/docs/nl/gateway/prometheus.md +++ b/docs/nl/gateway/prometheus.md @@ -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. -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. 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 - + ```bash openclaw plugins install clawhub:@openclaw/diagnostics-prometheus ``` - + - + ```json5 { plugins: { @@ -62,10 +62,10 @@ Voor traces, logs, OTLP-push en OpenTelemetry GenAI-semantische attributen, zie - 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. - - Stuur dezelfde gateway-authenticatie die je operatorclients gebruiken: + + 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 -`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. ## 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 - 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. - - 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. + + 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. - - - 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 + + - 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 @@ -172,54 +179,54 @@ increase(openclaw_prometheus_series_dropped_total[15m]) > 0 ``` -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. ## 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. - **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. - - **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. -## Problemen oplossen +## Probleemoplossing - - - Controleer `diagnostics.enabled: true` in de config. + + - 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. - - 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. + + 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. - 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. - - 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. + + 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. ## 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 diff --git a/docs/nl/logging.md b/docs/nl/logging.md index c33c40441..af70312cb 100644 --- a/docs/nl/logging.md +++ b/docs/nl/logging.md @@ -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 ` / `--token ` / `--timeout `: 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 `** 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 `** 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.*` diff --git a/docs/nl/reference/RELEASING.md b/docs/nl/reference/RELEASING.md index c32e5af9d..7bd949f20 100644 --- a/docs/nl/reference/RELEASING.md +++ b/docs/nl/reference/RELEASING.md @@ -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` 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 ``` De helper pusht `release-ci/-...`, dispatcht `Full Release Validation` -vanaf die branch met `ref=`, 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=`, 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=`, 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=`, 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=` voor exact commitbewijs op bewegende `main`; +Gebruik `--ref main -f ref=` niet voor exact commitbewijs op bewegende `main`; ruwe commit-SHA's kunnen geen workflow-dispatch-refs zijn, dus gebruik -`pnpm ci:full-release --sha ` om de vastgepinde tijdelijke branch te maken. +`pnpm ci:full-release --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=` 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=`. 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. diff --git a/docs/nl/tools/plugin.md b/docs/nl/tools/plugin.md index b4f2cc947..88947f707 100644 --- a/docs/nl/tools/plugin.md +++ b/docs/nl/tools/plugin.md @@ -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). - + ```bash openclaw plugins list ``` - + ```bash # Search ClawHub plugins openclaw plugins search "calendar" @@ -57,7 +57,7 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e - + ```bash openclaw gateway restart ``` @@ -66,17 +66,17 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e - - 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 + + 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. - + ```bash openclaw plugins inspect --runtime --json @@ -84,14 +84,14 @@ Voor copy-pastevoorbeelden voor installeren, weergeven, verwijderen, bijwerken e openclaw --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. -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: @@ -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:`, expliciet `npm:`, expliciet `npm-pack:`, -expliciet `git:`, of een kale pakketspecificatie via npm. +expliciet `git:`, 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/` zodat wijzigingen en pakketlokale afhankelijkheden direct worden gebruikt. -Gewone npm-rootinstallaties zijn voor verpakte OpenClaw, niet voor ontwikkeling vanuit een bron-checkout. +`extensions/` 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) - + `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` - + - `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. @@ -277,13 +281,13 @@ huidige OpenClaw of een lokale checkout totdat een nieuwer npm-pakket is gepubli - - `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) -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.\` | Schakelaars per plugin + configuratie | +| `entries.\` | 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. - - - **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. + + - **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. -## 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): - `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. @@ -364,65 +368,65 @@ OpenClaw scant naar plugins in deze volgorde (eerste overeenkomst wint): `~/.openclaw//*.ts` en `~/.openclaw//*/index.ts`. - + Meegeleverd met OpenClaw. Veel zijn standaard ingeschakeld (modelproviders, spraak). Andere vereisen expliciete inschakeling. -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.\.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 --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..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 `. -### 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 --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: ()` - `plugin tool name conflict (): ` -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 --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..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..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..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 openclaw plugins disable ``` -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 `. +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 ` nodig. -`--force` overschrijft een bestaande geinstalleerde Plugin of hookpack op zijn plaats. Gebruik -`openclaw plugins update ` 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 ` 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 ` 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 ` 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 ` 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 ` 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 ` rapporteert ook gedetecteerde bundelmogelijkheden plus -ondersteunde of niet-ondersteunde MCP- en LSP-serververmeldingen voor bundelondersteunde plugins. +`openclaw plugins inspect ` 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