---
read_when:
    - การสร้างหรือจัดเรียงแท็บและวิดเจ็ตในพื้นที่ทำงานใหม่
    - การให้เอเจนต์จัดองค์ประกอบเวิร์กสเปซ
    - การตรวจสอบโมเดลการอนุมัติและแซนด์บ็อกซ์ของวิดเจ็ตแบบกำหนดเอง
summary: เวิร์กสเปซที่เอเจนต์สามารถประกอบได้ใน UI ควบคุม
title: พื้นที่ทำงาน
x-i18n:
    generated_at: "2026-07-12T16:54:04Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 234baefc18be736599addeeb35f8404b617c1d8f07f058c4a02ec2615ca21aa0
    source_path: web/workspaces.md
    workflow: 16
---

แท็บ **พื้นที่ทำงาน** ใน [UI ควบคุม](/th/web/control-ui) เป็นพื้นที่ที่คุณและเอเจนต์ของคุณจัดวางร่วมกัน แท็บ วิดเจ็ต ตำแหน่งของวิดเจ็ตบนกริด 12 คอลัมน์ และการผูกข้อมูลทั้งหมดอยู่ในเอกสารเดียว ทุกสิ่งที่แก้ไขเอกสารนั้นได้สามารถจัดองค์ประกอบพื้นที่ทำงานได้ ไม่ว่าจะเป็นคุณ, CLI `openclaw workspaces` หรือเอเจนต์ที่เรียกใช้เครื่องมือ `workspace_*`

การเขียนทุกครั้งจะผ่านเส้นทางที่ผ่านการตรวจสอบเดียวกัน ดังนั้นเลย์เอาต์ของมนุษย์และเลย์เอาต์ของเอเจนต์จึงไม่สามารถแตกต่างกันได้ การเขียนแต่ละครั้งที่ได้รับการยอมรับจะเพิ่มหมายเลขเวอร์ชันและกระจายเหตุการณ์ `plugin.workspaces.changed` ทำให้การแก้ไขของเอเจนต์ปรากฏในเบราว์เซอร์ที่เปิดอยู่แล้วโดยไม่ต้องโหลดหน้าใหม่

## เปิดใช้พื้นที่ทำงาน

Plugin พื้นที่ทำงานที่มาพร้อมระบบถูกปิดใช้งานโดยค่าเริ่มต้น ใน UI ควบคุม ให้เปิด **Plugins** ค้นหา **พื้นที่ทำงาน** แล้วเลือก **เปิดใช้** คุณยังสามารถเปิดใช้จาก CLI ได้ด้วย:

```sh
openclaw plugins enable workspaces
```

การเปิดใช้ Plugin จะเพิ่มแท็บ **พื้นที่ทำงาน** และทำให้ CLI `openclaw workspaces` รวมถึงเครื่องมือเอเจนต์ `workspace_*` พร้อมใช้งาน การปิดใช้งานจะนำส่วนติดต่อเหล่านี้ออกโดยไม่ลบฐานข้อมูลพื้นที่ทำงานหรือแอสเซ็ตของวิดเจ็ต

## พื้นที่ทำงานเริ่มต้น

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

## วิดเจ็ตในตัว

Plugin มาพร้อมวิดเจ็ตที่เชื่อถือได้เก้ารายการ ซึ่งแสดงผลเป็น UI ของระบบโดยตรง:

`stat-card`, `markdown`, `table`, `iframe-embed`, `sessions`, `usage`, `cron`,
`instances`, `activity`

วิดเจ็ตประกาศข้อมูลผ่าน **การผูกข้อมูล** และจะไม่ดึงข้อมูลด้วยตนเอง:

| การผูกข้อมูล | ค่าที่ได้                                                                                                  |
| -------- | --------------------------------------------------------------------------------------------------------- |
| `static` | ค่าคงที่ที่จัดเก็บในเอกสาร (สูงสุด 8 KB)                                                                  |
| `file`   | ไฟล์ JSON, Markdown หรือ CSV ภายใต้ `<stateDir>/workspaces/data/` โดยอาจจำกัดขอบเขตเพิ่มเติมด้วยตัวชี้ JSON |
| `rpc`    | หนึ่งในเมธอด Gateway แบบอ่านอย่างเดียวจากรายการอนุญาตที่กำหนดไว้ ซึ่งแก้ค่าโดย UI ควบคุมที่เชื่อถือได้      |

การผูกข้อมูล `file` เป็นวิธีที่ง่ายที่สุดในการนำตัวเลขของคุณเองมาไว้ในพื้นที่ทำงาน โดยเขียนไฟล์ JSON ลงในไดเรกทอรีข้อมูล แล้วกำหนดให้ `stat-card` ชี้ไปยังไฟล์นั้น

## ที่มา

