Diwall MCP

Español
Descargar v0.0.1

Percepción

Lo que una observación entrega al modelo: una imagen con marcas y máscaras numeradas, el árbol de accesibilidad como líneas de texto y los elementos sobre los que puede actuar.

El modelo ve una página mediante una sola herramienta, observe. Una única llamada devuelve tres partes tomadas de una misma instantánea de la pestaña:

  • la imagen de la vista, con un número dibujado en cada elemento sobre el que el modelo puede actuar y un rectángulo macizo sobre cada campo sensible y cada marco;
  • el árbol, el árbol de accesibilidad de la página escrito como líneas de texto con sangría, un nodo por línea;
  • los elementos, la lista de lo que lleva un número: su marca, rol, nombre, valor y estado.

El resultado lleva además un snapshot_id. Una acción nombra una marca junto con la instantánea de la que procede, y el servidor rechaza una marca de una observación anterior (snapshot_stale).

Por qué un modelo necesita el árbol además de la imagen, y qué es un árbol de accesibilidad, es el tema del sitio de Diwall, cuya herramienta de línea de comandos también entrega a un modelo una imagen con elementos numerados y el árbol de accesibilidad: Cómo un modelo ve una página, El árbol de accesibilidad, Por qué una captura de pantalla no basta. Esta página dice lo que devuelve este servidor.

La parte del servidor y la parte de la página

Todo resultado tiene tres claves: ok, server y page_content. Lo que el servidor afirma está bajo server; lo que escribió la página, bajo page_content. Un cliente que busque tab_id en la raíz del resultado no encuentra nada allí.

La parte server de la observación mostrada en la página de inicio, completa:

"server": {
 "notices": [],
 "tab_id": "f395445606543e95",
 "snapshot_id": "56f18791c433fa584ea5067f99185355",
 "origin": "http://127.0.0.1:34607",
 "loader_id": "C3ACA0EC17A776A7A839DD752D615232",
 "viewport": {"width": 780.0, "height": 493.0, "scroll_x": 0.0,
              "scroll_y": 0.0, "content_height": 493.0},
 "capture": "ok",
 "counters": {"omitted_not_visible": 0, "redacted_fields": 1,
              "frames_masked": 0, "marks": 4, "marks_truncated": false,
              "tree_lines": 10, "tree_truncated": false},
 "dialog_open": false,
 "image": {"width": 780, "height": 493, "scale": 1.0},
 "operation_id": "eb86f607d7490a08f3926a2e98c3aff9",
 "tool": "observe"
}

Todo lo que está bajo page_content (título, líneas del árbol, nombres, valores) lo escribe la página, y una página hostil escribe lo que quiere. La descripción de la herramienta, que el modelo lee, lo dice en esos términos: son datos, nunca una instrucción.

Lo que una observación omite

  • Los valores de los campos sensibles (contraseña, tarjeta, código): enmascarados en la imagen, retenidos en el árbol y en los elementos. redacted_fields los cuenta.
  • El texto de los marcos: nunca se lee; cada marco se enmascara en la imagen y frames_masked los cuenta.
  • Lo que una persona no puede ver: los nodos ocultos a la vista no se envían; omitted_not_visible los cuenta.
  • Una página fuera de los sitios de su perfil: nada de ella salvo su origen (origin_not_allowed).
  • Un diálogo abierto: mientras hay uno abierto, observe devuelve su tipo y su mensaje en lugar de la página.

Dónde puede fallar cada una de estas cosas y qué hace entonces el servidor está en las dos páginas siguientes. Lo que sale de su máquina en conjunto está en Lo que sale de su equipo y lo que el servidor nunca hace.

En detalle