Samuel Arendt

PAO elimina el ruido de las pruebas PHP antes del contexto

Una suite con mil pruebas puede gastar más contexto describiendo éxitos que explicando un fallo. PAO, biblioteca creada por Nuno Maduro, actúa en ese punto: detecta cuando PHPUnit, Pest o ParaTest se ejecuta dentro de un agente de código y sustituye la presentación para personas por una respuesta JSON compacta. En el ejemplo publicado por el proyecto, 11.125 tokens de salida bajan a cerca de 20, una reducción del 99,8%.

La cifra llama la atención, pero el mecanismo es deliberadamente pequeño. El paquete entra por Composer, reconoce entornos como Claude Code, Cursor, Devin y Gemini CLI y modifica el formato de salida. No exige service provider ni configuración de Laravel. También funciona con Symfony, Laminas y PHP sin framework cuando la versión de la herramienta de pruebas es compatible.

Esa sencillez expone un problema oculto cuando solo las personas leían el terminal: gran parte de la salida de desarrollo comunica estado visual y no información operativa.

El éxito repetido también tiene un costo

Barras de progreso, puntos, colores, banners y una línea por prueba ayudan a una persona a percibir que el proceso sigue activo. Para un agente, miles de confirmaciones contienen casi un único significado: nada falló. Aun así, cada carácter entra en la ventana de contexto, compite con el código y puede enviarse de nuevo en interacciones posteriores.

El desperdicio crece de una manera poco intuitiva. Una suite saludable con muchas pruebas aprobadas puede producir más ruido que una suite pequeña con errores. Cuanto más invierte el equipo en cobertura, mayor es la salida que el agente debe atravesar antes de encontrar información útil.

El JSON compacto cambia la unidad de lectura. En vez de reproducir la experiencia del terminal, entrega estado, conteo y detalles de los fallos. Cuando todo pasa, la respuesta puede permanecer casi constante sin importar el tamaño de la suite. Cuando algo falla, el payload crece solo donde existe diagnóstico.

Optimizar contexto comienza antes del modelo

Los equipos intentan ahorrar tokens eligiendo un modelo menor, resumiendo prompts o reduciendo documentación. Esas medidas afectan el razonamiento del agente. Filtrar la salida redundante actúa antes: elimina información que nunca debió ocupar la conversación.

La diferencia importa porque el contexto supera una línea de la factura. Una ventana llena puede expulsar instrucciones, decisiones anteriores y archivos relevantes. El agente repite búsquedas o pierde una restricción que estaba clara al principio. Una salida más corta reduce costos y conserva espacio para la tarea.

El mismo principio vale fuera de las pruebas. Linters con miles de avisos repetidos, builds que imprimen cada archivo copiado y comandos de infraestructura que vuelcan respuestas completas pueden ofrecer un modo para máquinas. La mejor interfaz no siempre es un resumen en lenguaje natural. Un formato estructurado, estable y proporcional a los errores suele ser más útil.

Antes de instalar otra capa, conviene comprobar si la herramienta ya ofrece --json, --quiet o un reporter compacto. PAO resulta interesante porque reúne esa adaptación para herramientas PHP y activa el comportamiento según el consumidor, sin obligar a las personas a abandonar la salida conocida.

La detección automática necesita una salida de emergencia

La magia en el autoloader reduce configuración, pero debe ser observable. Un desarrollador que investiga un fallo puede querer la salida humana completa incluso dentro de un entorno reconocido como agente. Una integración de CI puede depender del formato anterior. La documentación y las versiones compatibles deben entrar en la revisión antes de una adopción amplia.

También hay que validar el contenido de los fallos, no solamente el caso verde. Un reporter excelente cuando todo pasa puede omitir un stack trace, dataset o comparación necesarios cuando una prueba falla. Una comprobación útil es pequeña: provocar un fallo conocido y confirmar que el agente recibe archivo, línea, valor esperado, valor observado y código de salida correcto.

La reducción de tokens divulgada representa un escenario. El costo real cambia según runner, plugins, cantidad de pruebas y tokenizador del modelo. La decisión no depende de reproducir exactamente el 99,8%. Si la salida crece con éxitos repetidos, existe una oportunidad medible.

Una métrica mejor para herramientas de agentes

Las herramientas de desarrollo suelen medir tiempo de ejecución. Con agentes importan otras dos medidas: bytes producidos e información necesaria para la próxima decisión. Un comando rápido que genera una pared de texto puede retrasar el flujo más que algunos segundos adicionales de procesamiento.

Una evaluación práctica registra la salida de una suite verde y de tres fallos representativos antes y después del cambio. Después compara tokens, capacidad de diagnóstico y estabilidad del formato. Si el agente necesita ejecutar cada error otra vez con parámetros distintos, parte del ahorro desaparece.

PAO propone un patrón que otras herramientas pueden copiar sin conocer ningún modelo: salida humana por defecto, salida estructurada cuando el consumidor es una máquina y detalles proporcionales a la excepción. Es una intervención estrecha y por eso reduce costos sin rediseñar la suite, el prompt ni el proceso de revisión.

Si tu empresa está evaluando algo parecido, escríbeme por LinkedIn o por WhatsApp.

Referencias

#Agentes de IA, #Calidad de software, #Radar, #Rendimiento