Odiaba todos los agentes de programación, así que creé el mío propio — Mario Zechner (Pi)

MMastra
컴퓨터/소프트웨어창업/스타트업AI/미래기술

Transcript

00:00:00[MÚSICA]
00:00:02Hola, mi nombre es Mario.
00:00:04Vengo de la tierra de Arnold Schwarzenegger,
00:00:06lo cual probablemente no hayan notado todavía
00:00:09basándose en mi muy buen inglés.
00:00:12Quiero empezar diciendo que
00:00:13hemos estado corriendo con nuestro hijo de cuatro años todo el día
00:00:16por Londres.
00:00:17Así que fuimos a ver dinosaurios, momias, al Nandos, obviamente,
00:00:24y cosas que ya he olvidado.
00:00:26Estoy muy, muy cansado.
00:00:28Y si no entienden nada de lo que digo,
00:00:31solo levanten la mano y digan: "abuelo, despierta".
00:00:36La razón por la que estoy aquí es en realidad otra persona,
00:00:39que está aquí en Cockneyville hoy.
00:00:40Llamémoslo Shteter Pineburger.
00:00:44Allá por 2025, creo que alrededor de abril,
00:00:53nos dijo a mí y a Armin Ronacher, a quien quizás también conozcan
00:00:58por Flask y Sentry: "tío, esos agentes de programación,
00:01:02realmente funcionan ahora".
00:01:04Y yo estaba como, "oh, cállate la puta boca".
00:01:06Perdón, también estoy usando palabrotas.
00:01:09Para nada.
00:01:10Y un mes después, nos reunimos en este piso por 24 horas
00:01:13durante la noche y nos dejamos sumergir por los "clankers",
00:01:19por el código rápido y por el contenido basura.
00:01:21Y desde entonces, ninguno de nosotros realmente...
00:01:23ya no dormimos, básicamente.
00:01:27Así que estuvimos construyendo cosas, muchas cosas, la mayoría
00:01:32de las cuales nunca usamos, porque esa es la novedad en 2025,
00:01:36'26.
00:01:37Construimos muchas cosas, pero no construimos muchas cosas
00:01:39que realmente usemos.
00:01:40Escribimos un montón de cosas.
00:01:42Y finalmente, eso culminó en mí pensando:
00:01:46"Oye, odio todos los agentes o entornos de programación existentes".
00:01:50¿Qué tan difícil puede ser escribir uno yo mismo?
00:01:53Y Peter estaba como: "oh, solo quiero hacer algo".
00:01:56Probablemente nadie se enterará.
00:01:58Y va a ser un asistente personal,
00:02:01porque eso es lo que siempre he querido tener.
00:02:03La mayoría de ustedes probablemente sabe cómo fue su historia.
00:02:05Así que hoy, les voy a contar mi historia mucho menos impresionante.
00:02:08Pero espero poder transmitir un par de aprendizajes,
00:02:11como decimos en la industria, que pude recopilar
00:02:16en los últimos meses.
00:02:17Entonces, Pi.
00:02:19Al principio, existía Cloud Code.
00:02:21En realidad, se trataba de copiar y pegar de ChatGPT.
00:02:25Todos hacíamos eso al principio, en 2023.
00:02:27Luego vino... ¿quién recuerda el GitHub Copilot original?
00:02:32Sí, de hecho, ¿cuántos de ustedes son ingenieros?
00:02:35¿Cuántos de ustedes usan agentes de programación,
00:02:37como Cursor, Cloud Code?
00:02:39Vale.
00:02:40Concurso de popularidad, ¿Cloud Code?
00:02:43¿Codex CLI?
00:02:45¿Cursor?
00:02:48Open...
00:02:48[INAUDIBLE]
00:02:49Sí.
00:02:50¿Open code?
00:02:50Anti-gravity.
00:02:51Oh, no son muchos.
00:02:52¿Alguien usa esto?
00:02:55Me caes bien.
00:02:56Nos tomaremos una cerveza luego.
00:02:58En fin, esto fue básicamente lo que pasó en 2025
00:03:03y antes.
00:03:04Empezó copiando y pegando de ChatGPT.
00:03:06Casi todo estaba roto.
00:03:07Eran sobre todo funciones sueltas, cosas que no quieres escribir.
00:03:10Luego tuviste GitHub Copilot dentro de tu Visual Studio
00:03:13Code, donde solo dabas tabulador tras tabulador hacia la felicidad,
00:03:15que a veces funcionaba, pero la mayoría de las veces no.
00:03:17A veces simplemente recitaba código GPL [INAUDIBLE],
00:03:22como la raíz cuadrada inversa de John Carmack
00:03:25y cosas así, lo cual era muy divertido.
00:03:29Y luego estaba Aider.
00:03:30¿Alguien recuerda a Aider?
00:03:31Sí.
00:03:32Gente vieja.
00:03:33Hola.
00:03:33Sí.
00:03:37Tienes canas.
00:03:37Obviamente conoces a Aider.
00:03:41También estaba AutoGPT.
00:03:43Probablemente no muchos.
00:03:44Sí, vale.
00:03:45Él conoce todas las cosas.
00:03:48Y finalmente llegó Cloud Code.
00:03:51Creo que lo lanzaron en noviembre,
00:03:52de hecho, como una beta en 2024.
00:03:55Pero realmente solo empezó a usarse más, ¿perdón?
00:03:59Solo en febrero.
00:04:01Sí, febrero, marzo, algo así, de 2025.
00:04:03Y yo estaba como: "me encanta".
00:04:05Es increíble.
00:04:06El equipo de Cloud también es increíble.
00:04:07Están en las redes sociales.
00:04:08Y son todos muy buena gente y muy talentosos.
00:04:13Y básicamente crearon todo el género.
00:04:15Sé que hubo precursores como Aider y AutoGPT,
00:04:18pero nada hacía esto.
00:04:20Y esto era básicamente todo el asunto de la búsqueda agéntica.
00:04:22Así que en lugar de que Cursor entre en tu base de código,
00:04:25indexe cosas, construya ASTs e indexe eso también.
00:04:29Y que no acabe de funcionar muy bien.
00:04:31Ellos simplemente dijeron: "bah".
00:04:33Entrenamos nuestros modelos por refuerzo
00:04:35para que simplemente usen herramientas de archivos, herramientas de bash,
00:04:37para explorar tu base de código ad hoc y encontrar los lugares que
00:04:41necesita encontrar para entender el código y luego modificarlo.
00:04:44Y esto funcionó tan bien que, sí, nosotros
00:04:46dejamos de dormir porque de repente
00:04:48podíamos producir mucho más código del que podíamos antes a mano.
00:04:52En aquel entonces, era simple y predecible
00:04:54y realmente se adaptaba perfectamente a mi flujo de trabajo.
00:04:57Bien.
00:04:58Pero luego cayeron en la trampa en la que la mayoría
00:05:05de nosotros probablemente cae.
00:05:06Los "clankers" pueden escribir tanto código.
00:05:08¿Por qué no dejar que escriban todas las funciones que puedas
00:05:11imaginar, verdad?
00:05:11¿No es genial?
00:05:12Vamos a añadir esta función, y esta otra,
00:05:14y esta, y aquella.
00:05:15Y al final, terminas con lo de Homer Simpson...
00:05:18ni siquiera sé cómo se llama.
00:05:20Yo lo llamo una nave espacial.
00:05:21Y Cloud Code es ahora una nave espacial.
00:05:23Hace tantas cosas que probablemente solo
00:05:26uses como el 5% de lo que ofrece.
00:05:28Solo conoces alrededor del 10% en total.
00:05:30Y el resto, el 90% que queda,
00:05:33es algo así como la materia oscura de la IA y los agentes.
00:05:36Nadie sabe qué está haciendo en realidad.
00:05:37Y personalmente, creo que esto no es muy útil
00:05:40porque sigo pensando que de alguna manera necesitas
00:05:43saber lo que está haciendo el agente.
00:05:45Este tipo podría estar en desacuerdo hasta cierto punto.
00:05:49Y estamos aquí en TESOL, y a ellos también
00:05:51les gusta la gestión de contexto o la ingeniería de contexto,
00:05:54como lo hemos llamado.
00:05:55Y finalmente descubrí que Cloud Code no era
00:05:58una buena herramienta en lo que respecta a la observabilidad
00:06:01y a la gestión real de tu contexto.
00:06:04Luego también estaba esto.
00:06:06¿A quién le gusta esto de Cloud Code, como las inmensas
00:06:09cantidades de parpadeo inexplicable?
00:06:10Bueno, en realidad, sé cómo explicarlo y por qué sucede,
00:06:13pero todavía no lo han arreglado.
00:06:15Aquí está Tarik.
00:06:16Él es realmente genial.
00:06:16Lo adoro.
00:06:17Es su responsable de relaciones con desarrolladores, sobre todo en Twitter, y es increíble.
00:06:21Pero a veces también dice cosas cuestionables
00:06:24como: "nuestra interfaz de usuario de terminal es ahora un motor de juego".
00:06:27Ahora, tienen que saber que tengo formación en desarrollo de juegos.
00:06:30De ahí es de donde vengo.
00:06:31Y si leo algo como esto,
00:06:32entonces me duele un poco
00:06:34porque es una maldita interfaz de usuario de terminal, tío.
00:06:37No es un motor de juego.
00:06:38Créeme.
00:06:39La única razón por la que crees que es un motor de juego
00:06:41es porque estás usando React en tu interfaz de terminal,
00:06:44y tarda unos 12 milisegundos
00:06:45en volver a trazar todo el grafo de tu interfaz de usuario.
00:06:49Simplemente no hagas eso, hombre.
00:06:51No es un motor de juego, ¿vale?
00:06:54Entonces Mitchell, que está escribiendo Ghosty,
00:06:56estaba como: "tío, eso es ofensivo".
00:06:59Como, no le eches la culpa a Ghosty ni a ninguna otra terminal.
00:07:02Tu código es basura.
00:07:04Las terminales pueden renderizar a cientos
00:07:05de fotogramas por segundo, sub-milisegundos por fotograma.
00:07:09Así que no hagas eso, ¿vale?
00:07:12Y finalmente arreglaron el parpadeo.
00:07:15Pero luego pasaron otras cosas.
00:07:16Es como si se hubieran rendido totalmente a la "programación por sensaciones".
00:07:20Y puedes sentirlo cada día cuando usas Cloud Code.
00:07:23Ahora bien, de nuevo, no quiero menospreciar sus esfuerzos
00:07:27ni sus resultados.
00:07:28Cloud Code sigue siendo el líder de la categoría por una buena razón.
00:07:30Ellos inventaron esto y están haciendo un gran trabajo.
00:07:32Yo, personalmente, solo soy una persona mayor
00:07:34a la que le gustan las herramientas sencillas y predecibles.
00:07:37Y esto simplemente ya no encajaba con mis flujos de trabajo ni mis necesidades.
00:07:41Así que, sí.
00:07:42Además, hacen un montón de cosas en segundo plano,
00:07:44manipulando tu contexto.
00:07:46Construí un par de herramientas en el verano de 2025
00:07:50que me permitirían interceptar las peticiones que se hacían
00:07:52a su servidor desde Cloud Code y descubrir
00:07:55qué tipo de pequeño texto adicional
00:07:58se inyecta en tus contactos a tus espaldas.
00:08:00Y todo eso era muy perjudicial
00:08:01y también cambiaba todo el tiempo.
00:08:04Como cada día o cada dos días, habría
00:08:06habría una nueva versión donde cambiaba lo que
00:08:08se inyectaba y en qué punto, lo que básicamente arruinaba
00:08:11tus flujos de trabajo existentes.
00:08:13Simplemente no era una herramienta estable.
00:08:14Y ahora lo entiendo desde su perspectiva.
00:08:16Necesitan experimentar.
00:08:17Y tienen una base de usuarios enorme.
00:08:18Y es muy difícil experimentar
00:08:19cuando tienes una base de usuarios tan grande.
00:08:21Pero no les importó.
00:08:23Así que todos tuvimos que sufrir.
00:08:25Estás trabajando con esta herramienta nueva.
00:08:27Intentas crear flujos de trabajo predecibles.
00:08:31Y luego el proveedor de la herramienta cambia algo insignificante
00:08:35internamente que hace que el LLM se vuelva
00:08:36loco con tus flujos de trabajo actuales.
00:08:38Eso simplemente no es sostenible.
00:08:39Necesito tener control sobre eso.
00:08:40No puedo confiar en que me proporcionen algo estable.
00:08:46Así que creo que, como consecuencia del diseño de la IU,
00:08:52necesitan reducir la cantidad de visibilidad que tienes.
00:08:54Personalmente no me gusta mucho eso.
00:08:56Pero es solo una preferencia personal.
00:08:57Entiendo que la mayoría de la gente
00:08:58estará contenta con la cantidad de información
00:09:00que Cloud Code te presenta.
00:09:03Hay cero elección de modelo, obviamente,
00:09:06porque es una herramienta nativa de Anthropic, por así decirlo.
00:09:09Eso no es la desventaja, porque los modelos de Claude son—
00:09:12Me gustan.
00:09:13Son realmente buenos.
00:09:15Y hay casi cero extensibilidad.
00:09:17Y podrías encontrar esto algo gracioso, porque
00:09:19tienen todo este sistema de ganchos y todo eso.
00:09:21Pero si lo comparas con lo que Pi te permite hacer,
00:09:25no está tan profundamente integrado.
00:09:28Básicamente se basa en ejecutar un proceso cuando
00:09:32comienza el evento del gancho, lo cual es muy costoso si
00:09:36tienes que iniciar ese proceso una y otra vez.
00:09:40Así que eventualmente, me desencanté de Cloud Code,
00:09:42no porque fuera terrible.
00:09:44Es solo que dejó de encajar conmigo.
00:09:47Encajó con mucha más gente durante ese período.
00:09:50Así que obviamente están haciendo las cosas bien, pero no para mí,
00:09:54porque soy viejo.
00:09:56Entonces estuve buscando opciones.
00:09:59Y está Codex CLI, que realmente no me gustó.
00:10:01Al principio, tanto la interfaz de usuario como el modelo,
00:10:05eso ha cambiado, al menos con respecto al modelo.
00:10:08Codex es realmente bastante bueno ahora.
00:10:10Luego está AMP.
00:10:12El equipo detrás de eso solía trabajar en Sourcegraph.
00:10:15Se separaron de Sourcegraph.
00:10:20Y son ingenieros súper buenos.
00:10:21Lograron construir un entorno de codificación comercial donde
00:10:25quitan funciones en lugar de añadirlas.
00:10:28Y la mayoría de sus elecciones tienen mucho sentido para mí.
00:10:33Así que sí, si buscas un entorno de codificación comercial,
00:10:36definitivamente te recomendaría AMP, porque es muy bueno.
00:10:39Factory Troye, un estilo similar, también muy bueno,
00:10:44aunque no son tan experimentales como AMP.
00:10:47Y luego está OpenCode, que es el entorno de codificación
00:10:50de código abierto que mucha gente usa.
00:10:53Tengo una historia con el código abierto.
00:10:55He estado en el código abierto durante, bueno, 17 años.
00:11:00He gestionado proyectos de código abierto grandes y pequeños.
00:11:04Así que es algo muy cercano a mi corazón.
00:11:05Y pensé, voy a darle una oportunidad a OpenCode,
00:11:08porque me resulta familiar.
00:11:12Y junto a AMP, tienen uno de los equipos más realistas
00:11:15o pragmáticos en este ámbito.
00:11:16No te venden humo con funciones
00:11:18que probablemente nunca uses.
00:11:20Intentan conservar un camino principal que sea
00:11:23muy estable.
00:11:26Y también tienen reflexiones bastante buenas
00:11:27sobre lo que significan los agentes de código para nosotros
00:11:29como profesión, con lo cual me identifico personalmente.
00:11:32El problema con OpenCode es que tampoco es muy bueno
00:11:37gestionando tu contexto.
00:11:38Por ejemplo, en cada turno, llama a sessionCompaction.prune,
00:11:44que hace lo siguiente.
00:11:46Elimina todos los resultados anteriores a los últimos 40,000 tokens.
00:11:52Ahora, ¿quién aquí sabe qué es el almacenamiento en caché de prompts?
00:11:56¿Qué le hace esto a tu caché de prompts?
00:11:58OpenCode y Anthropic tuvieron una historia interesante.
00:12:05Y eventualmente, Anthropic, en mi opinión, con razón,
00:12:11dijo: amigos, eso simplemente no va a pasar.
00:12:14Y nunca hubo algo público sobre esto.
00:12:17Pero Tarek lo explica aquí.
00:12:19Si vienes a un gimnasio y no te comportas y abusas
00:12:22de la infraestructura, por así decirlo, te van a expulsar.
00:12:25Y creo—
00:12:27No tengo ninguna evidencia de ello,
00:12:28pero creo que esa es la razón por la que
00:12:30existe esta animosidad entre Anthropic y OpenCode.
00:12:33Y estoy totalmente de acuerdo, o al menos
00:12:36creo que Anthropic tiene claramente la razón aquí.
00:12:39No juegues con la infraestructura.
00:12:42Luego hay otras cosas, como que OpenCode
00:12:44viene con soporte para LSP, Protocolo de Servidor de Lenguaje,
00:12:46de fábrica.
00:12:48Volviendo a la ingeniería de contexto,
00:12:51digamos que le das a tu agente la tarea
00:12:53de modificar un montón de archivos.
00:12:55¿Qué significa eso en la práctica?
00:12:57Hará un montón de ediciones, una tras otra,
00:13:02en un montón de archivos.
00:13:03¿Qué probabilidad hay de que tras la primera edición, de 10 ediciones,
00:13:09por así decirlo, el código compile?
00:13:12¿Qué pasa si modificas tu código línea por línea?
00:13:15¿Cuánto tarda en estabilizarse de nuevo
00:13:17y en que compile limpiamente?
00:13:19No lo hace.
00:13:20No compilará tras la primera edición, probablemente ni
00:13:22tras la segunda, y así sucesivamente.
00:13:24Así que si luego te das la vuelta y dices: oye, querido servidor LSP,
00:13:28acabo de editar una línea en este archivo.
00:13:30¿Está roto?
00:13:31Entonces el servidor LSP dirá: sí, está muy roto.
00:13:34Y lo que hace esta función es que luego
00:13:36inyecta este error directamente después de la llamada
00:13:39a la herramienta como una especie de feedback para el modelo.
00:13:43Oh, lo que acabas de hacer está mal.
00:13:45Y el modelo se queda como: ¿pero qué dices, tío?
00:13:47No he terminado de editar cosas.
00:13:49¿Por qué me dices esto?
00:13:50Obviamente no está mal.
00:13:51Pero si haces esto a menudo, el modelo simplemente se rendirá.
00:13:54Y eso lleva a resultados muy malos.
00:13:58Así que no soy fan de LSP.
00:13:59Creo que es una idea terrible tener eso activado.
00:14:02Hay puntos de sincronización naturales
00:14:03donde quieres tener linting y comprobación de tipos
00:14:06y todo eso.
00:14:07Y eso es cuando el agente cree que ha terminado, solo entonces.
00:14:10Esto ha cambiado recientemente.
00:14:14Esta es una sola sesión de OpenCode, donde cada mensaje
00:14:20se convierte en su propio archivo JSON.
00:14:22Cada mensaje individual se convierte en su propio archivo JSON en el disco.
00:14:26Eso me indica que no se puso mucho pensamiento
00:14:29en la arquitectura de todo el asunto.
00:14:31Y si pierdo la confianza en eso, ya no
00:14:33quiero usar esa herramienta.
00:14:35De nuevo, creo que el equipo es realmente bueno.
00:14:37Creo que iteraron súper rápido
00:14:39y construyeron algo súper útil para mucha gente, obviamente.
00:14:42Es solo que, de nuevo, decisiones que yo no habría tomado
00:14:43me hicieron decidir construir la mía propia.
00:14:46Luego también estaba esto.
00:14:50OpenCode viene con un servidor por defecto.
00:14:51Así que la arquitectura central se basa en un servidor.
00:14:54Y los clientes se conectan a él.
00:14:56Y la interfaz de usuario de terminal es uno de los clientes.
00:14:57También hay una interfaz de escritorio.
00:15:00Y no lo sé.
00:15:01Eso resultó ser una vulnerabilidad de seguridad
00:15:03con ejecución remota de código incluida por defecto.
00:15:05Y eso también— si estás tan orgulloso de tu infraestructura
00:15:09de servidor o arquitectura de servidor,
00:15:12entonces asumiría que son ingenieros maduros que
00:15:15pensaron también en la seguridad.
00:15:18Y aparentemente, eso no sucedió.
00:15:20Y esto estuvo abierto durante mucho tiempo.
00:15:21Y de nuevo, no estoy culpando a nadie aquí.
00:15:23Estas son cosas que simplemente pasan si estás
00:15:25trabajando en una industria que opera a una velocidad vertiginosa
00:15:27que no habíamos visto antes.
00:15:31Es solo que no quiero usar esa herramienta si eso pasa.
00:15:33Así que estas fueron mis observaciones con respecto a las referencias
00:15:36de codificación existentes.
00:15:42AMP y Droid habrían sido algo que podría haber usado.
00:15:42Pero de nuevo, sin control.
00:15:45En el caso de AMP, ellos incluso deciden qué modelos puedes usar.
00:15:47Y es solo un único modelo para un único tipo de tarea.
00:15:50Y ese no soy yo.
00:15:53En cuanto a Droid, creo que es un poco más abierto.
00:15:55Pero en el momento en que lo probé,
00:15:58simplemente no—
00:16:00no vi una gran ventaja sobre Cloud Code.
00:16:02Y luego miré los puntos de referencia por razones totalmente distintas
00:16:07y encontré Terminal Bench.
00:16:10¿Quién sabe qué es Terminal Bench?
00:16:12Vale, básicamente es un entorno de evaluación de codificación
00:16:15o de agentes, que tiene un montón de tareas relacionadas
00:16:20con el uso del ordenador y la programación—
00:16:24lo siento, viejo y cansado por mi hijo de 4 años.
00:16:24Tiene un montón de tareas de uso del ordenador y codificación
00:16:31que un agente o el LLM dentro de un entorno de agente
00:16:35debe cumplir.
00:16:39Creo que son unas 82 más o menos.
00:16:40Y son muy diversas.
00:16:43Van desde arreglar mi configuración de ventanas hasta programarme
00:16:44una simulación de Monte Carlo o algo así.
00:16:48Y tienen una tabla de clasificación.
00:16:51Y en esa tabla, ves la combinación
00:16:52de entorno del agente de código y modelo.
00:16:54Y tienen su propio agente de código llamado Terminus.
00:16:57Y creo que es brillante porque es
00:17:03uno de los entornos con mejor rendimiento en el benchmark.
00:17:06uno de los arneses con mejor rendimiento en el benchmark.
00:17:09Lo veremos más adelante.
00:17:11¿Qué hace exactamente?
00:17:12Bueno, todo lo que el modelo recibe es una sesión de TMUX.
00:17:17Y todo lo que puede hacer es enviarle pulsaciones de teclas
00:17:19y leer las secuencias de código VT que se emiten.
00:17:23Así que esta es como la interfaz más pequeña y mínima
00:17:27que un modelo puede tener con tu computadora.
00:17:31Y esto rinde al máximo nivel en toda la tabla de clasificación.
00:17:36¿Qué nos dice esto sobre los arneses de agentes de codificación actuales?
00:17:39¿Necesitamos todas estas funciones para que los modelos
00:17:41realmente funcionen?
00:17:43Para mí, personalmente, esto no se trata solo de que el modelo
00:17:48sea realmente bueno.
00:17:49También se trata de mí como usuario, el humano,
00:17:51teniendo una forma de interactuar con mi agente, con el modelo.
00:17:54Y Terminus obviamente no es la experiencia de usuario o de desarrollador
00:17:58que yo quiero.
00:18:00Pero nos dice que todas estas características que tienen
00:18:03estos arneses de codificación podrían no ser necesarias
00:18:08para obtener buenos resultados de los agentes.
00:18:10Sin herramientas de archivos, sin subagentes, sin búsqueda web, nada.
00:18:13Hay dos tesis basadas en todos estos hallazgos.
00:18:16Estamos en la etapa de experimentar y ver qué pasa.
00:18:18Y nadie tiene idea de cómo debería ser el agente de codificación perfecto
00:18:21o cómo debería ser el arnés de codificación perfecto.
00:18:23Estamos probando tanto el minimalismo como los enjambres de naves espaciales,” equipos de agentes, sin control y autonomía total
00:18:27y equipos de agentes, sin control y autonomía total
00:18:30y lo que sea.
00:18:31Creo que eso aún no ha terminado.
00:18:33No hemos respondido a la pregunta de cómo debería
00:18:35ser esto idealmente y qué se convertirá en el estándar
00:18:37de la industria.
00:18:38Y lo segundo es que necesitamos mejores formas
00:18:40de experimentar con agentes de codificación.
00:18:42Es decir, necesitamos que sean capaces de automodificarse
00:18:47y volverse maleables.
00:18:48Para que podamos experimentar rápidamente con ideas
00:18:50y ver si esto es algo que podemos convertir en un estándar
00:18:53de la industria, un nuevo flujo de trabajo que probablemente todos adaptaremos.
00:18:58Así que la idea básica era—
00:18:59y es muy simple, no es física cuántica—
00:19:01eliminar todo y construir un núcleo mínimo extensible.
00:19:05Hay algunas comodidades.
00:19:06No es una pizarra en blanco.
00:19:09Eso es Pi.
00:19:10Y el lema general es: adapta tu agente de codificación
00:19:13a tus necesidades en lugar de hacerlo al revés.
00:19:16Viene con cuatro paquetes, un paquete de IA, que es básicamente
00:19:21solo una simple abstracción sobre múltiples proveedores, los cuales
00:19:24todos hablan diferentes protocolos de transporte.
00:19:27Así que es muy fácil hablar con todos los proveedores
00:19:29y cambiar entre ellos en el mismo contexto o sesión.
00:19:34El núcleo del agente, que es solo un bucle de agente generalizado
00:19:36con ubicaciones de herramientas, verificación,
00:19:38y así sucesivamente. Y streaming,
00:19:39una interfaz de usuario de terminal
00:19:42que tiene unas 600 líneas de código y funciona realmente bien,
00:19:47sorprendentemente, porque no fue escrita por una máquina.
00:19:51Y el propio agente de codificación, que es tanto un SDK
00:19:54que puedes usar en modo sin interfaz
00:19:57o un agente de codificación con interfaz de usuario de terminal completa.
00:20:02Este es todo el prompt del sistema.
00:20:05No hay nada más ahí comparado con otros prompts
00:20:08del sistema de codificación.
00:20:10Eso es en tokens.
00:20:13Resulta que los modelos de vanguardia están fuertemente entrenados por RL
00:20:16para saber qué es un agente de codificación.
00:20:18Entonces, ¿por qué sigues diciéndoles que son un agente de codificación
00:20:21y cómo deben hacer las tareas de codificación, verdad?
00:20:27YOLO por defecto, ¿por qué es eso?
00:20:30La mayoría de los arneses de agentes de codificación tienen dos modos.
00:20:33O el agente puede hacer lo que quiera
00:20:36o el agente llega a preguntarte, "¿realmente
00:20:40quieres borrar este archivo?".
00:20:41¿Realmente quieres listar los archivos en este directorio?,
00:20:44y así sucesivamente.
00:20:44Y hay diferentes matices de gris aquí.
00:20:47Pero al final del día, todo se reduce a que el usuario
00:20:49necesita aprobar una acción del agente.
00:20:52Y entonces estamos seguros.
00:20:53Y creo que eso está mal porque lleva a la fatiga.
00:20:55Y la gente o bien lo apagará por completo, modo YOLO,
00:20:58o simplemente se sentará ahí y pulsará enter sin leer nada.
00:21:01Así que no creo que esa sea la solución.
00:21:02La contenedorización tampoco es una solución
00:21:04si te preocupa la filtración de datos
00:21:06y las inyecciones de prompts.
00:21:07Pero creo que eso es lo único que tú—
00:21:10Creo que esa es la mejor base comparada con las barandillas
00:21:14como la aprobación o los diálogos.
00:21:17Solo tiene cuatro herramientas: leer un archivo, escribir un archivo,
00:21:19editar un archivo y Bash.
00:21:21Bash es todo lo que necesitas.
00:21:22¿Qué no hay ahí?
00:21:23Ni MCP, ni subagentes, ni plan, ni fondo,
00:21:25Bash, ni tareas pendientes integradas.
00:21:26Esto es lo que puedes hacer en su lugar.
00:21:28Para MCP, usa herramientas CLI más habilidades,
00:21:30o construye una extensión, que veremos en un momento.
00:21:34¿Por qué no hay subagentes?
00:21:35Porque no son observables.
00:21:36En su lugar, usa tmux y genera el agente de nuevo.
00:21:41Tienes control total sobre las entradas y salidas del agente
00:21:44y puedes ver todo lo que está sucediendo en el subagente.
00:21:48Curiosamente, el modo de equipo
00:21:50de code spawn ahora hace exactamente esto también, básicamente.
00:21:55Sin modo de plan, escribe un archivo plan.md.
00:21:57Tienes un artefacto persistente en lugar
00:21:59de alguna interfaz de usuario mediocre que realmente no
00:22:02encaja en el visor de tu terminal.
00:22:04Y puedes reutilizarlo en múltiples sesiones.
00:22:07No hace falta Bash en segundo plano, tenemos tmux.
00:22:09Es lo mismo.
00:22:11Y nada de tareas integradas, escribe un todo.md.
00:22:13Lo mismo.
00:22:14O construye todo esto tú mismo como más te guste.
00:22:17Y esto es lo que permite Py, al ser súper extensible.
00:22:21Así que puedes extender las herramientas, personalizarlas.
00:22:22Puedes darle al LLM las herramientas que tú definas.
00:22:26Creo que ningún otro arnés de agente de codificación
00:22:28ofrece eso actualmente, a menos que hagas un fork de open code.
00:22:31Aquí no necesitas hacerlo.
00:22:32Solo escribes un archivo TypeScript simple,
00:22:34y se carga automáticamente.
00:22:37También puedes escribir una interfaz de usuario personalizada.
00:22:39Las habilidades están obviamente en sus plantillas de prompts, temas.
00:22:43Y puedes empaquetar todo eso, subirlo a NPM o Git,
00:22:46e instalarlo con un solo comando, lo cual es genial.
00:22:49Y todo se recarga en caliente.
00:22:51Así que desarrollo mis propias extensiones que
00:22:53son específicas para un proyecto o tarea en Py dentro del proyecto.
00:22:59Y a medida que el agente modifica la extensión, simplemente recargo.
00:23:05E inmediatamente actualiza todo el código en ejecución,
00:23:10lo cual es muy agradable.
00:23:11Y en la práctica, eso significa que puedes hacer compactación personalizada.
00:23:14Creo que es una de las cosas con las que la gente debería experimentar
00:23:16más, porque todas las implementaciones de compactación
00:23:19actuales no son buenas.
00:23:21Puertas de permiso, puedes implementarlas fácilmente
00:23:23en 50 líneas de código, y cubrir
00:23:24lo que hacen todos los demás arneses de agentes si quieres eso.
00:23:27Proveedores personalizados, registra proxies de modelos autoalojados.
00:23:31No me importa.
00:23:32No necesitas que yo haga esto por ti.
00:23:33Puedes hacerlo tú, y de hecho, tu IA puede hacerlo por ti.
00:23:37O sobrescribe cualquier herramienta integrada.
00:23:38Modifica cómo funcionan leer, escribir, editar y bash.
00:23:41No me importa.
00:23:42Tengo una versión de leer, escribir, editar y bash
00:23:43que funciona a través de SSH en una máquina remota.
00:23:47A mí me tomó cinco minutos implementarlo, pero funciona.
00:23:51Y tienes acceso completo a la TUI, así que puedes
00:23:54escribir una interfaz de usuario totalmente personalizada en el agente.
00:23:58Cloud Code Shipped—por cierto, a alguien le tomó cinco minutos
00:24:02replicar eso en Py con más funciones.
00:24:05PyMessenger, no tengo idea de lo que está haciendo,
00:24:07pero al parecer, es como una sala de chat para múltiples agentes Py
00:24:10que se comunican, y que luego tiene una interfaz personalizada.
00:24:13Podemos mirar lo que están haciendo, y sí, simplemente funciona.
00:24:18O PyMess, si estás aburrido, simplemente juega a algo
00:24:23mientras el agente se está ejecutando, ¿verdad?
00:24:24Puedes hacerlo.
00:24:25O PyAnnotate, abre el sitio web
00:24:28en el que estás trabajando actualmente, y anota cosas en el front end,
00:24:31y dale feedback al agente directamente en línea.
00:24:35Devuélvelo al contexto, haz que modifique la cosa.
00:24:39O algo que yo uso es File Switch It.
00:24:42No quiero cambiar a un IDE o editor.
00:24:43Solo quiero ver rápidamente el archivo que ha sido modificado.
00:24:46Así que todo esto son extensiones.
00:24:48Nada de esto está integrado, y a la gente le toma
00:24:50normalmente unos minutos o una tarde
00:24:52construir todo esto de la manera que ellos quieren.
00:24:56PyWavic dice, tampoco sé lo que está haciendo.
00:25:00Py también viene con estructura de árbol.
00:25:01No voy a explicar eso.
00:25:03Simplemente miren py.dev.
00:25:04Tu sesión es un árbol, no una lista lineal de chats.
00:25:07Así que básicamente puedes crear subagentes
00:25:09leyendo todos los archivos del directorio,
00:25:11resumir esto, volver a la raíz de mi conversación,
00:25:14llevarme el resumen y hacer el trabajo real.
00:25:19Nada se inyecta a tus espaldas.
00:25:22Agentes, habilidades, seguimiento de costos completo.
00:25:24Muchos arneses no hacen esto aquí.
00:25:26Open code no lo hace bien.
00:25:29Exportación HTML, formato JSON, flujo JSON sin interfaz, etc.
00:25:33¿Realmente funciona?
00:25:34Bueno, terminal bench.
00:25:35Déjenme hacer zoom aquí.
00:25:36No puedo.
00:25:37Esto es increíble.
00:25:38Aquí está Py justo detrás de Terminus 2 usando Claude Opus 4.5.
00:25:45Eso fue en octubre, cuando Py ni siquiera tenía compactación.
00:25:49Tiempo de demo, saltándome eso, directo contra las máquinas
00:25:51porque están rompiendo el código abierto.
00:25:54Si estás asociado con el proyecto de estos tipos,
00:25:56entonces tendrás a cientos de personas viniendo de OpenClaw
00:26:02a tu repositorio y bombardeándote con spam de máquinas.
00:26:06Así que tuve que inventar un par de medidas.
00:26:09Inventé las "vacaciones de OSS".
00:26:11Simplemente cerré los problemas y los PR por un par de semanas
00:26:14y trabajé en las cosas por mi cuenta.
00:26:16Cualquier cosa que sea importante será reportada más tarde de todos modos
00:26:20o en el Discord.
00:26:21Y luego también implementé un esquema de acceso personalizado
00:26:26donde tengo un archivo markdown en el repositorio.
00:26:28Si alguien abre un PR sin que su nombre de usuario
00:26:32esté en ese archivo markdown, el PR se cierra automáticamente.
00:26:34No me importa.
00:26:35Primero, preséntate con voz humana a través de un ticket.
00:26:39Escribe un ticket que no sea más largo que la pantalla,
00:26:42porque probablemente todo lo demás sea generado por IA.
00:26:45Y una vez que hagas eso, estaré encantado de revisarlo.
00:26:47Así entras en ese archivo y ahora puedes enviar PRs
00:26:50al repositorio.
00:26:51Todo lo que pido es verificación humana.
00:26:53Y Mitchell de Ghosty luego tomó esto y construyó
00:26:57un proyecto llamado Vouch, que es más fácil de aplicar
00:27:00a tus propios repositorios de código abierto.
00:27:02Y eso es Py.
00:27:03Adelante, pruébenlo.
00:27:05Eso es todo por mi parte.
00:27:06[APLAUSOS]
00:27:07[MÚSICA]

