Installeer de pakketten
Deze pakketten worden geleverd met OpenClaw-releasereeksen. Tijdens de eerste uitrol kan npm
E404 retourneren totdat de eerste OpenClaw-release met deze pakketten is gepubliceerd;
installeer ze pas nadat de onderstaande registerpagina’s beschikbaar zijn.@openclaw/gateway-protocolbiedt schema’s, runtimevalidators, TypeScript-typen, registers voor clientidentiteiten en mogelijkheden, lezers voor gestructureerde fouten en protocolversieconstanten. De npm-tarball bevat ook het gegenereerdeprotocol.schema.jsonmachineleesbare contract.@openclaw/gateway-clientis de referentie-implementatie voor verbindingen. Importeer de pakketroot voor de Node- client en@openclaw/gateway-client/browservoor de browserveilige protocol-, apparaatauthenticatie- en herverbindingshelpers.
Kies bereiken en koppel het apparaat
Een volledig interactieve chatclient die ook goedkeuringsprompts weergeeft, moetrole: "operator" aanvragen met deze bereiken:
Voeg
operator.questions alleen toe als de client interactieve vragen afhandelt,
operator.pairing alleen als deze gekoppelde apparaten of nodes beheert, en
operator.admin alleen voor administratieve bewerkingen zoals config.patch.
De referentie voor operatorbereiken
definieert de volledige regels voor methoden en het moment van goedkeuring.
Maak niet handmatig een bearertoken per client door openclaw.json te bewerken. Configureer
de gedeelde bootstrap-authenticatie van de Gateway met openclaw configure --section gateway of de openclaw onboard --gateway-auth ...-opties en laat vervolgens door
apparaatkoppeling het clienttoken aanmaken:
- Bewaar een Ed25519-apparaatidentiteit permanent in de client.
- Wacht op
connect.challenge, onderteken de aan de challenge gebonden apparaatpayload en stuurconnectmet de aangevraagde operatorrol, bereiken en het gedeelde Gateway-token of wachtwoord voor bootstrap-authenticatie. - Als de Gateway gestructureerde
PAIRING_REQUIRED-details retourneert, toon je de aanvraag- ID en pauzeer je of probeer je het opnieuw volgenserror.details.recommendedNextStep. - Controleer de aanvraag op de Gateway-host met
openclaw devices listen keur vervolgens precies die huidige aanvraag goed metopenclaw devices approve <requestId>. - Maak opnieuw verbinding en bewaar
hello-ok.auth.deviceTokenpermanent met de overeengekomen rol en bereiken. Gebruik dat apparaattoken voor latere verbindingen.
Maak clientmogelijkheden bekend
connect.params.caps beschrijft optioneel gedrag dat de client kan gebruiken. Dit
verleent geen autorisatie. Importeer namen uit GATEWAY_CLIENT_CAPS in plaats van
tekenreeksliteralen te dupliceren:
approvals, exec-approvals, inline-widgets,
run-tool-bindings, session-scoped-events, plugin-approvals,
task-suggestions, terminal-offset-seq, tool-events en ui-commands.
Maak alleen mogelijkheden bekend die de client daadwerkelijk implementeert.
Door mogelijkheden afgeschermde agenttools vormen een afzonderlijk gebruik van dezelfde declaratie. Als een
agenttool een clientmogelijkheid vereist, laat de Gateway die tool weg tenzij de
client van oorsprong elke vereiste mogelijkheid heeft bekendgemaakt.
Herstel de status na opnieuw verbinden
Behandel elke geslaagde herverbinding als een nieuwe projectie over duurzame geschiedenis en de huidige uitvoeringsstatus in het geheugen:- Herstel
sessions.subscribeen hetsessions.messages.subscribe-abonnement van de geselecteerde sessie. - Roep
chat.historyaan voor de geselecteerdesessionKeyen vervang lokaal opgeslagen rijen door de geretourneerdemessages-projectie. - Als
inFlightRunaanwezig is, neem je derunId, gebufferdetexten optioneleplanervan over. Neem de uitvoering ook over wanneertextleeg is. - Lees
sessionInfo.hasActiveRunensessionInfo.activeRunIds. Geef de voorkeur aan exact lidmaatschap inactiveRunIdswanneer je bepaalt of een behouden uitvoering nog eigenaar is van de streaminginterface. Een warehasActiveRunzonder vermelde ID kan een andere actieve runtimeprojectie vertegenwoordigen. - Stem volgende
agent-gebeurtenissen af oppayload.runIdenpayload.seq. Bewaar de hoogste geaccepteerde reeks onafhankelijk voor elke uitvoering, negeer een al geziene of lagere reeks en behandel een voorwaarts gat als reden om de gezaghebbende geschiedenis opnieuw te laden.
seq, die gebeurtenissen op de
huidige WebSocket-verbinding ordent. Deze wordt bij een nieuwe verbinding opnieuw ingesteld. De seq in
de payload van een agent-gebeurtenis wordt per uitvoering toegewezen en ordent de levenscyclus-,
assistent-, plan-, tool- en andere streamgebeurtenissen van die uitvoering.
Gebruik geschiedenismetadata en stabiele ankers
Rijen die doorchat.history worden geretourneerd, kunnen een __openclaw-metadata-envelop bevatten:
idis de identiteit van de transcriptvermelding. Gebruik deze voor verankerde geschiedenisaanvragen, maar niet als unieke sleutel voor weergaverijen.seqis de positieve reeks van de transcriptrecord. Eén opgeslagen record kan naar meer dan één weergaverij worden geprojecteerd, dus houd verwante rijen met dezelfdeiden reeks bij elkaar.kindidentificeert synthetische rijen. Een Compaction-grens gebruiktkind: "compaction"en kantokensBeforeentokensAfterbevatten wanneer een overeenkomend controlepunt die metingen heeft vastgelegd.
hasMore en nextOffset uit het antwoord. Numerieke
offsets beschrijven de huidige transcriptprojectie, dus bewaar ze niet als
langdurige bladwijzers over een reset of Compaction heen. Bewaar in plaats daarvan __openclaw.id.
Om rond een bekende rij te herstellen, roep je chat.history aan met messageId en de
sessionId die deze retourneerde. De Gateway kan dat anker oplossen vanuit de gearchiveerde
geschiedenis na een reset; verankerde antwoorden laten numerieke pagineringsmetadata bewust weg.
Abonneer je in plaats van gebruik te pollen
Laad de oorspronkelijke catalogus metsessions.list en roep vervolgens sessions.subscribe eenmaal
per verbinding aan. Voeg sessions.changed-gebeurtenissen samen op basis van sessionKey. Payloads voor sessiewijzigingen
kunnen live inputTokens, outputTokens, totalTokens,
totalTokensFresh, contextTokens, estimatedCostUsd, instellingen voor antwoordgebruik
en de status van actieve uitvoeringen bevatten.
Sommige wijzigingsmeldingen zijn alleen invalidatiesignalen. Als bij een gebeurtenis de
rijvelden ontbreken die je weergave nodig heeft, vernieuw dan sessions.list. Poll usage.cost of
sessions.usage niet om een live sessielijst actueel te houden; reserveer die methoden voor
geaggregeerde of gedetailleerde rapporten op aanvraag.
Vul exec-goedkeuringen aan
Een client metoperator.approvals moet de gebeurtenislistener installeren zodra
hello-ok is voltooid en vervolgens exec.approval.list aanroepen om aanvragen aan te vullen die
van vóór de verbinding dateren. Stem de lijst en live
exec.approval.requested- / exec.approval.resolved-gebeurtenissen af op goedkeurings-ID, zodat een
overgang die tegelijk met de lijstaanvraag plaatsvindt niet verloren gaat of opnieuw tot leven wordt gewekt.
Houd protocolversies bij
De huidige wire-versie is4. Algemene operator- en WebChat-clients moeten
de exacte huidige versie overeenkomen met minProtocol: 4 en maxProtocol: 4.
Alleen geauthenticeerde nodeclients en lichtgewicht probes hebben het N-1-acceptatievenster,
momenteel protocol 3 tot en met 4.
Protocolwijzigingen zijn eerst additief. protocol.schema.json bevat since-
metadata over de releasegeneratie en metadata over vereiste bereiken voor kernmethoden, maar een verhoging van de wire-
versie blijft een expliciete brekende gebeurtenis voor clients van derden. Zet de
geteste pakketversies vast, upgrade de client en Gateway samen wanneer de wire-
versie verandert en raadpleeg vóór elke upgrade het
OpenClaw-wijzigingslogboek.