Blog
Seis Rondas de Pruebas Independientes: Endureciendo el Sensbench AI Builder
Durante la última semana, un tercero independiente realizó seis rondas de pruebas adversariales profundas contra el Sensbench AI Builder y el servidor Sensbench MCP (Model Context Protocol). Su objetivo era simple: intentar romperlo. Generaron proyectos, compilaron firmware, re-ejecutaron prompts idénticos, sondearon cachés, conectaron brokers MQTT reales y auditaron nuestra facturación. Esto es lo que sucedió, lo que corregimos y cómo se ven los números ahora.
Cómo se ejecutaron las pruebas
Cada afirmación a continuación fue verificada en un entorno real:
- Compilación real — cada sketch generado se compiló en nuestra cadena de herramientas real arduino-esp32 (compilación ESP-IDF), no un linter o un pase falso.
- MQTT real — los sketches de Home Assistant generados se flashearon en el simulador, se conectaron a un broker MQTT público real y se ejecutaron de extremo a extremo:
mosquitto_pub ON→ callback del dispositivo → pulso de relé → estado publicado de vuelta. Los mensajes de descubrimiento se capturaron enhomeassistant/switch/…/config. - Semántica de caché — se reprodujeron prompts idénticos, prompts semánticamente diferentes, cambios de placa y cambios de restricciones para verificar que las respuestas en caché solo coinciden con la solicitud exacta que las produjo.
- Conciliación de facturación — cada generación y compilación se concilió contra el libro de cuotas: éxitos cobrados, aciertos de caché gratis, compilaciones fallidas gratis.
Ronda uno: el número honesto era 20%
La primera ronda fue humillante. De cinco proyectos generados, cuatro fallaron al compilar, incluido un abridor de puerta de garaje, una de las solicitudes más comunes del mundo real. Los fallos eran errores clásicos de C++ para principiantes: funciones auxiliares usadas antes de la declaración, pilas de protocolo hechas a mano, inclusión de una biblioteca faltante. El veredicto fue justo: “la tubería es real, pero el generador no es confiable.”
Qué cambiamos
En lugar de discutir, construimos salvaguardas en la propia tubería:
- Inyección automática de prototipos — la cadena de herramientas de compilación no ejecuta el paso de auto-prototype de Arduino, por lo que ahora inyectamos prototipos de funciones en la posición correcta automáticamente antes de cada compilación.
- Compilación de autoverificación interna — cada proyecto generado se compila internamente antes de mostrarse al usuario. Si falla, el error del compilador se retroalimenta y el modelo regenera, hasta dos veces. Los usuarios solo ven resultados verificados.
- Bibliotecas maduras sobre pilas hechas a mano — MQTT ahora usa la biblioteca probada en batalla PubSubClient; al modelo se le prohíbe explícitamente reimplementar el protocolo MQTT desde cero.
- Verificaciones de completitud de requisitos — compilar no es suficiente. Si el prompt pide Home Assistant MQTT, el código debe contener realmente un cliente MQTT funcional con lógica de suscripción/publicación/callback; una demo solo local disfrazada de la cosa real se rechaza y se regenera.
- Caché solo verificado — la caché de respuestas solo almacena proyectos que pasaron tanto la compilación como las verificaciones de requisitos. Repetir un prompt popular siempre devuelve la compilación verificada.
- Reglas de realidad del simulador — los sketches generados ahora usan por defecto el nombre real del punto de acceso del simulador, un broker MQTT predeterminado alcanzable, manejo bidireccional de ON/OFF, estado inicial retenido para Home Assistant y tipos de sensor exactos (un interruptor de lengüeta sigue siendo un interruptor de lengüeta).
Los números ahora
- Tasa de aprobación inicial en solicitudes del mundo real: 1 de 6.
- Tasa de aprobación después de las correcciones, en rondas independientes repetidas: 6 de 6 compilaciones consecutivas + lógica MQTT real — incluyendo respuestas de aciertos de caché.
- Pruebas semánticas de caché: 6 solicitudes, sin discrepancias. Los prompts idénticos devuelven código byte-idéntico; los prompts, placas o restricciones cambiados siempre generan nuevo.
- MQTT de extremo a extremo: dispositivo → broker → suscripción estilo Home Assistant → comando → pulso de relé → publicación de estado, todo confirmado sobre un broker real, incluidos brokers autenticados.
- Servidor MCP: 8/8 herramientas ejercitadas de extremo a extremo; la facturación de cuotas se concilió exactamente (éxitos cobrados, aciertos de caché y fallos gratis).
Lo que aún somos transparentes
Limitaciones honestas que documentamos durante las pruebas:
- La integración con Home Assistant es MQTT manual por defecto (la configuración de descubrimiento se publica, pero la configuración de auto-descubrimiento de HA depende de tu configuración MQTT de HA).
- El sandbox del simulador tiene una lista blanca de salida — algunos brokers públicos son alcanzables (por ejemplo, broker.emqx.io), otros no. Consulta nuestra documentación para saber qué funciona.
- La selección de hardware coincide semánticamente con la solicitud, no siempre al pie de la letra — el modelo puede elegir una clase de sensor equivalente; lo señalamos en las notas del plan generado.
Por qué publicar esto
Cualquiera puede publicar un video de demostración. Elegimos publicar el arco completo: las rondas fallidas, las correcciones y las re-pruebas — con metodología reproducible. Si quieres intentar romperlo tú mismo, el AI Builder es gratis para una compilación al día, y el simulador se ejecuta completamente en tu navegador. El servidor MCP está disponible con contabilidad de cuotas real. Trae tu propio prompt, tu propio broker, tu propio escepticismo.
— El equipo de Sensbench