OpenClaw从入门到应用——Agent:Presence

张开发
2026/4/19 14:25:46 15 分钟阅读

分享文章

OpenClaw从入门到应用——Agent:Presence
通过OpenClaw实现副业收入《OpenClaw赚钱实录从“养龙虾“到可持续变现的实践指南》Presence 条目是结构化的对象包含如下字段instanceId可选但强烈推荐稳定的客户端标识通常为connect.client.instanceIdhost便于阅读的主机名ip尽力获取的 IP 地址version客户端版本字符串deviceFamily/modelIdentifier硬件提示modeui、webchat、cli、backend、probe、test、node等lastInputSeconds“距离上次用户输入的秒数”若已知reasonself、connect、node-connected、periodic等ts最后更新时间戳自纪元起的毫秒数生产者Presence 的来源Presence 条目由多个来源生成并合并。1) 网关自身条目网关在启动时始终会预置一个“自身”条目这样即使没有任何客户端连接UI 也能显示网关主机。2) WebSocket 连接每个 WebSocket 客户端都以connect请求开始。在成功完成握手后网关会为该连接插入或更新一条 presence 条目。为什么一次性 CLI 命令不会显示CLI 通常只短暂连接以执行一次性命令。为了避免在实例列表中产生大量垃圾条目client.mode cli的客户端不会生成 presence 条目。3)system-event信标客户端可以通过system-event方法发送更丰富的周期性信标。mac 应用程序利用此方法报告主机名、IP 和lastInputSeconds。4) 节点连接role: node当节点以role: node身份通过网关 WebSocket 连接时网关会为该节点插入或更新一条 presence 条目流程与其他 WebSocket 客户端相同。合并与去重规则为什么instanceId很重要Presence 条目存储在一个内存映射中条目以presence 键作为键值。最佳键是稳定的instanceId来自connect.client.instanceId该标识在重启后仍然有效。键名不区分大小写。如果客户端在重新连接时没有提供稳定的instanceId则可能显示为重复行。TTL 与大小限制Presence 本质上是临时的TTL超过 5 分钟的条目将被清除最大条目数200 条优先丢弃最旧的条目这保证了列表的新鲜度并避免了无限制的内存增长。远程/隧道注意事项回环 IP当客户端通过 SSH 隧道 / 本地端口转发连接时网关看到的远程地址可能是127.0.0.1。为了避免覆盖客户端自身报告的正确 IP会忽略回环远程地址。消费者macOS 实例选项卡macOS 应用程序会渲染system-presence命令的输出并根据最后更新的时间戳显示一个小的状态指示器活跃/空闲/过时。调试技巧要查看原始列表请对网关调用system-presence。如果看到重复条目确认客户端在握手时发送了稳定的client.instanceId确认周期性信标使用了相同的instanceId检查从连接派生的条目是否缺少instanceId此时出现重复是预期行为

更多文章