- Octomind usa agentes de IA para generar y corregir automáticamente pruebas end-to-end en Playwright.
- Al principio usaban el framework LangChain, pero con el tiempo el alto nivel de abstracción de LangChain empezó a causar problemas.
Problemas de LangChain
- La abstracción de LangChain fue útil al inicio, pero a medida que aparecieron requisitos más complejos, se volvió difícil entender y mantener el código.
- Entender la estructura interna de LangChain y depurarla consumía mucho tiempo.
- Por ejemplo, incluso en código que solo traduce una palabra sencilla del inglés al italiano, usar LangChain aumenta la complejidad.
El problema de la abstracción en LangChain
- LangChain superpone varias abstracciones, lo que incrementa la complejidad del código.
- Estas abstracciones dificultan la comprensión y la depuración del código.
- Por ejemplo, incluso en una tarea simple como traer datos JSON desde una API, usar LangChain aumenta la complejidad.
Impacto en el equipo de desarrollo
- Al intentar implementar una arquitectura de agentes compleja, LangChain terminó actuando como una limitación.
- Después de eliminar LangChain, pudieron programar con libertad según sus necesidades.
¿Hace falta un framework para construir aplicaciones de IA?
- LangChain fue útil al principio, pero a largo plazo habría sido mejor desarrollar sin un framework.
- La mayoría de las aplicaciones de IA pueden implementarse suficientemente con código simple y algunos paquetes externos.
- Recomiendan un enfoque simple hasta que se establezcan patrones de uso para agentes.
Desarrollo rápido y conciso con bloques de construcción modulares
- Los frameworks imponen una estructura, pero las aplicaciones de IA todavía no tienen patrones de uso establecidos.
- El enfoque de bloques de construcción modulares prefiere código simple de bajo nivel y acelera el desarrollo.
- Usan componentes modulares, como bases de datos vectoriales, para mantener una base de código concisa y adaptable.
Opinión de GN⁺
- Límites de LangChain: el alto nivel de abstracción de LangChain puede ser útil al principio, pero cuando aparecen requisitos complejos puede convertirse en un obstáculo.
- Ventajas del enfoque modular: el enfoque de bloques de construcción modulares facilita la comprensión y el mantenimiento del código, y acelera el desarrollo.
- Replantear la necesidad de frameworks: no todas las aplicaciones de IA necesitan un framework, y muchas pueden implementarse suficientemente con código simple y paquetes externos.
- Importancia de la velocidad de desarrollo: en el campo de la IA, experimentar y prototipar rápido es clave, y los frameworks pueden limitar eso.
- Patrones futuros de uso de agentes: hasta que se consoliden los patrones de uso de agentes, conviene mantener un enfoque simple.
2 comentarios
Se decía que era una arquitectura fallida, y ahora también lo veo en GeekNews.
Opinión de Hacker News
Construyó su primer agente comercial con LLM en octubre/noviembre del año pasado: obtener mejores resultados fue más fácil al construir el agente desde cero, sin usar LangChain.
La complejidad de los frameworks de LLM: los frameworks de LLM como LangChain tienden a introducir una complejidad similar a la de Java o Python.
Comparación entre LangChain y ChatGPT: LangChain se creó antes de la aparición de ChatGPT, pero con ChatGPT ofreciendo un mejor modelo conversacional, la necesidad de LangChain se redujo.
Debate sobre el valor de LangChain: LangChain intentó ubicarse entre el desarrollador y el LLM, pero no logró aportar un valor real e introdujo abstracciones innecesarias.
Buenas y malas abstracciones: una buena abstracción se ocupa de la lógica de la aplicación, mientras que una mala abstrae el trabajo necesario y hace que se pierda visibilidad.
Problemas del uso de agentes: para generación de contenido, usar prompts secuenciales es más fácil y efectivo que usar agentes.
Introducción del framework Ragged: se presenta Ragged, un conector liviano que permite conectarse fácilmente con LLM. Ofrece una interfaz de integración similar a un ORM.
Poca utilidad de LangChain: aunque el enfoque de LangChain es interesante, en la práctica es más eficiente usar directamente una librería de runtime para LLM.
Frameworks de agentes que cambian rápido: el framework de agentes en uso cambia con mucha rapidez, y hasta cambios menores de versión pueden romper la configuración actual.
Problema de complejidad de LangChain: LangChain es demasiado complejo para casos de uso simples y difícil de adaptar para casos complejos. En muchos casos, escribir el código directamente es una mejor opción.