Cómo construir agentes de IA extensibles: Un análisis profundo de la arquitectura de middleware

Cómo construir agentes de IA extensibles: Un análisis profundo de la arquitectura de middleware

AI Agents LangChain Agent Architecture Middleware

Introducción

FlowHunt utiliza la biblioteca LangChain en el backend, y en esta entrada del blog, exploraré la arquitectura de middleware de LangChain y cómo nos permite construir agentes de IA más sofisticados. La evolución de los agentes de IA ha llegado a un punto de inflexión crítico. A medida que los modelos de lenguaje se vuelven más capaces, la demanda de arquitecturas de agentes sofisticadas, capaces de manejar flujos de trabajo complejos y de múltiples pasos, se ha intensificado. LangChain 1.0 introduce un cambio de paradigma en la manera en que los desarrolladores crean agentes mediante su innovadora arquitectura de middleware, transformando fundamentalmente la forma en que abordamos la extensibilidad y composición de los agentes. Esta guía exhaustiva explora la reescritura completa de los agentes profundos sobre LangChain 1.0, analizando cómo el middleware transforma el desarrollo de agentes de un enfoque rígido y monolítico a un sistema flexible y componible que permite a los desarrolladores construir agentes potentes adaptados a sus necesidades específicas.

Comprendiendo los agentes profundos: más allá del simple llamado de herramientas

Antes de sumergirnos en la arquitectura técnica, es esencial entender qué distingue a los agentes profundos de los sistemas convencionales de llamado de herramientas. En esencia, los agentes profundos son bucles sofisticados de llamado de herramientas mejorados con capacidades integradas específicas que les permiten manejar flujos de trabajo complejos y de múltiples pasos con una intervención humana mínima. Mientras que los agentes simples ejecutan tareas secuencialmente invocando herramientas y procesando resultados, los agentes profundos introducen una capa de inteligencia y estructura que cambia fundamentalmente su forma de abordar la resolución de problemas.

La base de los agentes profundos descansa sobre cuatro pilares fundamentales. Primero, las capacidades de planificación permiten a los agentes crear y seguir listas de tareas estructuradas, descomponiendo tareas complejas en pasos manejables antes de la ejecución. Esta fase de planificación es crucial porque permite al agente pensar en todo el flujo de trabajo, identificar dependencias y optimizar la secuencia de operaciones. Segundo, el acceso a sistemas de archivos proporciona almacenamiento persistente para descargar contexto, permitiendo que los agentes escriban información en archivos para recuperarla más tarde en lugar de mantener todo en el historial de la conversación. Esto es especialmente valioso para gestionar grandes cantidades de datos o mantener el estado a lo largo de múltiples operaciones. Tercero, la generación de subagentes permite que el agente principal delegue trabajo a subagentes especializados para tareas aisladas, creando una estructura jerárquica que mejora la eficiencia y permite especialización por dominio. Finalmente, los prompts de sistema detallados brindan instrucciones completas sobre cómo utilizar estas herramientas de manera efectiva, asegurando que el agente no solo sepa qué herramientas tiene disponibles, sino cuándo y cómo usarlas de forma óptima.

Estas capacidades han demostrado ser invaluables en sistemas de producción como Manus y Cloud Code, donde los agentes deben navegar flujos de trabajo complejos, gestionar grandes cantidades de contexto y tomar decisiones inteligentes sobre la delegación de tareas. El objetivo del paquete de agentes profundos es democratizar el acceso a esta arquitectura sofisticada, facilitando a los desarrolladores la creación de agentes potentes sin tener que reinventar la rueda ni entender cada detalle de implementación.

La evolución de la arquitectura de agentes: de monolítica a modular

El enfoque tradicional para construir agentes implicaba crear estructuras monolíticas donde toda la funcionalidad—planificación, gestión de herramientas, manejo de estado e ingeniería de prompts—estaba estrechamente acoplada en una sola base de código. Este enfoque generaba varios problemas: extender los agentes requería modificar la lógica central, reutilizar componentes entre diferentes agentes era difícil y probar características individuales en aislamiento era casi imposible. Los desarrolladores se veían obligados a aceptar limitaciones o a realizar enormes esfuerzos de refactorización para añadir nuevas capacidades.

