Skip to main content
La aplicación para macOS incorpora un panel Canvas controlado por el agente mediante WKWebView, un espacio de trabajo visual ligero para HTML/CSS/JS, A2UI y pequeñas superficies de interfaz de usuario interactivas.

Dónde se encuentra Canvas

El estado de Canvas se almacena en Application Support:
  • ~/Library/Application Support/OpenClaw/canvas/<session>/...
El panel Canvas sirve esos archivos mediante un esquema de URL personalizado, openclaw-canvas://<session>/<path>:
  • openclaw-canvas://main/ -> <canvasRoot>/main/index.html
  • openclaw-canvas://main/assets/app.css -> <canvasRoot>/main/assets/app.css
  • openclaw-canvas://main/widgets/todo/ -> <canvasRoot>/main/widgets/todo/index.html
Si no existe ningún index.html en la raíz, la aplicación muestra una página de estructura básica integrada.

Comportamiento del panel

  • Panel sin bordes y redimensionable, anclado cerca de la barra de menús (o del cursor del ratón).
  • Mostrar Canvas no cambia de aplicación ni roba el foco del teclado.
  • Recuerda el tamaño y la posición por sesión.
  • Se recarga automáticamente cuando cambian los archivos locales de Canvas.
  • Solo puede haber un panel Canvas visible a la vez (se cambia de sesión según sea necesario).
Canvas se puede desactivar desde Settings -> Allow Canvas. Cuando está desactivado, los comandos del nodo de Canvas devuelven CANVAS_DISABLED.

Superficie de la API del agente

Canvas se expone mediante el WebSocket del Gateway, por lo que el agente puede mostrar u ocultar el panel, navegar a una ruta o URL, evaluar JavaScript y capturar una imagen de instantánea:
eval y a2ui.* actualizan el contenido sin abrir ni revelar el panel. Solo present, navigate o una acción del usuario lo muestran; después de ocultarlo, las actualizaciones de contenido siguen aplicándose al panel oculto. snapshot necesita un panel visible y, de lo contrario, devuelve CANVAS_HIDDEN; ejecute primero present. canvas.navigate acepta rutas locales de Canvas, URL http(s) y URL file://. Al pasar "/", se muestra la estructura básica local o index.html. Los destinos alojados en el Gateway bajo /__openclaw__/canvas/ y /__openclaw__/a2ui/ se resuelven mediante la URL de Canvas con ámbito actual de la sesión del nodo. La aplicación actualiza esa capacidad de corta duración antes de navegar; no es necesario crear ni copiar una URL de capacidad manualmente.

A2UI en Canvas

A2UI está alojado en el host de Canvas del Gateway y se representa dentro del panel Canvas. Cuando el Gateway anuncia un host de Canvas, la aplicación para macOS navega automáticamente a la página del host de A2UI al abrirlo por primera vez. La URL anunciada tiene un ámbito de capacidad; por ejemplo, http://<gateway-host>:18789/__openclaw__/cap/<token>/__openclaw__/a2ui/?platform=macos. Trátela como credenciales efímeras, no como un enlace estable.

Comandos de A2UI (v0.8)

Canvas acepta mensajes A2UI v0.8 del servidor al cliente: beginRendering, surfaceUpdate, dataModelUpdate, deleteSurface. createSurface (v0.9) todavía no es compatible.
Prueba rápida de funcionamiento:

Activación de ejecuciones del agente desde Canvas

Canvas puede activar nuevas ejecuciones del agente mediante enlaces profundos openclaw://agent?...:
Parámetros de consulta compatibles: La aplicación solicita confirmación a menos que se proporcione una clave válida. Los enlaces sin clave muestran el mensaje y la URL antes de su aprobación e ignoran los campos de enrutamiento de entrega; los enlaces con clave utilizan la ruta de ejecución normal del Gateway.

Notas de seguridad

  • El esquema de Canvas bloquea el recorrido de directorios; los archivos deben residir bajo la raíz de la sesión.
  • El contenido local de Canvas utiliza un esquema personalizado (no se requiere un servidor de bucle invertido).
  • Las URL externas http(s) solo se permiten cuando se navega explícitamente a ellas.
  • Las páginas web normales son solo de representación. Las acciones del agente solo se aceptan desde el esquema de Canvas propiedad de la aplicación o desde el documento A2UI exacto del Gateway con ámbito de capacidad seleccionado por la aplicación; los submarcos, las redirecciones, las capacidades obsoletas y las consultas modificadas no pueden enviar acciones.

Contenido relacionado