OpenClaw の「プレゼンス」は、以下を軽量かつベストエフォートで表示するビューです。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.
- Gateway 自体、および
- Gateway に接続しているクライアント(mac アプリ、WebChat、CLI など)
プレゼンスのフィールド(表示される内容)
プレゼンスエントリは、次のようなフィールドを持つ構造化オブジェクトです。instanceId(任意だが強く推奨): 安定したクライアント ID(通常は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 にゲートウェイホストが表示されます。2) WebSocket 接続
すべての WS クライアントはconnect リクエストから開始します。ハンドシェイクが成功すると、Gateway はその接続のプレゼンスエントリを upsert します。
単発の CLI コマンドが表示されない理由
CLI は短時間の単発コマンドのために接続することがよくあります。Instances リストが過剰に増えるのを避けるため、client.mode === "cli" はプレゼンスエントリに変換されません。
3) system-event ビーコン
クライアントは system-event メソッドを使って、より詳細な定期ビーコンを送信できます。mac アプリはこれを使って、ホスト名、IP、lastInputSeconds を報告します。
4) ノード接続(role: node)
ノードがrole: node で Gateway WebSocket 経由で接続すると、Gateway はそのノードのプレゼンスエントリを upsert します(他の WS クライアントと同じ流れ)。
マージと重複排除のルール(instanceId が重要な理由)
プレゼンスエントリは、単一のメモリ内マップに保存されます。
- エントリはプレゼンスキーでキー付けされます。
- 最適なキーは、再起動後も維持される安定した
instanceId(connect.client.instanceId由来)です。 - キーは大文字と小文字を区別しません。
instanceId なしで再接続すると、重複行として表示されることがあります。
TTL とサイズ上限
プレゼンスは意図的に一時的なものです。- TTL: 5 分より古いエントリは削除されます
- 最大エントリ数: 200(最も古いものから削除)
リモート/トンネルの注意点(ループバック IP)
クライアントが SSH トンネル / ローカルポートフォワード経由で接続すると、Gateway にはリモートアドレスが127.0.0.1 として見えることがあります。クライアントが報告した適切な IP を上書きしないよう、ループバックのリモートアドレスは無視されます。
利用側
macOS Instances タブ
macOS アプリはsystem-presence の出力を表示し、最終更新からの経過時間に基づいて小さなステータスインジケーター(Active/Idle/Stale)を適用します。
デバッグのヒント
- 生のリストを見るには、Gateway に対して
system-presenceを呼び出します。 - 重複が表示される場合:
- クライアントがハンドシェイクで安定した
client.instanceIdを送信していることを確認します - 定期ビーコンが同じ
instanceIdを使用していることを確認します - 接続由来のエントリに
instanceIdが欠けていないか確認します(この場合、重複は想定どおりです)
- クライアントがハンドシェイクで安定した
関連
Typing indicators
入力インジケーターが送信されるタイミングと、その調整方法。
Streaming and chunking
送信ストリーミング、チャンク化、チャネルごとのフォーマット。
Gateway architecture
Gateway コンポーネントと、プレゼンス更新を駆動する WebSocket プロトコル。
Gateway protocol
connect、system-event、system-presence のワイヤプロトコル。