LangChain 1.0 aborda estos desafíos con un concepto revolucionario: el middleware. El middleware representa un cambio de paradigma en la arquitectura de agentes, introduciendo una abstracción apilable que permite a los desarrolladores componer capacidades de agentes como bloques de construcción. En lugar de modificar el bucle principal del agente, el middleware intercepta y mejora puntos específicos en el flujo de ejecución del agente, permitiendo una separación clara de responsabilidades y la máxima reutilización. Esta innovación arquitectónica transforma el desarrollo de agentes de un enfoque monolítico y absoluto a un sistema modular y componible donde cada funcionalidad puede desarrollarse, probarse y desplegarse de manera independiente.

La belleza del middleware reside en su capacidad de apilarse. Los desarrolladores pueden definir múltiples componentes de middleware y aplicarlos en secuencia, con cada capa de middleware añadiendo sus propias extensiones de estado, herramientas y modificaciones en los prompts del sistema. Esto significa que un solo agente puede beneficiarse de capacidades de planificación, acceso a sistemas de archivos, generación de subagentes y mejoras personalizadas específicas del dominio—todo compuesto de forma transparente. El orden de aplicación del middleware importa, ya que cada capa se construye sobre la anterior, creando un efecto acumulativo que resulta en un agente altamente capaz.

Cómo el middleware transforma las capacidades de los agentes

Entender el middleware requiere examinar cómo modifica el bucle fundamental ReAct (Reasoning + Acting) del agente. El patrón ReAct, que se ha convertido en el estándar para los agentes que llaman herramientas, consiste en que el modelo razona sobre qué acción tomar, ejecuta esa acción a través de una herramienta, observa el resultado y repite este ciclo hasta completar la tarea. El middleware no reemplaza este bucle; más bien, lo mejora en puntos estratégicos.

El middleware opera a través de tres mecanismos principales. Primero, extiende el esquema de estado, añadiendo nuevas claves y estructuras de datos a las que el agente puede acceder y modificar. Esto permite que distintos componentes de middleware mantengan su propio estado sin interferir entre sí. Segundo, añade nuevas herramientas al conjunto de herramientas del agente, brindando al modelo capacidades adicionales para alcanzar sus objetivos. Tercero, modifica la solicitud al modelo, normalmente añadiendo instrucciones personalizadas al prompt del sistema que explican cómo usar las nuevas herramientas y cuándo aplicarlas.

Este enfoque de tres frentes asegura que las mejoras del middleware sean completas y estén bien integradas. Añadir simplemente una herramienta sin extender el esquema de estado o proporcionar instrucciones sería ineficaz: el modelo podría no entender cómo usar la herramienta o cuándo es apropiado invocarla. Al combinar los tres mecanismos, el middleware crea una mejora coherente que el modelo puede aprovechar eficazmente.

El middleware de planificación: descomposición estructurada de tareas

El middleware de planificación ejemplifica cómo la arquitectura de middleware permite capacidades de agentes sofisticadas. Este middleware extiende el esquema de estado del agente con una lista de tareas pendientes, una estructura de datos simple pero poderosa que permite a los agentes mantener un plan de acción estructurado. La implementación es elegante en su simplicidad: el middleware agrega una sola clave al esquema de estado, pero esta clave desbloquea capacidades significativas.

Para hacer que la herramienta de planificación sea efectiva, el middleware proporciona una herramienta para escribir tareas, que permite al modelo crear, actualizar y gestionar la lista de tareas. Cuando el agente se enfrenta a una tarea compleja, puede usar esta herramienta para dividirla en pasos más pequeños y manejables. En lugar de intentar resolver todo de una vez, el agente crea un plan, ejecuta cada paso y actualiza el plan a medida que avanza. Este enfoque estructurado tiene varias ventajas: hace que el razonamiento del agente sea transparente y auditable, permite una mejor recuperación de errores (si un paso falla, el agente puede ajustar los restantes) y a menudo resulta en una ejecución más eficiente porque el agente ha pensado en todo el flujo de trabajo.

