Nodes and media
استفاده از رایانه
قابلیت استفاده از رایانه به عامل Gateway امکان میدهد دسکتاپ جفتشدهٔ macOS را ببیند و کنترل کند: این قابلیت با فرمان موجود Node به نام screen.snapshot نماگرفت میگیرد و از طریق یک فرمان خطرناک واحد Node، یعنی computer.act، اشارهگر و صفحهکلید را کنترل میکند. مجموعهٔ کنشها از کنشهای اصلی استفاده از رایانهٔ Anthropic پیروی میکند؛ بزرگنمایی اختیاری computer_20251124 ارائه نمیشود. یک مدل دارای قابلیت بینایی، آن را از طریق ابزار داخلی عامل computer کنترل میکند.
عامل یک فرمان یکسان، یعنی computer.act، صادر میکند و نمیتواند تشخیص دهد که Node چگونه آن را اجرا میکند. یک Node مبتنی بر macOS، فرمان computer.act را درون همان فرایند و با سرویسهای تعبیهشدهٔ Peekaboo بههمراه سازوکارهای محدود CoreGraphics اجرا میکند (مجوزهای صحیح TCC و بدون فرایند اضافی). پلتفرمهای دیگر میتوانند در آینده همان فرمان را بدون تغییر قرارداد سمت عامل اجرا کنند.
الزامات
- یک Node جفتشدهٔ macOS (برنامهٔ OpenClaw برای macOS که در حالت Node اجرا میشود).
- فعال بودن تنظیم Allow Computer Control در برنامهٔ macOS (پیشفرض: غیرفعال).
- اعطای مجوز Accessibility در macOS به OpenClaw (برای تزریق ورودی اشارهگر/صفحهکلید) و مجوز Screen Recording (برای
screen.snapshot). - مسلح بودن فرمان
computer.actدر Gateway (این فرمان خطرناک است و بهطور پیشفرض خلعسلاح است). - یک مدل عامل دارای قابلیت بینایی.
- خطمشی ابزاری که
computerرا ارائه کند. نمایهٔ پیشفرضcodingچنین نمیکند.computerرا بهtools.alsoAllowاضافه کنید؛ عاملهای سندباکسشده همچنین باید آن را در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 را صریحاً ارسال کنید.
نماگرفتها فقط برای مدل نگه داشته میشوند: آنها هرگز بهطور خودکار به کانال گفتوگو تحویل داده نمیشوند. تمام محتوای روی صفحه را ورودی غیرقابلاعتماد در نظر بگیرید؛ ابزار به مدل هشدار میدهد از دستورهای روی صفحه که با درخواست کاربر تعارض دارند پیروی نکند.
فرمان Node به نام computer.act
computer.act فرمان واحد Node است که ابزار ورودی را از طریق آن هدایت میکند (node.invoke با command: "computer.act"). این فرمان:
- بهطور پیشفرض خطرناک است: در فهرست داخلی فرمانهای خطرناک Node قرار دارد و تا زمانی که صریحاً مسلح نشود، از فهرست مجاز زمان اجرا کنار گذاشته میشود. یک Node مبتنی بر macOS همچنان میتواند هنگام جفتسازی آن را اعلام کند تا این سطح فقط یکبار تأیید شود.
- در حال حاضر فقط مخصوص macOS است: تنها Node مبتنی بر macOS که Allow Computer Control در آن فعال باشد، این فرمان را اعلام میکند.
عملیات خواندن دوباره از screen.snapshot استفاده میکنند؛ مسیر ثبت تصویر دومی وجود ندارد. برای فرمان ثبت تصویر مشترک، به Nodeهای دوربین و صفحهنمایش مراجعه کنید.
فعالسازی و مسلحسازی
-
در برنامهٔ macOS، Settings → Allow Computer Control را فعال کنید. سپس Settings → Permissions را باز کنید و در تنظیمات سیستم macOS، مجوزهای Accessibility و Screen Recording را اعطا کنید.
-
بهروزرسانی جفتسازی را در Gateway تأیید کنید (افزودن یک فرمان جدید، جفتسازی مجدد را اجباری میکند).
-
ابزار را در اختیار عامل دارای قابلیت بینایی قرار دهید. برای نمایهٔ پیشفرض
coding:json5 { tools: { alsoAllow: ["computer"], // عاملهای سندباکسشده به این دروازهٔ دوم نیز نیاز دارند: sandbox: { tools: { alsoAllow: ["computer"] } }, },} -
computer.actرا برای یک بازهٔ محدود مسلح کنید. Plugin به نامphone-controlیک گروهcomputerارائه میکند:text /phone arm computer 30m/phone status/phone disarmمسلحسازی به
operator.admin(یا مالک) نیاز دارد و بهطور خودکار منقضی میشود. گروه قدیمی/phone arm allعمداً کنترل دسکتاپ را شامل نمیشود؛ از گروه صریحcomputerاستفاده کنید. مسلحسازی فقط تعیین میکند Gateway مجاز به فراخوانی چه چیزی است؛ برنامهٔ macOS همچنان تنظیم Allow Computer Control و مجوزهای سیستمعامل را اعمال میکند.
برای مجوزدهی دائمی، computer.act را به gateway.nodes.allowCommands اضافه کنید و آن را از gateway.nodes.denyCommands حذف کنید؛ فهرست منع اولویت دارد. مجوزدهی دائمی بهطور خودکار منقضی نمیشود. مدخلهایی که پیش از /phone arm وجود داشتهاند، پس از /phone disarm باقی میمانند؛ یک مجوز موقت را هنگام مسلح بودن به مجوز دائمی تبدیل نکنید.
مجوزدهی عمداً میان فعالسازی و استفاده تفکیک شده است. مسلحسازی یا
پیکربندی دائمی computer.act به اختیار مدیریتی نیاز دارد.
پس از مسلح شدن، یک گردانندهٔ احراز هویتشده با operator.write میتواند
تا زمان انقضای مجوز یا خلعسلاح شدن، computer.act را از طریق node.invoke
فراخوانی کند؛ برای هر کنش، بررسی مدیریتی جداگانهای وجود ندارد. تأیید Nodeای که
computer.act را اعلام میکند فقط آن سطح را ثبت میکند تا بعداً بتوان آن را مسلح کرد و
بهتنهایی فراخوانی را فعال نمیکند.
ایمنی
- پیش از مجوزدهی، همهٔ لایهها (خطمشی ابزار، خطمشی فرمان Gateway، تنظیم macOS، Accessibility و Screen Recording) باید موافق باشند. پس از مسلحسازی، کنشها تا زمان انقضا یا اجرای
/phone disarmبدون تأیید جداگانه برای هر کنش اجرا میشوند. - ورودی متن، هر بار یک گرافیم ارسال میشود. لغو، قطع اتصال، مکث، غیرفعالسازی یا جایگزینی نقطهٔ پایانی، آن را پیش از گرافیم بعدی متوقف میکند و اجازه نمیدهد ادامهٔ قدیمی اجرا شود.
- نماگرفتها فقط برای مدل هستند و هرگز بهطور خودکار به گفتوگو ارسال نمیشوند (موضوع #44759).
- محتوای صفحه را غیرقابلاعتماد در نظر بگیرید؛ ممکن است حاوی تزریق پرامپت باشد.
ارتباط با دیگر مسیرهای کنترل دسکتاپ
این مسیر هدایتشده توسط عامل است. برای آگاهی از ارتباط آن با میزبان PeekabooBridge، قابلیت استفاده از رایانهٔ Codex و MCP مستقیم cua-driver، به پل Peekaboo مراجعه کنید.