แท็บและวิดเจ็ตมีตราประทับ `createdBy` ได้แก่ `user`, `system` หรือ `agent:<id>` ซึ่งกำหนดตามผู้ที่ทำการเขียน ผู้เรียกไม่สามารถระบุค่านี้เองได้ ดังนั้นเอเจนต์จึงไม่สามารถระบุว่างานของตนเป็นงานของคุณ และป้าย "AI" บนวิดเจ็ตที่สร้างโดยเอเจนต์จะสื่อความหมายตามนั้นเสมอ

## วิดเจ็ตกำหนดเอง

เอเจนต์สามารถสร้างวิดเจ็ต HTML จริงได้ด้วย `workspace_widget_scaffold` (หรือคุณสามารถสร้างเองได้ด้วย `openclaw workspaces widget-scaffold <name>`) โค้ดที่สร้างโดยเอเจนต์จะถูกถือว่าไม่น่าเชื่อถือ:

- วิดเจ็ตที่สร้างโครงเริ่มต้นจะเข้าสู่ทะเบียนด้วยสถานะ **รอดำเนินการ** โดยจะไม่มีการสร้าง iframe และเส้นทางแอสเซ็ตจะตอบกลับ 404 สำหรับไฟล์ของวิดเจ็ต จนกว่าผู้ดำเนินการจะอนุมัติ
- การอนุมัติเป็นการตัดสินใจที่แยกจากการแก้ไขเลย์เอาต์ โดย `workspaces.widget.approve` ต้องมีขอบเขต `operator.approvals` ซึ่งเป็นขอบเขตเดียวกับที่ใช้ควบคุมการอนุมัติการดำเนินการ
- วิดเจ็ตที่ได้รับอนุมัติจะแสดงผลใน `<iframe sandbox="allow-scripts">` และจะไม่ใช้ `allow-same-origin` เด็ดขาด ทำให้ต้นทางของวิดเจ็ตไม่เปิดเผยและไม่สามารถเข้าถึง DOM พื้นที่จัดเก็บ หรือคุกกี้ของหน้าหลักได้
- แอสเซ็ตของวิดเจ็ตจะถูกให้บริการด้วย `connect-src 'none'` ซึ่งปิดกั้นการเชื่อมต่อเครือข่ายจากสคริปต์ เช่น `fetch`, XHR และ WebSockets วิดเจ็ตไม่มีข้อมูลรับรองและไม่สื่อสารกับ Gateway
- ข้อมูลจะส่งถึงวิดเจ็ตผ่านบริดจ์ `postMessage` ที่มีการกำหนดเวอร์ชันเท่านั้น โค้ดกำหนดเองสามารถรับการผูกข้อมูล `static` ที่ประกาศไว้ ซึ่งเป็นค่าพื้นที่ทำงานที่เอเจนต์หรือผู้ดำเนินการสร้างไว้แล้ว การผูกข้อมูล RPC และไฟล์จะคงอยู่ในวิดเจ็ตในตัวที่เชื่อถือได้ เนื่องจากเบราว์เซอร์อนุญาตให้เฟรมลูกในแซนด์บ็อกซ์นำทางภายในเฟรมของตนเองได้ จึงไม่มีการส่งข้อมูลที่มีสิทธิ์พิเศษไปยัง HTML ที่สร้างโดยเอเจนต์

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

## CLI

```sh
openclaw workspaces tabs list
openclaw workspaces tabs create --title Financials
openclaw workspaces widget-scaffold revenue-chart --title "Revenue Chart"
openclaw workspaces widget-approve revenue-chart
```

`widget-approve` ต้องใช้อุปกรณ์ที่จับคู่กับขอบเขต `operator.approvals` แต่การอนุมัติจาก UI ควบคุมไม่จำเป็นต้องใช้อุปกรณ์ดังกล่าว เนื่องจากเบราว์เซอร์มีขอบเขตนี้อยู่แล้ว

## การจัดเก็บข้อมูล

เอกสารพื้นที่ทำงาน ทะเบียนวิดเจ็ตกำหนดเอง และวงแหวนเลิกทำขนาด 20 รายการ จะอยู่ใน `<stateDir>/workspaces/workspaces.sqlite` แอสเซ็ตวิดเจ็ตที่สร้างโดยเอเจนต์จะเก็บอยู่บนดิสก์ภายใต้ `<stateDir>/workspaces/widgets/<name>/` และข้อมูลสำหรับการผูกไฟล์จะอยู่ภายใต้ `<stateDir>/workspaces/data/` เนื่องจากเอเจนต์สร้างสิ่งเหล่านี้ด้วยเครื่องมือไฟล์ทั่วไป และเส้นทางวิดเจ็ตจะให้บริการไบต์ของไฟล์เหล่านั้น
