Este plugin de Claude Code escribe un 94% menos de código (ponytail)
BBetter Stack
컴퓨터/소프트웨어창업/스타트업경영/리더십
Transcript
00:00:00Ya lo conoces. Coleta larga, gafas ovaladas, lleva en la empresa más tiempo que el control de versiones.
00:00:06Le enseñas 50 líneas, las mira, no dice nada y las reemplaza por una sola.
00:00:11Esa es la descripción épica de esta nueva librería llamada Ponytail, que supongo que es un poco
00:00:17identificable. Todos conocemos a ese desarrollador 10x que encaja perfectamente con esa descripción. Pero Ponytail
00:00:23es en realidad una herramienta muy buena. Hace que tu agente de IA de codificación piense como el desarrollador senior más
00:00:29vago de la sala. Y eso, en realidad, es un cumplido. Así que en este vídeo, echaremos un vistazo a Ponytail,
00:00:35veremos cómo funciona y haremos algunas demos divertidas para averiguar si este tipo es realmente lo que promete.
00:00:41Va a ser muy divertido, así que vamos a ello.
00:00:48La misión de Ponytail es sencilla. Mantener todo súper conciso, eliminar la carga innecesaria que suelen producir
00:00:55los agentes de IA e intentar encontrar la solución más eficiente posible a un problema.
00:01:00Es similar a Caveman, que fue la librería que hizo que los agentes de IA hablaran menos,
00:01:06ahorrando así menos tokens, sobre lo cual James también hizo un gran vídeo por aquí. Así que la idea principal
00:01:12detrás de esto es adoptar el principio YAGNI, que significa “you ain't gonna need it” (no vas a necesitarlo). Es una
00:01:18idea de ingeniería de software de los 90. Y su núcleo es: no construyas algo hasta que
00:01:25realmente lo necesites. No añadas una capa de abstracción, no instales una librería, no escribas la clase.
00:01:31Si el problema se puede resolver sin ello, resuélvelo sin ello. Y Ponytail integra eso directamente
00:01:37en tu agente dándole una escalera de decisiones que debe subir antes de escribir nada. ¿Esto necesita
00:01:43¿existir siquiera? ¿Puede manejarlo una librería estándar? ¿Hay una función nativa de la plataforma para esto? ¿Ya existe
00:01:50una dependencia instalada que haga esto? ¿Puede hacerse en una sola línea? Solo si cada una de esas
00:01:57respuestas es un no, entonces escribe código nuevo. Y aun así, lo mantiene al mínimo necesario
00:02:04para que funcione.
00:02:05Y si miramos algunos de sus ejemplos, especialmente el ejemplo de diálogo modal, tenemos una idea clara de
00:02:11esta metodología. Un agente normal, cuando se le pide añadir un diálogo modal para la confirmación de eliminación,
00:02:18inmediatamente buscará instalar una librería de Radix UI como el diálogo de React y te dará una
00:02:25dependencia y un portal, una superposición, una raíz, un activador, un contenedor de contenido, solo para mostrar una caja con dos
00:02:34botones. Pero Ponytail mira esto y dice: oye, el navegador ya tiene el elemento dialog. Atrapa el
00:02:41foco automáticamente. Y se cierra con escape, renderiza un fondo con un solo selector CSS,
00:02:49y es compatible con todos los navegadores principales desde 2022. Así que en lugar de 30 líneas en un paquete NPM,
00:02:58obtienes ocho líneas y cero dependencias. Y este pequeño comentario de Ponytail aquí
00:03:04te dice exactamente qué saltó y por qué lo hizo. Así que si algún día decides actualizar
00:03:11a la versión de Radix o algo más sofisticado, sabes a dónde ir y dónde se pospuso.
00:03:16Así que es perezoso, pero no es irresponsable. Y al adoptar esta pereza, Ponytail afirma poder
00:03:22reducir tus costes entre un 47 y un 77%. Y de hecho ofrecen algunos puntos de referencia detrás de esta afirmación. Así que veámoslos
00:03:29por un momento. Tenemos tres métodos: usar sin habilidad, usar Caveman y usar Ponytail.
00:03:36Y tres modelos y cinco tareas cotidianas. Diez ejecuciones por celda y para cada una el resultado mediano. Y
00:03:43crucialmente, también comprueban la corrección. Una solución de una línea que funciona mal, aunque tenga pocas líneas de código, fallará en
00:03:50la corrección. Así que no es solo escribir menos cosas, tiene que funcionar realmente. Y también hay una interesante
00:03:56advertencia que vale la pena mencionar. El coste refleja llamadas de un solo uso que reenvían la habilidad cada vez. En otras palabras,
00:04:03el benchmark funciona enviando una nueva llamada a la API para cada prueba. Y cada vez que lo hace, incluye
00:04:10el conjunto completo de reglas de Ponytail en el prompt. Así que en el benchmark, se penaliza a Ponytail por el coste de
00:04:16sus propias instrucciones en cada prueba. En la vida real, pagas por esas instrucciones aproximadamente una vez
00:04:22por sesión. Y después de eso, se almacenan en caché. Eso significa que la cifra de entre un 47 y un 77% más barato en realidad
00:04:29se queda corta. En una sesión de trabajo real repartida en muchas peticiones, la ventaja en costes es aún mayor
00:04:36porque ese coste de inyección de habilidad se amortiza a lo largo de toda la conversación. Dicho esto, hay una
00:04:42crítica legítima que merece la pena mencionar. Una entrada de blog recientemente publicada por Colin Eberhardt señala
00:04:48que si cambias Ponytail por tres simples palabras, “sigue los principios YAGNI”, los resultados
00:04:55de eso casi igualan perfectamente la puntuación del benchmark de Ponytail. Y al elaborar siete palabras, “sigue los principios YAGNI
00:05:03y soluciones de una línea”, en realidad superó al benchmark. Entonces, ¿Ponytail es magia o es solo un prompt bien empaquetado?
00:05:11Bueno, sinceramente, es una pregunta justa. Pero yo argumentaría que el empaquetado es el producto. Obtienes las reglas correctas
00:05:18inyectadas automáticamente a través de diferentes agentes con comandos, herramientas de auditoría y un libro de contabilidad de profundidad encima. Además,
00:05:25Ponytail tiene otras características geniales. “Sigue los principios YAGNI” en tu sistema de prompts no te da la
00:05:31característica de auditoría de Ponytail ni la característica de revisión de Ponytail. Pero ahora vamos a probarlo con un ejemplo sencillo.
00:05:37Así que aquí tengo dos instancias de Cloud Code abiertas y en una de ellas, voy a instalar el plugin Ponytail
00:05:44solo para el ámbito local. Y la otra será una simple instancia de Cloud Code predeterminada sin
00:05:49plugins activados. Les daré a ambos el mismo prompt para construir una aplicación de panel meteorológico que detecte la ubicación del usuario
00:05:56y muestre las condiciones meteorológicas actuales junto con algunas otras características. Y voy a ejecutar el mismo
00:06:02prompt en ambas instancias, con la única excepción de que en la de Ponytail, también le voy a pedir
00:06:08que use la habilidad Ponytail porque a veces no la detecta automáticamente. Así que después de unos
00:06:12momentos, vemos que la versión de Ponytail ya ha terminado la tarea en menos de un minuto, mientras que la
00:06:18predeterminada todavía está procesando. Y también vemos una descripción general muy concisa de lo que construyó y lo que Ponytail
00:06:25optó por no hacer para obtener la máxima eficiencia. Y como podemos ver aquí, decidió tener todo en un solo archivo HTML.
00:06:34Mientras tanto, en la ventana predeterminada, la tarea se terminó en dos minutos y 30 segundos. Y ya podemos ver que esta
00:06:41versión está mucho más inflada. Tenemos tres archivos separados y esta versión se ejecuta usando un servidor Python.
00:06:48Así que aunque este de ninguna manera es un mal resultado, está mucho más sobre-diseñado que la primera versión.
00:06:54Pero veamos realmente cómo operan. Así que primero, esta es la versión sin Ponytail.
00:07:00Y aunque la aplicación se ve genial, la interfaz de usuario es hermosa y la API recupera información como se esperaba,
00:07:07estoy bastante decepcionado de que no detectó mi ubicación automáticamente como pedí.
00:07:12Y en su lugar, me muestra Londres como el resultado predeterminado. Pero ahora, si nos pasamos a la versión de Ponytail,
00:07:19aquí podemos ver claramente que al abrirla, pide obtener mi ubicación actual y luego muestra el clima
00:07:25coincidiendo con esa ubicación en su lugar. Así que aunque la interfaz de usuario tal vez no sea tan elegante y la aplicación tal vez sea más básica,
00:07:33siguió las instrucciones con mayor precisión que la versión predeterminada, lo cual es bastante sorprendente, para ser honesto.
00:07:39Y por último, veamos el uso. Y aquí podemos ver que sí, de hecho, la versión con Ponytail
00:07:45terminó siendo un 50% más barata que la versión predeterminada. Y también produjo muchas menos líneas de código.
00:07:52Y como acabamos de ver, fue incluso mejor en términos de funcionalidad que la versión predeterminada.
00:07:58Así que esto demuestra que Ponytail realmente funciona como se espera, y sí produce un código más eficiente.
00:08:04Así que como esta prueba fue tan exitosa, decidí hacer algo aún más interesante.
00:08:09¿Qué pasa si combino Caveman y Ponytail para obtener la máxima eficiencia? ¿Qué nos dará eso?
00:08:17Así que esta vez activé ambos plugins en un nuevo directorio y ejecuté el mismo prompt de nuevo.
00:08:22Y una vez más, la tarea se terminó en menos de un minuto y el resultado fue bastante similar.
00:08:28Y tenía toda la misma funcionalidad. Así que funcionó como se esperaba.
00:08:32Pero si miramos el resultado, no difirió demasiado de la versión de Ponytail y la combinación de Caveman
00:08:37más Ponytail terminó siendo incluso ligeramente más cara que la versión independiente de Ponytail.
00:08:44Así que esto demuestra que combinarlos realmente no te da ninguna mejora importante.
00:08:49Así que puedes limitarte a usar solo Caveman o, mejor aún, optar por usar Ponytail.
00:08:54Si podemos creer en sus benchmarks de que es de hecho mejor que Caveman.
00:08:58Así que ahí lo tienen, amigos. Eso es Ponytail en pocas palabras.
00:09:02Estoy sinceramente impresionado por el resultado positivo que Claude fue capaz de producir
00:09:07con la habilidad Ponytail mientras reducía la carga innecesaria y mantenía la calidad al mismo tiempo.
00:09:13Supongo que esto solo demuestra que muchas de nuestras soluciones de codificación están probablemente sobre-diseñadas
00:09:19y a veces menos es más, si lo usas de la manera correcta.
00:09:23Así que definitivamente voy a mantener a Ponytail como un plugin en mi configuración de Claude code
00:09:29y probablemente lo use para futuros proyectos.
00:09:31¿Pero qué piensas de Ponytail? ¿Lo has probado?
00:09:34¿Lo usarás? Háznoslo saber en la sección de comentarios de abajo.
00:09:37Y amigos, si os gustan estos tipos de análisis técnicos,
00:09:40por favor hágamelo saber pulsando ese botón de “me gusta” debajo del vídeo.
00:09:44Y tampoco olvidéis suscribiros a nuestro canal.
00:09:47Esto ha sido Andrus de BetterStack y nos vemos en los próximos vídeos.