Fred Schott lanzó Flue 2.0 el 31 de julio, marcando el primer lanzamiento estable del framework y un pivote arquitectónico completo. La base es Agent Hooks, una API de TypeScript que refleja el modelo de composición de React y reemplaza las definiciones estáticas de agentes de Flue 1.0 Beta. La versión beta registró más de 700.000 descargas en aproximadamente un mes, una señal suficiente para reconstruir en torno a la composición en lugar del enrutamiento de archivos.
Un agente en Flue 2 es una función JavaScript que se re-renderiza en cada turno antes de cada llamada de modelo. Los hooks se adhieren a ese ciclo. Los 16 hooks integrados cubren vinculación de herramientas (useTool(), useSkill()), delegación de subagentes (useSubagent()), estado persistente entre turnos (usePersistentState()), acceso a sandbox (useSandbox()) y conexiones MCP (useMcpConnection()). Los hooks personalizados se compilan en paquetes npm. El comando `flue add` genera un blueprint de Markdown que tu agente de codificación lee directamente—"shadcn para tus agentes", en palabras de Schott.
Las configuraciones estáticas no pueden hacer lo que los hooks desbloquean: agentes que cambian su propio conjunto de capacidades en tiempo de ejecución. Un bot de soporte puede retrasar la asociación de herramientas de gestión de cuentas hasta que un usuario sea verificado. Un agente que enfrenta un problema difícil puede cambiar a un modelo más pesado en medio de una conversación. En Flue 1.0 y en los arneses competidores, actualizar dinámicamente un modelo o sandbox a mitad de sesión requiere un cableado significativo. Flue 2 solo necesita un par de líneas de TypeScript.
El runtime subyacente es Pi, un arnés mínimo de código abierto. Schott lo posiciona como Astro posiciona Vite—una base estable, de baja abstracción, con un framework con opiniones en la parte superior. Los agentes alojados se compilan directamente con Vite. El nuevo CLI agrega `flue run` para ejecución local y entornos de CI. El MCP sin estado integrado monta el conjunto completo de herramientas de un servidor MCP en cualquier agente sin código de adaptador. Los objetivos de implementación incluyen Node.js, Cloudflare Workers (como Durable Objects), GitHub Actions, GitLab CI y Daytona.
Flue no tiene oferta de nube administrada, interfaz de programación, observabilidad alojada ni implementaciones con un clic. La posición declarada de Schott es "el framework es el producto". Para evaluaciones y repetición, la documentación apunta a Braintrust o un observador personalizado—una brecha deliberada que Mastra y LangGraph rellenan de forma nativa. El atributo de importación de skills (`with { type: 'skill' }`) requiere Node 22+ y empaquetadores modernos; los monorepos con configuraciones de TypeScript más antiguas tendrán problemas de herramientas.
El competidor directo es Eve de Vercel, que se lanzó el 17 de junio con posicionamiento "como Next.js, para agentes". Ambos son código abierto. Ambos tratan el arnés como fundamental. Eve está basado en directorio: instrucciones de Markdown y herramientas de TypeScript en el sistema de archivos. Flue está basado en función: una función JS más hooks. La elección práctica depende de si tu equipo prefiere convenciones del sistema de archivos o composición programática a escala. Schott acredita a Eve como un verdadero par—dos equipos convergiendo al mismo diseño porque la idea estaba lista.
El patrón de hooks de Flue 2 se adapta a agentes que necesitan cambiar de forma en medio de una conversación. Los flujos de trabajo estáticos con conjuntos de herramientas fijos no lo necesitan. Los bots de soporte, agentes de triaje y cualquier cosa que gane capacidades condicionalmente sí—y los 16 hooks integrados más la composición de hooks personalizados manejan eso sin una máquina de estados personalizada.