Key Takeaway

Pi elimina la complejidad de los agentes de programación tradicionales mediante un núcleo mínimo extensible que prioriza la observabilidad total y el control del usuario sobre el contexto y las herramientas.

Highlights

Los agentes de programación actuales como Cloud Code inyectan prompts ocultos y cambian el contexto arbitrariamente, arruinando flujos de trabajo predecibles.

El benchmark Terminal Bench demuestra que una interfaz mínima de TMUX rinde mejor que entornos complejos con múltiples herramientas y subagentes.

Pi utiliza un prompt de sistema extremadamente reducido bajo la premisa de que los modelos modernos ya están entrenados mediante RL para ser agentes de código.

La arquitectura de Pi permite la recarga en caliente (hot-reload) de extensiones escritas en TypeScript para modificar el comportamiento del agente en tiempo real.

El sistema 'Vouch' combate el spam de Pull Requests generados por IA exigiendo una verificación humana previa en un archivo markdown del repositorio.

Timeline

Evolución y degradación de los agentes de programación

  • La programación con IA evolucionó desde el copiado manual de ChatGPT en 2023 hasta agentes autónomos en 2025.
  • Cloud Code popularizó la búsqueda agéntica mediante herramientas de archivos y bash en lugar de indexación estática.
  • El exceso de funciones innecesarias convirtió a los agentes líderes en herramientas complejas donde el usuario solo entiende el 10% de su funcionamiento.