Críticamente, el middleware de planificación no solo añade una herramienta—también modifica el prompt del sistema con instrucciones detalladas sobre cómo usar eficazmente la herramienta de tareas. Estas instrucciones explican cuándo es apropiada la planificación, cómo estructurar un buen plan y cómo actualizarlo a medida que el agente progresa. Esta mejora del prompt del sistema es esencial porque guía el comportamiento del modelo, asegurando que la herramienta de planificación se use estratégicamente y no de forma aleatoria.

El middleware de sistema de archivos: descarga de contexto y persistencia

Mientras el middleware de planificación se centra en la descomposición de tareas, el middleware de sistema de archivos aborda un reto diferente pero igualmente importante: gestionar el contexto y mantener el estado a lo largo de las operaciones. El middleware de sistema de archivos extiende el estado del agente con un diccionario de archivos, creando un sistema de archivos virtual que el agente puede leer y escribir.

A diferencia del middleware de planificación, que proporciona una sola herramienta, el middleware de sistema de archivos ofrece múltiples herramientas para diferentes operaciones con archivos. El agente puede listar archivos para ver lo que hay disponible, leer archivos para cargar información en el contexto, escribir nuevos archivos para almacenar información y editar archivos existentes para actualizar datos almacenados. Este enfoque de varias herramientas refleja la realidad de que las interacciones con el sistema de archivos son diversas y requieren operaciones distintas según el escenario.

El middleware de sistema de archivos es especialmente valioso para gestionar grandes cantidades de datos o mantener el estado en múltiples operaciones. En lugar de mantener todo en el historial de la conversación (lo que consumiría tokens y podría superar los límites de contexto), el agente puede escribir información en archivos y recuperarla cuando lo necesite. Por ejemplo, un agente que trabaja en un proyecto de investigación podría escribir hallazgos en archivos, organizarlos por tema y luego recuperar los archivos relevantes al sintetizar conclusiones. Este enfoque mejora drásticamente la eficiencia y permite a los agentes trabajar con conjuntos de datos mucho mayores de lo que sería posible si todo tuviera que caber en la ventana de contexto.

Al igual que el middleware de planificación, el de sistema de archivos incluye prompts de sistema personalizados que explican cómo usar eficazmente las herramientas de sistema de archivos. Estos prompts ofrecen orientación sobre cuándo escribir información en archivos, cómo organizar los archivos para facilitar su recuperación y buenas prácticas para gestionar el sistema de archivos virtual.

El middleware de subagentes: delegación y especialización

El middleware de subagentes representa la pieza más sofisticada de la arquitectura de agentes profundos. Este middleware permite que el agente principal genere subagentes especializados para tareas aisladas, creando una estructura jerárquica que mejora la eficiencia y permite especialización por dominio. La implementación es más compleja que la del middleware de planificación o de sistema de archivos, ya que debe manejar múltiples escenarios y configuraciones.

En esencia, el middleware de subagentes proporciona una herramienta de tareas que permite al agente principal delegar trabajo a subagentes. Cuando el agente principal decide que una tarea debe ser realizada por un subagente, invoca la herramienta de tareas, especifica qué subagente debe encargarse y le pasa la información relevante. El subagente ejecuta la tarea y devuelve una respuesta completa al agente principal. Este modelo de delegación tiene varias ventajas: aísla el contexto (el subagente solo ve la información relevante para su tarea), permite especialización (diferentes subagentes pueden tener distintas herramientas y prompts) y a menudo resulta en una ejecución más limpia y eficiente.

El middleware de subagentes soporta dos casos de uso principales para la creación de subagentes. El primero es el aislamiento de contexto, donde un subagente generalista recibe las mismas herramientas que el agente principal pero se le asigna una tarea concreta y enfocada. El subagente completa esta tarea y devuelve una respuesta limpia y completa, sin llamadas intermedias a herramientas ni contexto que sobrecargaría el historial del agente principal. Este enfoque ahorra tokens y tiempo al evitar la acumulación innecesaria de contexto. El segundo caso de uso es la especialización por dominio, donde se crea un subagente con un prompt personalizado y un subconjunto específico de herramientas adaptadas a un dominio o tipo de tarea concreto. Por ejemplo, un agente de investigación podría tener un subagente especializado en revisión bibliográfica con acceso a bases de datos académicas, mientras otro subagente se especializa en análisis de datos con acceso a herramientas estadísticas.

