Proyecto corporativo · Presentado sin referencias a la empresa: solo arquitectura y decisiones.
Plataforma agéntica de entrega de software
Máquina de estados que coordina agentes de IA del backlog al PR aprobado
Estado
En producción
Rol
Ingeniero líder y arquitecto: máquina de estados de flujos, gateway de LLM, integración de seguridad de prompts, superficie de herramientas MCP, memoria vectorial, diseño del indexador, portal y forma de despliegue.
Arquitectura
4 agentes de IA por rol
Máquina de estados persistida con leases
Aprobaciones humanas
Del work item al pull request aprobado
Una señal de listo crea una ejecución persistida; el orquestador despacha definición, planificación de QA, aprobación de plan, desarrollo, revisión y retrabajo, luego publica un pull request, vigila el CI y espera aprobación humana.
Arquitectura · 9 nodos · 2 flujos
1Seguimiento y repositorios → Orquestador de flujoSeñal de ítem listo (webhook)
Servicio / cómputo
Almacén de datos
Cliente
Sistema externo
Síncrono
Asíncrono / bucle
Desplázate hacia los lados para ver todo el diagrama
Cómo fluye, paso a paso
Haz clic en un paso para saltar a él. Haz clic en un componente para ver detalles.
Qué hace
Plataforma interna que convierte ítems de un sistema de seguimiento de trabajo en pull requests revisados, coordinando agentes de IA especializados en requisitos, planificación de QA, desarrollo, revisión adversarial y reparación de CI. Un gateway de LLM multi-proveedor con capa de seguridad de prompts, un servidor MCP con herramientas acotadas, memoria vectorial y un indexador código a grafo forman la infraestructura compartida, con aprobación humana en cada paso crítico.
El problema
Los equipos querían entrega asistida por LLM pero no podían permitir que los agentes hablaran directo con los proveedores, filtraran datos sensibles en prompts, tuvieran acceso irrestricto al repositorio o al backlog, ni perdieran trabajo cuando una ejecución larga fallaba. El reto era volver auditable, reanudable y gobernado el comportamiento de los agentes, en lugar de una cadena de prompts ad hoc.
Qué construí
Diseñé una máquina de estados persistida (requisitos, planificación de QA, aprobación de plan, desarrollo, revisión, retrabajo, publicación de PR, monitoreo y reparación de CI, aprobación humana) con colas de trabajo pendientes durables, leases y recuperación, de modo que las ejecuciones sobreviven reinicios y retoman exactamente donde se detuvieron.
Construí un gateway de LLM multi-proveedor con enrutamiento por rol, límites de tasa por rol, fallback entre proveedores con circuit breaker, continuación automática de respuestas truncadas, monitoreo de salud con alertas operativas y auditoría completa con archivado opcional de payloads.
Integré Cerberus, una capa de seguridad de prompts en proceso, guiada por reglas de detección compartidas, que bloquea secretos, credenciales y datos personales o de pago antes de que cualquier solicitud salga del límite de confianza.
Implementé un servidor MCP con herramientas de mínimo privilegio para lectura y etiquetado de ítems, operaciones de ramas, archivos y pull requests, consultas al grafo de código, memoria vectorial y ejecución de pruebas, con permisos por rol y registros de auditoría aplicados en tiempo de ejecución.
Creé un indexador basado en Roslyn que emite un grafo estructural inmutable, direccionado por commit, de proyectos, tipos, miembros y referencias, dando al planificador y al agente de desarrollo contexto de código preciso en lugar de volcados de archivos.
Aislé la ejecución de código en un worker de workspace en contenedor que clona, edita, compila y prueba repositorios, además de un runner de pruebas de navegador que produce evidencia, todo tras puertas de aprobación para comandos riesgosos.
Entregué un portal en tiempo real que muestra el ciclo de vida, la actividad en vivo de los agentes, las puertas y el historial de ejecuciones, con aprobaciones y aclaraciones disponibles tanto en el portal como en tarjetas de chat.
Decisiones clave y por qué
01
El agente no es el modelo y el gateway no es el agente
El estado del flujo, las herramientas y la memoria viven en el orquestador y los runtimes de agentes; el gateway solo ofrece acceso al modelo seguro, auditado y enrutado, y no sabe nada de ítems ni ramas. Así cada responsabilidad es reemplazable y el gateway reutilizable por cualquier cliente.
02
Máquina de estados durable con leases en lugar de bucles en memoria
Las ejecuciones con LLM son largas, frágiles y costosas. Persistir la fase, el trabajo pendiente y el lease permite recuperación tras caídas, reintentos programados ante fallos de proveedor y estacionar ejecuciones que requieren decisión humana, para luego reanudar la misma transcripción y plan.
03
Seguridad de prompts como compuerta previa en proceso
Escanear con Cerberus antes del enrutamiento garantiza que el contenido sensible nunca llegue a un proveedor externo, sin salto de red adicional. Las reglas son datos compartidos, por lo que evolucionan sin redesplegar el gateway.
04
Roles y proveedores separados para constructor y revisor
Un revisor adversarial con otro rol, y preferiblemente otro modelo, reduce puntos ciegos correlacionados. Los hallazgos regresan al agente de desarrollo como retrabajo estructurado, con un número acotado de iteraciones antes de escalar a una persona.
05
Herramientas impuestas por el servidor MCP, no por texto del prompt
Los permisos por rol de agente, las reglas de ramas protegidas y la nomenclatura de ramas se validan en el servidor y no existe una herramienta genérica de mutación. Un prompt comprometido o confundido no puede exceder su autoridad.
06
Grafo de código inmutable direccionado por commit
Identidades de símbolo estables (hash de repositorio, nombre calificado y firma) y generaciones por commit hacen la recuperación de contexto reproducible y barata, y permiten fusionar repositorios multi-solución en un único índice.
Stack tecnológico
Lenguajes
C#TypeScript
Backend
.NET 10ASP.NET CoreRoslyn
IA
Model Context Protocol (MCP)OpenAIAnthropicSelf-hosted LLMEmbeddings (OpenAI / Voyage)