Web interfaces

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

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

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

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

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

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

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

Вкладки и виджеты содержат отметку 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