Acquisizione dalla fotocamera (agente)
OpenClaw supporta l’acquisizione dalla fotocamera per i flussi di lavoro dell’agente:- Nodo iOS (associato tramite Gateway): acquisisce una foto (
jpg) o una breve clip video (mp4, con audio opzionale) tramitenode.invoke. - Nodo Android (associato tramite Gateway): acquisisce una foto (
jpg) o una breve clip video (mp4, con audio opzionale) tramitenode.invoke. - App macOS (nodo tramite Gateway): acquisisce una foto (
jpg) o una breve clip video (mp4, con audio opzionale) tramitenode.invoke.
Nodo iOS
Impostazione utente (attivata per impostazione predefinita)
- Scheda Settings di iOS → Camera → Allow Camera (
camera.enabled)- Predefinito: on (una chiave mancante viene trattata come abilitata).
- Quando è disattivata: i comandi
camera.*restituisconoCAMERA_DISABLED.
Comandi (tramite Gateway node.invoke)
-
camera.list- Payload della risposta:
devices: array di{ id, name, position, deviceType }
- Payload della risposta:
-
camera.snap- Parametri:
facing:front|back(predefinito:front)maxWidth: numero (facoltativo; predefinito1600sul nodo iOS)quality:0..1(facoltativo; predefinito0.9)format: attualmentejpgdelayMs: numero (facoltativo; predefinito0)deviceId: stringa (facoltativa; dacamera.list)
- Payload della risposta:
format: "jpg"base64: "<...>"width,height
- Protezione del payload: le foto vengono ricompresse per mantenere il payload base64 sotto 5 MB.
- Parametri:
-
camera.clip- Parametri:
facing:front|back(predefinito:front)durationMs: numero (predefinito3000, limitato a un massimo di60000)includeAudio: booleano (predefinitotrue)format: attualmentemp4deviceId: stringa (facoltativa; dacamera.list)
- Payload della risposta:
format: "mp4"base64: "<...>"durationMshasAudio
- Parametri:
Requisito di primo piano
Comecanvas.*, il nodo iOS consente i comandi camera.* solo in primo piano. Le invocazioni in background restituiscono NODE_BACKGROUND_UNAVAILABLE.
Helper CLI (file temporanei + MEDIA)
Il modo più semplice per ottenere allegati è tramite l’helper CLI, che scrive i media decodificati in un file temporaneo e stampaMEDIA:<path>.
Esempi:
nodes camera snapusa per impostazione predefinita entrambi gli orientamenti per fornire all’agente entrambe le visuali.- I file di output sono temporanei (nella directory temporanea del sistema operativo) a meno che tu non crei un wrapper personalizzato.
Nodo Android
Impostazione utente Android (attivata per impostazione predefinita)
- Pannello Settings di Android → Camera → Allow Camera (
camera.enabled)- Predefinito: on (una chiave mancante viene trattata come abilitata).
- Quando è disattivata: i comandi
camera.*restituisconoCAMERA_DISABLED.
Permessi
- Android richiede permessi runtime:
CAMERAsia percamera.snapsia percamera.clip.RECORD_AUDIOpercamera.clipquandoincludeAudio=true.
camera.* falliscono con un errore *_PERMISSION_REQUIRED.
Requisito di primo piano Android
Comecanvas.*, il nodo Android consente i comandi camera.* solo in primo piano. Le invocazioni in background restituiscono NODE_BACKGROUND_UNAVAILABLE.
Comandi Android (tramite Gateway node.invoke)
camera.list- Payload della risposta:
devices: array di{ id, name, position, deviceType }
- Payload della risposta:
Protezione del payload
Le foto vengono ricompresse per mantenere il payload base64 sotto 5 MB.App macOS
Impostazione utente (disattivata per impostazione predefinita)
L’app complementare per macOS espone una casella di controllo:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- Predefinito: off
- Quando è disattivata: le richieste della fotocamera restituiscono “Fotocamera disabilitata dall’utente”.
Helper CLI (node invoke)
Usa la CLI principaleopenclaw per invocare i comandi della fotocamera sul nodo macOS.
Esempi:
openclaw nodes camera snapusa per impostazione predefinitamaxWidth=1600salvo override.- Su macOS,
camera.snapattendedelayMs(predefinito 2000ms) dopo il warm-up/l’assestamento dell’esposizione prima di acquisire. - I payload delle foto vengono ricompresi per mantenere il base64 sotto 5 MB.
Sicurezza + limiti pratici
- L’accesso a fotocamera e microfono attiva i consueti prompt di permesso del sistema operativo (e richiede stringhe di utilizzo in Info.plist).
- Le clip video hanno un limite massimo (attualmente
<= 60s) per evitare payload dei nodi troppo grandi (overhead base64 + limiti dei messaggi).
Video dello schermo macOS (a livello di sistema operativo)
Per il video dello schermo (non della fotocamera), usa l’app complementare macOS:- Richiede il permesso macOS Screen Recording (TCC).