25.3 Canvas 工具
25.3.1 push / reset / eval / snapshot 操作
工具注册与 Schema
// src/agents/tools/canvas-tool.ts
const CANVAS_ACTIONS = [
"present", // 显示 Canvas
"hide", // 隐藏 Canvas
"navigate", // 导航到指定 URL
"eval", // 在 Canvas 中执行 JavaScript
"snapshot", // 截取 Canvas 快照
"a2ui_push", // 推送 A2UI JSONL 数据
"a2ui_reset", // 重置 A2UI 渲染状态
] as const;
const CanvasToolSchema = Type.Object({
action: stringEnum(CANVAS_ACTIONS), // 必填:动作类型
node: Type.Optional(Type.String()), // 目标节点
// present 专用
target: Type.Optional(Type.String()), // URL 或路径
x: Type.Optional(Type.Number()), // 放置坐标
y: Type.Optional(Type.Number()),
width: Type.Optional(Type.Number()), // 放置尺寸
height: Type.Optional(Type.Number()),
// navigate 专用
url: Type.Optional(Type.String()),
// eval 专用
javaScript: Type.Optional(Type.String()),
// snapshot 专用
outputFormat: optionalStringEnum(["png", "jpg", "jpeg"]),
maxWidth: Type.Optional(Type.Number()),
quality: Type.Optional(Type.Number()),
delayMs: Type.Optional(Type.Number()),
// a2ui_push 专用
jsonl: Type.Optional(Type.String()), // 内联 JSONL
jsonlPath: Type.Optional(Type.String()), // JSONL 文件路径
});Gateway 代理模式
逐个动作解析
present:显示 Canvas
hide:隐藏 Canvas
navigate:导航到 URL
eval:执行 JavaScript
snapshot:截取快照
a2ui_push:推送 A2UI 数据
a2ui_reset:重置 A2UI 状态
七个动作总结
动作
Gateway 命令
必要参数
返回
25.3.2 Canvas 在 macOS / iOS / Android 上的表面
节点命令策略
命令访问控制
检查层级
说明
示例
各平台的 WebView 实现
平台
WebView 技术
Canvas 实现位置
特性
CLI 命令行接口
端到端工作流示例
本节小结
Last updated