---
read_when:
    - การอนุญาตให้เอเจนต์ Gateway มองเห็นและควบคุมเดสก์ท็อป Mac
    - การเปิดใช้งาน สิทธิ์ หรือความปลอดภัยสำหรับการใช้งานคอมพิวเตอร์
    - การขยายคำสั่ง Node `computer.act` หรือตัวดำเนินการตามคำสั่งดังกล่าว
summary: การควบคุมเดสก์ท็อปโดยเอเจนต์บน Node macOS ที่จับคู่ไว้ ผ่านเครื่องมือ computer และคำสั่ง Node computer.act
title: การใช้งานคอมพิวเตอร์
x-i18n:
    generated_at: "2026-07-12T16:19:40Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 2457d15a59857ffd9c7b160ea4ebed85c8372754abfc7bf75faafc963ecb6547
    source_path: nodes/computer-use.md
    workflow: 16
---

การใช้งานคอมพิวเตอร์ช่วยให้เอเจนต์ 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` อย่างชัดเจน

ภาพหน้าจอจะเก็บไว้ **สำหรับโมเดลเท่านั้น** และจะไม่ถูกส่งไปยังช่องทางแชทโดยอัตโนมัติ ให้ถือว่าเนื้อหาทั้งหมดบนหน้าจอเป็นอินพุตที่ไม่น่าเชื่อถือ เครื่องมือจะแจ้งเตือนโมเดลไม่ให้ทำตามคำสั่งบนหน้าจอที่ขัดแย้งกับคำขอของผู้ใช้

## คำสั่ง Node `computer.act`

`computer.act` เป็นคำสั่ง Node เดียวที่เครื่องมือใช้ส่งอินพุตผ่าน (`node.invoke` พร้อม `command: "computer.act"`) โดยมีลักษณะดังนี้:

- **อันตรายโดยค่าเริ่มต้น**: อยู่ในรายการคำสั่ง Node อันตรายในตัวและถูกแยกออกจากรายการอนุญาตของรันไทม์จนกว่าจะเปิดอนุญาตอย่างชัดเจน อย่างไรก็ตาม Node macOS อาจประกาศคำสั่งนี้ขณะจับคู่ เพื่อให้พื้นผิวดังกล่าวได้รับการอนุมัติเพียงครั้งเดียว
- ปัจจุบัน **ใช้ได้เฉพาะ macOS**: ประกาศโดย Node macOS ที่เปิดใช้งาน **Allow Computer Control** เท่านั้น

การอ่านจะใช้ `screen.snapshot` ซ้ำ โดยไม่มีเส้นทางจับภาพที่สอง ดูคำสั่งจับภาพที่ใช้ร่วมกันได้ที่ [Node กล้องและหน้าจอ](/th/nodes/camera)

## เปิดใช้งานและเปิดอนุญาต

1. ในแอป macOS ให้เปิดใช้งาน **Settings → Allow Computer Control** จากนั้นเปิด **Settings → Permissions** และให้สิทธิ์ **Accessibility** กับ **Screen Recording** ในการตั้งค่าระบบของ macOS
2. อนุมัติการอัปเดตการจับคู่บน Gateway (คำสั่งใหม่จะบังคับให้จับคู่ใหม่)
3. เปิดให้เอเจนต์ที่รองรับการมองเห็นใช้เครื่องมือ สำหรับโปรไฟล์ `coding` เริ่มต้น:

   ```json5
   {
     tools: {
       alsoAllow: ["computer"],
       // เอเจนต์ที่อยู่ในแซนด์บ็อกซ์ต้องผ่านเกตที่สองนี้ด้วย:
       sandbox: { tools: { alsoAllow: ["computer"] } },
     },
   }
   ```

4. เปิดอนุญาต `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](https://github.com/openclaw/openclaw/issues/44759))
- ให้ถือว่าเนื้อหาบนหน้าจอไม่น่าเชื่อถือ เนื่องจากอาจมีการแทรกพรอมต์

## ความสัมพันธ์กับเส้นทางควบคุมเดสก์ท็อปอื่น

นี่คือเส้นทางที่ขับเคลื่อนโดยเอเจนต์ ดู [บริดจ์ Peekaboo](/th/platforms/mac/peekaboo) สำหรับความสัมพันธ์กับโฮสต์ PeekabooBridge, Codex Computer Use และ MCP `cua-driver` โดยตรง
