OpenClaw “presencia” es una vista ligera y de mejor esfuerzo de: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.
- el propio Gateway, y
- clientes conectados al Gateway (aplicación para Mac, WebChat, CLI, etc.)
Campos de presencia (lo que aparece)
Las entradas de presencia son objetos estructurados con campos como:instanceId(opcional, pero muy recomendado): identidad estable del cliente (normalmenteconnect.client.instanceId)host: nombre de host legible para humanosip: dirección IP de mejor esfuerzoversion: cadena de versión del clientedeviceFamily/modelIdentifier: indicios de hardwaremode:ui,webchat,cli,backend,probe,test,node, …lastInputSeconds: “segundos desde la última entrada del usuario” (si se conoce)reason:self,connect,node-connected,periodic, …ts: marca de tiempo de la última actualización (ms desde la época)
Productores (de dónde viene la presencia)
Las entradas de presencia son producidas por varias fuentes y se fusionan.1) Entrada propia del Gateway
El Gateway siempre inicializa una entrada “self” al arrancar para que las IU muestren el host del Gateway incluso antes de que se conecten clientes.2) Conexión WebSocket
Cada cliente WS comienza con una solicitudconnect. Tras un protocolo de enlace correcto, el
Gateway inserta o actualiza una entrada de presencia para esa conexión.
Por qué los comandos puntuales de CLI no aparecen
La CLI a menudo se conecta para comandos breves y puntuales. Para evitar llenar de ruido la lista de Instancias,client.mode === "cli" no se convierte en una entrada de presencia.
3) Balizas system-event
Los clientes pueden enviar balizas periódicas más completas mediante el método system-event. La aplicación para Mac
usa esto para informar el nombre de host, la IP y lastInputSeconds.
4) Conexiones de Node (role: node)
Cuando un Node se conecta a través del WebSocket del Gateway conrole: node, el Gateway
inserta o actualiza una entrada de presencia para ese Node (el mismo flujo que otros clientes WS).
Reglas de fusión y deduplicación (por qué instanceId importa)
Las entradas de presencia se almacenan en un único mapa en memoria:
- Las entradas se indexan por una clave de presencia.
- La mejor clave es un
instanceIdestable (deconnect.client.instanceId) que sobrevive a los reinicios. - Las claves no distinguen entre mayúsculas y minúsculas.
instanceId estable, puede aparecer como una fila
duplicada.
TTL y tamaño limitado
La presencia es intencionalmente efímera:- TTL: se eliminan las entradas con más de 5 minutos de antigüedad
- Entradas máximas: 200 (las más antiguas se descartan primero)
Advertencia sobre remoto/túnel (IP de loopback)
Cuando un cliente se conecta mediante un túnel SSH / reenvío de puerto local, el Gateway puede ver la dirección remota como127.0.0.1. Para evitar sobrescribir una buena IP informada por el cliente,
se ignoran las direcciones remotas de loopback.
Consumidores
Pestaña Instancias de macOS
La aplicación de macOS representa la salida desystem-presence y aplica un pequeño indicador de estado
(Activo/Inactivo/Obsoleto) según la antigüedad de la última actualización.
Consejos de depuración
- Para ver la lista sin procesar, llama a
system-presencecontra el Gateway. - Si ves duplicados:
- confirma que los clientes envíen un
client.instanceIdestable en el protocolo de enlace - confirma que las balizas periódicas usen el mismo
instanceId - comprueba si a la entrada derivada de la conexión le falta
instanceId(se esperan duplicados)
- confirma que los clientes envíen un
Relacionado
Indicadores de escritura
Cuándo se envían los indicadores de escritura y cómo ajustarlos.
Streaming y fragmentación
Streaming saliente, fragmentación y formato por canal.
Arquitectura del Gateway
Componentes del Gateway y el protocolo WebSocket que impulsa las actualizaciones de presencia.
Protocolo del Gateway
El protocolo de cable para
connect, system-event y system-presence.