OpenClaw Canvas

可视化界面深度解析 - OpenClaw 的轻量级视觉工作空间

概述

Canvas(画布)是 OpenClaw 的轻量级可视化工作空间,主要用于在 macOS 应用中嵌入由 Agent 控制的交互式 UI 界面。它使用 WKWebView 嵌入 HTML/CSS/JS 内容,支持 A2UI 和小型交互式界面。

关键概念: Canvas 提供了一种将 AI Agent 的能力可视化的方式,让用户能够通过图形界面与 Agent 交互,而不是仅限于文本对话。

架构与功能

核心职责

架构图

Agent Core Business Logic · Data Processing Canvas Engine WKWebView · HTML/CSS/JS Render Data Sources APIs · Files · Memory · Knowledge Base Canvas Panel macOS Native App · User Interaction A2UI Processing Images · Media · Interactive Components · Protocol Render Engine Visual Output · User Interaction · Event Callback Final Visual Result - Interactive User Experience

技术实现

平台支持

目前 Canvas 主要针对 macOS 平台实现:

A2UI 协议

A2UI(Agent-to-User Interface)是 OpenClaw 的可视化界面协议:

// A2UI 消息示例
{
  "type": "a2ui_render",
  "payload": {
    "html": "<div class='dashboard'>...</div>",
    "css": ".dashboard { ... }",
    "js": "function updateData() { ... }",
    "target": "canvas_panel"
  }
}
        

渲染流程

  1. Agent 生成可视化内容(HTML/CSS/JS)
  2. 通过 A2UI 协议发送到 Canvas 引擎
  3. WKWebView 渲染内容到界面
  4. 用户与界面交互
  5. 交互事件传回 Agent 处理

使用场景

数据可视化

交互式工具

媒体处理

Canvas 与传统界面的区别

传统聊天式 AI

Canvas 可视化界面

优势对比

传统方式: 用户 -> 文本指令 -> AI -> 文本回复
Canvas 方式: 用户 -> 图形界面 -> AI -> 可视化结果
        

集成与开发

开发工具

安全机制

性能优化

最佳实践

设计原则

开发建议

常见问题

Canvas 如何工作?

Canvas 通过 WKWebView 在 macOS 应用中嵌入一个轻量级的网页渲染引擎,Agent 可以动态生成 HTML/CSS/JS 内容并渲染到界面中。

支持哪些内容类型?

Canvas 支持 HTML、CSS、JavaScript 以及通过 A2UI 协议的交互式界面,可以显示图表、表单、仪表板等各种可视化内容。

如何与 Canvas 交互?

用户可以直接与 Canvas 界面元素交互,交互事件会通过 A2UI 协议传回 Agent 进行处理,形成双向通信循环。

← 返回 OpenClaw 主页