>_ DevTrendses

Idioma

Inicio

Lenguajes

Secciones

Frontend Backend Móvil DevOps AI / ML GameDev Blockchain Embebidos Seguridad
TypeScript

Cómo hacer que un Agente de IA de Terminal Optimice Tu Código Indefinidamente

result

Piensa en cómo sueles acelerar los tests o reducir el bundle de tu frontend. Cambias un par de líneas en la configuración, ejecutas el build, verificas los segundos en la consola. Más lento — revertes. 5% más rápido — haces commit e intentas la siguiente idea loca. Este proceso consume horas de trabajo rutinario, aunque esencialmente es un ciclo mecánico de pruebas de hipótesis.

Andrei Karpathy demostró recientemente el concepto de experimentos autónomos en el repositorio autoresearch. El desarrollador davebcn87 llevó esta idea más allá y lanzó pi-autoresearch — una extensión para el agente de IA de terminal pi. La extensión delega la optimización rutinaria a la red neuronal: el agente formula una idea, hace cambios en los archivos, mide el resultado, guarda los hallazgos exitosos y revierte las regresiones.

pi-autoresearch

Cómo funciona el ciclo autónomo

Toda la idea se basa en una regla simple: intenta una idea, mídela, guarda si tiene éxito, descarta si falla.

El agente trabaja directamente en tu repositorio. Cuando inicias una sesión, la extensión crea una carpeta separada .auto/ en la raíz del proyecto. Almacena todos los archivos de trabajo:

  • .auto/prompt.md — un documento que describe la tarea actual, las reglas de medición y una lista de lo que el agente ya ha intentado.
  • .auto/measure.sh — un script bash de benchmark que devuelve una cadena con un valor métrico numérico.
  • .auto/log.jsonl — un log estructurado de cada intento con el hash del commit y el estado.
  • .auto/checks.sh — un script adicional para verificar tests y tipos, para que el agente no rompa la lógica por conseguir números bonitos.

Cuando la ventana de contexto del modelo se desborda o el agente se reinicia, simplemente vuelve a leer .auto/prompt.md y la cola del log. Todo el historial del experimento no se pierde cuando el contexto se comprime.

pi install npm:pi-autoresearch

Después de la instalación, simplemente ejecuta el skill:

/skill:autoresearch-create

El agente hará algunas preguntas de clarificación sobre el objetivo, los archivos objetivo y el comando de ejecución, o los deducirá del contexto del proyecto por sí mismo. Luego tomará las métricas base y se sumergirá inmediatamente en un bucle infinito.

Luchando contra el ruido aleatorio en las mediciones

Cualquier benchmark está sujeto a fluctuaciones. Los procesos del SO en segundo plano, el calentamiento de la CPU o los retrasos de red pueden crear la ilusión de mejora donde no la hay.

Para filtrar las victorias falsas, pi-autoresearch calcula una puntuación de confianza basada en la desviación absoluta mediana (MAD). Después de tres ejecuciones, la extensión comienza a comparar la mejora lograda contra el nivel de ruido de toda la serie:

  • Valor ≥ 2.0x se resalta en verde — la ganancia supera notablemente el ruido de fondo.
  • Rango 1.0–2.0x se muestra en amarillo — hay una ganancia, pero está en el borde del margen de error.
  • Valor < 1.0x brilla en rojo — el resultado cae completamente dentro del error estadístico.

La herramienta no fuerza una decisión de reversión en el agente; solo sugiere volver a verificar una ejecución cuestionable.

Previniendo roturas mediante backpressure

Las redes neuronales aman hacer trampa. Si le pides al agente que reduzca el tiempo de ejecución de tests, hay una fuerte tentación de simplemente eliminar la mitad de los archivos de test o insertar stubs.

Para prevenir tales trucos, .auto/checks.sh contiene verificaciones obligatorias de corrección:

#!/bin/bash
set -euo pipefail
pnpm test --run
pnpm typecheck

El script de verificación se ejecuta después de cada medición exitosa. Si los tests fallan o la verificación de tipos se rompe, el experimento se marca inmediatamente como fallido (checks_failed), y todos los cambios en la rama de trabajo se revierten. El tiempo de ejecución de las verificaciones en sí no se añade a la métrica principal de velocidad.

Organizando el caos en ramas limpias

Durante un ciclo de varias horas, el agente crea decenas de commits, cambiando constantemente diferentes archivos. Mergear dicho log directamente a la rama principal sería una pesadilla para el revisor.

Para resolver este problema, existe un comando:

/skill:autoresearch-finalize

El skill analiza .auto/log.jsonl, agrupa los cambios exitosos en bloques lógicos independientes y propone una estructura para tu aprobación. Después de la confirmación, la herramienta crea ramas limpias separadas desde el commit inicial. Cada rama contiene estrictamente un conjunto lógico de cambios con la descripción de la ganancia en el mensaje del commit, haciéndolos fáciles de revisar y mergear por separado.

Monitoreo y hooks

Puedes monitorear el progreso directamente en la terminal o a través del navegador:

  • El widget sobre el editor muestra constantemente una tabla de resultados.
  • La combinación de teclas Ctrl+Shift+F abre un dashboard de terminal a pantalla completa con una lista de intentos.
  • El comando /autoresearch export genera una página web interactiva con gráficos de dinámica de métricas.

Si el ciclo básico no es suficiente, puedes colocar archivos ejecutables before.sh y after.sh en el directorio .auto/hooks/. Se activan en los límites de iteración. A través de ellos, puedes configurar el envío de notificaciones del sistema al escritorio, buscar ideas en documentación externa o mantener un diario de entrenamiento. El script recibe contexto a través de la entrada estándar en formato JSON, y su salida stdout se pasa al agente como una pista del sistema.

Cosas a tener en cuenta

Los ciclos autónomos pueden agotar rápidamente tu saldo de API si los dejas funcionando toda la noche sin supervisión. Tiene sentido establecer un límite de iteraciones desde el principio en el archivo .auto/config.json:

{
  "maxIterations": 30
}

El agente se detendrá tan pronto como complete treinta experimentos.

La herramienta funciona bien en tareas con resultados numéricos claramente medibles: optimizar el tamaño del build de webpack, acelerar la ejecución de tests unitarios, ajustar hiperparámetros para entrenar modelos pequeños o afinar puntuaciones de Lighthouse. Si ya usas el agente de consola pi, el proyecto definitivamente vale la pena probarlo en una tarea de optimización real.

Proyectos relacionados