Pagkuha ng camera (agent)¶
Sinusuportahan ng OpenClaw ang pagkuha ng camera para sa mga workflow ng agent:
- iOS node (nakapares sa pamamagitan ng Gateway): kumuha ng larawan (
jpg) o maikling video clip (mp4, may opsyonal na audio) sa pamamagitan ngnode.invoke. - Android node (nakapares sa pamamagitan ng Gateway): kumuha ng larawan (
jpg) o maikling video clip (mp4, may opsyonal na audio) sa pamamagitan ngnode.invoke. - macOS app (node sa pamamagitan ng Gateway): kumuha ng larawan (
jpg) o maikling video clip (mp4, may opsyonal na audio) sa pamamagitan ngnode.invoke.
Ang lahat ng access sa camera ay dumadaan sa mga setting na kontrolado ng user.
Node ng iOS¶
Setting ng user (default na naka-on)¶
- iOS tab na Settings → Kamera → Payagan ang Kamera (
camera.enabled) - Default: on (ang nawawalang key ay itinuturing na naka-enable).
- Kapag naka-off: ang mga command na
camera.*ay nagbabalik ngCAMERA_DISABLED.
Mga command (sa pamamagitan ng Gateway node.invoke)¶
camera.list-
Payload ng tugon:
devices: array ng{ id, name, position, deviceType }
-
camera.snap - Mga parameter:
facing:front|back(default:front)maxWidth: number (opsyonal; default1600sa iOS node)quality:0..1(opsyonal; default0.9)format: kasalukuyangjpgdelayMs: number (opsyonal; default0)deviceId: string (opsyonal; mula sacamera.list)
- Payload ng tugon:
format: "jpg"base64: "<...>"width,height
-
Payload guard: ang mga larawan ay nire-recompress upang mapanatili ang base64 payload na mas mababa sa 5 MB.
-
camera.clip - Mga parameter:
facing:front|back(default:front)durationMs: number (default3000, nililimitahan sa max na60000)includeAudio: boolean (defaulttrue)format: kasalukuyangmp4deviceId: string (opsyonal; mula sacamera.list)
- Payload ng tugon:
format: "mp4"base64: "<...>"durationMshasAudio
Kinakailangan sa foreground¶
Tulad ng canvas.*, pinapayagan lamang ng iOS node ang mga camera.* na command sa foreground. Background invocations return NODE_BACKGROUND_UNAVAILABLE.
CLI helper (temp files + MEDIA)¶
Ang pinakamadaling paraan para makakuha ng mga attachment ay sa pamamagitan ng CLI helper, na nagsusulat ng na-decode na media sa isang temp file at nagpi-print ng MEDIA:<path>.
Mga halimbawa:
openclaw nodes camera snap --node <id> # default: both front + back (2 MEDIA lines)
openclaw nodes camera snap --node <id> --facing front
openclaw nodes camera clip --node <id> --duration 3000
openclaw nodes camera clip --node <id> --no-audio
Mga tala:
- Ang
nodes camera snapay default sa parehong facing upang mabigyan ang agent ng parehong view. - Ang mga output file ay pansamantala (nasa OS temp directory) maliban kung gagawa ka ng sarili mong wrapper.
Android node¶
Setting ng Android user (default na naka-on)¶
- Android Settings sheet → Camera → Allow Camera (
camera.enabled) - Default: on (ang nawawalang key ay itinuturing na naka-enable).
- Kapag naka-off: ang mga command na
camera.*ay nagbabalik ngCAMERA_DISABLED.
Mga pahintulot¶
- Nangangailangan ang Android ng runtime permissions:
CAMERApara sa parehongcamera.snapatcamera.clip.RECORD_AUDIOpara sacamera.clipkapagincludeAudio=true.
Kung kulang ang mga pahintulot, magpo-prompt ang app kapag posible; kung tinanggihan, ang mga request na camera.* ay mabibigo na may
*_PERMISSION_REQUIRED error.
Kinakailangan sa foreground ng Android¶
Tulad ng canvas.*, pinapayagan lamang ng Android node ang mga camera.* na command kapag nasa foreground. Ang mga invocation sa background ay nagbabalik ng NODE_BACKGROUND_UNAVAILABLE.
Payload guard¶
Ang mga larawan ay nire-recompress upang mapanatili ang base64 payload na mas mababa sa 5 MB.
macOS app¶
Setting ng user (default na naka-off)¶
Naglalantad ang macOS companion app ng isang checkbox:
- Settings → General → Allow Camera (
openclaw.cameraEnabled) - Default: off
- Kapag naka-off: ang mga request sa camera ay nagbabalik ng “Camera disabled by user”.
CLI helper (node invoke)¶
Gamitin ang pangunahing openclaw CLI upang i-invoke ang mga command ng camera sa macOS node.
Mga halimbawa:
openclaw nodes camera list --node <id> # list camera ids
openclaw nodes camera snap --node <id> # prints MEDIA:<path>
openclaw nodes camera snap --node <id> --max-width 1280
openclaw nodes camera snap --node <id> --delay-ms 2000
openclaw nodes camera snap --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --duration 10s # prints MEDIA:<path>
openclaw nodes camera clip --node <id> --duration-ms 3000 # prints MEDIA:<path> (legacy flag)
openclaw nodes camera clip --node <id> --device-id <id>
openclaw nodes camera clip --node <id> --no-audio
Mga tala:
- Ang
openclaw nodes camera snapay default samaxWidth=1600maliban kung i-override. - Sa macOS, ang
camera.snapay naghihintay ngdelayMs(default 2000ms) pagkatapos ng warm-up/pag-settle ng exposure bago kumuha. - Ang mga payload ng larawan ay nire-recompress upang mapanatili ang base64 na mas mababa sa 5 MB.
Kaligtasan + praktikal na limitasyon¶
- Ang access sa camera at mikropono ay nagti-trigger ng karaniwang OS permission prompts (at nangangailangan ng mga usage string sa Info.plist).
- Ang mga video clip ay may cap (kasalukuyang
<= 60s) upang maiwasan ang sobrang laki ng node payloads (base64 overhead + mga limitasyon sa mensahe).
macOS screen video (antas-OS)¶
Para sa screen video (hindi camera), gamitin ang macOS companion:
openclaw nodes screen record --node <id> --duration 10s --fps 15 # prints MEDIA:<path>
Mga tala:
- Nangangailangan ng pahintulot na macOS Screen Recording (TCC).