OpenClaw-“aanwezigheid” is een lichtgewicht overzicht naar beste vermogen van:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- de Gateway zelf, en
- clients die met de Gateway zijn verbonden (Mac-app, WebChat, CLI, enz.)
Aanwezigheidsvelden (wat wordt weergegeven)
Aanwezigheidsitems zijn gestructureerde objecten met velden zoals:instanceId(optioneel maar sterk aanbevolen): stabiele clientidentiteit (meestalconnect.client.instanceId)host: mensvriendelijke hostnaamip: IP-adres naar beste vermogenversion: clientversietekenreeksdeviceFamily/modelIdentifier: hardware-aanwijzingenmode:ui,webchat,cli,backend,probe,test,node, …lastInputSeconds: “seconden sinds de laatste gebruikersinvoer” (indien bekend)reason:self,connect,node-connected,periodic, …ts: tijdstempel van de laatste update (ms sinds epoch)
Producenten (waar aanwezigheid vandaan komt)
Aanwezigheidsitems worden door meerdere bronnen geproduceerd en samengevoegd.1) Zelfitem van Gateway
De Gateway maakt bij het opstarten altijd een “zelf”-item aan, zodat UI’s de gatewayhost tonen nog voordat clients verbinding maken.2) WebSocket-verbinding
Elke WS-client begint met eenconnect-verzoek. Na een geslaagde handshake voegt de
Gateway een aanwezigheidsitem voor die verbinding in of werkt het bij.
Waarom eenmalige CLI-opdrachten niet verschijnen
De CLI maakt vaak verbinding voor korte, eenmalige opdrachten. Om te voorkomen dat de Instanties-lijst wordt overspoeld, wordtclient.mode === "cli" niet omgezet in een aanwezigheidsitem.
3) system-event-bakens
Clients kunnen rijkere periodieke bakens verzenden via de methode system-event. De Mac-
app gebruikt dit om hostnaam, IP en lastInputSeconds te rapporteren.
4) Node-verbindingen (rol: node)
Wanneer een node via de Gateway-WebSocket verbinding maakt metrole: node, voegt de Gateway
een aanwezigheidsitem voor die node in of werkt het bij (dezelfde stroom als andere WS-clients).
Regels voor samenvoegen en deduplicatie (waarom instanceId belangrijk is)
Aanwezigheidsitems worden opgeslagen in één in-memory map:
- Items worden gesleuteld met een aanwezigheidssleutel.
- De beste sleutel is een stabiele
instanceId(vanconnect.client.instanceId) die herstarts overleeft. - Sleutels zijn hoofdletterongevoelig.
instanceId, kan deze als een
dubbele rij verschijnen.
TTL en begrensde grootte
Aanwezigheid is bewust tijdelijk:- TTL: items ouder dan 5 minuten worden opgeschoond
- Maximale items: 200 (oudste eerst verwijderd)
Waarschuwing voor remote/tunnel (loopback-IP’s)
Wanneer een client verbinding maakt via een SSH-tunnel / lokale poortdoorsturing, kan de Gateway het externe adres zien als127.0.0.1. Om te voorkomen dat een goed door de client gerapporteerd
IP wordt overschreven, worden externe loopback-adressen genegeerd.
Consumenten
macOS-tabblad Instanties
De macOS-app geeft de uitvoer vansystem-presence weer en past een kleine statusindicator
toe (Actief/Inactief/Verouderd) op basis van de leeftijd van de laatste update.
Debuggingtips
- Roep
system-presenceaan op de Gateway om de onbewerkte lijst te zien. - Als je dubbele items ziet:
- bevestig dat clients een stabiele
client.instanceIdin de handshake verzenden - bevestig dat periodieke bakens dezelfde
instanceIdgebruiken - controleer of het uit de verbinding afgeleide item
instanceIdmist (dubbele items zijn verwacht)
- bevestig dat clients een stabiele