कैमरा कैप्चर (एजेंट)
OpenClaw एजेंट वर्कफ़्लो के लिए कैमरा कैप्चर का समर्थन करता है:- iOS नोड (Gateway के माध्यम से जोड़ा गया):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - Android नोड (Gateway के माध्यम से जोड़ा गया):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें। - macOS ऐप (Gateway के माध्यम से नोड):
node.invokeके माध्यम से फ़ोटो (jpg) या छोटा वीडियो क्लिप (mp4, वैकल्पिक ऑडियो के साथ) कैप्चर करें।
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: संख्या (वैकल्पिक; iOS नोड पर डिफ़ॉल्ट1600)quality:0..1(वैकल्पिक; डिफ़ॉल्ट0.9)format: वर्तमान मेंjpgdelayMs: संख्या (वैकल्पिक; डिफ़ॉल्ट0)deviceId: स्ट्रिंग (वैकल्पिक;camera.listसे)
- प्रतिक्रिया पेलोड:
format: "jpg"base64: "<...>"width,height
- पेलोड गार्ड: फ़ोटो को पुनः-संपीड़ित किया जाता है ताकि base64 पेलोड 5 MB से कम रहे।
- पैरामीटर:
-
camera.clip- पैरामीटर:
facing:front|back(डिफ़ॉल्ट:front)durationMs: संख्या (डिफ़ॉल्ट3000, अधिकतम60000तक सीमित)includeAudio: बूलियन (डिफ़ॉल्टtrue)format: वर्तमान मेंmp4deviceId: स्ट्रिंग (वैकल्पिक;camera.listसे)
- प्रतिक्रिया पेलोड:
format: "mp4"base64: "<...>"durationMshasAudio
- पैरामीटर:
फ़ोरग्राउंड आवश्यकता
canvas.* की तरह, iOS node केवल foreground में camera.* कमांड्स की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
CLI सहायक (अस्थायी फ़ाइलें + MEDIA)
अटैचमेंट प्राप्त करने का सबसे आसान तरीका CLI सहायक है, जो डिकोड किए गए मीडिया को एक अस्थायी फ़ाइल में लिखता है औरMEDIA:<path> प्रिंट करता है।
उदाहरण:
nodes camera snapडिफ़ॉल्ट रूप से दोनों फ़ेसिंग्स पर सेट होता है ताकि एजेंट को दोनों दृश्य मिलें।- आउटपुट फ़ाइलें अस्थायी होती हैं (OS टेम्प निर्देशिका में) जब तक आप अपना स्वयं का रैपर न बनाएँ।
Android नोड
Android उपयोगकर्ता सेटिंग (डिफ़ॉल्ट चालू)
- Android Settings शीट → Camera → Allow Camera (
camera.enabled)- डिफ़ॉल्ट: चालू (गुम कुंजी को सक्षम माना जाता है)।
- बंद होने पर:
camera.*कमांडCAMERA_DISABLEDलौटाते हैं।
अनुमतियाँ
- Android को रनटाइम अनुमतियाँ आवश्यक हैं:
CAMERAदोनोंcamera.snapऔरcamera.clipके लिए।RECORD_AUDIOcamera.clipके लिए, जबincludeAudio=true।
camera.* अनुरोध
*_PERMISSION_REQUIRED त्रुटि के साथ विफल हो जाते हैं।
Android फ़ोरग्राउंड आवश्यकता
canvas.* की तरह, Android node केवल foreground में camera.* कमांड्स की अनुमति देता है। Background invocations NODE_BACKGROUND_UNAVAILABLE लौटाते हैं।
पेलोड गार्ड
फ़ोटो को पुनः-संपीड़ित किया जाता है ताकि base64 पेलोड 5 MB से कम रहे।macOS ऐप
उपयोगकर्ता सेटिंग (डिफ़ॉल्ट बंद)
macOS सहचर ऐप एक चेकबॉक्स प्रदान करता है:- Settings → General → Allow Camera (
openclaw.cameraEnabled)- डिफ़ॉल्ट: बंद
- बंद होने पर: कैमरा अनुरोध “Camera disabled by user” लौटाते हैं।
CLI सहायक (नोड इन्वोक)
macOS नोड पर कैमरा कमांड इन्वोक करने के लिए मुख्यopenclaw CLI का उपयोग करें।
उदाहरण:
openclaw nodes camera snapडिफ़ॉल्ट रूप सेmaxWidth=1600होता है जब तक ओवरराइड न किया जाए।- macOS पर,
camera.snapकैप्चर से पहले वार्म-अप/एक्सपोज़र सेटल होने के बादdelayMs(डिफ़ॉल्ट 2000ms) प्रतीक्षा करता है। - फ़ोटो पेलोड को base64 को 5 MB से कम रखने के लिए पुनः-संपीड़ित किया जाता है।
सुरक्षा + व्यावहारिक सीमाएँ
- कैमरा और माइक्रोफ़ोन एक्सेस सामान्य OS अनुमति प्रॉम्प्ट ट्रिगर करते हैं (और Info.plist में उपयोग स्ट्रिंग्स की आवश्यकता होती है)।
- वीडियो क्लिप सीमित हैं (वर्तमान में
<= 60s) ताकि अत्यधिक बड़े नोड पेलोड से बचा जा सके (base64 ओवरहेड + संदेश सीमाएँ)।
macOS स्क्रीन वीडियो (OS-स्तरीय)
स्क्रीन वीडियो (कैमरा नहीं) के लिए, macOS सहचर का उपयोग करें:- macOS Screen Recording अनुमति (TCC) आवश्यक है।