Canvas(画布)是 OpenClaw 的轻量级可视化工作空间,主要用于在 macOS 应用中嵌入由 Agent 控制的交互式 UI 界面。它使用 WKWebView 嵌入 HTML/CSS/JS 内容,支持 A2UI 和小型交互式界面。
目前 Canvas 主要针对 macOS 平台实现:
A2UI(Agent-to-User Interface)是 OpenClaw 的可视化界面协议:
// A2UI 消息示例
{
"type": "a2ui_render",
"payload": {
"html": "<div class='dashboard'>...</div>",
"css": ".dashboard { ... }",
"js": "function updateData() { ... }",
"target": "canvas_panel"
}
}
传统方式: 用户 -> 文本指令 -> AI -> 文本回复
Canvas 方式: 用户 -> 图形界面 -> AI -> 可视化结果
Canvas 通过 WKWebView 在 macOS 应用中嵌入一个轻量级的网页渲染引擎,Agent 可以动态生成 HTML/CSS/JS 内容并渲染到界面中。
Canvas 支持 HTML、CSS、JavaScript 以及通过 A2UI 协议的交互式界面,可以显示图表、表单、仪表板等各种可视化内容。
用户可以直接与 Canvas 界面元素交互,交互事件会通过 A2UI 协议传回 Agent 进行处理,形成双向通信循环。