Захват камеры (агент)
OpenClaw поддерживает захват камеры для агентских рабочих процессов:- iOS-узел (сопряжён через Gateway (шлюз)): захват фото (
jpg) или короткого видеоклипа (mp4, с необязательным аудио) черезnode.invoke. - Android-узел (сопряжён через Gateway (шлюз)): захват фото (
jpg) или короткого видеоклипа (mp4, с необязательным аудио) черезnode.invoke. - Приложение для macOS (узел через Gateway (шлюз)): захват фото (
jpg) или короткого видеоклипа (mp4, с необязательным аудио) черезnode.invoke.
iOS-узел
Пользовательская настройка (по умолчанию включено)
- Вкладка «Настройки» iOS → Камера → Разрешить камеру (
camera.enabled)- По умолчанию: включено (отсутствующий ключ считается включённым).
- При выключении: команды
camera.*возвращаютCAMERA_DISABLED.
Команды (через Gateway node.invoke)
-
camera.list- Полезная нагрузка ответа:
devices: массив{ id, name, position, deviceType }
- Полезная нагрузка ответа:
-
camera.snap- Params:
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 МБ.
- Params:
-
camera.clip- Params:
facing:front|back(по умолчанию:front)durationMs: number (по умолчанию3000, с ограничением до максимума60000)includeAudio: boolean (по умолчаниюtrue)format: в настоящее времяmp4deviceId: string (необязательно; изcamera.list)
- Полезная нагрузка ответа:
format: "mp4"base64: "<...>"durationMshasAudio
- Params:
Требование переднего плана
Как иcanvas.*, iOS-узел разрешает команды camera.* только в переднем плане. Вызовы в фоне возвращают NODE_BACKGROUND_UNAVAILABLE.
Помощник CLI (временные файлы + MEDIA)
Самый простой способ получить вложения — использовать помощник CLI, который записывает декодированное медиа во временный файл и выводитMEDIA:<path>.
Примеры:
nodes camera snapпо умолчанию использует обе камеры, чтобы предоставить агенту оба вида.- Выходные файлы являются временными (в каталоге временных файлов ОС), если вы не создадите собственную обёртку.
Android-узел
Пользовательская настройка Android (по умолчанию включено)
- Лист настроек Android → Камера → Разрешить камеру (
camera.enabled)- По умолчанию: включено (отсутствующий ключ считается включённым).
- При выключении: команды
camera.*возвращаютCAMERA_DISABLED.
Разрешения
- Android требует разрешений во время выполнения:
CAMERAдляcamera.snapиcamera.clip.RECORD_AUDIOдляcamera.clip, когдаincludeAudio=true.
camera.* завершаются с ошибкой
*_PERMISSION_REQUIRED.
Требование переднего плана Android
Как иcanvas.*, Android-узел разрешает команды camera.* только в переднем плане. Вызовы в фоне возвращают NODE_BACKGROUND_UNAVAILABLE.
Защита от нагрузки
Фотографии перекодируются, чтобы удерживать полезную нагрузку base64 ниже 5 МБ.Приложение для macOS
Пользовательская настройка (по умолчанию выключено)
Сопутствующее приложение macOS предоставляет флажок:- Настройки → Общие → Разрешить камеру (
openclaw.cameraEnabled)- По умолчанию: выключено
- При выключении: запросы к камере возвращают «Camera disabled by user».
Помощник CLI (вызов узла)
Используйте основной 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).