El middleware permite definir subagentes de dos formas. Los subagentes de llamado de herramientas se crean desde cero con un prompt personalizado y una lista específica de herramientas. Estos subagentes pueden tener herramientas completamente distintas a las del agente principal, permitiendo una verdadera especialización. Los desarrolladores también pueden especificar un modelo personalizado para cada subagente, permitiendo el uso de diferentes modelos según la tarea. Los subagentes personalizados ofrecen aún más flexibilidad permitiendo a los desarrolladores pasar directamente flujos de LangGraph ya existentes como subagentes. Esto es especialmente valioso para quienes ya han construido flujos de agentes sofisticados y quieren exponerlos al agente principal como subagentes.

Importante: los subagentes también reciben middleware, lo que les permite beneficiarse de la planificación, el acceso al sistema de archivos y otras mejoras. Esto significa que los subagentes no están limitados al simple llamado de herramientas—pueden ser tan sofisticados como el agente principal, con sus propias capacidades de planificación, acceso a archivos e incluso sus propios subagentes.

Gestión de contexto y middleware de resumen

A medida que los agentes participan en conversaciones más largas y manejan tareas más complejas, la ventana de contexto se convierte en una restricción crítica. El middleware de resumen aborda este desafío gestionando automáticamente el contexto cuando crece demasiado. Este middleware monitoriza el historial de la conversación y, cuando el conteo de tokens se acerca al límite de la ventana de contexto, compacta automáticamente el historial resumiendo los mensajes más antiguos y preservando los más recientes.

El middleware de resumen es esencial para agentes en producción que necesitan mantener contexto a lo largo de conversaciones extendidas. Sin él, los agentes eventualmente alcanzarían los límites de contexto y perderían acceso a información histórica importante. Con el resumen, los agentes pueden mantener conciencia de interacciones pasadas sin exceder los límites de tokens. El middleware equilibra inteligentemente la necesidad de preservar el contexto reciente (que suele ser el más relevante) con la de resumir el contexto más antiguo (que puede comprimirse sin perder información crítica).

Este enfoque de gestión de contexto refleja un principio más amplio en el diseño de agentes: el contexto es un recurso valioso que debe gestionarse cuidadosamente. Cada token usado para contexto es un token que no puede usarse para razonamiento o salida de herramientas. Al resumir automáticamente el contexto cuando es necesario, el middleware de resumen garantiza que los agentes puedan operar eficientemente incluso en escenarios de larga duración.

Humano en el ciclo: middleware para aplicaciones críticas

Para aplicaciones críticas en las que los agentes deben invocar herramientas sensibles (como enviar correos, escalar incidencias o realizar transacciones financieras), el middleware humano en el ciclo proporciona salvaguardas esenciales. Este middleware permite a los desarrolladores especificar qué herramientas deben ser interrumpidas antes de su ejecución, permitiendo que humanos revisen y aprueben (o modifiquen) las llamadas a herramientas antes de ejecutarlas.

El middleware humano en el ciclo acepta una configuración de herramientas que especifica qué herramientas deben ser interrumpidas y qué acciones pueden tomar los humanos sobre esas llamadas. Por ejemplo, antes de una herramienta sensible que envía un correo, los desarrolladores pueden configurar el middleware para que los humanos puedan aprobar la acción, editar los parámetros o dar retroalimentación al agente sobre lo que debería hacer diferente. Esto crea un flujo de trabajo colaborativo donde el agente se encarga del razonamiento y la planificación, pero los humanos mantienen el control sobre las acciones críticas.

