会话仪表盘
Control UI 中的每个线程都可以拥有一个 仪表盘 — 一个由你的代理为你构建的实时小部件网格。在侧边面板中选择 Dashboard 即可打开当前任务的看板,即使它还没有小部件。这不会改变你的聊天草稿。当第一个小部件被固定时,仪表盘会在对话旁边以可调整大小的侧边面板打开,除非你已经为该任务选择了布局。使用任务工具栏中的 Swap 按钮交换仪表盘和聊天,或使用其 Layout 菜单将侧边面板移到主区域的左侧、右侧或下方。后续的小部件更新不会改变你当前的面板布局。关闭并重新打开面板不会重启已加载的小部件,也不会丢弃其未保存的输入。重新加载页面会重新开始小部件视图。
无需任何设置,也无需配置独立的应用程序:仪表盘是一项核心功能,归线程所有,随代理存储,并且能在 /new 和 /reset 后继续存在(对话上下文会清除;看板保留)。
查找你的仪表盘¶
打开 /dashboards 可以以卡片画廊的形式浏览启用了仪表盘的线程。按线程或作者搜索,按作者筛选,并按最近活动或标题排序。没有匹配任务 URL 的已存储会话仍会作为预览显示,但没有打开链接。选择带链接的卡片,可使用你的个人展示覆盖或仪表盘的共享展示默认设置打开其所属任务。普通卡片点击会停留在应用内,并保留已保存的小部件交互。在全屏模式下,选择 Restore split 可将侧边面板并排显示。打开的 Dashboards 页面会在线程被重命名、归档或删除时更新,包括在 Gateway 重新连接之后。如果刷新失败,页面会保留最后加载的仪表盘,并显示数据过期警告。选择 Retry 可重新加载列表。
仪表盘及其共享展示默认设置会在你从另一台设备连接到同一 Gateway 时跟随你。个人展示覆盖、当前仪表盘标签页以及其他任务布局选择仍然是每台设备的 UI 状态。浏览器会为最多 500 个会话保留布局和标签页偏好,并在达到该限制时保留最近更改的条目。普通任务重访会恢复浏览器为该任务保存的布局排列;画廊卡片遵循相同的展示偏好。增加限制不会恢复已被旧版本淘汰的偏好。
当你在任务之间切换或访问 Settings 时,浏览器会保持每个窗格中最近访问的三个任务处于加载状态,包括它们的仪表盘小部件。返回到保留的任务会保留小部件交互和阅读位置;更改的内容会就地刷新。较旧的任务在重新打开时可能会重新加载。浏览器重新加载、切换 Gateway 或更改登录用户都会清除这些保留的视图。
排列你的任务¶
主区域和侧边面板可以显示仪表盘或聊天。Browser、Terminal、Files 和 Review 使用相同的布局控件:
- 任务工具栏中的 Swap 交换主视图和当前侧边面板标签页。其工具提示会显示两个视图的名称,例如 Swap Chat and Dashboard。之前的主视图会成为当前侧边面板标签页;其他标签页仍然可用。
- 任务工具栏中的 Layout 将侧边面板移到主区域的左侧、右侧或下方。拖动分隔线可调整大小。窄窗格会使用底部面板,直到有空间再次并排布局。
- 点击 Dashboard 侧边面板标签页,可将仪表盘一步扩展到整个任务区域,即使已选中其他标签页也是如此。再次点击可恢复拆分。方向键标签页导航仅选中标签页;Enter 或 Space 可展开或恢复 Dashboard。其他标签页保持其正常的选择行为。
- 侧边面板关闭按钮 × 旁边的 Expand 可展开其当前标签页。展开后,同一个控件会变为 Restore split,并保持在 × 旁边。恢复会返回原始主视图、面板位置和大小,而不会交换聊天和仪表盘。关闭已展开的面板则会返回到主视图。
- 任务工具栏中的 Focus 将整个任务区域交给主视图。Restore split 会将侧边面板恢复到之前的位置和大小。
交换、移动和聚焦会保留实时视图,包括聊天草稿和小部件交互。关闭整个侧边面板会隐藏其标签页,并保持主视图不变。关闭 Dashboard 标签页会将该视图从布局中移除;但不会删除看板。可通过面板的 + 菜单重新打开。空仪表盘会保持打开状态,这样你可以在不改变已选择布局的情况下添加第一个小部件。任务工具栏位于主窗格上方,当窗格并排时与侧边面板标签页对齐。在堆叠布局中,每个标题栏都位于自己的窗格上方。只有当有可切换的视图时,侧边面板标签页才会出现。
通过提问构建仪表盘¶
对于固定的数据摘要,请要求提供包含文本、指标、表格、图表或链接的 原生报告。报告直接渲染在仪表盘上,无需 iframe 或内联预览。当你提出要求时,代理会更新报告的数据;当你需要自定义交互时,请使用 HTML 小部件。参见 原生仪表盘报告。
观看 Patrick Erichsen 如何用一个提示词构建 OpenClaw 2.0 发布仪表盘:
向你的代理提出你希望看到的内容:
创建一个名为 revenue-graph 的小部件:一个月度收入的交互式柱状图。 添加 "Bars" 和 "Trend" 按钮用于切换视图。将它固定到我的仪表盘。
对于这个交互式 HTML 小部件,代理会首先渲染一个内联聊天预览。接下来:
- 由你固定:将鼠标悬停在内联小部件上,然后选择 Pin to dashboard。
- 或者由代理直接固定:当你提出要求时,代理会直接固定它,并在之后按名称更新 — 小部件具有稳定的名称,因此“用六月的数字更新 revenue-graph”会就地替换内容,而看板保持不动。
为尚未整理布局的线程创建的第一个仪表板会在侧面板中打开一次。此后的更新不会重新打开面板,也不会抢占您当前工作的焦点。
小组件是自包含的小型应用(在严格沙箱中运行的 HTML/JS/SVG)。小组件内的按钮和视图切换会立即生效——切换图表视图永远不需要代理。
看板¶
- 流式网格。 通过手柄拖动小组件;所有内容会自动重排并紧密排列。可通过手柄调整大小,或从小组件菜单选择尺寸预设(小、中、大、特大)。没有人会逐像素摆放——您不会,代理也不会。在窄看板上,小组件按保存的顺序以全宽堆叠;加宽看板后恢复保存的列宽。
- 自动高度。 HTML 小组件会自动调整高度以适应其内容。通过手柄调整大小或选择尺寸预设会固定高度。从小组件菜单中选择 自动高度 可重新适应内容。
- 标签页。 一个看板可以有多个页面——例如,一个概览标签页和一个专门展示单个大组件的标签页。每个标签页都会记住其组件布局。在仪表板保留期间,已访问的标签页保持加载状态,切换回来时会保留本地筛选器和组件交互。未访问的标签页按需加载;已更改的内容仍会刷新,已移除的标签页会释放其组件。将已加载的组件移动到另一个标签页也会保留其未保存的输入和交互。
- 仪表板视图。 看板可以占据主区域或可调整大小的侧面板。当 Dashboard 在侧面板中激活时,在任务工具栏中选择 交换,然后选择 聚焦 以切换到仅仪表板视图。恢复分屏 会恢复侧面板。包含一个全宽组件的标签页会填满聚焦的仪表板,使用所有可用宽度和高度,且没有卡片边框。标准 HTML 组件在最大化时保留其内容内边距;明确设置为全出血或无边框的组件保持边缘到边缘。嵌入式 MCP 应用会在您调整窗口大小或恢复分屏时跟随可用空间。其组件控件移入任务工具栏的 … 菜单,页面上不会留下悬浮胶囊或拖动/调整大小手柄。已授予的权限仍可在该菜单中使用;审批请求和错误仍会显示在组件中。恢复分屏或添加另一个组件会恢复正常的间距。
- 共享默认值。 在任务菜单的 布局 子菜单中,选择 将当前视图设为默认值,以使普通会话打开(包括侧边栏链接)时,以当前的全屏或分屏视图显示 Dashboard。当 Dashboard 显示时,这是默认视图 会确认当前全屏或分屏视图与会话的打开视图都匹配共享默认值,包括对只读查看者也是如此。当视图不同时,如果您可以编辑会话,则可以使用 将当前视图设为默认值。两者都说明个人布局选择仍然适用。仅仅打开、交换或聚焦面板不会更改共享默认值。如果旧仪表板保存了其全屏或分屏呈现方式,但仍以 Chat 形式打开,请选择一次 将当前视图设为默认值 以同时保存两个选择。保存不会重新排列任何已在查看仪表板的人;默认值适用于后续打开和重新访问的情况,包括从仪表板图库中打开的情况。您浏览器中明确的 聚焦 / 恢复分屏 选择优先于共享默认值。再次选择共享视图会清除该个人覆盖。应用共享默认值不会创建个人覆盖。停靠位置、尺寸和其他面板仍为本地设置。重新打开或重新加载未更改的仪表板视图会保留所选的侧面板标签页,包括当 Chat 保持主视图时的侧边聊天或文件。它还会保留已关闭的侧面板或聚焦的 Chat 视图。不具备呈现来源信息的现有浏览器布局会保留其完整保存的布局,直到您主动选择呈现方式;OpenClaw 不会猜测较早的扩展是否为自动扩展。本地布局保留仍为 500 个会话。显式的
?dashboard=expanded链接仅请求该次访问的全屏显示。 - 代理对等。 代理的
dashboard工具可创建或更新受信任的插件组件,移动、调整大小和移除组件,管理标签页,切换可见标签页,并通过set_presentation和presentation: "split"或"expanded"请求分屏或扩展的仪表板。show_widget工具可创建或刷新原生报告、自定义 HTML 和注册来源组件。更新时,对于 HTML 或注册来源,使用pin: true、相同的name和新的widget_code;对于原生报告,使用新的report对象。看板快照会标识每个组件的contentOwner,并在适用时标识registeredContentKind;在替换其内容所有者或注册来源类型之前,请先移除该组件。说“显示财务标签页并扩展仪表板”,然后观看它自动完成。
要改为发布初始视图,请使用 dashboard 并配合 action: "set_default_presentation" 和 presentation: "split" 或 "expanded"。此持久操作无需连接浏览器即可工作。action: "read" 返回有效的 defaultPresentation,未设置时为 "split"。菜单和代理都使用相同的已授权 sessions.patch 变更来同时保存 boardFace: "dashboard" 和 boardPresentation。可选的 boardPresentation 元数据与会话一起存储,在重启以及该会话的 /new 或 /reset 后仍然存在,并在会话删除时移除。将 boardPresentation 修补为 null 可恢复内置的分屏默认值。无需数据库架构迁移或回填。旧版本会忽略此呈现行为;回退不会移除看板或转录。
切换可见标签页或仪表板呈现方式需要已连接的 Control UI。如果未连接任何 Control UI,命令会返回 UNAVAILABLE;请打开 Control UI 并重试。focus_tab 会在当前位置显示仪表板。聚焦标签页后调用 set_presentation:presentation: "expanded" 会使仪表板成为主视图并聚焦它;"split" 会使用当前布局显示它,当 Dashboard 为主视图时将 Chat 带到旁边。
全屏显示网站¶
向你的智能体提出请求:
将 https://status.example.com 放到此仪表板上,展开它以填满任务视图, 并将此会话固定到侧边栏,命名为 Status。
内置的 Website 组件会直接在浏览器中加载实时网站。 它不需要插件、中继服务器,也无需复制网站代码。单个全宽网站即可填满 展开的仪表板;添加其他组件会恢复正常网格布局。 网站自行控制刷新和导航。
智能体使用现有的 dashboard 工具创建它:
{
"action": "widget_put",
"name": "status",
"title": "Status",
"pluginKind": "session:website",
"props": { "url": "https://status.example.com" },
"size": "full"
}
然后,它调用 dashboard,并传入 action: "set_presentation" 和
presentation: "expanded"。会话命名和固定使用现有的
sessions 工具。复用组件名称即可更改其 URL。URL 和布局
会随仪表板持久化;展开模式遵循现有的按设备任务布局偏好。
Website 组件不会在画廊缩略图中加载。
URL 必须使用 HTTPS,不得包含用户名或密码,且长度不超过 2048 个字符。渲染器会拒绝 Control UI 和已连接 Gateway 的主机名, 包括这些主机上使用其他端口的 URL。 框架支持网站的脚本、表单、存储和链接,但不会接收 注入的 Gateway 令牌、组件工具桥接,也没有导航父应用 的权限。它遵循网站自身的身份验证和浏览器的 Cookie 策略。
有些网站拒绝被嵌入,有些登录流程需要单独的标签页。 如果框架保持空白或无法登录,请使用 Open website。OpenClaw 不会 代理该网站,也不会移除其嵌入限制。此组件与 自定义 HTML 组件不同,不会放宽其沙箱或网络权限。
与智能体共享浏览器仪表板¶
当你想要一个已保存的仪表板,且你的智能体能够读取并与你看到的同一页面交互时,可以向智能体请求 Browser dashboard:
将此 HTTP 状态应用以全屏仪表板方式打开。将此会话固定为 Service Status,并在我要更改其筛选条件时使用同一个页面。
要在聊天旁边显示浏览器,请请求打开 Browser 侧面板。这会打开现有的 面板,而不会创建仪表板组件或展开仪表板。
Browser 插件的 browser:dashboard 组件会在本地
OpenClaw 托管的浏览器中呈现一个标签页。Control UI 会流式传输该标签页,
因此即使 Control UI 本身使用 HTTPS,HTTP 应用也能正常工作。
浏览器现有的导航策略仍然适用。它不会继承你手机或
笔记本电脑上的浏览器 Cookie。管理员使用托管配置文件的登录会话;其他
会话写入者使用隔离的上下文,拥有自己的 Cookie 和存储。
智能体通过 dashboard 创建组件:
{
"action": "widget_put",
"name": "service-status",
"title": "Service Status",
"pluginKind": "browser:dashboard",
"props": { "url": "http://status.example.com" },
"size": "full"
}
然后,它使用现有的 browser 工具并传入组件名称:
act 和 navigate 接受相同的 dashboard 选择器。选择器会解析
当前标签页,因此智能体无需重新打开 URL 或猜测目标
ID。使用 dashboard 排列仪表板,使用 set_presentation 将其展开,
并移除组件;会话命名和固定使用 sessions。无需
单独的站点专用工具。
对管理员来说,隐藏仪表板或重置其对话会保留其浏览器标签页。
普通的标签页关闭和空闲清理不会关闭仪表板拥有的标签页。
使用 Stop browser 释放正在运行的标签页,使用 Resume browser 重新打开它。
在智能体中,等效操作是带 action: "close" 或 "open" 以及
dashboard 选择器的 browser。Stop 也能在首次打开之前持久生效,
而无需启动浏览器;重新打开仪表板或重启 Gateway 会使其保持
暂停状态,直到 Resume。Resume 会加载已保存的 URL;未保存的文档状态
在浏览器关闭后不会保留。如果关闭暂时不可用,
仪表板会显示 Stop 处于待处理状态,并提供 Retry stop,直到确认关闭。
移除或替换组件后,当 Browser 收到仪表板变更时,会释放其旧标签页;
现有的清理周期也会协调遗漏的变更。画廊预览绝不会启动浏览器。
管理员浏览器仪表板需要 Browser 访问权限,并默认使用 openclaw 托管配置文件。
可选的 props.profile 可以选择另一个本地托管配置文件;
此组件不支持附加的个人浏览器、节点路由和远程浏览器配置文件。
当你只需要在自己的浏览器中显示一个可嵌入的 HTTPS 网站时,
轻量级的 Website 组件仍然很有用。
会话写入者访问权限¶
启用 Browser 插件后,非管理员会话写入者无需 operator.admin 即可打开 Browser
仪表板。operator.write 会保留该会话现有的
协作者规则。权限更窄的 operator.sessions.write 仅授予
调用者自己的会话访问权限。有效的浏览器工具策略仍然
适用;此功能不会更改角色或工具默认值。
Session browser 模式使用配置的默认本地托管配置文件,
为该会话和组件启动一个空的、隔离的浏览器上下文。
不支持自定义、附加、个人、扩展、节点和远程配置文件。
Cookie 和存储与管理员浏览器及其他会话相互分离。
智能体的 dashboard 选择器在代表非管理员操作者时会使用同一个上下文。
管理员视图和选择器继续使用各自独立的托管配置文件标签页;
其页面状态不与 Session browser 共享。
Session browser 支持页面导航、检查、截图和交互。 它不暴露配置文件管理、任意标签页选择、文件传输, 或 Cookie/存储管理。通用浏览器工具保持其现有的 已配置主机/配置文件访问权限:这种隔离适用于仪表板路由 和选择器,而不适用于整个智能体。
该上下文在正常回合结束或查看者断开连接后仍然保留。撤销某人的访问权限会停止其查看器和操作,但不会破坏其他授权协作者的上下文。重置或删除会话、移除小部件、停用浏览器配置文件或重启 Gateway,都会关闭该上下文。会话浏览器的停止状态保存在内存中;恢复时从已保存的小部件 URL 启动。Gateway 最多保留 64 条隔离的仪表盘记录;如果达到该限制,请移除未使用的浏览器小部件。
需要沙箱或已锁定模型选择的会话无法使用此模式。隔离的 Gateway 浏览器上下文不是沙箱后端。现有的管理员浏览器路径仍按其现有规则可用。
小部件可以做什么¶
仅进行渲染的自定义 HTML 和注册源小部件无需批准——它们会立即显示,与内联聊天小部件完全一样,且其网络访问被完全禁用。
想要访问能力的小部件必须声明这一点。显式的会话权限模式决定后续行为:完全访问立即授予;工作区使用 AI 审核器并拒绝任何其不允许的内容;受保护显示一张允许/拒绝卡片;只读拒绝该请求。若没有显式的会话模式,则应用所配置的等效执行审批策略。
- 网络(
net):由沙箱直接获取已声明的 HTTPS 来源——例如,从 API 自动刷新的天气卡片。 - Gateway 数据(
data):由 Gateway 解析的只读数据流,如会话、用量或 cron 状态——小部件永远不会持有你的 Token。 - 自动化(
actions):触发特定的 cron 作业,这样按钮可以运行真实任务(可能使用较小的模型),而无需唤醒你的主对话。 - Prompt(
prompt):将消息发送到你的对话线程中,无需未批准小部件所需的每次点击确认。
已启用的插件可以将其各自命名的只读数据流和操作添加到这些能力列表中;禁用插件会移除这些集成。
授权与你的会话策略所批准的小部件确切字节绑定。即使权限保持不变或缩减,更改后的 HTML 或注册源字节也需要新的决策。只有当已批准的字节仍然匹配且请求的权限没有扩大时,授权才会保留。创作结果会区分待处理、已拒绝和已授予的访问权限;保存小部件并不意味着其能力已获批准。当同一代理在另一会话中以相同的名称、来源和声明重新创建 HTML 或注册源小部件时,自动审核可以复用低风险批准。当运行时配置或执行审批策略更改时,这种有界的内存中复用会重置。每个会话当前的权限模式和每个小部件的授权仍然适用。MCP 应用和隐身会话不会复用这些评估。新内容仍需等待审核。代理应了解的小部件交互(你点击的筛选器、你切换的视图)会以会话通知的形式静默地到达——它在不被打断的情况下保持知情。
看板上的 MCP 应用¶
如果你的 Gateway 配置了 MCP 服务器,聊天中出现的交互式 MCP 应用可以像任何小部件一样固定。固定的应用会以全新会话在看板上重新激活。默认情况下,它们渲染时不具备服务器工具或同服务器资源的访问权限。授予小部件其声明的服务器工具,会在该修订绑定授权保持有效期间启用两种桥接。
A2UI 小部件¶
当启用 Canvas 插件时,代理可以将 A2UI JSONL 渲染为仪表盘小部件。A2UI 小部件与 HTML 小部件使用相同的稳定名称、标签页、大小、固定、沙箱和原地更新行为。渲染器从 Gateway 的 /__openclaw__/a2ui/ 资源路由加载,因此渲染器包不会被复制到每个小部件中。必须启用 Canvas 插件及其托管的路由;两者默认均已启用。
A2UI 操作使用普通的小部件桥接。默认情况下,点击会变成静默的会话通知,代理会在下一回合看到。如果小部件声明并收到 prompt 授权,其操作则可以改为向对话线程发送可见的 Prompt。禁用 Canvas 插件会移除 A2UI 类型,并让已存储的小部件显示为不可用,直到重新启用该插件。
已退役的 Workspaces¶
实验性的 Workspaces 插件、其 Control UI 标签页、openclaw workspaces CLI 和 workspace_* 工具已被移除。会话仪表盘使用不同的存储模型:每个看板属于一个会话,并存在于所属代理的数据库中。旧版 Workspaces 文档和数据库不会自动转换。
在运行 openclaw doctor --fix 之前,请先保留任何旧版文档、数据和小部件资源:其 Workspaces 修复会删除 <stateDir>/workspaces 下识别出的旧版状态,而不会将该内容导入仪表盘。
须知¶
- 重置带有看板的对话线程时会要求确认,并保留该看板。
- 删除对话线程会删除其看板。
- 看板存在于你的 Gateway 上(在所属代理的数据库中),并出现在你连接的每台设备上。
- 启用仪表盘的对话线程出现在
/dashboards中。关闭仪表盘标签页或侧边面板不会删除仪表盘,也不会将其从图库中移除。 - 安全模型、存储细节和设计原理详见仪表盘架构,其中包含已记录的沙箱权衡。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw