Web interfaces
Рабочие пространства
Вкладка Рабочие пространства в интерфейсе управления — это поверхность, которую вы и ваши
агенты настраиваете совместно. Вкладки, виджеты, их расположение в 12-колоночной сетке и
привязки данных хранятся в одном документе. Любой, кто может редактировать этот документ,
может компоновать рабочее пространство: вы, CLI openclaw workspaces или агент, вызывающий инструменты workspace_*.
Каждая запись проходит один и тот же проверяемый путь, поэтому макеты, созданные человеком
и агентом, не могут разойтись. Каждая принятая запись увеличивает версию и отправляет событие
plugin.workspaces.changed, поэтому изменение агента появляется в уже открытом браузере без
перезагрузки.
Включение рабочих пространств
Встроенный Plugin рабочих пространств по умолчанию отключён. В интерфейсе управления откройте Плагины, найдите Рабочие пространства и выберите Включить. Его также можно включить через CLI:
openclaw plugins enable workspacesВключение Plugin добавляет вкладку Рабочие пространства и делает доступными CLI
openclaw workspaces и инструменты агента workspace_*. При отключении эти поверхности
удаляются, но база данных рабочих пространств и ресурсы виджетов сохраняются.
Рабочее пространство по умолчанию
При первой загрузке вы получаете рабочее пространство Обзор: карточки стоимости и токенов, состояние экземпляров, сеансы, статус Cron и ленту активности. Это обычное содержимое рабочего пространства — перетаскивайте, сворачивайте, скрывайте или удаляйте его.
Встроенные виджеты
Вместе с Plugin поставляются девять доверенных виджетов, которые отображаются как встроенные элементы интерфейса:
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
openclaw workspaces tabs listopenclaw workspaces tabs create --title Financialsopenclaw 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/, поскольку агент создаёт их обычными файловыми инструментами,
а маршрут виджета передаёт их байты.