Este middleware ejemplifica cómo la arquitectura de middleware permite a los desarrolladores añadir sofisticadas funciones de gobierno y seguridad sin modificar la lógica central del agente. Diferentes aplicaciones tienen distintos requisitos de supervisión humana, y el enfoque de middleware permite que cada aplicación configure el nivel de participación humana que sea adecuado para su caso de uso.

Construyendo agentes extensibles con middleware personalizado

Aunque LangChain 1.0 ofrece varios componentes de middleware preconstruidos, el verdadero poder de la arquitectura de middleware radica en su extensibilidad. Los desarrolladores pueden crear middleware personalizado extendiendo la clase base de middleware de agentes, lo que les permite añadir nuevas claves de estado, herramientas y modificaciones en el prompt del sistema adaptadas a su caso de uso específico.

El desarrollo de middleware personalizado sigue el mismo patrón que el middleware integrado: extender el esquema de estado con nuevas claves, añadir herramientas que operen sobre ese estado y modificar el prompt del sistema con instrucciones sobre cómo usar las nuevas herramientas. Este patrón consistente facilita el desarrollo de nuevos componentes de middleware que se integran perfectamente con los existentes.

Por ejemplo, un desarrollador que construya un agente para atención al cliente podría crear un middleware personalizado que añada una herramienta de base de datos de clientes para buscar información de clientes, una herramienta de gestión de tickets para crear y actualizar incidencias, y una herramienta de base de conocimientos para recuperar documentación relevante. Este middleware personalizado ampliaría las capacidades del agente de manera específica para atención al cliente, mientras sigue beneficiándose de la planificación, el sistema de archivos y las capacidades de subagentes provistas por el middleware integrado.

La capacidad de crear middleware personalizado significa que los desarrolladores nunca están limitados por las capacidades integradas. Si un agente necesita una herramienta o función de gestión de estado específica, los desarrolladores pueden implementarla como middleware e integrarla sin problemas con el resto de la arquitectura del agente.

FlowHunt y el desarrollo simplificado de agentes

Mientras LangChain 1.0 proporciona la base arquitectónica para construir agentes sofisticados, plataformas como FlowHunt llevan el desarrollo de agentes al siguiente nivel al ofrecer una interfaz sin código para crear, desplegar y gestionar agentes de IA. El componente Agente de IA de FlowHunt aprovecha los principios de la arquitectura basada en middleware para permitir a los desarrolladores crear agentes potentes sin programar.

El enfoque de FlowHunt para el desarrollo de agentes se alinea perfectamente con la filosofía del middleware: componibilidad, extensibilidad y facilidad de uso. En lugar de exigir a los desarrolladores comprender los detalles de la implementación del middleware, FlowHunt ofrece una interfaz visual donde los desarrolladores pueden componer capacidades del agente conectando componentes. La plataforma gestiona la orquestación del middleware subyacente, permitiendo a los desarrolladores centrarse en definir qué debe hacer su agente en vez de cómo implementarlo.

Los agentes de FlowHunt pueden configurarse con capacidades de planificación, acceso a sistemas de archivos, generación de subagentes y herramientas personalizadas—todo mediante una interfaz visual intuitiva. Esto democratiza el desarrollo de agentes, haciéndolo accesible a desarrolladores que quizá no tengan experiencia profunda en LangChain o en arquitectura de agentes. Además, FlowHunt proporciona funciones como registros detallados de agentes, seguimiento del historial y control de gastos que ayudan a los desarrolladores a entender el comportamiento de sus agentes y optimizar su rendimiento.

Impulsa tu flujo de trabajo con FlowHunt

Experimenta cómo FlowHunt automatiza tus flujos de contenido y SEO con IA: desde la investigación y la generación de contenido hasta la publicación y análisis, todo en un solo lugar.

Implementación práctica: creando un agente profundo

Entender la teoría detrás de la arquitectura de middleware es valioso, pero la implementación práctica es donde emerge el verdadero poder. Crear un agente profundo con LangChain 1.0 implica utilizar la función create_deep_agent, que proporciona una interfaz preconstruida para construir agentes con todas las capacidades mencionadas anteriormente.

