Skip to main content
Aktywna obecność przy komputerze informuje Gateway, który z połączonych węzłów macOS odebrał ostatnie fizyczne dane wejściowe z myszy lub klawiatury. OpenClaw używa tego sygnału, aby oznaczyć jeden komputer Mac jako active, przekazać agentowi stabilną wskazówkę dotyczącą aktywnego węzła oraz kierować alerty o połączeniu węzła do komputera, przy którym najprawdopodobniej znajduje się użytkownik. Jest to mechanizm odrębny od obecności systemowej, która stanowi aktualną listę klientów Gateway, oraz od trwałych sygnałów node.presence.alive, które rejestrują ostatnie wybudzenie węzła mobilnego, nie traktując go jako połączonego.

Wymagania

  • Aplikacja OpenClaw dla systemu macOS jest sparowana i połączona w trybie węzła.
  • Podpisanej aplikacji OpenClaw przyznano uprawnienie Accessibility.
  • W przypadku alertów o połączeniu przyznano również uprawnienie Notifications, a węzeł Mac udostępnia system.notify.
Raportowanie aktywności jest obecnie zaimplementowane przez natywny węzeł macOS. Hosty węzłów iOS, Android, watchOS i bez interfejsu graficznego mogą raportować stan ostatniej aktywności związanej z połączeniem lub działaniem w tle, ale nie uczestniczą w wyborze aktywnego komputera.

Sprawdzanie aktywnego komputera

  1. W aplikacji macOS otwórz Settings -> Permissions i przyznaj uprawnienie Accessibility w ustawieniach systemowych macOS.
  2. Potwierdź, że węzeł Mac jest połączony:
  3. Porusz myszą lub naciśnij klawisz na tym komputerze Mac, a następnie uruchom:
Najbardziej aktualny kwalifikujący się komputer Mac jest oznaczony jako active. Dane wyjściowe stanu pokazują czas od ostatnich danych wejściowych; describe udostępnia active, lastActiveAtMs oraz presenceUpdatedAtMs. Aktywność jest celowo agregowana, dlatego po niedawnym raporcie wyświetlenie kolejnych danych wejściowych może zająć do około 15 sekund.

Jak aktywność staje się obecnością

Moduł raportujący macOS co dwie sekundy pobiera próbkę systemowego zegara bezczynności HID. Raportuje raz, gdy połączenie węzła staje się gotowe, a następnie raportuje nowszą aktywność fizyczną nie częściej niż raz na 15 sekund. Podczas bezczynności wysyła sygnał podtrzymujący co trzy minuty. Czas bezczynności jest ograniczony do 30 dni, aby bardzo stara próbka nie mogła przesunąć się w przód i zostać błędnie uznana za najnowszy komputer. Gateway akceptuje aktywność tylko wtedy, gdy wszystkie poniższe warunki są spełnione:
  • zdarzenie należy do bieżącego uwierzytelnionego połączenia dla danego identyfikatora węzła;
  • węzeł ma efektywne uprawnienie accessibility: true;
  • ładunek zawiera ograniczoną wartość całkowitą idleSeconds.
Gateway odejmuje idleSeconds od własnego czasu obserwacji, aby wyznaczyć lastActiveAtMs. Nigdy nie ufa znacznikowi czasu zegara czasu rzeczywistego dostarczonemu przez węzeł. Wśród połączonych kwalifikujących się komputerów Mac wygrywa najnowsza wartość lastActiveAtMs; w przypadku remisu używana jest najnowsza aktualizacja obecności. Obecność jest lokalna dla procesu i powiązana z połączeniem. Rozłączenie bieżącej sesji, zastąpienie jej inną sesją używającą tego samego identyfikatora węzła albo cofnięcie uprawnienia Accessibility usuwa stan aktywności tego węzła i ponownie wyznacza aktywny komputer Mac.

Prywatność i kontekst modelu

OpenClaw wysyła czas bezczynności, a nie treść danych wejściowych. Nie wysyła wartości klawiszy, współrzędnych myszy, nazw aplikacji, tytułów okien ani nieprzetworzonych zdarzeń wejściowych. Moduł raportujący macOS odczytuje sprzętowy stan HID, dlatego syntetyczne zdarzenia sterowania komputerem nie sprawiają, że zautomatyzowany komputer Mac jest uznawany za komputer używany fizycznie. Ciągła aktywność nie tworzy zdarzeń systemowych widocznych dla modelu. Dynamiczny wiersz środowiska uruchomieniowego zawiera wyłącznie uwierzytelniony identyfikator węzła:
Dokładne znaczniki czasu i kontrolowane przez węzeł nazwy wyświetlane nie trafiają do promptu, aby uniknąć wstrzyknięcia promptu i częstych zmian pamięci podręcznej. Gdy agent potrzebuje aktualnych szczegółów, narzędzie nodes może zamiast tego odczytać node.list lub node.describe.

Jak kierowane są alerty o połączeniu

Po zakończeniu uzgadniania połączenia węzła z Gateway OpenClaw czeka 750 milisekund, aby łączący się komputer Mac mógł przesłać pierwszą próbkę aktywności. Następnie próbuje użyć połączonego komputera Mac z obsługą powiadomień, który ma najnowszą aktywność.
  • Jeśli podstawowe dostarczenie powiedzie się, żaden inny komputer Mac nie otrzyma alertu.
  • Jeśli aktywny komputer Mac jest niedostępny lub podstawowe dostarczenie zakończy się niepowodzeniem, OpenClaw czeka pięć sekund i próbuje użyć wszystkich pozostałych połączonych komputerów Mac, które udostępniają system.notify.
  • Alert o ponownym połączeniu tego samego węzła jest wstrzymywany przez pięć minut po rzeczywistej próbie dostarczenia, co zapobiega powstaniu lawiny powiadomień wskutek niestabilnego ponownego łączenia.
Alerty są powiązane z konkretnymi połączeniami węzłów. Rozłączona lub zastąpiona sesja źródłowa nie może ukończyć wcześniej zaplanowanego alertu, a zastępcze połączenie docelowe nadal może uczestniczyć w dostarczaniu awaryjnym.

Rozwiązywanie problemów

Informacje o przywracaniu uprawnień TCC zawiera strona uprawnienia macOS. Informacje o problemach z połączeniem węzła i wykonywaniem poleceń zawiera strona Rozwiązywanie problemów z Node.

Powiązane materiały