在线状态
OpenClaw"在线状态"是以下内容的轻量级、尽力而为的视图:
- Gateway 网关本身,以及
- 连接到 Gateway 网关的客户端(mac 应用、WebChat、CLI 等)
在线状态主要用于渲染 macOS 应用的实例标签页,并为运维人员提供快速可见性。
在线状态字段(显示的内容)
在线状态条目是具有以下字段的结构化对象:
instanceId(可选但强烈推荐):稳定的客户端身份(通常是connect.client.instanceId)host:人类友好的主机名ip:尽力而为的 IP 地址version:客户端版本字符串deviceFamily/modelIdentifier:硬件提示mode:ui、webchat、cli、backend、probe、test、node,...lastInputSeconds:"自上次用户输入以来的秒数"(如果已知)reason:self、connect、node-connected、periodic,...ts:最后更新时间戳(自纪元以来的毫秒数)
生产者(在线状态来源)
在线状态条目由多个来源生成并合并。
1)Gateway 网关自身条目
Gateway 网关始终在启动时植入一个"self"条目,这样即使在任何客户端连接之前,UI 也能显示 Gateway 网关主机。
2)WebSocket 连接
每个 WS 客户端都以 connect 请求开始。在成功握手后,Gateway 网关为该连接更新插入一个在线状态条目。
为什么一次性 CLI 命令不会显示
CLI 经常为短暂的一次性命令进行连接。为避免实例列表被刷屏,client.mode === "cli" 不会被转换为在线状态条目。
3)system-event 信标
客户端可以通过 system-event 方法发送更丰富的周期性信标。mac 应用使用此方法报告主机名、IP 和 lastInputSeconds。