Kameraaufnahme (Agent)
OpenClaw unterstützt Kameraaufnahme für Agent-Workflows:- iOS-Node (über Gateway gekoppelt): Aufnahme eines Fotos (
jpg) oder kurzen Videoclips (mp4, optional mit Audio) übernode.invoke. - Android-Node (über Gateway gekoppelt): Aufnahme eines Fotos (
jpg) oder kurzen Videoclips (mp4, optional mit Audio) übernode.invoke. - macOS-App (Node über Gateway): Aufnahme eines Fotos (
jpg) oder kurzen Videoclips (mp4, optional mit Audio) übernode.invoke.
iOS-Node
Benutzereinstellung (standardmäßig an)
- iOS-Tab „Settings“ → Camera → Allow Camera (
camera.enabled)- Standard: an (ein fehlender Schlüssel wird als aktiviert behandelt).
- Wenn aus:
camera.*-Befehle gebenCAMERA_DISABLEDzurück.
Befehle (über Gateway node.invoke)
-
camera.list- Antwort-Nutzlast:
devices: Array aus{ id, name, position, deviceType }
- Antwort-Nutzlast:
-
camera.snap- Parameter:
facing:front|back(Standard:front)maxWidth: Zahl (optional; Standard1600auf dem iOS-Node)quality:0..1(optional; Standard0.9)format: derzeitjpgdelayMs: Zahl (optional; Standard0)deviceId: String (optional; auscamera.list)
- Antwort-Nutzlast:
format: "jpg"base64: "<...>"width,height
- Nutzlast-Schutz: Fotos werden erneut komprimiert, damit die base64-Nutzlast unter 5 MB bleibt.
- Parameter:
-
camera.clip- Parameter:
facing:front|back(Standard:front)durationMs: Zahl (Standard3000, auf maximal60000begrenzt)includeAudio: Boolean (Standardtrue)format: derzeitmp4deviceId: String (optional; auscamera.list)
- Antwort-Nutzlast:
format: "mp4"base64: "<...>"durationMshasAudio
- Parameter:
Anforderung an den Vordergrund
Wiecanvas.* erlaubt der iOS-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE zurück.
CLI-Helfer (temporäre Dateien + MEDIA)
Der einfachste Weg, Anhänge zu erhalten, ist der CLI-Helfer, der dekodierte Medien in eine temporäre Datei schreibt undMEDIA:<path> ausgibt.
Beispiele:
nodes camera snapverwendet standardmäßig beide Blickrichtungen, damit der Agent beide Ansichten erhält.- Ausgabedateien sind temporär (im Temp-Verzeichnis des Betriebssystems), sofern Sie keinen eigenen Wrapper erstellen.
Android-Node
Android-Benutzereinstellung (standardmäßig an)
- Android-Einstellungsblatt → Camera → Allow Camera (
camera.enabled)- Standard: an (ein fehlender Schlüssel wird als aktiviert behandelt).
- Wenn aus:
camera.*-Befehle gebenCAMERA_DISABLEDzurück.
Berechtigungen
- Android erfordert Laufzeitberechtigungen:
CAMERAsowohl fürcamera.snapals auch fürcamera.clip.RECORD_AUDIOfürcamera.clip, wennincludeAudio=true.
camera.*-Anfragen mit einem Fehler *_PERMISSION_REQUIRED fehl.
Android-Anforderung an den Vordergrund
Wiecanvas.* erlaubt der Android-Node camera.*-Befehle nur im Vordergrund. Aufrufe im Hintergrund geben NODE_BACKGROUND_UNAVAILABLE zurück.
Android-Befehle (über Gateway node.invoke)
camera.list- Antwort-Nutzlast:
devices: Array aus{ id, name, position, deviceType }
- Antwort-Nutzlast:
Nutzlast-Schutz
Fotos werden erneut komprimiert, damit die base64-Nutzlast unter 5 MB bleibt.macOS-App
Benutzereinstellung (standardmäßig aus)
Die macOS-Begleit-App stellt ein Kontrollkästchen bereit:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- Standard: aus
- Wenn aus: Kameraanfragen geben „Camera disabled by user“ zurück.
CLI-Helfer (node invoke)
Verwenden Sie die Haupt-CLIopenclaw, um Kamera-Befehle auf dem macOS-Node aufzurufen.
Beispiele:
openclaw nodes camera snapverwendet standardmäßigmaxWidth=1600, sofern nicht überschrieben.- Unter macOS wartet
camera.snapnach dem Warm-up/der Stabilisierung der BelichtungdelayMs(Standard 2000ms), bevor aufgenommen wird. - Foto-Nutzlasten werden erneut komprimiert, damit base64 unter 5 MB bleibt.
Sicherheit + praktische Grenzen
- Kamera- und Mikrofonzugriff lösen die üblichen Betriebssystem-Berechtigungsabfragen aus (und erfordern Usage-Strings in
Info.plist). - Videoclips sind begrenzt (derzeit
<= 60s), um übergroße Node-Nutzlasten zu vermeiden (base64-Overhead + Nachrichtenlimits).
macOS-Bildschirmvideo (auf Betriebssystemebene)
Für Bildschirm-Video (nicht Kamera) verwenden Sie die macOS-Begleit-App:- Erfordert die macOS-Berechtigung Screen Recording (TCC).