La transición desde simples funciones sugeridas por Copilot hacia agentes que exploran la base de código permitió aumentar la producción de software. Sin embargo, esta evolución derivó en interfaces saturadas y procesos de 'materia oscura' donde ni los desarrolladores saben exactamente qué está haciendo la IA en segundo plano. Esta complejidad innecesaria genera una pérdida de control sobre el entorno de desarrollo.

Inestabilidad y falta de observabilidad en herramientas comerciales

  • Las interfaces de terminal basadas en React causan parpadeos y retrasos de hasta 12 milisegundos en el renderizado.
  • Los proveedores de herramientas modifican el contexto del usuario en secreto mediante inyecciones de texto en las peticiones al servidor.
  • La falta de estabilidad en los prompts internos impide la creación de flujos de trabajo profesionales y predecibles.

El uso de frameworks pesados como React en interfaces de línea de comandos degrada el rendimiento en comparación con motores de terminal nativos. A esto se suma que empresas como Anthropic manipulan el contexto del usuario sin previo aviso, lo que provoca que el modelo actúe de forma errática tras actualizaciones menores. Esta opacidad obliga al usuario a adaptarse a la herramienta en lugar de que la herramienta sea un instrumento fiable.

Crítica técnica a las arquitecturas de código abierto existentes

  • OpenCode reduce el rendimiento del caché de prompts al podar sesiones de forma agresiva cada 40,000 tokens.
  • La integración constante con servidores LSP inyecta errores de compilación prematuros que confunden al modelo de lenguaje.
  • La arquitectura basada en servidor de algunos agentes de código abierto introdujo vulnerabilidades de ejecución remota de código por defecto.