La función create_deep_agent acepta varios parámetros clave. Los desarrolladores pasan las herramientas a las que el agente debe tener acceso, instrucciones personalizadas que definen el comportamiento y objetivos del agente, y subagentes a los que el agente principal puede delegar trabajo. La función utiliza entonces el constructor de agentes para crear el agente aplicando el middleware apropiado en secuencia.

El constructor de agentes es donde ocurre la magia. Comienza seleccionando un modelo (por defecto Claude Sonnet 3.5, pero personalizable a cualquier modelo soportado), y luego aplica el middleware en un orden específico. El middleware de planificación se aplica primero, extendiendo el estado con una lista de tareas y añadiendo la herramienta de tareas. El middleware de sistema de archivos se aplica a continuación, añadiendo herramientas y estado de sistema de archivos. El middleware de subagentes se aplica en tercer lugar, habilitando la delegación de tareas. Finalmente, se aplica el middleware de resumen para gestionar el contexto.

Esta aplicación secuencial del middleware es crucial: cada capa de middleware se construye sobre la anterior, creando un efecto acumulativo. El prompt del sistema se amplía con instrucciones de cada middleware en orden, por lo que el modelo recibe una guía completa sobre cómo usar todas las capacidades disponibles. El esquema de estado crece con cada middleware, permitiendo al agente mantener múltiples tipos de estado. El conjunto de herramientas se expande con cada middleware, dando al modelo más opciones para cumplir sus objetivos.

Los desarrolladores pueden personalizar este proceso eligiendo qué middleware aplicar. Si un agente no necesita acceso a sistemas de archivos, el middleware correspondiente puede omitirse. Si un agente no necesita subagentes, el middleware de subagentes puede omitirse. Esta flexibilidad asegura que los agentes estén configurados exactamente con las capacidades que necesitan, sin sobrecarga innecesaria.

Patrones avanzados: orquestación multiagente

A medida que las aplicaciones de agentes se vuelven más sofisticadas, los desarrolladores a menudo necesitan orquestar varios agentes trabajando juntos para lograr objetivos complejos. La arquitectura de middleware permite soluciones elegantes para la orquestación multiagente a través del sistema de subagentes.

Un patrón potente es la delegación jerárquica, donde un agente principal descompone una tarea compleja en subtareas y delega cada subtarea a un subagente especializado. Por ejemplo, un agente de investigación puede delegar la revisión bibliográfica a un subagente, el análisis de datos a otro y la síntesis a un tercero. Cada subagente está optimizado para su tarea específica, con prompts y herramientas personalizadas para ese dominio. El agente principal coordina el flujo de trabajo general, asegurando que los subagentes se ejecuten en el orden correcto y que sus resultados se integren adecuadamente.

Otro patrón es la ejecución paralela, donde varios subagentes trabajan en diferentes aspectos de un problema simultáneamente. Si bien la implementación actual procesa los subagentes secuencialmente, la arquitectura soporta patrones de ejecución paralela donde se generan varios subagentes y sus resultados se agregan. Esto es especialmente valioso para tareas que pueden descomponerse en subtareas independientes.

Un tercer patrón es el de refinamiento iterativo, donde un agente principal genera subagentes para crear soluciones iniciales, luego utiliza sus resultados para refinar el enfoque y generar subagentes adicionales para un análisis más profundo. Este patrón es valioso para escenarios de resolución de problemas complejos donde múltiples iteraciones de análisis y refinamiento conducen a mejores soluciones.

Estos patrones demuestran cómo la arquitectura de middleware permite sistemas multiagente sofisticados sin requerir que los desarrolladores construyan lógica compleja de orquestación desde cero. El middleware de subagentes gestiona la mecánica de delegación y comunicación, permitiendo que los desarrolladores se centren en definir el flujo de trabajo y las capacidades de cada agente.

Eficiencia de tokens y optimización de costes

Uno de los beneficios más prácticos de la arquitectura de agentes profundos es su impacto en la eficiencia de tokens y la optimización de costes. Al combinar planificación, acceso a sistemas de archivos y delegación a subagentes, los agentes profundos pueden abordar tareas complejas utilizando significativamente menos tokens que los agentes simples.

