active としてマークし、エージェントに安定したアクティブ Node のヒントを提供し、
ユーザーがいる可能性が最も高いコンピュータに Node 接続アラートをルーティングします。
これは、Gateway クライアントのライブ一覧であるシステムプレゼンスや、
モバイル Node を接続中として扱わずに最後に起動した時刻を記録する
永続的な node.presence.alive ビーコンとは別のものです。
要件
- OpenClaw macOS アプリがペアリングされ、Node モードで接続されていること。
- Settings -> Permissions -> Active computer detection が有効になっていること。デフォルトでは無効です。
- 署名済み OpenClaw アプリに Accessibility 権限が付与されていること。
- 接続アラートを使用する場合は、Notifications 権限も付与され、
Mac Node が
system.notifyを公開していること。
アクティブコンピュータを確認する
- macOS アプリで Settings -> Permissions を開き、 Active computer detection を有効にして、macOS の System Settings で Accessibility を付与します。
-
Mac Node が接続されていることを確認します。
-
その Mac でマウスを動かすかキーを押してから、次を実行します。
active と表示されます。ステータス出力には最終入力からの
経過時間が表示され、describe は active、lastActiveAtMs、および presenceUpdatedAtMs を公開します。
アクティビティは意図的にまとめて処理されるため、直近の報告後に別の入力が反映されるまで、
表示に最大約 15 秒かかる場合があります。
アクティビティがプレゼンスになる仕組み
macOS レポーターは、HID システムのアイドルクロックを 2 秒ごとにサンプリングします。 Node 接続の準備が整った時点で一度報告し、その後は新しい物理アクティビティを 15 秒に 1 回以下の頻度で報告します。アイドル中は 3 分ごとにキープアライブを 送信します。アイドル時間は 30 日を上限とし、非常に古いサンプルが時間の経過とともに 前方へずれて、誤って最新のコンピュータとして扱われないようにします。 Active computer detection を無効にすると、サンプリングが停止し、現在の Node 接続を介して 認証済みのクリアイベントが送信されます。Gateway はその Mac の保持済みアクティビティタイムスタンプを 直ちに削除してアクティブコンピュータを再計算しますが、その他の Node 機能や実行中の処理は 接続されたままです。接続中の Gateway がこのクリアアクションに対応していない古いバージョンの場合、 切断時のクリーンアップで保持済みアクティビティを削除できるよう、Mac Node は一度再接続します。 Gateway は、次のすべての条件を満たす場合にのみアクティビティを受け入れます。- イベントが、その Node ID の現在の認証済み接続に属していること。
- Node に有効な
accessibility: true権限があること。 - ペイロードに範囲内の整数
idleSeconds値が含まれていること。
idleSeconds を減算して
lastActiveAtMs を算出します。Node が提供する実時間タイムスタンプは決して信頼しません。
接続中で対象となる Mac のうち、最新の lastActiveAtMs が選ばれます。同値の場合は、
最も新しいプレゼンス更新が使用されます。
プレゼンスはプロセスローカルであり、接続に紐づきます。現在のセッションの切断、
同じ Node ID を使用する別セッションへの置換、または Accessibility の取り消しが発生すると、
その Node のアクティビティ状態がクリアされ、アクティブな Mac が再計算されます。
プライバシーとモデルコンテキスト
アクティビティ共有はデフォルトで無効であり、UI 自動化に使用される Accessibility の付与とは 別のものです。OpenClaw が送信するのはアイドル時間であり、入力内容ではありません。キーの値、 マウス座標、アプリケーション名、ウィンドウタイトル、生の入力イベントは送信しません。 macOS レポーターはハードウェア HID の状態を読み取るため、合成されたコンピュータ制御イベントによって、 自動操作された Mac が物理的に使用したコンピュータとして表示されることはありません。 継続的なアクティビティによって、モデル向けのシステムイベントが生成されることはありません。 動的ランタイム行に含まれるのは、認証済み Node ID のみです。nodes ツールで node.list または node.describe を読み取れます。
接続アラートのルーティング方法
承認後、Node が最初の Gateway ハンドシェイクを正常に完了すると、 OpenClaw は接続中の Mac が最初のアクティビティサンプルを送信できるよう 750 ミリ秒待機します。 その後、アクティビティが最新で通知機能を持つ接続中の Mac への配信を試みます。- 優先配信が成功した場合、他の Mac はアラートを受信しません。
- アクティブな Mac が利用できない場合、または優先配信に失敗した場合、OpenClaw は 5 秒待機し、
system.notifyを公開している残りの接続中 Mac すべてへの配信を試みます。 - 以降の再接続では通知されません。Gateway は正常な接続を ペアリングメタデータに記録するため、Gateway を再起動しても、 以前に接続されたすべての Node にアラートが再送されることはありません。
トラブルシューティング
TCC の復旧については、macOS の権限を参照してください。Node の
接続やコマンドの失敗については、Node のトラブルシューティングを参照してください。