Existen fallos de diseño fundamentales en proyectos abiertos, como la creación de un archivo JSON individual para cada mensaje en el disco, lo que indica debilidad arquitectónica. El uso de Language Server Protocol (LSP) durante el proceso de edición es contraproducente, ya que el modelo recibe feedback de error antes de terminar su tarea. Además, se identificaron brechas de seguridad críticas derivadas de una gestión inmadura de la infraestructura de red.

Filosofía y capacidades técnicas de Pi

  • Pi prescinde de subagentes y planes integrados en favor de herramientas estándar como tmux y archivos markdown.
  • El agente opera con solo cuatro herramientas fundamentales: leer, escribir, editar y ejecutar Bash.
  • El sistema es totalmente maleable a través de extensiones de TypeScript que se cargan sin reiniciar la sesión.

Pi se basa en el minimalismo funcional, utilizando artefactos persistentes como 'plan.md' o 'todo.md' en lugar de menús de interfaz propietarios. Al no inyectar información oculta, el desarrollador tiene control absoluto sobre el consumo de tokens y la visibilidad de los procesos. Esta estructura permite que el usuario defina sus propias puertas de permiso o proxies de modelos según sus necesidades específicas de seguridad y coste.

Extensiones comunitarias y protección contra el spam de IA

  • La comunidad ha desarrollado extensiones para anotar el front-end en el navegador y devolver el feedback al contexto del agente.
  • Pi organiza las sesiones de chat como estructuras de árbol en lugar de listas lineales para facilitar la gestión de tareas paralelas.
  • El acceso a los repositorios de código abierto de Pi requiere una validación humana previa para filtrar contribuciones automáticas de baja calidad.

La extensibilidad de Pi ha permitido crear herramientas como PyAnnotate para diseño visual y sistemas de chat entre múltiples agentes. Para mitigar el bombardeo de spam generado por otros agentes de IA en GitHub, se implementó un sistema de acceso basado en tickets escritos por humanos. El rendimiento de Pi en Terminal Bench, situándose justo detrás de los modelos de referencia de Anthropic, valida que un enfoque minimalista es superior a las soluciones sobrecargadas.

Community Posts

View all posts