Nodes and media
कंप्यूटर का उपयोग
कंप्यूटर उपयोग Gateway एजेंट को किसी सक्षम, युग्मित डेस्कटॉप को देखने और नियंत्रित करने देता है। पात्रता क्षमता-आधारित है: कनेक्ट किए गए Node को computer.act और screen.snapshot दोनों विज्ञापित करने होंगे, जिनके परिणाम में displayFrameId शामिल होना चाहिए। टूल संदर्भ फ़्रेम के रूप में एक स्क्रीनशॉट कैप्चर करता है, फिर खतरनाक computer.act कमांड के माध्यम से पॉइंटर और कीबोर्ड संचालित करता है। क्रियाओं का सेट मुख्य Anthropic कंप्यूटर-उपयोग क्रियाओं का अनुसरण करता है; वैकल्पिक computer_20251124 ज़ूम उपलब्ध नहीं कराया गया है। दृष्टि-सक्षम मॉडल इसे अंतर्निहित computer एजेंट टूल के माध्यम से संचालित करता है।
एजेंट एक समान कमांड, computer.act, भेजता है; वह यह नहीं जान सकता कि कोई Node इसे कैसे पूरा करता है। बंडल किया गया macOS ऐप, एम्बेडेड Peekaboo सेवाओं और सीमित CoreGraphics प्रिमिटिव के साथ कमांड को उसी प्रोसेस में संभालता है (सही TCC अनुमतियाँ, कोई अतिरिक्त प्रोसेस नहीं)। Windows और Linux, अलग से इंस्टॉल किए गए cua-driver बाइनरी के साथ वैकल्पिक, प्रयोगात्मक cua-computer Plugin का उपयोग कर सकते हैं। दोनों कार्यान्वयन समान युग्मन और आर्मिंग नीति का उपयोग करते हैं।
आवश्यकताएँ
- एक युग्मित, कनेक्ट किया गया Node, जो
computer.actऔरscreen.snapshotदोनों विज्ञापित करता हो, और जिसमेंscreen.snapshot,displayFrameIdलौटाता हो। - macOS कार्यान्वयनकर्ता: ऐप सेटिंग Allow Computer Control सक्षम हो (डिफ़ॉल्ट: बंद)।
- macOS कार्यान्वयनकर्ता: OpenClaw को Accessibility अनुमति (पॉइंटर/कीबोर्ड इनपुट के लिए) और Screen Recording अनुमति (
screen.snapshotके लिए) दी गई हो। - Windows/Linux कार्यान्वयनकर्ता: बंडल किया गया
cua-computerPlugin सक्षम हो और संगतcua-driver0.10.x निष्पादनयोग्य इंस्टॉल हो। - Gateway पर
computer.actकमांड आर्म किया गया हो (यह खतरनाक है और डिफ़ॉल्ट रूप से डिसआर्म रहता है)। - एक दृष्टि-सक्षम एजेंट मॉडल।
- ऐसी टूल नीति जो
computerउपलब्ध कराती हो। डिफ़ॉल्टcodingप्रोफ़ाइल ऐसा नहीं करती।tools.alsoAllowमेंcomputerजोड़ें; सैंडबॉक्स किए गए एजेंटों को यहtools.sandbox.tools.alsoAllowमें भी चाहिए।
computer एजेंट टूल
अंतर्निहित computer टूल प्रत्येक कॉल में एक क्रिया लेता है। निर्देशांक सबसे हाल के स्क्रीनशॉट में ऋणेतर पूर्णांक पिक्सेल होते हैं; Node उन्हें डिस्प्ले पॉइंट में मैप करता है। निर्देशांक वाली क्रियाओं को स्क्रीनशॉट परिणाम का frameId हूबहू देना होगा, और स्पष्ट screenIndex उस फ़्रेम से मेल खाना चाहिए। OpenClaw स्क्रीनशॉट से Node द्वारा जारी डिस्प्ले पहचान भी क्रिया में ले जाता है, ताकि डिस्प्ले के दोबारा कनेक्ट होने या ज्यामिति बदलने पर उसी इंडेक्स को चुपचाप फिर से लक्षित करने के बजाय क्रिया सुरक्षित रूप से विफल हो। ये जाँचें अनुमानित टोकन और किसी अन्य वितरित फ़्रेम या डिस्प्ले के टोकन अस्वीकार करती हैं। टोकन नवीनता की गारंटी नहीं है: कैप्चर के बाद ऐप उसी डिस्प्ले पर पिक्सेल बदल सकते हैं, इसलिए दृश्य बदलने की संभावना होने पर नया स्क्रीनशॉट लें।
- रीड क्रियाएँ:
screenshot। - पॉइंटर:
left_click,right_click,middle_click,double_click,triple_click,mouse_move,left_click_drag(startCoordinateके साथ),left_mouse_down,left_mouse_up। - स्क्रॉल:
scroll, जिसमेंscrollDirection(up|down|left|right) औरscrollAmount(व्हील टिक) होते हैं। - कीबोर्ड:
type(टेक्स्ट),key(cmd+shift+tयाReturnजैसे संयोजन),hold_key(textसंयोजन कोdurationसेकंड तक दबाकर रखना)। - गति-नियंत्रण:
wait(durationसेकंड)।
क्लिक और स्क्रॉल क्रियाओं में संशोधक कुंजियाँ text फ़ील्ड के माध्यम से भेजी जाती हैं (shift, ctrl, alt, cmd)। किसी इनपुट क्रिया के बाद टूल एक नया स्क्रीनशॉट लौटाता है, ताकि मॉडल परिणाम देख सके। यदि एक से अधिक कंप्यूटर-सक्षम Node कनेक्ट हों, तो node स्पष्ट रूप से दें।
स्क्रीनशॉट केवल मॉडल के लिए रखे जाते हैं: वे चैट चैनल पर कभी स्वतः वितरित नहीं किए जाते। स्क्रीन पर दिखाई देने वाली सारी सामग्री को अविश्वसनीय इनपुट मानें; टूल मॉडल को चेतावनी देता है कि वह स्क्रीन पर दिए गए ऐसे निर्देशों का पालन न करे जो उपयोगकर्ता के अनुरोध से टकराते हों।
Windows और Linux (प्रयोगात्मक, cua-driver के माध्यम से)
बंडल किया गया cua-computer Plugin, Windows और Linux Node होस्ट के लिए एक प्रयोगात्मक कार्यान्वयनकर्ता प्रदान करता है। यह डिफ़ॉल्ट रूप से अक्षम है और इसके लिए प्री-रिलीज़ 0.10.x ड्राइवर अनुबंध आवश्यक है:
-
अपस्ट्रीम रिलीज़ से
cua-driver0.10.x बाइनरी इंस्टॉल करें और इसेPATHपर उपलब्ध कराएँ। किसी अन्य निष्पादनयोग्य स्थान का उपयोग करने के लिएplugins.entries.cua-computer.config.driverPathसेट करें। -
Plugin सक्षम करें:
bash openclaw plugins enable cua-computer -
इंटरैक्टिव डेस्कटॉप सत्र से
openclaw node runप्रारंभ करें। पहला कैप्चर या क्रिया आने पर Plugin स्थानीय ड्राइवर डेमन को विलंबित रूप से प्रारंभ करता है।
यह कार्यान्वयनकर्ता वर्तमान में केवल प्राथमिक डिस्प्ले नियंत्रित करता है। X11/XWayland Linux का प्राथमिक मार्ग है। नेटिव Wayland अब भी अपस्ट्रीम ऑप्ट-इन है: Node प्रारंभ करने से पहले CUA_DRIVER_RS_ENABLE_WAYLAND स्वयं सेट करें; OpenClaw इसे कभी स्वतः सेट नहीं करता। KDE/KWin, अपस्ट्रीम नेटिव-Wayland इनपुट पथ द्वारा समर्थित नहीं है। hold_key, left_mouse_down, और left_mouse_up उपलब्ध नहीं हैं, क्योंकि cua-driver 0.10.x में क्रॉस-प्लेटफ़ॉर्म डेस्कटॉप-स्कोप होल्ड अनुबंध नहीं है। संशोधक कुंजी दबाकर स्क्रॉल करना और ड्रैग करना दोनों प्लेटफ़ॉर्म पर उपलब्ध नहीं है, और संशोधक कुंजी दबाकर क्लिक करना Linux पर उपलब्ध नहीं है। key क्रिया नामित कुंजियाँ, अक्षर और संशोधक संयोजन (उदाहरण के लिए cmd+c या Return) स्वीकार करती है; अंक और विराम-चिह्न कुंजियाँ अस्वीकार कर दी जाती हैं क्योंकि ड्राइवर उनकी लेआउट-निर्भर Shift स्थिति छोड़ देता है, इसलिए इसके बजाय वह टेक्स्ट type क्रिया के माध्यम से भेजें। type_text ड्राइवर कॉल के दौरान टेक्स्ट टाइपिंग को बीच में रद्द नहीं किया जा सकता।
चूँकि cua-driver कोई स्थिर डिस्प्ले पहचान नहीं बताता, फ़्रेम प्राधिकरण ड्राइवर कनेक्शन और सक्रिय प्राथमिक-डिस्प्ले ज्यामिति से बँधता है। डेमन या सत्र का दोबारा कनेक्ट होना लंबित फ़्रेमों को अमान्य कर देता है, लेकिन कनेक्शन खुला रखते हुए समान ज्यामिति वाले प्राथमिक डिस्प्ले को बदलने का पता नहीं लगाया जा सकता; इस कार्यान्वयनकर्ता के लिए स्थिर एकल-डिस्प्ले सत्र को प्राथमिकता दें।
OpenClaw अपने द्वारा प्रबंधित mcp और serve प्रोसेस के लिए cua-driver टेलीमेट्री और अपडेट जाँच अक्षम करता है। यह ड्राइवर बाइनरी को डाउनलोड या अपडेट नहीं करता।
समस्या निवारण
cua-computer कार्यान्वयनकर्ता टूल परिणाम और Node लॉग में टाइप किए गए त्रुटि कोड दिखाता है। सामान्य कोड:
| कोड | कारण | समाधान |
|---|---|---|
COMPUTER_DRIVER_UNAVAILABLE |
cua-driver बाइनरी PATH पर नहीं है (या driverPath गलत है), डेमन समय पर तैयार नहीं हुआ, या Node Windows/Linux नहीं है। |
PATH पर cua-driver 0.10.x इंस्टॉल करें या driverPath सेट करें। इंटरैक्टिव डेस्कटॉप सत्र के भीतर openclaw node run चलाएँ; Linux पर सुनिश्चित करें कि X11 DISPLAY (या CUA_DRIVER_RS_ENABLE_WAYLAND वाला WAYLAND_DISPLAY) मौजूद हो। |
COMPUTER_DRIVER_UNSUPPORTED |
कनेक्ट किया गया ड्राइवर cua-driver 0.10.x नहीं है, या उसकी क्षमता/स्कीमा संस्करण अलग है। |
समर्थित 0.10.x बिल्ड इंस्टॉल करें। इसे ठीक करने के लगभग 30 सेकंड बाद Plugin फिर से जाँच करता है, इसलिए Node को पुनः प्रारंभ करने की आवश्यकता नहीं है। |
COMPUTER_REFUSED_<code> |
ड्राइवर ने background_unavailable, background_occluded, या foreground_unavailable (KDE/KWin Wayland) जैसे संरचित कोड के साथ क्रिया अस्वीकार कर दी। |
लक्ष्य विंडो को सामने लाएँ, X11 पर जाएँ, या समर्थित कंपोज़िटर का उपयोग करें। ऊपर दिए संगतता नोट देखें। |
COMPUTER_STALE_FRAME |
निर्देशांकों ने ऐसे स्क्रीनशॉट को संदर्भित किया जो अब वर्तमान नहीं है (संदर्भ Compaction, डिस्प्ले ज्यामिति में बदलाव, या संदर्भ-चौड़ाई में बदलाव)। | निर्देशांक वाली क्रिया से पहले नया screenshot लें। |
COMPUTER_UNSUPPORTED_ACTION |
ऐसी क्रिया जिसे यह कार्यान्वयनकर्ता विश्वसनीय रूप से नहीं कर सकता: hold_key, left_mouse_down, left_mouse_up, संशोधक कुंजी दबाकर ड्रैग/स्क्रॉल करना, या Linux पर संशोधक कुंजी दबाकर क्लिक करना। |
समर्थित क्रिया का उपयोग करें। cua-driver 0.10.x में डेस्कटॉप-स्कोप होल्ड-इनपुट अनुबंध नहीं है। |
COMPUTER_UNSUPPORTED_DISPLAY |
गैर-प्राथमिक screenIndex, कैप्चर/स्क्रीन ज्यामिति में बेमेल, या प्राथमिक डिस्प्ले से बाहर कर्सर। |
केवल प्राथमिक डिस्प्ले संचालित करें। |
COMPUTER_UNSUPPORTED_KEY |
ऐसा key मान जिसे ड्राइवर विश्वसनीय रूप से पुनरुत्पादित नहीं कर सकता: ऐसा अंक या विराम-चिह्न जिसकी Shift स्थिति लेआउट-निर्भर हो, या अज्ञात कुंजी। |
इसके बजाय वह टेक्स्ट type क्रिया के माध्यम से भेजें। |
COMPUTER_DRIVER_ERROR / COMPUTER_INVALID_REQUEST |
ड्राइवर किसी संरचित कोड के बिना विफल हुआ, या क्रिया के आर्ग्युमेंट विकृत थे। | ड्राइवर की स्थिति जाँचें और स्क्रीनशॉट दोबारा लें; क्रिया के आर्ग्युमेंट ठीक करें। |
computer.act Node कमांड
computer.act वह एकल Node कमांड है जिसके माध्यम से टूल इनपुट रूट करता है (node.invoke, command: "computer.act" के साथ)। यह है:
- डिफ़ॉल्ट रूप से खतरनाक: अंतर्निहित खतरनाक Node कमांड में सूचीबद्ध और स्पष्ट रूप से आर्म किए जाने तक रनटाइम अनुमति-सूची से बाहर। macOS, Windows और Linux डेस्कटॉप Node इसे युग्मन के समय फिर भी घोषित कर सकते हैं, ताकि यह सतह एक बार अनुमोदित हो जाए।
- क्षमता-आधारित: टूल के लिए कनेक्ट किए गए Node द्वारा
computer.actऔरscreen.snapshotदोनों विज्ञापित करना आवश्यक है। बंडल किया गया macOS ऐप और ऑप्ट-इन प्रयोगात्मकcua-computerPlugin समान कमांड-युग्म को पूरा करते हैं।
रीड क्रियाएँ screen.snapshot का पुनः उपयोग करती हैं; कोई दूसरा कैप्चर पथ नहीं है। साझा कैप्चर कमांड के लिए कैमरा और स्क्रीन Node देखें।
सक्षम और आर्म करें
-
प्लेटफ़ॉर्म फुलफ़िलर सक्षम करें: macOS पर Settings → Allow Computer Control सक्षम करें, फिर Settings → Permissions के अंतर्गत Accessibility और Screen Recording की अनुमति दें; Windows/Linux पर ऊपर दिए गए प्रयोगात्मक
cua-computerसेटअप का पालन करें। -
Gateway पर पेयरिंग अपडेट को स्वीकृति दें (नया कमांड दोबारा पेयरिंग को बाध्य करता है)।
-
टूल को विज़न-सक्षम एजेंट के लिए उपलब्ध कराएँ। डिफ़ॉल्ट
codingप्रोफ़ाइल के लिए:json5 { tools: { alsoAllow: ["computer"], // सैंडबॉक्स किए गए एजेंटों को इस दूसरे गेट की भी आवश्यकता होती है: sandbox: { tools: { alsoAllow: ["computer"] } }, },} -
सीमित समयावधि के लिए
computer.actको आर्म करें।phone-controlPlugin एकcomputerसमूह उपलब्ध कराता है:text /phone arm computer 30m/phone status/phone disarmआर्म करने के लिए
operator.admin(या स्वामी) आवश्यक है और इसकी अवधि स्वतः समाप्त हो जाती है। पुराना/phone arm allसमूह जानबूझकर डेस्कटॉप नियंत्रण को शामिल नहीं करता; स्पष्टcomputerसमूह का उपयोग करें। आर्म करना केवल यह टॉगल करता है कि Gateway क्या इनवोक कर सकता है; Node ऐप अब भी अपनी प्लेटफ़ॉर्म-विशिष्ट सेटिंग और OS अनुमतियाँ लागू करता है, जिनमें macOS पर Allow Computer Control, Accessibility और Screen Recording शामिल हैं।
स्थायी प्राधिकरण के लिए, computer.act को gateway.nodes.commands.allow में जोड़ें और इसे gateway.nodes.commands.deny से हटाएँ; अस्वीकार सूची को प्राथमिकता मिलती है। स्थायी प्राधिकरण स्वतः समाप्त नहीं होता। /phone arm से पहले मौजूद प्रविष्टियाँ /phone disarm के बाद भी बनी रहती हैं; अस्थायी अनुमति के आर्म रहते हुए उसे स्थायी में न बदलें।
प्राधिकरण को जानबूझकर सक्षम करने और उपयोग के बीच विभाजित किया गया है। computer.act को आर्म करने या
स्थायी रूप से कॉन्फ़िगर करने के लिए प्रशासनिक अधिकार आवश्यक है।
आर्म होने के बाद, operator.write वाला प्रमाणीकृत ऑपरेटर
computer.act को node.invoke के माध्यम से तब तक इनवोक कर सकता है, जब तक अनुमति समाप्त या डिसआर्म नहीं हो जाती;
हर कार्रवाई के लिए अलग से एडमिन जाँच नहीं होती। computer.act घोषित करने वाले Node को स्वीकृति देना
केवल उस सतह को दर्ज करता है, ताकि उसे बाद में आर्म किया जा सके, और यह
स्वयं इनवोकेशन सक्षम नहीं करता।
सुरक्षा
- प्राधिकरण से पहले, प्रत्येक परत (टूल नीति, Gateway कमांड नीति, Node ऐप सेटिंग और प्लेटफ़ॉर्म अनुमतियाँ) का सहमत होना आवश्यक है। वर्तमान macOS फुलफ़िलर के लिए, इसमें Allow Computer Control, Accessibility और Screen Recording शामिल हैं। आर्म होने के बाद, अवधि समाप्त होने या
/phone disarmतक कार्रवाइयाँ हर कार्रवाई की पुष्टि के बिना निष्पादित होती हैं। - macOS फुलफ़िलर एक बार में एक ग्रैफीम के अनुसार टेक्स्ट पोस्ट करता है, इसलिए रद्द करना, डिस्कनेक्ट होना, रोकना, अक्षम करना या एंडपॉइंट बदलना इसे अगले ग्रैफीम से पहले रोक देता है। प्रयोगात्मक cua-driver फुलफ़िलर टाइपिंग के बीच में
type_textकॉल को रद्द नहीं कर सकता। - स्क्रीनशॉट केवल मॉडल के लिए होते हैं और कभी भी चैट में स्वतः नहीं भेजे जाते (समस्या #44759)।
- स्क्रीन सामग्री को अविश्वसनीय मानें; उसमें प्रॉम्प्ट इंजेक्शन हो सकता है।
अन्य डेस्कटॉप-नियंत्रण पथों से संबंध
यह एजेंट-संचालित पथ है। PeekabooBridge होस्ट, Codex Computer Use और प्रत्यक्ष cua-driver MCP से इसके संबंध के लिए Peekaboo ब्रिज देखें।