Diwall

Español
Descargar 1.24.4

Decisiones técnicas

Ocho decisiones que dieron forma a Diwall, cada una con su razón y su precio. Incluida la que hace fallar su primera ejecución a propósito.

Cada decisión de esta página tiene un precio. Enumerar la ventaja sin el precio haría de esta página un anuncio, y no un documento que usted pueda evaluar.

Un número en lugar de una descripción

Set-of-Mark numera cada elemento interactivo y devuelve esos números junto con la captura. Actuar es nombrar un número: {"id": 7}.

La alternativa — pedir a un modelo que describa el elemento que busca, o que genere un selector CSS a partir de una imagen — carga la identificación sobre el eslabón más débil. Un número es inequívoco por construcción: tres botones idénticos reciben tres números distintos.

El precio. Los números se calculan en cada captura y se desplazan cuando el documento cambia. Un número vale para el estado en el que se leyó, nunca de una sesión a otra. Desde la 1.24.0, la resolución mantiene un número ligado a su elemento cuando puede: tras una captura Set-of-Mark hecha antes en el mismo escenario, resuelve por el marcador data-dw-som-id que dejó esa captura; sin ella, vuelve a indexar la página en su estado actual. Cualquier desacuerdo entre las dos vías se señala en boussole.respect.som_derive_detectee, y --som-brut restablece la indexación sola. La receta Hizo clic, pero no en el elemento que usted quería lo muestra en acción.

Local por defecto, remoto solo si usted lo decide

El análisis de imágenes se ejecuta en su máquina: --llm local, una instancia de Ollama en localhost. --llm claude envía en cambio la imagen a una API remota — la opción existe, está documentada y nunca es la predeterminada. Esto vale para el análisis de imágenes que hace el propio Diwall; el modelo que pilota Diwall lee la captura en cualquier caso, y adónde va después se explica en Lo que Diwall no hace a sus espaldas.

La razón es sencilla: la captura de pantalla de una interfaz autenticada es uno de los elementos más sensibles que puede producir una herramienta. Adónde va debe ser una decisión, no un ajuste heredado.

El precio. Los modelos de visión locales son más pequeños que los alojados. Para lo que Diwall realmente necesita — localizar un elemento sin representación semántica — ha bastado. Para un razonamiento visual más fino, es un límite real.

Identidad declarada, no disfraz

Diwall no se hace pasar por un navegador humano por defecto. --stealth existe para los casos en que usted decida otra cosa; hay que activarlo expresamente, y la decisión es suya, porque usted responde del tráfico que envía.

El precio, y no es pequeño. Algunos sitios rechazan a un agente que se anuncia, cuando habrían servido a un navegador que no hubiera dicho nada. Un panel real de 23 sitios comerciales: el 39 % bloqueado por un WAF. Eso es lo que cuesta esta postura, medido y no supuesto.

Lo que la web rechaza →

Señales, nunca veredictos

Diwall informa de lo que ha advertido y le deja decidir. etat.pret_a_agir: false significa he notado algo — una firma de WAF, una deriva de sesión —, no me niego a funcionar. La detección de WAF se basa en palabras clave y puede equivocarse; aparece como un recuento, nunca como una excepción que detenga la ejecución.

El diseño contrario — una herramienta que bloquea en cuanto cree que algo va mal — convierte cada falso positivo en una avería y enseña a sus usuarios a desactivar la comprobación.

El precio. Hay que leer la respuesta. Quien llama y solo mira succes no saca ningún provecho de estas señales.

El cerrojo que hace fallar su primera ejecución

Diwall se niega a ejecutarse mientras quien lo pilota no haya leído la guía y no pueda citar su número de versión.

Diwall no figura en los datos de entrenamiento de ningún modelo, y un modelo que no ha leído la guía improvisa. No es una hipótesis: causó un incidente de seguridad documentado, y este cerrojo es la respuesta. Cómo es la improvisación, y las dos reglas que la evitan →

El precio. Su primera llamada falla, a propósito, con {"succes": false, "erreur": "guide_non_lu"}. Todo comando documentado lleva --guide-version. Es una fricción, es deliberada, y es la decisión más cuestionada del proyecto.

La guía nunca se traduce

La documentación para personas existe en cuatro idiomas. Las guías que leen los modelos existen solo en inglés, y no es un descuido.

Una guía traducida puede desincronizarse sin que nadie lo note. Su número de versión se actualiza mecánicamente mientras su contenido sigue en la versión anterior — y un agente pasa entonces el cerrojo habiendo leído instrucciones obsoletas. Es exactamente el fallo que el cerrojo debe impedir, reintroducido por la propia traducción.

Un modelo lee inglés de forma nativa, y el inglés consume menos tokens: el beneficio es nulo, el riesgo es real.

El precio. Un operador que no lee inglés y quiere entender lo que se le dijo a su agente tiene que leer inglés. La documentación para personas cubre ese hueco; la guía, no.

El orden se declara una sola vez

El PDF de referencia reúne varios documentos. Su orden se declara en un manifiesto, una sola vez, común a todos los idiomas — nunca se deduce del sistema de archivos.

Un orden implícito nunca es el orden pedagógico: así es como un manual acaba presentando la desinstalación antes que la instalación. Y si cada traducción declarara el suyo, cuatro PDF acabarían con tres órdenes distintos, y nadie se daría cuenta hasta que un lector siguiera el equivocado.

Todo documento del perímetro que no figure ni en el orden ni en las exclusiones justificadas hace fallar la compilación. De forma visible, en lugar de desaparecer del PDF en silencio.

Un proceso por llamada, no un servidor

Diwall es un comando que el modelo ejecuta en cada paso, no un servicio al que se conecta. Entre dos llamadas, nada está a la escucha. La primera pregunta de un ingeniero es por qué no es un servidor — uno que hable un protocolo como MCP, por ejemplo.

Lo que aporta esta elección: ningún servicio a la escucha en un puerto; una llamada, una entrada en el registro de operaciones; el cerrojo --guide-version comprobado en cada llamada; cualquier modelo capaz de ejecutar un comando de shell pilota Diwall, sin cliente de protocolo que instalar; un escenario sigue siendo un archivo declarativo, validado antes de que arranque el navegador.

El precio. El estado vivo de la página no se mantiene entre dos llamadas. Las cookies y el almacenamiento sí, mediante --sauver-session y --reprendre-session; una casilla marcada o un formulario a medio rellenar, no. De ahí la regla: una secuencia con estado debe ir en un único escenario. → La sesión no se mantiene entre dos llamadas

Lo que esta elección no cambia, porque la pregunta suele traerlo consigo:

  • El transporte no decide dónde se resuelve una credencial. Una referencia depuis_secrets seguiría siendo una referencia con cualquier protocolo.
  • Un protocolo no decide nada. Decide el agente, en ambos casos.
  • Un modelo alojado que lee la captura la recibe, sea cual sea el medio que la transporte.

En resumen

  • Un número es inequívoco; una descripción, no.
  • Local por defecto, porque la captura de una página autenticada es sensible.
  • Identidad declarada, y el 39 % de un panel real la rechazó.
  • Señales en lugar de veredictos: usted decide, así que tiene que leer.
  • La primera ejecución falla a propósito, y es intencionado.
  • La guía no se traduce, porque una traducción obsoleta desactivaría el cerrojo.
  • El orden de los documentos se declara una sola vez, y un documento olvidado hace fallar la compilación.
  • Un proceso por llamada: nada está a la escucha, y el estado de la página va en un único escenario.