---
read_when:
    - ワークスペースのタブとウィジェットの構築または並べ替え
    - エージェントによるワークスペースの構成を許可する
    - カスタムウィジェットの承認モデルとサンドボックスモデルのレビュー
summary: Control UI におけるエージェント構成可能なワークスペース
title: ワークスペース
x-i18n:
    generated_at: "2026-07-11T22:50:23Z"
    model: gpt-5.6
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 234baefc18be736599addeeb35f8404b617c1d8f07f058c4a02ec2615ca21aa0
    source_path: web/workspaces.md
    workflow: 16
---

**ワークスペース**タブは、[コントロール UI](/ja-JP/web/control-ui)であなたとエージェントが共同で構成する画面です。タブ、ウィジェット、12 列グリッド上の配置、およびデータバインディングは、すべて 1 つのドキュメントに格納されます。そのドキュメントを編集できるものなら、あなた、`openclaw workspaces` CLI、または `workspace_*` ツールを呼び出すエージェントのいずれでもワークスペースを構成できます。

すべての書き込みは同じ検証済みの経路を通るため、人間が作成したレイアウトとエージェントが作成したレイアウトが食い違うことはありません。受け付けられた書き込みごとにバージョンが更新され、`plugin.workspaces.changed` がブロードキャストされるため、エージェントによる編集は、すでに開いているブラウザーにも再読み込みなしで反映されます。

## ワークスペースを有効にする

同梱のワークスペース Plugin はデフォルトで無効になっています。コントロール UI で **Plugin** を開き、**ワークスペース**を見つけて **有効化**を選択します。CLI から有効にすることもできます。

```sh
openclaw plugins enable workspaces
```

Plugin を有効にすると、**ワークスペース**タブが追加され、`openclaw workspaces` CLI と `workspace_*` エージェントツールが利用可能になります。無効にすると、ワークスペースのデータベースやウィジェットのアセットを削除することなく、これらの機能が取り除かれます。

## デフォルトのワークスペース

初回読み込み時には、コストとトークンのカード、インスタンスの稼働状態、セッション、Cron の状態、アクティビティフィードを備えた**概要**ワークスペースが表示されます。これは通常のワークスペースコンテンツであり、ドラッグ、折りたたみ、非表示、削除が可能です。

## 組み込みウィジェット

Plugin には 9 種類の信頼済みウィジェットが同梱され、ファーストパーティ UI としてレンダリングされます。

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

ウィジェットは**バインディング**を通じてデータを宣言し、独自に取得することはありません。

| バインディング | 解決先 |
| -------- | --------------------------------------------------------------------------------------------------------- |
| `static` | ドキュメントに保存されたリテラル値（最大 8 KB）。 |
| `file`   | `<stateDir>/workspaces/data/` 配下の JSON、Markdown、または CSV ファイル。必要に応じて JSON ポインターで範囲を限定できます。 |
| `rpc`    | 読み取り専用 Gateway メソッドの固定許可リストに含まれるいずれかのメソッド。信頼済みのコントロール UI によって解決されます。 |

`file` バインディングは、独自の数値をワークスペースに表示する最も簡単な方法です。データディレクトリに JSON ファイルを書き込み、`stat-card` から参照します。

## 来歴

タブとウィジェットには、書き込みを行った主体に基づいて `user`、`system`、または `agent:<id>` の `createdBy` スタンプが付与されます。この値を呼び出し元が指定することはできないため、エージェントが自身の作業をあなたの作業として表示することはできません。また、エージェントが作成したウィジェットの「AI」チップは、常に表示どおりの意味を持ちます。

## カスタムウィジェット

エージェントは `workspace_widget_scaffold` を使用して実際の HTML ウィジェットを作成できます（あなた自身も `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、WebSocket などのスクリプトによるネットワーク通信がブロックされます。資格情報は保持せず、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/` 配下に、それぞれディスク上で保持されます。これは、エージェントが通常のファイルツールでこれらを作成し、ウィジェットルートがそのバイト列を配信するためです。
