Przechwytywanie kamerą (agent)
OpenClaw obsługuje przechwytywanie kamerą dla przepływów pracy agenta:- Węzeł iOS (sparowany przez Gateway): wykonanie zdjęcia (
jpg) lub krótkiego klipu wideo (mp4, z opcjonalnym dźwiękiem) przeznode.invoke. - Węzeł Android (sparowany przez Gateway): wykonanie zdjęcia (
jpg) lub krótkiego klipu wideo (mp4, z opcjonalnym dźwiękiem) przeznode.invoke. - Aplikacja macOS (węzeł przez Gateway): wykonanie zdjęcia (
jpg) lub krótkiego klipu wideo (mp4, z opcjonalnym dźwiękiem) przeznode.invoke.
Węzeł iOS
Ustawienie użytkownika (domyślnie włączone)
- Karta ustawień iOS → Camera → Allow Camera (
camera.enabled)- Domyślnie: włączone (brakujący klucz jest traktowany jako włączony).
- Gdy wyłączone: polecenia
camera.*zwracająCAMERA_DISABLED.
Polecenia (przez Gateway node.invoke)
-
camera.list- Ładunek odpowiedzi:
devices: tablica{ id, name, position, deviceType }
- Ładunek odpowiedzi:
-
camera.snap- Parametry:
facing:front|back(domyślnie:front)maxWidth: liczba (opcjonalne; domyślnie1600w węźle iOS)quality:0..1(opcjonalne; domyślnie0.9)format: obecniejpgdelayMs: liczba (opcjonalne; domyślnie0)deviceId: string (opcjonalne; zcamera.list)
- Ładunek odpowiedzi:
format: "jpg"base64: "<...>"width,height
- Ograniczenie ładunku: zdjęcia są ponownie kompresowane, aby utrzymać ładunek base64 poniżej 5 MB.
- Parametry:
-
camera.clip- Parametry:
facing:front|back(domyślnie:front)durationMs: liczba (domyślnie3000, ograniczane do maksymalnie60000)includeAudio: boolean (domyślnietrue)format: obecniemp4deviceId: string (opcjonalne; zcamera.list)
- Ładunek odpowiedzi:
format: "mp4"base64: "<...>"durationMshasAudio
- Parametry:
Wymóg działania na pierwszym planie
Podobnie jakcanvas.*, węzeł iOS pozwala na polecenia camera.* tylko na pierwszym planie. Wywołania w tle zwracają NODE_BACKGROUND_UNAVAILABLE.
Pomocnik CLI (pliki tymczasowe + MEDIA)
Najłatwiejszym sposobem uzyskania załączników jest pomocnik CLI, który zapisuje zdekodowane multimedia do pliku tymczasowego i wypisujeMEDIA:<path>.
Przykłady:
nodes camera snapdomyślnie używa obu kierunków, aby dać agentowi oba widoki.- Pliki wyjściowe są tymczasowe (w katalogu temp systemu operacyjnego), chyba że zbudujesz własny wrapper.
Węzeł Android
Ustawienie użytkownika Android (domyślnie włączone)
- Arkusz ustawień Android → Camera → Allow Camera (
camera.enabled)- Domyślnie: włączone (brakujący klucz jest traktowany jako włączony).
- Gdy wyłączone: polecenia
camera.*zwracająCAMERA_DISABLED.
Uprawnienia
- Android wymaga uprawnień runtime:
CAMERAdlacamera.snapicamera.clip.RECORD_AUDIOdlacamera.clip, gdyincludeAudio=true.
camera.* kończą się błędem
*_PERMISSION_REQUIRED.
Wymóg działania Android na pierwszym planie
Podobnie jakcanvas.*, węzeł Android pozwala na polecenia camera.* tylko na pierwszym planie. Wywołania w tle zwracają NODE_BACKGROUND_UNAVAILABLE.
Polecenia Android (przez Gateway node.invoke)
camera.list- Ładunek odpowiedzi:
devices: tablica{ id, name, position, deviceType }
- Ładunek odpowiedzi:
Ograniczenie ładunku
Zdjęcia są ponownie kompresowane, aby utrzymać ładunek base64 poniżej 5 MB.Aplikacja macOS
Ustawienie użytkownika (domyślnie wyłączone)
Aplikacja towarzysząca macOS udostępnia pole wyboru:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- Domyślnie: wyłączone
- Gdy wyłączone: żądania kamery zwracają „Camera disabled by user”.
Pomocnik CLI (node invoke)
Użyj głównego CLIopenclaw, aby wywoływać polecenia kamery w węźle macOS.
Przykłady:
openclaw nodes camera snapdomyślnie używamaxWidth=1600, chyba że zostanie nadpisane.- Na macOS
camera.snapczekadelayMs(domyślnie 2000ms) po rozgrzaniu/ustabilizowaniu ekspozycji przed wykonaniem zdjęcia. - Ładunki zdjęć są ponownie kompresowane, aby utrzymać base64 poniżej 5 MB.
Bezpieczeństwo + praktyczne ograniczenia
- Dostęp do kamery i mikrofonu wywołuje standardowe monity o uprawnienia systemu operacyjnego (i wymaga wpisów usage strings w Info.plist).
- Klipy wideo są ograniczone (obecnie
<= 60s), aby uniknąć zbyt dużych ładunków węzła (narzut base64 + limity wiadomości).
Wideo ekranu macOS (na poziomie systemu operacyjnego)
W przypadku wideo ekranu (nie kamery) użyj aplikacji towarzyszącej macOS:- Wymaga uprawnienia macOS Screen Recording (TCC).