> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Рабочие пространства

Вкладка **Рабочие пространства** в [интерфейсе управления](/ru/web/control-ui) — это поверхность, которую вы и ваши
агенты настраиваете вместе. Вкладки, виджеты, их расположение в 12-колоночной сетке и их
привязки данных хранятся в одном документе. Всё, что может редактировать этот документ, может компоновать
рабочее пространство: вы, CLI `openclaw workspaces` или агент, вызывающий инструменты `workspace_*`.

Каждая запись проходит по одному и тому же проверяемому пути, поэтому макеты, созданные человеком и агентом,
не могут разойтись. Каждая принятая запись увеличивает версию и отправляет широковещательное событие
`plugin.workspaces.changed`, поэтому изменение агента появляется в уже открытом браузере без
перезагрузки.

## Включение рабочих пространств

Встроенный плагин рабочих пространств по умолчанию отключён. В интерфейсе управления откройте **Плагины**,
найдите **Рабочие пространства** и выберите **Включить**. Его также можно включить из CLI:

```sh theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw plugins enable workspaces
```

Включение плагина добавляет вкладку **Рабочие пространства** и делает доступными CLI
`openclaw workspaces` и инструменты агента `workspace_*`. Отключение удаляет эти поверхности, не
удаляя базу данных рабочих пространств или ресурсы виджетов.

## Рабочее пространство по умолчанию

При первой загрузке вы получаете рабочее пространство **Обзор**: карточки затрат и токенов, состояние экземпляра,
сеансы, состояние Cron и ленту активности. Это обычное содержимое рабочего пространства — перетаскивайте его,
сворачивайте, скрывайте или удаляйте.

## Встроенные виджеты

С плагином поставляются девять доверенных виджетов, которые отображаются как собственный интерфейс:

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

Виджеты объявляют данные через **привязки** и никогда не загружают их самостоятельно:

| Привязка | Разрешается в                                                                                                               |
| -------- | --------------------------------------------------------------------------------------------------------------------------- |
| `static` | Литеральное значение, хранящееся в документе (не более 8 КБ).                                                               |
| `file`   | Файл JSON, Markdown или CSV в каталоге `<stateDir>/workspaces/data/`, при необходимости ограниченный указателем JSON.       |
| `rpc`    | Один из фиксированного списка разрешённых методов Gateway только для чтения, разрешаемый доверенным интерфейсом управления. |

Привязка `file` — самый простой способ добавить собственные числовые данные в рабочее пространство: запишите
файл JSON в каталог данных и укажите на него в `stat-card`.

## Происхождение

Вкладки и виджеты содержат отметку `createdBy` — `user`, `system` или `agent:<id>`, — установленную на основании
того, кто выполнил запись. Вызывающая сторона не может задать её, поэтому агент не может выдать свою
работу за вашу, а метка «ИИ» на созданном агентом виджете всегда соответствует действительности.

## Пользовательские виджеты

Агент может создать настоящий HTML-виджет с помощью `workspace_widget_scaffold` (как и вы — с помощью
`openclaw workspaces widget-scaffold <name>`). Созданный агентом код считается враждебным:

* Созданный каркас виджета регистрируется со статусом **ожидает подтверждения**. iframe не создаётся, а
  маршрут ресурсов возвращает для его файлов ошибку 404, пока оператор не одобрит виджет.
* Одобрение — отдельное от редактирования макета решение: для `workspaces.widget.approve`
  требуется область доступа `operator.approvals`, которая также защищает одобрения выполнения команд.
* Одобренный виджет отображается в `<iframe sandbox="allow-scripts">` — и никогда
  в `allow-same-origin`, — поэтому его источник непрозрачен и он не может получить доступ к DOM,
  хранилищу или файлам cookie родительского документа.
* Его ресурсы отдаются с `connect-src 'none'`, что блокирует сетевые обращения скриптов, такие как
  `fetch`, XHR и WebSockets. У него нет учётных данных, и он никогда не обращается к Gateway.
* Данные поступают в него только через версионированный мост `postMessage`. Пользовательский код может получать
  объявленные привязки `static`, которые уже являются значениями рабочего пространства, созданными
  агентом или оператором. Привязки RPC и файлов остаются в доверенных встроенных виджетах: браузеры позволяют
  дочернему элементу в песочнице переходить внутри собственного фрейма, поэтому привилегированные данные никогда не передаются
  в созданный агентом HTML.

Для отправки запроса в чат из виджета дополнительно требуются возможность в манифесте,
подтверждение при каждом вызове с указанием точного текста и соблюдение ограничения частоты запросов.

## CLI

```sh theme={"theme":{"light":"min-light","dark":"min-dark"}}
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`; при одобрении из
интерфейса управления это не требуется, поскольку браузер уже располагает ею.

## Хранение

Документ рабочего пространства, реестр пользовательских виджетов и кольцевой буфер отмены на 20 записей хранятся в
`<stateDir>/workspaces/workspaces.sqlite`. Ресурсы созданных агентом виджетов остаются на диске в каталоге
`<stateDir>/workspaces/widgets/<name>/`, а данные файловых привязок — в
`<stateDir>/workspaces/data/`, поскольку агент создаёт их с помощью обычных файловых инструментов,
а маршрут виджета отдаёт их байты.
