Захоплення з камери (агент)
OpenClaw підтримує захоплення з камери для workflow агентів:- Вузол iOS (спарений через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke. - Вузол Android (спарений через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke. - Застосунок macOS (вузол через Gateway): захоплення фото (
jpg) або короткого відеокліпу (mp4, з необов’язковим аудіо) черезnode.invoke.
Вузол iOS
Користувацьке налаштування (типово увімкнено)
- Вкладка iOS Settings → Camera → Allow Camera (
camera.enabled)- Типово: увімкнено (відсутній ключ вважається увімкненим).
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED.
Команди (через Gateway node.invoke)
-
camera.list- Пейлоад відповіді:
devices: масив{ id, name, position, deviceType }
- Пейлоад відповіді:
-
camera.snap- Параметри:
facing:front|back(типово:front)maxWidth: number (необов’язково; типово1600на вузлі iOS)quality:0..1(необов’язково; типово0.9)format: наразіjpgdelayMs: number (необов’язково; типово0)deviceId: string (необов’язково; зcamera.list)
- Пейлоад відповіді:
format: "jpg"base64: "<...>"width,height
- Захист пейлоада: фото повторно стискаються, щоб утримати base64-пейлоад меншим за 5 МБ.
- Параметри:
-
camera.clip- Параметри:
facing:front|back(типово:front)durationMs: number (типово3000, обмежується максимумом60000)includeAudio: boolean (типовоtrue)format: наразіmp4deviceId: string (необов’язково; зcamera.list)
- Пейлоад відповіді:
format: "mp4"base64: "<...>"durationMshasAudio
- Параметри:
Вимога переднього плану
Як іcanvas.*, вузол iOS дозволяє команди camera.* лише у передньому плані. Виклики у фоновому режимі повертають NODE_BACKGROUND_UNAVAILABLE.
Допоміжна функція CLI (тимчасові файли + MEDIA)
Найпростіший спосіб отримати вкладення — через допоміжну функцію CLI, яка записує декодовані медіа у тимчасовий файл і виводитьMEDIA:<path>.
Приклади:
nodes camera snapтипово використовує обидва напрямки камери, щоб агент отримав обидва ракурси.- Вихідні файли є тимчасовими (у тимчасовому каталозі ОС), якщо ви не створите власну обгортку.
Вузол Android
Користувацьке налаштування Android (типово увімкнено)
- Аркуш Android Settings → Camera → Allow Camera (
camera.enabled)- Типово: увімкнено (відсутній ключ вважається увімкненим).
- Коли вимкнено: команди
camera.*повертаютьCAMERA_DISABLED.
Дозволи
- Android вимагає runtime-дозволів:
CAMERAдляcamera.snapіcamera.clip.RECORD_AUDIOдляcamera.clip, колиincludeAudio=true.
camera.* завершуються помилкою
*_PERMISSION_REQUIRED.
Вимога переднього плану Android
Як іcanvas.*, вузол Android дозволяє команди camera.* лише у передньому плані. Виклики у фоновому режимі повертають NODE_BACKGROUND_UNAVAILABLE.
Команди Android (через Gateway node.invoke)
camera.list- Пейлоад відповіді:
devices: масив{ id, name, position, deviceType }
- Пейлоад відповіді:
Захист пейлоада
Фото повторно стискаються, щоб утримати base64-пейлоад меншим за 5 МБ.Застосунок macOS
Користувацьке налаштування (типово вимкнено)
Застосунок-компаньйон macOS надає прапорець:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- Типово: вимкнено
- Коли вимкнено: запити до камери повертають “Camera disabled by user”.
Допоміжна функція CLI (node invoke)
Використовуйте основний CLIopenclaw, щоб викликати команди камери на вузлі macOS.
Приклади:
openclaw nodes camera snapтипово використовуєmaxWidth=1600, якщо не перевизначено.- На macOS
camera.snapчекаєdelayMs(типово 2000 мс) після прогрівання/стабілізації експозиції перед захопленням. - Пейлоади фото повторно стискаються, щоб base64 залишався меншим за 5 МБ.
Безпека та практичні обмеження
- Доступ до камери й мікрофона викликає звичайні системні запити на дозволи (і потребує рядків використання в Info.plist).
- Відеокліпи обмежені за тривалістю (зараз
<= 60s), щоб уникнути надто великих пейлоадів вузла (накладні витрати base64 + обмеження повідомлень).
Відео екрана на macOS (на рівні ОС)
Для відео екрана (не камери) використовуйте застосунок-компаньйон macOS:- Потрібен дозвіл macOS Screen Recording (TCC).