Web interfaces

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

Вкладка Рабочие пространства в интерфейсе управления — это поверхность, которую вы и ваши агенты настраиваете совместно. Вкладки, виджеты, их расположение в 12-колоночной сетке и привязки данных хранятся в одном документе. Любой, кто может редактировать этот документ, может компоновать рабочее пространство: вы, CLI openclaw workspaces или агент, вызывающий инструменты workspace_*.

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

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

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

sh
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.

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

Вкладки и виджеты содержат метку createdByuser, 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
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/, поскольку агент создаёт их обычными файловыми инструментами, а маршрут виджета передаёт их байты.

Was this useful?
On this page

On this page