El razonamiento es
probabilístico.
La ejecución es
determinista.
Invariant es un motor de ejecución determinista para sistemas de IA.
La mayoría de los sistemas de IA utilizan modelos como servidores de aplicaciones.
Invariant utiliza modelos como motores de decisión.
Los modelos razonan. La infraestructura ejecuta.
Menor costo de tokens
Envía al modelo únicamente lo que la decisión actual necesita.
Protección contra alucinaciones
Los modelos proponen. La infraestructura decide.
Ejecución confiable
La ejecución continúa exactamente donde se detuvo.
Flujo de Trabajo #42
Entrega mensajes. Solicita datos. Recopila aprobaciones.
Ejecuta efectos en cualquier servicio externo o API.
Cada nodo recibe únicamente la vista diseñada para el trabajo que va a realizar.
La infraestructura ejecuta.
Los modelos razonan.
Deja de pagar para reconstruir contexto
La mayoría de los frameworks de agentes reconstruyen contexto metiendo más historial en cada prompt.
Invariant almacena el estado una vez y proyecta la vista de runtime correcta para cada decisión.
“Ese prompt más pequeño no es magia. Es una proyección.”
- ✔Menor costo de tokens
- ✔Menos alucinaciones
- ✔Sin acciones duplicadas
- ✔Sin contexto perdido
- ✔Ejecución predecible
- ✔Crecimiento mínimo de prompt
Bucle Pesado en Contexto
Vista de Razonamiento
Hechos, preferencias, políticas, historial recortado, tarea actual
Vista de Ejecución
Acción actual, acciones previas, reintentos, claves de idempotencia
Vista de Reglas
Políticas, restricciones, estado de validación, verificaciones
Vista de Intervención
Resumen, decisión pendiente, acciones disponibles, contexto relevante
Cada interacción se convierte en un evento. Cada evento avanza una ejecución de flujo de trabajo.
Los sistemas de IA no fallan porque les falte inteligencia, fallan porque el razonamiento y la ejecución están mezclados. El contexto se pierde, las acciones se duplican, los flujos de trabajo compiten entre canales y la intervención humana rompe el estado. Invariant separa el razonamiento de la ejecución, proporcionando un motor de ejecución determinista construido en torno a ejecuciones de flujo de trabajo, eventos y ejecución duradera.
Agente Tradicional
El contexto crece para siempre. Los costos crecen para siempre.
Proyección de Contexto
Almacena el estado una vez. No pagues dos veces por él.
Protección contra Alucinaciones
Los modelos proponen. La infraestructura decide.
Estado Duradero del Motor
Una sola fuente de verdad.
Múltiples Canales
Un solo estado en ejecución. Múltiples canales.
El contexto crece para siempre. Los costos crecen para siempre.
0 Tokens
Diseñado para la ejecución en el mundo real.
Invariant implementa patrones clave de sistemas distribuidos, haciendo que las ejecuciones de IA sean confiables, transaccionales y transparentes.
Event Sourcing
Cada transición de estado es reproducible.
Entiende exactamente qué sucedió y por qué. En lugar de guardar el estado mutable, Invariant registra cada evento de tiempo de ejecución (entradas, resultados de herramientas, proyecciones de API) en un registro de solo anexar. Proyecta el registro para reconstruir el estado en cualquier punto.
Outbox Transaccional
La ejecución se desacopla del razonamiento.
Usa OpenAI, Anthropic, Gemini, modelos locales o futuros proveedores. A medida que los modelos evolucionan, tus máquinas de estado principales, reglas de validación de seguridad y flujos de trabajo transaccionales permanecen sin cambios.
Humano en el Bucle
La mayoría de los eventos nunca requieren una llamada al modelo.
Invariant utiliza enrutamiento determinista siempre que sea posible y recurre a la IA solo cuando el razonamiento es realmente necesario. La llamada al modelo más rápida y barata es la que nunca realizas.
Un solo escritor por ejecución
Concurrente en todo el sistema. Secuencial dentro de la ejecución.
Los eventos entrantes de WhatsApp, correo electrónico, flujos de voz o paneles humanos se encolan y procesan de forma secuencial. Sin condiciones de carrera, sin efectos secundarios duplicados de APIs y sin estados corruptos.
Cada transición de estado es reproducible.
Entiende exactamente qué sucedió y por qué. En lugar de guardar el estado mutable, Invariant registra cada evento de tiempo de ejecución (entradas, resultados de herramientas, proyecciones de API) en un registro de solo anexar. Proyecta el registro para reconstruir el estado en cualquier punto.
La ejecución se desacopla del razonamiento.
Usa OpenAI, Anthropic, Gemini, modelos locales o futuros proveedores. A medida que los modelos evolucionan, tus máquinas de estado principales, reglas de validación de seguridad y flujos de trabajo transaccionales permanecen sin cambios.
La mayoría de los eventos nunca requieren una llamada al modelo.
Invariant utiliza enrutamiento determinista siempre que sea posible y recurre a la IA solo cuando el razonamiento es realmente necesario. La llamada al modelo más rápida y barata es la que nunca realizas.
Concurrente en todo el sistema. Secuencial dentro de la ejecución.
Los eventos entrantes de WhatsApp, correo electrónico, flujos de voz o paneles humanos se encolan y procesan de forma secuencial. Sin condiciones de carrera, sin efectos secundarios duplicados de APIs y sin estados corruptos.
State Version #0
Un solo estado en ejecución.
Múltiples canales.
Los clientes cambian de canal. Tu estado no debería hacerlo.
Enruta eventos de voz, correo electrónico, WhatsApp, widgets, APIs y operadores humanos hacia el mismo estado de ejecución sin duplicar estado, perder contexto o causar condiciones de carrera en las mutaciones de estado.
Usado por:
Centros de llamadas y Voz
Mantén el estado de las llamadas duradero a través de llamadas, SMS, correos electrónicos y traspasos a humanos.
Flujos de Atención al Cliente
Suspende flujos de trabajo para aprobación sin perder contexto ni duplicar acciones.
Sistemas de Aprobación Humana
Ejecuta flujos de trabajo de larga duración con acciones validadas y efectos secundarios transaccionales.
Escribe lógica de negocio.
Invariant maneja el resto.
Despliega agentes de IA complejos sin preocuparte por bases de datos de estado, condiciones de carrera o efectos secundarios inestables. Escribes TypeScript simple; obtienes un motor de ejecución distribuido y dirigido por eventos de forma gratuita.
- ✔Estado Duradero
- ✔Event Sourcing
- ✔Outbox Transaccional
- ✔Recuperación
- ✔Multi Canal
Patrones de sistemas distribuidos incluidos por defecto.
1const workflow = new Invariant({2 id: 'customer-support'3})4 5workflow.on('message', async (ctx) => {6 const decision = await ctx.llm.chat(...)// Reason7 8 await ctx.transition(decision)// Validate9 10 await ctx.outbox.dispatch(...)// Execute11})El Stack de Invariant
Un motor de ejecución determinista. Basado en fuentes de eventos, transaccional y resistente a fallos.
Canales
Voz, WhatsApp, correos electrónicos, widgets o APIs estándar despachan eventos.
Enrutador
Enruta eventos de forma determinista siempre que sea posible. Invoca el razonamiento de IA solo cuando se requiere.
Ejecuciones de Flujos
Máquinas de estado aisladas de un solo escritor que ejecutan lógica secuencialmente.
Registro de Eventos
Registro de eventos histórico de solo anexar. Deriva proyecciones de estado exactas.
Outbox
Cola transaccional que garantiza que las acciones se ejecuten exactamente una vez.
Sistemas Externos
CRMs, calendarios, bases de datos o webhooks de terceros reciben efectos.
Por qué el Registro de Eventos impulsa el determinismo
En lugar de guardar valores de variables en una base de datos mutable tradicional, Invariant escribe cada evento de tiempo de ejecución (entradas, resultados de herramientas, proyecciones de API) en un Registro de Eventos de solo anexar. El estado actual se construye a demanda proyectando estos eventos. Si un proceso se reinicia o falla una llamada LLM, el motor reproduce el Registro de Eventos de forma determinista para restaurar el estado sin repetir efectos secundarios.
Modos de fallo comunes que Invariant previene
Los frameworks de agentes actuales se optimizan para demos cortas. Invariant está diseñado para detener errores de ejecución antes de que afecten a producción.
Pérdida de Contexto
Acciones Alucinadas
Explosión de Tokens
Llamadas Innecesarias al Modelo
Condiciones de Carrera
Intervención Humana
¿Listo para escalar tus sistemas de IA?
El razonamiento es solo la mitad del problema. La ejecución es donde comienza la confiabilidad.
Siguientes pasos
Programa una revisión de arquitectura o una inmersión profunda con nuestro equipo principal de ingeniería.
Hablar con Ingeniería
Habla sobre tu arquitectura, identifica cuellos de botella de confiabilidad y explora si Invariant es la solución adecuada para tu equipo de ingeniería.
Revisión de Arquitectura
¿Ya estás construyendo sistemas de IA? Revisaremos tu arquitectura actual, identificaremos ineficiencias de tokens, problemas de gestión de estado, riesgos de alucinación y cuellos de botella de confiabilidad.
Inmersión Profunda
Explora cómo implementamos event sourcing de solo anexar, validaciones estrictas de transición, patrones outbox y controles de concurrencia de un solo escritor.
Preguntas frecuentes
Si no encuentras la respuesta que buscas, ponte en contacto con nuestro equipo de ingeniería por Discord o correo electrónico.
¿Qué es un Workflow Run?
Un Workflow Run es una instancia de ejecución aislada con su propio estado, historial de eventos, salidas y efectos secundarios. Múltiples canales, usuarios, herramientas y humanos pueden interactuar con la misma ejecución mientras Invariant garantiza una ejecución determinista.
¿Cómo garantiza Invariant una ejecución determinista?
Las rutas de ejecución se definen como gráficos de transición de estado estrictos en JSON inmutable. El motor local evalúa el enrutamiento de bordes de forma determinista, evitando que el LLM ejecute rutas de código arbitrarias o no deseadas.
¿Puedo ejecutar Invariant en mi propia infraestructura?
Sí. El Plano de Control se ejecuta como un orquestador ligero en el proceso en Node.js/TypeScript. Se puede implementar en un contenedor Docker en tu propia VPC o clúster de Kubernetes, utilizando cualquier instancia de PostgreSQL.
¿Por qué Invariant reduce el uso de tokens?
La mayoría de los frameworks reenvían continuamente el historial de conversaciones, el estado de ejecución, las salidas de las herramientas y los registros de ejecución al modelo. Invariant almacena el estado en una infraestructura determinista y proyecta solo la información requerida para el paso actual, reduciendo el contexto innecesario y las llamadas al modelo.
¿Qué es el patrón outbox y por qué lo necesito?
El patrón Outbox Transaccional asegura que los efectos secundarios (como llamadas API, actualizaciones de bases de datos o correos electrónicos) se confirmen en la misma transacción de base de datos que el estado de ejecución. Si la ejecución falla o se reinicia, los efectos secundarios nunca se duplican ni se pierden.
¿Es Invariant compatible con LangChain o AutoGen?
Invariant opera en una capa de infraestructura superior. Puedes usar cualquier framework o API pura dentro de los nodos de ejecución del modelo. Invariant proporciona la confiabilidad, la durabilidad del estado y el enrutamiento, mientras usas las bibliotecas LLM de tu preferencia.
¿Por qué no simplemente usar LangGraph, AutoGen, o CrewAI?
Esos frameworks ayudan a orquestar las llamadas al modelo. Invariant gestiona el estado de ejecución, el enrutamiento determinista, el event sourcing, los efectos secundarios transaccionales y la recuperación. Puedes usar Invariant junto con cualquier framework de agentes o proveedor de modelos.
¿Cómo funciona la suspensión de Humano en el Bucle (Human-in-the-Loop)?
Cuando una ejecución llega a un nodo de entrada, se suspende y persiste el estado. Una aplicación cliente (como nuestra Nuxt Tenant App o Chat Widget) puede obtener el esquema requerido, recopilar la entrada del usuario y reanudar la ejecución con una simple llamada API.
¿Admite Invariant múltiples proveedores de LLM?
Sí. Invariant es completamente agnóstico al modelo. Puedes cambiar entre OpenAI, Anthropic, Gemini, modelos locales (a través de Ollama o vLLM) o endpoints personalizados simplemente cambiando la configuración del modelo en tu JSON de ejecución.