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]