La planificación reduce el uso de tokens permitiendo que los agentes piensen en los flujos de trabajo antes de la ejecución, evitando exploraciones y retrocesos innecesarios. En lugar de probar distintos enfoques y aprender de los errores, los agentes pueden planificar un camino eficiente hacia la solución desde el principio. El acceso a sistemas de archivos reduce el uso de tokens permitiendo que los agentes descarguen contexto a almacenamiento persistente en vez de mantener todo en el historial de la conversación. La información que no se necesita de inmediato puede escribirse en archivos y recuperarse después, manteniendo la ventana de contexto activa ligera. La delegación a subagentes reduce el uso de tokens aislando el contexto—los subagentes solo ven la información relevante para su tarea, evitando la acumulación de contexto irrelevante que consumiría tokens.

El middleware de resumen optimiza aún más el uso de tokens al compactar automáticamente el historial de la conversación cuando crece demasiado. En vez de perder acceso a información histórica o superar los límites de contexto, el middleware resume los mensajes antiguos, preservando la información esencial y liberando tokens para el razonamiento actual.

Para organizaciones que ejecutan agentes a gran escala, estas mejoras en la eficiencia de tokens se traducen directamente en ahorros de costes. Un agente que utiliza un 30% menos de tokens para realizar la misma tarea implica un 30% menos de costes de API. Cuando se multiplica por miles de ejecuciones de agentes, estos ahorros se vuelven sustanciales.

Extensibilidad y preparación para el futuro

La arquitectura de middleware ofrece un camino claro para futuras mejoras y extensiones. A medida que surgen nuevas capacidades o se descubren nuevos casos de uso, los desarrolladores pueden implementarlas como middleware sin interrumpir los agentes existentes. Esto prepara las aplicaciones de agentes para el cambio tecnológico y permite iterar rápidamente sobre nuevas funciones.

Por ejemplo, si surge una nueva capacidad para búsquedas web en tiempo real, los desarrolladores pueden implementarla como middleware que añade una herramienta de búsqueda e instrucciones apropiadas en el prompt del sistema. Los agentes existentes pueden beneficiarse inmediatamente de esta nueva capacidad simplemente añadiendo el middleware de búsqueda a su configuración. De igual forma, si hay nuevos modelos con diferentes capacidades o perfiles de coste, los agentes pueden actualizarse para usar los nuevos modelos sin cambios en la arquitectura de middleware.

Esta extensibilidad también permite que la comunidad contribuya con nuevos componentes de middleware. A medida que los desarrolladores descubren patrones y capacidades útiles, pueden compartir sus implementaciones de middleware con otros, creando un ecosistema de mejoras de agentes reutilizables. Este enfoque colaborativo acelera la innovación y permite que la comunidad de desarrollo de agentes construya colectivamente agentes más potentes y capaces.

Conclusión

La reescritura de los agentes profundos sobre la arquitectura de middleware de LangChain 1.0 representa un avance fundamental en cómo los desarrolladores crean agentes de IA. Al introducir una abstracción componible y apilable para mejoras de agentes, LangChain 1.0 transforma el desarrollo de agentes de un enfoque monolítico y absoluto a un sistema modular y flexible donde las capacidades pueden mezclarse y combinarse para crear agentes adaptados a casos de uso específicos. El middleware de planificación permite la descomposición estructurada de tareas, el middleware de sistema de archivos proporciona gestión de contexto y persistencia, el middleware de subagentes habilita delegación y especialización, y el middleware de resumen gestiona las restricciones de la ventana de contexto. El middleware personalizado permite a los desarrolladores ampliar agentes con capacidades específicas de dominio, mientras que plataformas como FlowHunt democratizan el desarrollo de agentes al ofrecer interfaces sin código para construir agentes sofisticados. Esta arquitectura no solo hace que los agentes sean más potentes y eficientes, sino también más mantenibles, testeables y preparados para el futuro. A medida que los agentes de IA se vuelven cada vez más centrales para las operaciones empresariales, la arquitectura basada en middleware de LangChain 1.0 proporciona la base para construir la próxima generación de sistemas inteligentes y autónomos.

