Mas leido
Building Stories
Modo Rua: Redefiniendo el desarrollo de aplicaciones mediante iteración centrada en el usuario Ago 23
Building Stories
NuStories: Adaptación de productos para clientes fanáticos en varios países Oct 30
Culture & Values
Cómo los valores y la cultura de Nu dan forma a los productos que creamos Ago 7
Carreras
Reunimos a grandes mentes de diversos orígenes que permiten la discusión y el debate y mejoran la resolución de problemas.
Conoce más sobre nuestras carreras



Durante Clojure South, Marlon Silva, Ingeniero de Software Senior en Nubank, compartió su perspectiva sobre un desafío recurrente para los ingenieros que trabajan con IA hoy en día: cómo ir más allá del uso de asistentes de IA y comenzar a desarrollar agentes de IA confiables y orientados a tareas.
Según Marlon, la industria ha facilitado cada vez más el consumo de IA (las API, los copilotos y los asistentes están en todas partes), pero construir sistemas potenciados por IA todavía requiere que los ingenieros tomen una serie de decisiones de bajo nivel que a menudo resultan incómodas. En su charla, se enfocó en desmitificar esas decisiones, planteando la IA no como una ″caja negra″, sino como infraestructura e integraciones sobre las cuales se debe razonar explícitamente.
En lugar de presentar un nuevo framework o una capa de abstracción, Marlon recorrió las elecciones arquitectónicas que considera más importantes al construir agentes en la práctica, y explicó por qué Clojure ofrece una base particularmente sólida para explorar este espacio.
La infraestructura primero: el lugar donde residen tus modelos importa
Marlon comenzó argumentando que cualquier iniciativa seria de IA empieza con la infraestructura; específicamente, con la forma en que los equipos acceden a los modelos. Aunque esta decisión suele tratarse como un detalle de implementación, enfatizó que impacta directamente en la escalabilidad, la experimentación, la seguridad y la integración con los sistemas existentes.
Desde su perspectiva, los ingenieros suelen enfrentarse a dos opciones:
Según Marlon, cuando los equipos operan dentro de una organización, lo más pragmático es usar los modelos que ya están disponibles a través de sus proveedores de nube. Esto elimina la carga administrativa de adquisición (procurement) y permite que los ingenieros se concentren en construir sistemas en lugar de gestionar proveedores.
Descubre las oportunidades
El problema de la fragmentación: demasiadas API
Una vez establecido el acceso a los modelos, Marlon señaló un segundo problema inevitable: la fragmentación de las API. Cada proveedor expone diferentes formatos de solicitud, parámetros y SDK, lo que complica rápidamente el desarrollo y encarece la experimentación.
En su charla, Marlon describió esta fragmentación como uno de los primeros puntos de dolor en el escalamiento que encuentran los equipos cuando la IA va más allá de un simple script o una prueba de concepto.
Para abordar esto, presentó a LiteLLM como una capa de unificación práctica. LiteLLM es un proxy que estandariza el acceso a múltiples modelos y proveedores bajo una sola API, independientemente de dónde esté alojado el modelo.
Marlon destacó tres beneficios concretos de este enfoque:
Desde la perspectiva de Marlon, este tipo de proxy no es una optimización: se convierte en infraestructura fundamental tan pronto como la IA forma parte de un sistema real.
Por qué los modelos más pequeños suelen funcionar mejor para los agentes
Marlon desafió luego una suposición común en el ámbito de la IA: que los modelos más grandes siempre son mejores.
Para los agentes de IA orientados a tareas, argumentó que esto rara vez es cierto. Citando investigaciones recientes de Nvidia, Marlon explicó que los Modelos de Lenguaje Pequeños (SLM, por sus siglas en inglés) suelen adaptarse mejor a agentes diseñados para ejecutar acciones específicas y bien definidas.
Según él, las amplias capacidades de generalización de los grandes LLM —modelos capaces de escribir ensayos o prosa extensa— son innecesarias para la mayoría de las cargas de trabajo de los agentes. Usarlos en estos contextos genera un desperdicio de capacidad, costos más altos y una mayor complejidad.
Marlon detalló varias ventajas prácticas de los SLM:
Para Marlon, elegir SLM no es un sacrificio, sino una decisión de ingeniería alineada con los requisitos reales de los sistemas basados en agentes.
Por qué Clojure encaja en este espacio de problemas
A partir de ahí, Marlon cambió el enfoque hacia las herramientas. Explicó que el desarrollo de IA es inherentemente experimental: los prompts cambian, los parámetros se ajustan, los modelos se intercambian y las suposiciones se ponen a prueba constantemente. En ese contexto, los ciclos de retroalimentación (feedback loops) del desarrollador son fundamentales. Aquí es donde Clojure destaca.
Marlon describió a Clojure como un lenguaje ergonómico, no solo por su sintaxis, sino por su modelo de desarrollo impulsado por el REPL. La capacidad de evaluar funciones de forma incremental, inspeccionar resultados de inmediato e iterar sin reiniciar la aplicación cambia fundamentalmente la forma en que los ingenieros exploran los espacios de problemas.
En su experiencia, este flujo de trabajo interactivo se alinea estrechamente con la forma en que se construyen y perfeccionan los sistemas de IA. Más allá del REPL, Marlon destacó dos ventajas de interoperabilidad:
Para Marlon, esta combinación convierte a Clojure en una capa de orquestación robusta para sistemas de IA que necesitan integrarse con múltiples ecosistemas.
De la teoría a la práctica: la demostración en vivo
Para concretar estas ideas, Marlon realizó una demostración en vivo. Comenzó con scripts sencillos en Python que enviaban texto, imágenes y archivos PDF a modelos alojados en Bedrock a través de un proxy local de LiteLLM. Estos ejemplos establecieron una base utilizando herramientas familiares.
Luego, reprodujo los mismos flujos de trabajo en Clojure, importando el paquete de Python LiteLLM directamente en el entorno de ejecución (runtime) de Clojure. Las funciones de Python se llamaban desde el código de Clojure, gestionando las entradas y salidas de forma interactiva.
Según Marlon, la parte más importante de la demostración no fue que este enfoque funcione, sino cómo cambia la experiencia de desarrollo. Los flujos de trabajo basados en Python suelen requerir cambios de contexto frecuentes: editar archivos, ejecutar scripts y reiniciar procesos. Con Clojure y el REPL, todo el ciclo de retroalimentación permanece dentro del editor.
Para dominios exploratorios como la IA, Marlon argumentó que esta diferencia se traduce directamente en una iteración más rápida y un enfoque más profundo.
Conclusión
Marlon cerró enfatizando que los agentes de IA siguen siendo un campo joven y en rápida evolución. Las bibliotecas, arquitecturas y mejores prácticas aún están cambiando, lo que hace que la flexibilidad sea un requisito clave.
También ofreció una nota de advertencia: otorgar a los modelos una autonomía excesiva sin límites y controles claros puede dar lugar a sistemas frágiles. En su opinión, los frameworks que favorecen un flujo de control oscuro y dependen principalmente del propio LLM fomentan un enfoque de ″lanzar y rezar″ (ship and pray) en el desarrollo de IA. Al mismo tiempo, Marlon señaló que están surgiendo activamente nuevas arquitecturas de agentes desde grupos de investigación en organizaciones como Nvidia y DeepMind, lo que indica que aún quedan cambios significativos por delante.
Su conclusión fue pragmática: combinar una infraestructura bien elegida, modelos dimensionados para el problema y herramientas que favorezcan la exploración crea una base sólida para construir sistemas de IA fundamentados en la disciplina de la ingeniería. El repositorio compartido durante la charla sirve como punto de partida para los ingenieros interesados en continuar con esa exploración.
Small Language Models are the Future of Agentic AI
AlphaEvolve: A coding agent for scientific and algorithmic discovery
GitHub – marlonjsilva/clj-agents
GitHub – clj-python/libpython-clj
Descubre las oportunidades