Preguntas frecuentes

¿Qué son los agentes profundos y en qué se diferencian de los agentes simples de llamado de herramientas?

Los agentes profundos son bucles sofisticados de llamado de herramientas mejorados con capacidades integradas específicas: herramientas de planificación con listas de tareas pendientes, acceso a sistemas de archivos para descargar contexto, la capacidad de generar subagentes para tareas aisladas y prompts de sistema detallados. A diferencia de los agentes simples que ejecutan tareas secuencialmente, los agentes profundos pueden gestionar flujos de trabajo complejos, mantener el estado en múltiples operaciones y delegar trabajo a subagentes especializados.

¿Qué es middleware en LangChain 1.0 y por qué es importante?

El middleware en LangChain 1.0 es una abstracción apilable que modifica el bucle principal del agente ReAct. Permite a los desarrolladores extender el esquema de estado del agente, añadir nuevas herramientas y personalizar los prompts del sistema sin reescribir toda la lógica del agente. El middleware es crucial porque permite mejoras componibles y reutilizables que se pueden combinar en cualquier orden para crear agentes potentes y especializados.

¿Cómo ayuda el middleware de planificación a los agentes a gestionar tareas complejas?

El middleware de planificación extiende el estado del agente con una lista de tareas pendientes y proporciona una herramienta para escribir tareas. Esto permite que los agentes descompongan tareas complejas en pasos manejables, mantengan un plan de acción claro y hagan seguimiento del progreso. El middleware también incluye prompts de sistema personalizados que instruyen al modelo sobre cómo usar eficazmente la herramienta de planificación, asegurando que el agente cree y siga planes estructurados.

¿Qué son los subagentes y cuándo debería crearlos?

Los subagentes son agentes especializados generados por el agente principal para encargarse de tareas aisladas y específicas. Hay dos motivos principales para crearlos: (1) aislar el contexto—dando a un subagente una tarea concreta para completar y devolviendo una respuesta limpia sin llamadas intermedias a herramientas, lo que ahorra tokens; y (2) crear agentes específicos de dominio con prompts personalizados y conjuntos de herramientas especializadas adaptadas a tareas concretas.

¿Cómo gestiona el middleware de resumen los límites de la ventana de contexto?

El middleware de resumen monitoriza el historial de la conversación y lo compacta automáticamente cuando el conteo de tokens se acerca al límite de la ventana de contexto. Resume los mensajes antiguos mientras preserva los más recientes, permitiendo que el agente mantenga conciencia de interacciones pasadas sin exceder los límites de tokens. Esto es esencial para agentes de larga duración que necesitan mantener contexto a lo largo de conversaciones extensas.

¿Puedo usar middleware personalizado con agentes profundos?

Sí, absolutamente. Los agentes profundos están diseñados para ser extensibles. Puedes crear middleware personalizado extendiendo la clase base de middleware de agentes, lo que te permite añadir nuevas claves de estado, herramientas y modificaciones en los prompts del sistema. Esto te permite adaptar los agentes a tu caso de uso específico aprovechando la infraestructura de agentes profundos existente.

Viktor Zeman es copropietario de QualityUnit. Incluso después de 20 años liderando la empresa, sigue siendo principalmente un ingeniero de software, especializado en IA, SEO programático y desarrollo backend. Ha contribuido a numerosos proyectos, incluidos LiveAgent, PostAffiliatePro, FlowHunt, UrlsLab y muchos otros.

Viktor Zeman
Viktor Zeman
CEO, Ingeniero de IA

Crea agentes de IA potentes con FlowHunt

Crea agentes extensibles e inteligentes con la plataforma intuitiva de FlowHunt. Automatiza flujos de trabajo complejos con planificación, sistemas de archivos y orquestación multiagente—sin necesidad de programar.

Saber más

LangChain
LangChain

LangChain

LangChain es un framework de código abierto para desarrollar aplicaciones impulsadas por Modelos de Lenguaje Grande (LLM), que facilita la integración de potent...

2 min de lectura
LangChain LLM +4